Sat Jun 27 06:39:04 UTC 2020 I: starting to build ppl/buster/armhf on jenkins on '2020-06-27 06:38' Sat Jun 27 06:39:04 UTC 2020 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/armhf_16/2905/console.log Sat Jun 27 06:39:04 UTC 2020 I: Downloading source for buster/ppl=1:1.2-7 --2020-06-27 06:39:04-- http://deb.debian.org/debian/pool/main/p/ppl/ppl_1.2-7.dsc Connecting to 78.137.99.97:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2573 (2.5K) Saving to: ‘ppl_1.2-7.dsc’ 0K .. 100% 211M=0s 2020-06-27 06:39:04 (211 MB/s) - ‘ppl_1.2-7.dsc’ saved [2573/2573] Sat Jun 27 06:39:04 UTC 2020 I: ppl_1.2-7.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: ppl Binary: libppl14, libppl-dev, ppl-dev, libppl-c4, libppl-doc, libppl-swi Architecture: any all Version: 1:1.2-7 Maintainer: Debian Science Team Uploaders: Tobias Hansen , Michael Tautschnig Homepage: http://www.cs.unipr.it/ppl/ Standards-Version: 4.3.0 Vcs-Browser: https://salsa.debian.org/science-team/ppl Vcs-Git: https://salsa.debian.org/science-team/ppl.git Build-Depends: debhelper (>= 11~), libgmp-dev, libncurses-dev Build-Depends-Arch: chrpath, swi-prolog [amd64 arm64 armel armhf hppa i386 ia64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el] Build-Depends-Indep: doxygen-latex, ghostscript, graphviz, poppler-utils, swi-prolog, texlive-science Package-List: libppl-c4 deb libs optional arch=any libppl-dev deb libdevel optional arch=any libppl-doc deb doc optional arch=all libppl-swi deb libs optional arch=amd64,arm64,armel,armhf,hppa,i386,ia64,mips,mips64,mips64el,mipsel,powerpc,powerpcspe,ppc64,ppc64el profile=!pkg.ppl.no-swi-prolog libppl14 deb libs optional arch=any ppl-dev deb devel optional arch=any Checksums-Sha1: 56c3e4cf3be90e11dfdd877b449adedc26cd8ec9 14136236 ppl_1.2.orig.tar.xz 06cfd13275bfb7f97fdafe8f4eab4994b15c664e 12068 ppl_1.2-7.debian.tar.xz Checksums-Sha256: 691f0d5a4fb0e206f4e132fc9132c71d6e33cdda168470d40ac3cf62340e9a60 14136236 ppl_1.2.orig.tar.xz 11c13875a735f1a764b26c1cd7fa0ee869315ee59e478317577a50c9cfac8d41 12068 ppl_1.2-7.debian.tar.xz Files: e7bd12043d1064214f7a0107b6da3f17 14136236 ppl_1.2.orig.tar.xz 5b572a6cedc425c4a9119f46c7a24151 12068 ppl_1.2-7.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEj1g0K+q+HvQ3lVH7sZN3DBhqHH0FAlxEtJcACgkQsZN3DBhq HH2zDg//Z3JP5u6g/bheEjsiWV1Yhpu0fbRwVa0ypYsxJIBb0R0SXcPBIL510gKt WvDuMrl3pIagIKx+tRkU8fcW5+wnUTQ2KrNon+6yAf4f/CsKnYIxVNk5qhJ31mHr TLycXP18U0+Z7o3iWEcXdsQQhPTwHPABrjDr8vl5Bd76jvQdywZ6UMMtKd3WtE4d +iXuoRAjWblgtjDm9IAXVcXS+JEwQN1TrOBxfEAgifzB9ygW/UvWyj/uznJwuvCK ZOK5EB/FsEupfk6om+B7Zpv1YpiK3V9T2+dLXQDlZtSUJBF0GRgKbLYZT0X5jat/ LIaNYFANaILj/4gHG5tRBsCjwbrh4oHjIhtjWz9q94upsw8t1EwY0rMVn+nBrIcl hOw3C9ReswzUz7m0Pvyoz0dsontWlBU3qhsdG9daDfA9OWz6F9GZSxmwc9LnTiR4 eX83XuyCpRZpWWcqGksgVi5aoyKKucFSQ4bomuwRWKpKCNM94iPW1mOyFq9zbfAb e8lLJWwhSg9x5xgNgwI4XSnE2W/6mort7p/GpFgkgu6WxwWkOmNm5MByc1ni7Wdo e1pvmLhrwMZDYngGWP7EFK573ZcA7drih+WYtE7d57AFYgo2zb39fSczhKWSKIBt XJPjI+CgucPVdmNYNhj3qNMMGKIc3UTS+v/pSMwi/evYH967Ec8= =gCVq -----END PGP SIGNATURE----- Sat Jun 27 06:39:04 UTC 2020 I: Checking whether the package is not for us Sat Jun 27 06:39:04 UTC 2020 I: Starting 1st build on remote node jtx1b-armhf-rb.debian.net. Sat Jun 27 06:39:04 UTC 2020 I: Preparing to do remote build '1' on jtx1b-armhf-rb.debian.net. Sat Jun 27 07:34:05 UTC 2020 I: Deleting $TMPDIR on jtx1b-armhf-rb.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Fri Jun 26 18:39:14 -12 2020 I: pbuilder-time-stamp: 1593239954 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-reproducible-base.tgz] I: copying local configuration I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [ppl_1.2-7.dsc] I: copying [./ppl_1.2.orig.tar.xz] I: copying [./ppl_1.2-7.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error gpgv: Signature made Sun Jan 20 05:49:11 2019 -12 gpgv: using RSA key 8F58342BEABE1EF4379551FBB193770C186A1C7D gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./ppl_1.2-7.dsc dpkg-source: info: extracting ppl in ppl-1.2 dpkg-source: info: unpacking ppl_1.2.orig.tar.xz dpkg-source: info: unpacking ppl_1.2-7.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying link-tests-with-libmpq.diff dpkg-source: info: applying reproducible_builds_gzip_n dpkg-source: info: applying fix_latex_build.patch dpkg-source: info: applying fix_AC_CHECK_SWI_PROLOG.patch I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/19769/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='armhf' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3' DISTRIBUTION='' HOME='/root' HOST_ARCH='armhf' IFS=' ' INVOCATION_ID='5fc93e1f8cdb44ae9342cc9248ec921e' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='19769' PS1='# ' PS2='> ' 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.HKgR3TNlnE/pbuilderrc_9jTD --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.HKgR3TNlnE/b1 --logfile b1/build.log ppl_1.2-7.dsc' SUDO_GID='114' SUDO_UID='110' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://10.0.0.15:8000/' I: uname -a Linux jtx1b 4.19.0-9-arm64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) aarch64 GNU/Linux I: ls -l /bin total 3328 -rwxr-xr-x 1 root root 767656 Apr 17 2019 bash -rwxr-xr-x 3 root root 26052 Jul 10 2019 bunzip2 -rwxr-xr-x 3 root root 26052 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 26052 Jul 10 2019 bzip2 -rwxr-xr-x 1 root root 9636 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 22432 Feb 28 2019 cat -rwxr-xr-x 1 root root 38868 Feb 28 2019 chgrp -rwxr-xr-x 1 root root 38836 Feb 28 2019 chmod -rwxr-xr-x 1 root root 42972 Feb 28 2019 chown -rwxr-xr-x 1 root root 88376 Feb 28 2019 cp -rwxr-xr-x 1 root root 75516 Jan 17 2019 dash -rwxr-xr-x 1 root root 71648 Feb 28 2019 date -rwxr-xr-x 1 root root 51212 Feb 28 2019 dd -rwxr-xr-x 1 root root 55672 Feb 28 2019 df -rwxr-xr-x 1 root root 88444 Feb 28 2019 dir -rwxr-xr-x 1 root root 54872 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 22364 Feb 28 2019 echo -rwxr-xr-x 1 root root 28 Jan 7 2019 egrep -rwxr-xr-x 1 root root 18260 Feb 28 2019 false -rwxr-xr-x 1 root root 28 Jan 7 2019 fgrep -rwxr-xr-x 1 root root 47356 Jan 9 2019 findmnt -rwsr-xr-x 1 root root 21980 Apr 22 07:38 fusermount -rwxr-xr-x 1 root root 124508 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 64232 Jan 5 2019 gzip -rwxr-xr-x 1 root root 13784 Sep 26 2018 hostname -rwxr-xr-x 1 root root 43044 Feb 28 2019 ln -rwxr-xr-x 1 root root 34932 Jul 26 2018 login -rwxr-xr-x 1 root root 88444 Feb 28 2019 ls -rwxr-xr-x 1 root root 67036 Jan 9 2019 lsblk -rwxr-xr-x 1 root root 47168 Feb 28 2019 mkdir -rwxr-xr-x 1 root root 43040 Feb 28 2019 mknod -rwxr-xr-x 1 root root 26552 Feb 28 2019 mktemp -rwxr-xr-x 1 root root 26024 Jan 9 2019 more -rwsr-xr-x 1 root root 34268 Jan 9 2019 mount -rwxr-xr-x 1 root root 9688 Jan 9 2019 mountpoint -rwxr-xr-x 1 root root 84284 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 22416 Feb 28 2019 pwd lrwxrwxrwx 1 root root 4 Apr 17 2019 rbash -> bash -rwxr-xr-x 1 root root 26504 Feb 28 2019 readlink -rwxr-xr-x 1 root root 42968 Feb 28 2019 rm -rwxr-xr-x 1 root root 26496 Feb 28 2019 rmdir -rwxr-xr-x 1 root root 14136 Jan 21 2019 run-parts -rwxr-xr-x 1 root root 76012 Dec 22 2018 sed lrwxrwxrwx 1 root root 4 Jun 24 20:26 sh -> dash -rwxr-xr-x 1 root root 22384 Feb 28 2019 sleep -rwxr-xr-x 1 root root 51124 Feb 28 2019 stty -rwsr-xr-x 1 root root 42472 Jan 9 2019 su -rwxr-xr-x 1 root root 22392 Feb 28 2019 sync -rwxr-xr-x 1 root root 283324 Apr 23 2019 tar -rwxr-xr-x 1 root root 9808 Jan 21 2019 tempfile -rwxr-xr-x 1 root root 63464 Feb 28 2019 touch -rwxr-xr-x 1 root root 18260 Feb 28 2019 true -rwxr-xr-x 1 root root 9636 Apr 22 07:38 ulockmgr_server -rwsr-xr-x 1 root root 21976 Jan 9 2019 umount -rwxr-xr-x 1 root root 22380 Feb 28 2019 uname -rwxr-xr-x 2 root root 2345 Jan 5 2019 uncompress -rwxr-xr-x 1 root root 88444 Feb 28 2019 vdir -rwxr-xr-x 1 root root 21980 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/19769/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: armhf Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper (>= 11~), libgmp-dev, libncurses-dev, doxygen-latex, ghostscript, graphviz, poppler-utils, swi-prolog, texlive-science, chrpath, swi-prolog dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 18932 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper (>= 11~); however: Package debhelper is not installed. pbuilder-satisfydepends-dummy depends on libgmp-dev; however: Package libgmp-dev is not installed. pbuilder-satisfydepends-dummy depends on libncurses-dev; however: Package libncurses-dev is not installed. pbuilder-satisfydepends-dummy depends on doxygen-latex; however: Package doxygen-latex is not installed. pbuilder-satisfydepends-dummy depends on ghostscript; however: Package ghostscript is not installed. pbuilder-satisfydepends-dummy depends on graphviz; however: Package graphviz is not installed. pbuilder-satisfydepends-dummy depends on poppler-utils; however: Package poppler-utils is not installed. pbuilder-satisfydepends-dummy depends on swi-prolog; however: Package swi-prolog is not installed. pbuilder-satisfydepends-dummy depends on texlive-science; however: Package texlive-science is not installed. pbuilder-satisfydepends-dummy depends on chrpath; however: Package chrpath is not installed. pbuilder-satisfydepends-dummy depends on swi-prolog; however: Package swi-prolog is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdmainutils{a} chrpath{a} cm-super-minimal{a} debhelper{a} dh-autoreconf{a} dh-strip-nondeterminism{a} doxygen{a} doxygen-latex{a} dwz{a} file{a} fontconfig{a} fontconfig-config{a} fonts-dejavu-core{a} fonts-gfs-baskerville{a} fonts-gfs-porson{a} fonts-lmodern{a} gettext{a} gettext-base{a} ghostscript{a} graphviz{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libarchive13{a} libavahi-client3{a} libavahi-common-data{a} libavahi-common3{a} libbrotli1{a} libbsd-dev{a} libbsd0{a} libcairo2{a} libcdt5{a} libcgraph6{a} libclang1-6.0{a} libcroco3{a} libcups2{a} libcupsimage2{a} libdatrie1{a} libdbus-1-3{a} libedit-dev{a} libedit2{a} libelf1{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libfontconfig1{a} libfreetype6{a} libfribidi0{a} libgd3{a} libglib2.0-0{a} libgmp-dev{a} libgmpxx4ldbl{a} libgraphite2-3{a} libgs9{a} libgs9-common{a} libgssapi-krb5-2{a} libgts-0.7-5{a} libgvc6{a} libgvpr2{a} libharfbuzz-icu0{a} libharfbuzz0b{a} libice6{a} libicu63{a} libidn11{a} libijs-0.35{a} libjbig0{a} libjbig2dec0{a} libjpeg62-turbo{a} libjs-jquery{a} libk5crypto3{a} libkeyutils1{a} libkpathsea6{a} libkrb5-3{a} libkrb5support0{a} liblab-gamut1{a} liblcms2-2{a} libllvm6.0{a} libltdl7{a} libmagic-mgc{a} libmagic1{a} libmime-charset-perl{a} libncurses-dev{a} libncurses6{a} libnspr4{a} libnss3{a} libopenjp2-7{a} libossp-uuid16{a} libpango-1.0-0{a} libpangocairo-1.0-0{a} libpangoft2-1.0-0{a} libpaper-utils{a} libpaper1{a} libpathplan4{a} libpipeline1{a} libpixman-1-0{a} libpng16-16{a} libpoppler82{a} libpotrace0{a} libptexenc1{a} libpython-stdlib{a} libpython2-stdlib{a} libpython2.7-minimal{a} libpython2.7-stdlib{a} libreadline-dev{a} libreadline7{a} libsigsegv2{a} libsm6{a} libsombok3{a} libssl1.1{a} libsynctex2{a} libteckit0{a} libtexlua52{a} libtexlua53{a} libtexluajit2{a} libthai-data{a} libthai0{a} libtiff5{a} libtool{a} libuchardet0{a} libunicode-linebreak-perl{a} libwebp6{a} libwoff1{a} libx11-6{a} libx11-data{a} libxau6{a} libxaw7{a} libxcb-render0{a} libxcb-shm0{a} libxcb1{a} libxdmcp6{a} libxdot4{a} libxext6{a} libxft2{a} libxi6{a} libxinerama1{a} libxml2{a} libxmu6{a} libxpm4{a} libxrender1{a} libxt6{a} libxxhash0{a} libyaml-0-2{a} libzzip-0-13{a} lsb-base{a} m4{a} man-db{a} mime-support{a} po-debconf{a} poppler-data{a} poppler-utils{a} preview-latex-style{a} python{a} python-minimal{a} python2{a} python2-minimal{a} python2.7{a} python2.7-minimal{a} readline-common{a} sensible-utils{a} swi-prolog{a} swi-prolog-nox{a} swi-prolog-x{a} t1utils{a} tex-common{a} texlive-base{a} texlive-binaries{a} texlive-extra-utils{a} texlive-font-utils{a} texlive-fonts-recommended{a} texlive-lang-greek{a} texlive-latex-base{a} texlive-latex-extra{a} texlive-latex-recommended{a} texlive-pictures{a} texlive-science{a} ucf{a} x11-common{a} xdg-utils{a} The following packages are RECOMMENDED but will NOT be installed: curl dbus fonts-droid-fallback fonts-liberation gsfonts javascript-common krb5-locales libarchive-cpio-perl libcupsfilters1 libfile-homedir-perl libfile-mimeinfo-perl libglib2.0-data libgpm2 libgts-bin liblog-log4perl-perl libltdl-dev libmail-sendmail-perl libnet-dbus-perl libx11-protocol-perl libyaml-tiny-perl lmodern lynx ps2eps ruby shared-mime-info tex-gyre texlive-plain-generic tipa tk wget x11-utils x11-xserver-utils xdg-user-dirs 0 packages upgraded, 181 newly installed, 0 to remove and 0 not upgraded. Need to get 283 MB of archives. After unpacking 700 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian buster/main armhf libbsd0 armhf 0.9.1-2 [103 kB] Get: 2 http://deb.debian.org/debian buster/main armhf bsdmainutils armhf 11.1.2+b1 [186 kB] Get: 3 http://deb.debian.org/debian buster/main armhf libuchardet0 armhf 0.0.6-3 [62.2 kB] Get: 4 http://deb.debian.org/debian buster/main armhf groff-base armhf 1.22.4-3 [828 kB] Get: 5 http://deb.debian.org/debian buster/main armhf libpipeline1 armhf 1.5.1-2 [26.8 kB] Get: 6 http://deb.debian.org/debian buster/main armhf man-db armhf 2.8.5-2 [1240 kB] Get: 7 http://deb.debian.org/debian buster/main armhf libpython2.7-minimal armhf 2.7.16-2+deb10u1 [395 kB] Get: 8 http://deb.debian.org/debian buster/main armhf python2.7-minimal armhf 2.7.16-2+deb10u1 [1171 kB] Get: 9 http://deb.debian.org/debian buster/main armhf python2-minimal armhf 2.7.16-1 [41.4 kB] Get: 10 http://deb.debian.org/debian buster/main armhf python-minimal armhf 2.7.16-1 [21.0 kB] Get: 11 http://deb.debian.org/debian buster/main armhf libssl1.1 armhf 1.1.1d-0+deb10u3 [1299 kB] Get: 12 http://deb.debian.org/debian buster/main armhf mime-support all 3.62 [37.2 kB] Get: 13 http://deb.debian.org/debian buster/main armhf libexpat1 armhf 2.2.6-2+deb10u1 [78.0 kB] Get: 14 http://deb.debian.org/debian buster/main armhf readline-common all 7.0-5 [70.6 kB] Get: 15 http://deb.debian.org/debian buster/main armhf libreadline7 armhf 7.0-5 [131 kB] Get: 16 http://deb.debian.org/debian buster/main armhf libpython2.7-stdlib armhf 2.7.16-2+deb10u1 [1837 kB] Get: 17 http://deb.debian.org/debian buster/main armhf python2.7 armhf 2.7.16-2+deb10u1 [305 kB] Get: 18 http://deb.debian.org/debian buster/main armhf libpython2-stdlib armhf 2.7.16-1 [20.8 kB] Get: 19 http://deb.debian.org/debian buster/main armhf libpython-stdlib armhf 2.7.16-1 [20.8 kB] Get: 20 http://deb.debian.org/debian buster/main armhf python2 armhf 2.7.16-1 [41.6 kB] Get: 21 http://deb.debian.org/debian buster/main armhf python armhf 2.7.16-1 [22.8 kB] Get: 22 http://deb.debian.org/debian buster/main armhf poppler-data all 0.4.9-2 [1473 kB] Get: 23 http://deb.debian.org/debian buster/main armhf sensible-utils all 0.0.12 [15.8 kB] Get: 24 http://deb.debian.org/debian buster/main armhf ucf all 3.0038+nmu1 [69.0 kB] Get: 25 http://deb.debian.org/debian buster/main armhf tex-common all 6.11 [53.1 kB] Get: 26 http://deb.debian.org/debian buster/main armhf libmagic-mgc armhf 1:5.35-4+deb10u1 [242 kB] Get: 27 http://deb.debian.org/debian buster/main armhf libmagic1 armhf 1:5.35-4+deb10u1 [110 kB] Get: 28 http://deb.debian.org/debian buster/main armhf file armhf 1:5.35-4+deb10u1 [65.5 kB] Get: 29 http://deb.debian.org/debian buster/main armhf gettext-base armhf 0.19.8.1-9 [118 kB] Get: 30 http://deb.debian.org/debian buster/main armhf libsigsegv2 armhf 2.12-2 [32.1 kB] Get: 31 http://deb.debian.org/debian buster/main armhf m4 armhf 1.4.18-2 [190 kB] Get: 32 http://deb.debian.org/debian buster/main armhf autoconf all 2.69-11 [341 kB] Get: 33 http://deb.debian.org/debian buster/main armhf autotools-dev all 20180224.1 [77.0 kB] Get: 34 http://deb.debian.org/debian buster/main armhf automake all 1:1.16.1-4 [771 kB] Get: 35 http://deb.debian.org/debian buster/main armhf autopoint all 0.19.8.1-9 [434 kB] Get: 36 http://deb.debian.org/debian buster/main armhf chrpath armhf 0.16-2+b1 [15.9 kB] Get: 37 http://deb.debian.org/debian buster/main armhf libpaper1 armhf 1.1.28 [20.5 kB] Get: 38 http://deb.debian.org/debian buster/main armhf libpaper-utils armhf 1.1.28 [17.6 kB] Get: 39 http://deb.debian.org/debian buster/main armhf libkpathsea6 armhf 2018.20181218.49446-1 [157 kB] Get: 40 http://deb.debian.org/debian buster/main armhf libptexenc1 armhf 2018.20181218.49446-1 [58.1 kB] Get: 41 http://deb.debian.org/debian buster/main armhf libsynctex2 armhf 2018.20181218.49446-1 [67.4 kB] Get: 42 http://deb.debian.org/debian buster/main armhf libtexlua52 armhf 2018.20181218.49446-1 [86.7 kB] Get: 43 http://deb.debian.org/debian buster/main armhf libtexlua53 armhf 2018.20181218.49446-1 [97.8 kB] Get: 44 http://deb.debian.org/debian buster/main armhf libtexluajit2 armhf 2018.20181218.49446-1 [201 kB] Get: 45 http://deb.debian.org/debian buster/main armhf t1utils armhf 1.41-3 [54.4 kB] Get: 46 http://deb.debian.org/debian buster/main armhf libbrotli1 armhf 1.0.7-2 [259 kB] Get: 47 http://deb.debian.org/debian buster/main armhf libpng16-16 armhf 1.6.36-6 [275 kB] Get: 48 http://deb.debian.org/debian buster/main armhf libfreetype6 armhf 2.9.1-3+deb10u1 [322 kB] Get: 49 http://deb.debian.org/debian buster/main armhf fonts-dejavu-core all 2.37-1 [1068 kB] Get: 50 http://deb.debian.org/debian buster/main armhf fontconfig-config all 2.13.1-2 [280 kB] Get: 51 http://deb.debian.org/debian buster/main armhf libfontconfig1 armhf 2.13.1-2 [328 kB] Get: 52 http://deb.debian.org/debian buster/main armhf libpixman-1-0 armhf 0.36.0-1 [465 kB] Get: 53 http://deb.debian.org/debian buster/main armhf libxau6 armhf 1:1.0.8-1+b2 [19.1 kB] Get: 54 http://deb.debian.org/debian buster/main armhf libxdmcp6 armhf 1:1.1.2-3 [24.9 kB] Get: 55 http://deb.debian.org/debian buster/main armhf libxcb1 armhf 1.13.1-2 [132 kB] Get: 56 http://deb.debian.org/debian buster/main armhf libx11-data all 2:1.6.7-1 [298 kB] Get: 57 http://deb.debian.org/debian buster/main armhf libx11-6 armhf 2:1.6.7-1 [698 kB] Get: 58 http://deb.debian.org/debian buster/main armhf libxcb-render0 armhf 1.13.1-2 [108 kB] Get: 59 http://deb.debian.org/debian buster/main armhf libxcb-shm0 armhf 1.13.1-2 [99.0 kB] Get: 60 http://deb.debian.org/debian buster/main armhf libxext6 armhf 2:1.3.3-1+b2 [48.1 kB] Get: 61 http://deb.debian.org/debian buster/main armhf libxrender1 armhf 1:0.9.10-1 [29.9 kB] Get: 62 http://deb.debian.org/debian buster/main armhf libcairo2 armhf 1.16.0-4 [616 kB] Get: 63 http://deb.debian.org/debian buster/main armhf libgraphite2-3 armhf 1.3.13-7 [70.3 kB] Get: 64 http://deb.debian.org/debian buster/main armhf libgs9-common all 9.27~dfsg-2+deb10u3 [5136 kB] Get: 65 http://deb.debian.org/debian buster/main armhf libavahi-common-data armhf 0.7-4+b1 [122 kB] Get: 66 http://deb.debian.org/debian buster/main armhf libavahi-common3 armhf 0.7-4+b1 [51.1 kB] Get: 67 http://deb.debian.org/debian buster/main armhf libdbus-1-3 armhf 1.12.16-1 [190 kB] Get: 68 http://deb.debian.org/debian buster/main armhf libavahi-client3 armhf 0.7-4+b1 [54.5 kB] Get: 69 http://deb.debian.org/debian buster/main armhf libkeyutils1 armhf 1.6-6 [13.9 kB] Get: 70 http://deb.debian.org/debian buster/main armhf libkrb5support0 armhf 1.17-3 [62.3 kB] Get: 71 http://deb.debian.org/debian buster/main armhf libk5crypto3 armhf 1.17-3 [119 kB] Get: 72 http://deb.debian.org/debian buster/main armhf libkrb5-3 armhf 1.17-3 [323 kB] Get: 73 http://deb.debian.org/debian buster/main armhf libgssapi-krb5-2 armhf 1.17-3 [137 kB] Get: 74 http://deb.debian.org/debian buster/main armhf libcups2 armhf 2.2.10-6+deb10u3 [291 kB] Get: 75 http://deb.debian.org/debian buster/main armhf libcupsimage2 armhf 2.2.10-6+deb10u3 [130 kB] Get: 76 http://deb.debian.org/debian buster/main armhf libidn11 armhf 1.33-2.2 [113 kB] Get: 77 http://deb.debian.org/debian buster/main armhf libijs-0.35 armhf 0.35-14 [16.7 kB] Get: 78 http://deb.debian.org/debian buster/main armhf libjbig2dec0 armhf 0.16-1 [54.5 kB] Get: 79 http://deb.debian.org/debian buster/main armhf libjpeg62-turbo armhf 1:1.5.2-2+b1 [112 kB] Get: 80 http://deb.debian.org/debian buster/main armhf liblcms2-2 armhf 2.9-3 [119 kB] Get: 81 http://deb.debian.org/debian buster/main armhf libopenjp2-7 armhf 2.3.0-2+deb10u1 [143 kB] Get: 82 http://deb.debian.org/debian buster/main armhf libjbig0 armhf 2.1-3.1+b2 [28.4 kB] Get: 83 http://deb.debian.org/debian buster/main armhf libwebp6 armhf 0.6.1-2 [229 kB] Get: 84 http://deb.debian.org/debian buster/main armhf libtiff5 armhf 4.1.0+git191117-2~deb10u1 [252 kB] Get: 85 http://deb.debian.org/debian buster/main armhf libgs9 armhf 9.27~dfsg-2+deb10u3 [1900 kB] Get: 86 http://deb.debian.org/debian buster/main armhf libglib2.0-0 armhf 2.58.3-2+deb10u2 [1101 kB] Get: 87 http://deb.debian.org/debian buster/main armhf libharfbuzz0b armhf 2.3.1-1 [1151 kB] Get: 88 http://deb.debian.org/debian buster/main armhf libicu63 armhf 63.1-6+deb10u1 [8005 kB] Get: 89 http://deb.debian.org/debian buster/main armhf libharfbuzz-icu0 armhf 2.3.1-1 [833 kB] Get: 90 http://deb.debian.org/debian buster/main armhf lsb-base all 10.2019051400 [28.4 kB] Get: 91 http://deb.debian.org/debian buster/main armhf x11-common all 1:7.7+19 [251 kB] Get: 92 http://deb.debian.org/debian buster/main armhf libice6 armhf 2:1.0.9-2 [51.7 kB] Get: 93 http://deb.debian.org/debian buster/main armhf libpotrace0 armhf 1.15-1 [23.9 kB] Get: 94 http://deb.debian.org/debian buster/main armhf libsm6 armhf 2:1.2.3-1 [33.0 kB] Get: 95 http://deb.debian.org/debian buster/main armhf libteckit0 armhf 2.5.8+ds2-5 [246 kB] Get: 96 http://deb.debian.org/debian buster/main armhf libwoff1 armhf 1.0.2-1 [35.8 kB] Get: 97 http://deb.debian.org/debian buster/main armhf libxt6 armhf 1:1.1.5-1+b3 [159 kB] Get: 98 http://deb.debian.org/debian buster/main armhf libxmu6 armhf 2:1.1.2-2+b3 [52.7 kB] Get: 99 http://deb.debian.org/debian buster/main armhf libxpm4 armhf 1:3.5.12-1 [44.0 kB] Get: 100 http://deb.debian.org/debian buster/main armhf libxaw7 armhf 2:1.0.13-1+b2 [167 kB] Get: 101 http://deb.debian.org/debian buster/main armhf libxi6 armhf 2:1.7.9-1 [78.4 kB] Get: 102 http://deb.debian.org/debian buster/main armhf libxxhash0 armhf 0.6.5-2 [10.2 kB] Get: 103 http://deb.debian.org/debian buster/main armhf libzzip-0-13 armhf 0.13.62-3.2 [51.6 kB] Get: 104 http://deb.debian.org/debian buster/main armhf texlive-binaries armhf 2018.20181218.49446-1 [8656 kB] Get: 105 http://deb.debian.org/debian buster/main armhf xdg-utils all 1.1.3-1+deb10u1 [73.7 kB] Get: 106 http://deb.debian.org/debian buster/main armhf texlive-base all 2018.20190227-2 [19.7 MB] Get: 107 http://deb.debian.org/debian buster/main armhf fonts-lmodern all 2.004.5-6 [4539 kB] Get: 108 http://deb.debian.org/debian buster/main armhf texlive-latex-base all 2018.20190227-2 [984 kB] Get: 109 http://deb.debian.org/debian buster/main armhf texlive-latex-recommended all 2018.20190227-2 [15.2 MB] Get: 110 http://deb.debian.org/debian buster/main armhf cm-super-minimal all 0.3.4-14 [5814 kB] Get: 111 http://deb.debian.org/debian buster/main armhf libtool all 2.4.6-9 [547 kB] Get: 112 http://deb.debian.org/debian buster/main armhf dh-autoreconf all 19 [16.9 kB] Get: 113 http://deb.debian.org/debian buster/main armhf libarchive-zip-perl all 1.64-1 [96.8 kB] Get: 114 http://deb.debian.org/debian buster/main armhf libfile-stripnondeterminism-perl all 1.1.2-1 [19.8 kB] Get: 115 http://deb.debian.org/debian buster/main armhf dh-strip-nondeterminism all 1.1.2-1 [13.0 kB] Get: 116 http://deb.debian.org/debian buster/main armhf libelf1 armhf 0.176-1.1 [158 kB] Get: 117 http://deb.debian.org/debian buster/main armhf dwz armhf 0.12-3 [72.0 kB] Get: 118 http://deb.debian.org/debian buster/main armhf libxml2 armhf 2.9.4+dfsg1-7+b3 [595 kB] Get: 119 http://deb.debian.org/debian buster/main armhf libcroco3 armhf 0.6.12-3 [133 kB] Get: 120 http://deb.debian.org/debian buster/main armhf libncurses6 armhf 6.1+20181013-2+deb10u2 [79.8 kB] Get: 121 http://deb.debian.org/debian buster/main armhf gettext armhf 0.19.8.1-9 [1242 kB] Get: 122 http://deb.debian.org/debian buster/main armhf intltool-debian all 0.35.0+20060710.5 [26.8 kB] Get: 123 http://deb.debian.org/debian buster/main armhf po-debconf all 1.0.21 [248 kB] Get: 124 http://deb.debian.org/debian buster/main armhf debhelper all 12.1.1 [1016 kB] Get: 125 http://deb.debian.org/debian buster/main armhf libedit2 armhf 3.1-20181209-1 [79.5 kB] Get: 126 http://deb.debian.org/debian buster/main armhf libllvm6.0 armhf 1:6.0.1-10 [13.1 MB] Get: 127 http://deb.debian.org/debian buster/main armhf libclang1-6.0 armhf 1:6.0.1-10 [6029 kB] Get: 128 http://deb.debian.org/debian buster/main armhf doxygen armhf 1.8.13-10 [3568 kB] Get: 129 http://deb.debian.org/debian buster/main armhf libthai-data all 0.1.28-2 [170 kB] Get: 130 http://deb.debian.org/debian buster/main armhf libdatrie1 armhf 0.2.12-2 [35.8 kB] Get: 131 http://deb.debian.org/debian buster/main armhf libthai0 armhf 0.1.28-2 [50.7 kB] Get: 132 http://deb.debian.org/debian buster/main armhf libsombok3 armhf 2.4.0-2 [26.8 kB] Get: 133 http://deb.debian.org/debian buster/main armhf libmime-charset-perl all 1.012.2-1 [35.4 kB] Get: 134 http://deb.debian.org/debian buster/main armhf libunicode-linebreak-perl armhf 0.0.20190101-1 [99.3 kB] Get: 135 http://deb.debian.org/debian buster/main armhf texlive-extra-utils all 2018.20190227-2 [39.4 MB] Get: 136 http://deb.debian.org/debian buster/main armhf preview-latex-style all 11.91-2 [201 kB] Get: 137 http://deb.debian.org/debian buster/main armhf texlive-pictures all 2018.20190227-2 [8201 kB] Get: 138 http://deb.debian.org/debian buster/main armhf texlive-latex-extra all 2018.20190227-2 [12.3 MB] Get: 139 http://deb.debian.org/debian buster/main armhf texlive-font-utils all 2018.20190227-2 [1746 kB] Get: 140 http://deb.debian.org/debian buster/main armhf ghostscript armhf 9.27~dfsg-2+deb10u3 [94.5 kB] Get: 141 http://deb.debian.org/debian buster/main armhf texlive-fonts-recommended all 2018.20190227-2 [5228 kB] Get: 142 http://deb.debian.org/debian buster/main armhf doxygen-latex all 1.8.13-10 [113 kB] Get: 143 http://deb.debian.org/debian buster/main armhf fontconfig armhf 2.13.1-2 [404 kB] Get: 144 http://deb.debian.org/debian buster/main armhf fonts-gfs-baskerville all 1.1-5 [43.4 kB] Get: 145 http://deb.debian.org/debian buster/main armhf fonts-gfs-porson all 1.1-6 [33.5 kB] Get: 146 http://deb.debian.org/debian buster/main armhf libcdt5 armhf 2.40.1-6 [58.1 kB] Get: 147 http://deb.debian.org/debian buster/main armhf libcgraph6 armhf 2.40.1-6 [77.3 kB] Get: 148 http://deb.debian.org/debian buster/main armhf libgd3 armhf 2.2.5-5.2 [117 kB] Get: 149 http://deb.debian.org/debian buster/main armhf libgts-0.7-5 armhf 0.7.6+darcs121130-4 [137 kB] Get: 150 http://deb.debian.org/debian buster/main armhf libltdl7 armhf 2.4.6-9 [387 kB] Get: 151 http://deb.debian.org/debian buster/main armhf libfribidi0 armhf 1.0.5-3.1+deb10u1 [61.7 kB] Get: 152 http://deb.debian.org/debian buster/main armhf libpango-1.0-0 armhf 1.42.4-8~deb10u1 [169 kB] Get: 153 http://deb.debian.org/debian buster/main armhf libpangoft2-1.0-0 armhf 1.42.4-8~deb10u1 [62.7 kB] Get: 154 http://deb.debian.org/debian buster/main armhf libpangocairo-1.0-0 armhf 1.42.4-8~deb10u1 [52.2 kB] Get: 155 http://deb.debian.org/debian buster/main armhf libpathplan4 armhf 2.40.1-6 [61.3 kB] Get: 156 http://deb.debian.org/debian buster/main armhf libxdot4 armhf 2.40.1-6 [55.4 kB] Get: 157 http://deb.debian.org/debian buster/main armhf libgvc6 armhf 2.40.1-6 [556 kB] Get: 158 http://deb.debian.org/debian buster/main armhf libgvpr2 armhf 2.40.1-6 [189 kB] Get: 159 http://deb.debian.org/debian buster/main armhf liblab-gamut1 armhf 2.40.1-6 [220 kB] Get: 160 http://deb.debian.org/debian buster/main armhf graphviz armhf 2.40.1-6 [518 kB] Get: 161 http://deb.debian.org/debian buster/main armhf libarchive13 armhf 3.3.3-4+deb10u1 [277 kB] Get: 162 http://deb.debian.org/debian buster/main armhf libbsd-dev armhf 0.9.1-2 [222 kB] Get: 163 http://deb.debian.org/debian buster/main armhf libncurses-dev armhf 6.1+20181013-2+deb10u2 [295 kB] Get: 164 http://deb.debian.org/debian buster/main armhf libedit-dev armhf 3.1-20181209-1 [101 kB] Get: 165 http://deb.debian.org/debian buster/main armhf libgmpxx4ldbl armhf 2:6.1.2+dfsg-4 [21.7 kB] Get: 166 http://deb.debian.org/debian buster/main armhf libgmp-dev armhf 2:6.1.2+dfsg-4 [581 kB] Get: 167 http://deb.debian.org/debian buster/main armhf libjs-jquery all 3.3.1~dfsg-3 [332 kB] Get: 168 http://deb.debian.org/debian buster/main armhf libnspr4 armhf 2:4.20-1 [90.0 kB] Get: 169 http://deb.debian.org/debian buster/main armhf libnss3 armhf 2:3.42.1-1+deb10u2 [969 kB] Get: 170 http://deb.debian.org/debian buster/main armhf libossp-uuid16 armhf 1.6.2-1.5+b7 [35.3 kB] Get: 171 http://deb.debian.org/debian buster/main armhf libpoppler82 armhf 0.71.0-5 [1381 kB] Get: 172 http://deb.debian.org/debian buster/main armhf libreadline-dev armhf 7.0-5 [121 kB] Get: 173 http://deb.debian.org/debian buster/main armhf libxft2 armhf 2.3.2-2 [50.1 kB] Get: 174 http://deb.debian.org/debian buster/main armhf libxinerama1 armhf 2:1.1.4-2 [17.3 kB] Get: 175 http://deb.debian.org/debian buster/main armhf libyaml-0-2 armhf 0.2.1-1 [40.6 kB] Get: 176 http://deb.debian.org/debian buster/main armhf poppler-utils armhf 0.71.0-5 [162 kB] Get: 177 http://deb.debian.org/debian buster/main armhf swi-prolog-nox armhf 8.0.2+dfsg-3+deb10u1 [3559 kB] Get: 178 http://deb.debian.org/debian buster/main armhf swi-prolog-x armhf 8.0.2+dfsg-3+deb10u1 [1956 kB] Get: 179 http://deb.debian.org/debian buster/main armhf swi-prolog armhf 8.0.2+dfsg-3+deb10u1 [24.4 kB] Get: 180 http://deb.debian.org/debian buster/main armhf texlive-lang-greek all 2018.20190227-2 [76.3 MB] Get: 181 http://deb.debian.org/debian buster/main armhf texlive-science all 2018.20190227-2 [3168 kB] Fetched 283 MB in 30s (9308 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:armhf. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 18932 files and directories currently installed.) Preparing to unpack .../00-libbsd0_0.9.1-2_armhf.deb ... Unpacking libbsd0:armhf (0.9.1-2) ... Selecting previously unselected package bsdmainutils. Preparing to unpack .../01-bsdmainutils_11.1.2+b1_armhf.deb ... Unpacking bsdmainutils (11.1.2+b1) ... Selecting previously unselected package libuchardet0:armhf. Preparing to unpack .../02-libuchardet0_0.0.6-3_armhf.deb ... Unpacking libuchardet0:armhf (0.0.6-3) ... Selecting previously unselected package groff-base. Preparing to unpack .../03-groff-base_1.22.4-3_armhf.deb ... Unpacking groff-base (1.22.4-3) ... Selecting previously unselected package libpipeline1:armhf. Preparing to unpack .../04-libpipeline1_1.5.1-2_armhf.deb ... Unpacking libpipeline1:armhf (1.5.1-2) ... Selecting previously unselected package man-db. Preparing to unpack .../05-man-db_2.8.5-2_armhf.deb ... Unpacking man-db (2.8.5-2) ... Selecting previously unselected package libpython2.7-minimal:armhf. Preparing to unpack .../06-libpython2.7-minimal_2.7.16-2+deb10u1_armhf.deb ... Unpacking libpython2.7-minimal:armhf (2.7.16-2+deb10u1) ... Selecting previously unselected package python2.7-minimal. Preparing to unpack .../07-python2.7-minimal_2.7.16-2+deb10u1_armhf.deb ... Unpacking python2.7-minimal (2.7.16-2+deb10u1) ... Selecting previously unselected package python2-minimal. Preparing to unpack .../08-python2-minimal_2.7.16-1_armhf.deb ... Unpacking python2-minimal (2.7.16-1) ... Selecting previously unselected package python-minimal. Preparing to unpack .../09-python-minimal_2.7.16-1_armhf.deb ... Unpacking python-minimal (2.7.16-1) ... Selecting previously unselected package libssl1.1:armhf. Preparing to unpack .../10-libssl1.1_1.1.1d-0+deb10u3_armhf.deb ... Unpacking libssl1.1:armhf (1.1.1d-0+deb10u3) ... Selecting previously unselected package mime-support. Preparing to unpack .../11-mime-support_3.62_all.deb ... Unpacking mime-support (3.62) ... Selecting previously unselected package libexpat1:armhf. Preparing to unpack .../12-libexpat1_2.2.6-2+deb10u1_armhf.deb ... Unpacking libexpat1:armhf (2.2.6-2+deb10u1) ... Selecting previously unselected package readline-common. Preparing to unpack .../13-readline-common_7.0-5_all.deb ... Unpacking readline-common (7.0-5) ... Selecting previously unselected package libreadline7:armhf. Preparing to unpack .../14-libreadline7_7.0-5_armhf.deb ... Unpacking libreadline7:armhf (7.0-5) ... Selecting previously unselected package libpython2.7-stdlib:armhf. Preparing to unpack .../15-libpython2.7-stdlib_2.7.16-2+deb10u1_armhf.deb ... Unpacking libpython2.7-stdlib:armhf (2.7.16-2+deb10u1) ... Selecting previously unselected package python2.7. Preparing to unpack .../16-python2.7_2.7.16-2+deb10u1_armhf.deb ... Unpacking python2.7 (2.7.16-2+deb10u1) ... Selecting previously unselected package libpython2-stdlib:armhf. Preparing to unpack .../17-libpython2-stdlib_2.7.16-1_armhf.deb ... Unpacking libpython2-stdlib:armhf (2.7.16-1) ... Selecting previously unselected package libpython-stdlib:armhf. Preparing to unpack .../18-libpython-stdlib_2.7.16-1_armhf.deb ... Unpacking libpython-stdlib:armhf (2.7.16-1) ... Setting up libpython2.7-minimal:armhf (2.7.16-2+deb10u1) ... Setting up python2.7-minimal (2.7.16-2+deb10u1) ... Setting up python2-minimal (2.7.16-1) ... Selecting previously unselected package python2. (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 ... 20397 files and directories currently installed.) Preparing to unpack .../python2_2.7.16-1_armhf.deb ... Unpacking python2 (2.7.16-1) ... Setting up python-minimal (2.7.16-1) ... Selecting previously unselected package python. (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 ... 20430 files and directories currently installed.) Preparing to unpack .../000-python_2.7.16-1_armhf.deb ... Unpacking python (2.7.16-1) ... Selecting previously unselected package poppler-data. Preparing to unpack .../001-poppler-data_0.4.9-2_all.deb ... Unpacking poppler-data (0.4.9-2) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../002-sensible-utils_0.0.12_all.deb ... Unpacking sensible-utils (0.0.12) ... Selecting previously unselected package ucf. Preparing to unpack .../003-ucf_3.0038+nmu1_all.deb ... Moving old data out of the way Unpacking ucf (3.0038+nmu1) ... Selecting previously unselected package tex-common. Preparing to unpack .../004-tex-common_6.11_all.deb ... Unpacking tex-common (6.11) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../005-libmagic-mgc_1%3a5.35-4+deb10u1_armhf.deb ... Unpacking libmagic-mgc (1:5.35-4+deb10u1) ... Selecting previously unselected package libmagic1:armhf. Preparing to unpack .../006-libmagic1_1%3a5.35-4+deb10u1_armhf.deb ... Unpacking libmagic1:armhf (1:5.35-4+deb10u1) ... Selecting previously unselected package file. Preparing to unpack .../007-file_1%3a5.35-4+deb10u1_armhf.deb ... Unpacking file (1:5.35-4+deb10u1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../008-gettext-base_0.19.8.1-9_armhf.deb ... Unpacking gettext-base (0.19.8.1-9) ... Selecting previously unselected package libsigsegv2:armhf. Preparing to unpack .../009-libsigsegv2_2.12-2_armhf.deb ... Unpacking libsigsegv2:armhf (2.12-2) ... Selecting previously unselected package m4. Preparing to unpack .../010-m4_1.4.18-2_armhf.deb ... Unpacking m4 (1.4.18-2) ... Selecting previously unselected package autoconf. Preparing to unpack .../011-autoconf_2.69-11_all.deb ... Unpacking autoconf (2.69-11) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../012-autotools-dev_20180224.1_all.deb ... Unpacking autotools-dev (20180224.1) ... Selecting previously unselected package automake. Preparing to unpack .../013-automake_1%3a1.16.1-4_all.deb ... Unpacking automake (1:1.16.1-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../014-autopoint_0.19.8.1-9_all.deb ... Unpacking autopoint (0.19.8.1-9) ... Selecting previously unselected package chrpath. Preparing to unpack .../015-chrpath_0.16-2+b1_armhf.deb ... Unpacking chrpath (0.16-2+b1) ... Selecting previously unselected package libpaper1:armhf. Preparing to unpack .../016-libpaper1_1.1.28_armhf.deb ... Unpacking libpaper1:armhf (1.1.28) ... Selecting previously unselected package libpaper-utils. Preparing to unpack .../017-libpaper-utils_1.1.28_armhf.deb ... Unpacking libpaper-utils (1.1.28) ... Selecting previously unselected package libkpathsea6:armhf. Preparing to unpack .../018-libkpathsea6_2018.20181218.49446-1_armhf.deb ... Unpacking libkpathsea6:armhf (2018.20181218.49446-1) ... Selecting previously unselected package libptexenc1:armhf. Preparing to unpack .../019-libptexenc1_2018.20181218.49446-1_armhf.deb ... Unpacking libptexenc1:armhf (2018.20181218.49446-1) ... Selecting previously unselected package libsynctex2:armhf. Preparing to unpack .../020-libsynctex2_2018.20181218.49446-1_armhf.deb ... Unpacking libsynctex2:armhf (2018.20181218.49446-1) ... Selecting previously unselected package libtexlua52:armhf. Preparing to unpack .../021-libtexlua52_2018.20181218.49446-1_armhf.deb ... Unpacking libtexlua52:armhf (2018.20181218.49446-1) ... Selecting previously unselected package libtexlua53:armhf. Preparing to unpack .../022-libtexlua53_2018.20181218.49446-1_armhf.deb ... Unpacking libtexlua53:armhf (2018.20181218.49446-1) ... Selecting previously unselected package libtexluajit2:armhf. Preparing to unpack .../023-libtexluajit2_2018.20181218.49446-1_armhf.deb ... Unpacking libtexluajit2:armhf (2018.20181218.49446-1) ... Selecting previously unselected package t1utils. Preparing to unpack .../024-t1utils_1.41-3_armhf.deb ... Unpacking t1utils (1.41-3) ... Selecting previously unselected package libbrotli1:armhf. Preparing to unpack .../025-libbrotli1_1.0.7-2_armhf.deb ... Unpacking libbrotli1:armhf (1.0.7-2) ... Selecting previously unselected package libpng16-16:armhf. Preparing to unpack .../026-libpng16-16_1.6.36-6_armhf.deb ... Unpacking libpng16-16:armhf (1.6.36-6) ... Selecting previously unselected package libfreetype6:armhf. Preparing to unpack .../027-libfreetype6_2.9.1-3+deb10u1_armhf.deb ... Unpacking libfreetype6:armhf (2.9.1-3+deb10u1) ... Selecting previously unselected package fonts-dejavu-core. Preparing to unpack .../028-fonts-dejavu-core_2.37-1_all.deb ... Unpacking fonts-dejavu-core (2.37-1) ... Selecting previously unselected package fontconfig-config. Preparing to unpack .../029-fontconfig-config_2.13.1-2_all.deb ... Unpacking fontconfig-config (2.13.1-2) ... Selecting previously unselected package libfontconfig1:armhf. Preparing to unpack .../030-libfontconfig1_2.13.1-2_armhf.deb ... Unpacking libfontconfig1:armhf (2.13.1-2) ... Selecting previously unselected package libpixman-1-0:armhf. Preparing to unpack .../031-libpixman-1-0_0.36.0-1_armhf.deb ... Unpacking libpixman-1-0:armhf (0.36.0-1) ... Selecting previously unselected package libxau6:armhf. Preparing to unpack .../032-libxau6_1%3a1.0.8-1+b2_armhf.deb ... Unpacking libxau6:armhf (1:1.0.8-1+b2) ... Selecting previously unselected package libxdmcp6:armhf. Preparing to unpack .../033-libxdmcp6_1%3a1.1.2-3_armhf.deb ... Unpacking libxdmcp6:armhf (1:1.1.2-3) ... Selecting previously unselected package libxcb1:armhf. Preparing to unpack .../034-libxcb1_1.13.1-2_armhf.deb ... Unpacking libxcb1:armhf (1.13.1-2) ... Selecting previously unselected package libx11-data. Preparing to unpack .../035-libx11-data_2%3a1.6.7-1_all.deb ... Unpacking libx11-data (2:1.6.7-1) ... Selecting previously unselected package libx11-6:armhf. Preparing to unpack .../036-libx11-6_2%3a1.6.7-1_armhf.deb ... Unpacking libx11-6:armhf (2:1.6.7-1) ... Selecting previously unselected package libxcb-render0:armhf. Preparing to unpack .../037-libxcb-render0_1.13.1-2_armhf.deb ... Unpacking libxcb-render0:armhf (1.13.1-2) ... Selecting previously unselected package libxcb-shm0:armhf. Preparing to unpack .../038-libxcb-shm0_1.13.1-2_armhf.deb ... Unpacking libxcb-shm0:armhf (1.13.1-2) ... Selecting previously unselected package libxext6:armhf. Preparing to unpack .../039-libxext6_2%3a1.3.3-1+b2_armhf.deb ... Unpacking libxext6:armhf (2:1.3.3-1+b2) ... Selecting previously unselected package libxrender1:armhf. Preparing to unpack .../040-libxrender1_1%3a0.9.10-1_armhf.deb ... Unpacking libxrender1:armhf (1:0.9.10-1) ... Selecting previously unselected package libcairo2:armhf. Preparing to unpack .../041-libcairo2_1.16.0-4_armhf.deb ... Unpacking libcairo2:armhf (1.16.0-4) ... Selecting previously unselected package libgraphite2-3:armhf. Preparing to unpack .../042-libgraphite2-3_1.3.13-7_armhf.deb ... Unpacking libgraphite2-3:armhf (1.3.13-7) ... Selecting previously unselected package libgs9-common. Preparing to unpack .../043-libgs9-common_9.27~dfsg-2+deb10u3_all.deb ... Unpacking libgs9-common (9.27~dfsg-2+deb10u3) ... Selecting previously unselected package libavahi-common-data:armhf. Preparing to unpack .../044-libavahi-common-data_0.7-4+b1_armhf.deb ... Unpacking libavahi-common-data:armhf (0.7-4+b1) ... Selecting previously unselected package libavahi-common3:armhf. Preparing to unpack .../045-libavahi-common3_0.7-4+b1_armhf.deb ... Unpacking libavahi-common3:armhf (0.7-4+b1) ... Selecting previously unselected package libdbus-1-3:armhf. Preparing to unpack .../046-libdbus-1-3_1.12.16-1_armhf.deb ... Unpacking libdbus-1-3:armhf (1.12.16-1) ... Selecting previously unselected package libavahi-client3:armhf. Preparing to unpack .../047-libavahi-client3_0.7-4+b1_armhf.deb ... Unpacking libavahi-client3:armhf (0.7-4+b1) ... Selecting previously unselected package libkeyutils1:armhf. Preparing to unpack .../048-libkeyutils1_1.6-6_armhf.deb ... Unpacking libkeyutils1:armhf (1.6-6) ... Selecting previously unselected package libkrb5support0:armhf. Preparing to unpack .../049-libkrb5support0_1.17-3_armhf.deb ... Unpacking libkrb5support0:armhf (1.17-3) ... Selecting previously unselected package libk5crypto3:armhf. Preparing to unpack .../050-libk5crypto3_1.17-3_armhf.deb ... Unpacking libk5crypto3:armhf (1.17-3) ... Selecting previously unselected package libkrb5-3:armhf. Preparing to unpack .../051-libkrb5-3_1.17-3_armhf.deb ... Unpacking libkrb5-3:armhf (1.17-3) ... Selecting previously unselected package libgssapi-krb5-2:armhf. Preparing to unpack .../052-libgssapi-krb5-2_1.17-3_armhf.deb ... Unpacking libgssapi-krb5-2:armhf (1.17-3) ... Selecting previously unselected package libcups2:armhf. Preparing to unpack .../053-libcups2_2.2.10-6+deb10u3_armhf.deb ... Unpacking libcups2:armhf (2.2.10-6+deb10u3) ... Selecting previously unselected package libcupsimage2:armhf. Preparing to unpack .../054-libcupsimage2_2.2.10-6+deb10u3_armhf.deb ... Unpacking libcupsimage2:armhf (2.2.10-6+deb10u3) ... Selecting previously unselected package libidn11:armhf. Preparing to unpack .../055-libidn11_1.33-2.2_armhf.deb ... Unpacking libidn11:armhf (1.33-2.2) ... Selecting previously unselected package libijs-0.35:armhf. Preparing to unpack .../056-libijs-0.35_0.35-14_armhf.deb ... Unpacking libijs-0.35:armhf (0.35-14) ... Selecting previously unselected package libjbig2dec0:armhf. Preparing to unpack .../057-libjbig2dec0_0.16-1_armhf.deb ... Unpacking libjbig2dec0:armhf (0.16-1) ... Selecting previously unselected package libjpeg62-turbo:armhf. Preparing to unpack .../058-libjpeg62-turbo_1%3a1.5.2-2+b1_armhf.deb ... Unpacking libjpeg62-turbo:armhf (1:1.5.2-2+b1) ... Selecting previously unselected package liblcms2-2:armhf. Preparing to unpack .../059-liblcms2-2_2.9-3_armhf.deb ... Unpacking liblcms2-2:armhf (2.9-3) ... Selecting previously unselected package libopenjp2-7:armhf. Preparing to unpack .../060-libopenjp2-7_2.3.0-2+deb10u1_armhf.deb ... Unpacking libopenjp2-7:armhf (2.3.0-2+deb10u1) ... Selecting previously unselected package libjbig0:armhf. Preparing to unpack .../061-libjbig0_2.1-3.1+b2_armhf.deb ... Unpacking libjbig0:armhf (2.1-3.1+b2) ... Selecting previously unselected package libwebp6:armhf. Preparing to unpack .../062-libwebp6_0.6.1-2_armhf.deb ... Unpacking libwebp6:armhf (0.6.1-2) ... Selecting previously unselected package libtiff5:armhf. Preparing to unpack .../063-libtiff5_4.1.0+git191117-2~deb10u1_armhf.deb ... Unpacking libtiff5:armhf (4.1.0+git191117-2~deb10u1) ... Selecting previously unselected package libgs9:armhf. Preparing to unpack .../064-libgs9_9.27~dfsg-2+deb10u3_armhf.deb ... Unpacking libgs9:armhf (9.27~dfsg-2+deb10u3) ... Selecting previously unselected package libglib2.0-0:armhf. Preparing to unpack .../065-libglib2.0-0_2.58.3-2+deb10u2_armhf.deb ... Unpacking libglib2.0-0:armhf (2.58.3-2+deb10u2) ... Selecting previously unselected package libharfbuzz0b:armhf. Preparing to unpack .../066-libharfbuzz0b_2.3.1-1_armhf.deb ... Unpacking libharfbuzz0b:armhf (2.3.1-1) ... Selecting previously unselected package libicu63:armhf. Preparing to unpack .../067-libicu63_63.1-6+deb10u1_armhf.deb ... Unpacking libicu63:armhf (63.1-6+deb10u1) ... Selecting previously unselected package libharfbuzz-icu0:armhf. Preparing to unpack .../068-libharfbuzz-icu0_2.3.1-1_armhf.deb ... Unpacking libharfbuzz-icu0:armhf (2.3.1-1) ... Selecting previously unselected package lsb-base. Preparing to unpack .../069-lsb-base_10.2019051400_all.deb ... Unpacking lsb-base (10.2019051400) ... Selecting previously unselected package x11-common. Preparing to unpack .../070-x11-common_1%3a7.7+19_all.deb ... Unpacking x11-common (1:7.7+19) ... Selecting previously unselected package libice6:armhf. Preparing to unpack .../071-libice6_2%3a1.0.9-2_armhf.deb ... Unpacking libice6:armhf (2:1.0.9-2) ... Selecting previously unselected package libpotrace0:armhf. Preparing to unpack .../072-libpotrace0_1.15-1_armhf.deb ... Unpacking libpotrace0:armhf (1.15-1) ... Selecting previously unselected package libsm6:armhf. Preparing to unpack .../073-libsm6_2%3a1.2.3-1_armhf.deb ... Unpacking libsm6:armhf (2:1.2.3-1) ... Selecting previously unselected package libteckit0:armhf. Preparing to unpack .../074-libteckit0_2.5.8+ds2-5_armhf.deb ... Unpacking libteckit0:armhf (2.5.8+ds2-5) ... Selecting previously unselected package libwoff1:armhf. Preparing to unpack .../075-libwoff1_1.0.2-1_armhf.deb ... Unpacking libwoff1:armhf (1.0.2-1) ... Selecting previously unselected package libxt6:armhf. Preparing to unpack .../076-libxt6_1%3a1.1.5-1+b3_armhf.deb ... Unpacking libxt6:armhf (1:1.1.5-1+b3) ... Selecting previously unselected package libxmu6:armhf. Preparing to unpack .../077-libxmu6_2%3a1.1.2-2+b3_armhf.deb ... Unpacking libxmu6:armhf (2:1.1.2-2+b3) ... Selecting previously unselected package libxpm4:armhf. Preparing to unpack .../078-libxpm4_1%3a3.5.12-1_armhf.deb ... Unpacking libxpm4:armhf (1:3.5.12-1) ... Selecting previously unselected package libxaw7:armhf. Preparing to unpack .../079-libxaw7_2%3a1.0.13-1+b2_armhf.deb ... Unpacking libxaw7:armhf (2:1.0.13-1+b2) ... Selecting previously unselected package libxi6:armhf. Preparing to unpack .../080-libxi6_2%3a1.7.9-1_armhf.deb ... Unpacking libxi6:armhf (2:1.7.9-1) ... Selecting previously unselected package libxxhash0:armhf. Preparing to unpack .../081-libxxhash0_0.6.5-2_armhf.deb ... Unpacking libxxhash0:armhf (0.6.5-2) ... Selecting previously unselected package libzzip-0-13:armhf. Preparing to unpack .../082-libzzip-0-13_0.13.62-3.2_armhf.deb ... Unpacking libzzip-0-13:armhf (0.13.62-3.2) ... Selecting previously unselected package texlive-binaries. Preparing to unpack .../083-texlive-binaries_2018.20181218.49446-1_armhf.deb ... Unpacking texlive-binaries (2018.20181218.49446-1) ... Selecting previously unselected package xdg-utils. Preparing to unpack .../084-xdg-utils_1.1.3-1+deb10u1_all.deb ... Unpacking xdg-utils (1.1.3-1+deb10u1) ... Selecting previously unselected package texlive-base. Preparing to unpack .../085-texlive-base_2018.20190227-2_all.deb ... Unpacking texlive-base (2018.20190227-2) ... Selecting previously unselected package fonts-lmodern. Preparing to unpack .../086-fonts-lmodern_2.004.5-6_all.deb ... Unpacking fonts-lmodern (2.004.5-6) ... Selecting previously unselected package texlive-latex-base. Preparing to unpack .../087-texlive-latex-base_2018.20190227-2_all.deb ... Unpacking texlive-latex-base (2018.20190227-2) ... Selecting previously unselected package texlive-latex-recommended. Preparing to unpack .../088-texlive-latex-recommended_2018.20190227-2_all.deb ... Unpacking texlive-latex-recommended (2018.20190227-2) ... Selecting previously unselected package cm-super-minimal. Preparing to unpack .../089-cm-super-minimal_0.3.4-14_all.deb ... Unpacking cm-super-minimal (0.3.4-14) ... Selecting previously unselected package libtool. Preparing to unpack .../090-libtool_2.4.6-9_all.deb ... Unpacking libtool (2.4.6-9) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../091-dh-autoreconf_19_all.deb ... Unpacking dh-autoreconf (19) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../092-libarchive-zip-perl_1.64-1_all.deb ... Unpacking libarchive-zip-perl (1.64-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../093-libfile-stripnondeterminism-perl_1.1.2-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.1.2-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../094-dh-strip-nondeterminism_1.1.2-1_all.deb ... Unpacking dh-strip-nondeterminism (1.1.2-1) ... Selecting previously unselected package libelf1:armhf. Preparing to unpack .../095-libelf1_0.176-1.1_armhf.deb ... Unpacking libelf1:armhf (0.176-1.1) ... Selecting previously unselected package dwz. Preparing to unpack .../096-dwz_0.12-3_armhf.deb ... Unpacking dwz (0.12-3) ... Selecting previously unselected package libxml2:armhf. Preparing to unpack .../097-libxml2_2.9.4+dfsg1-7+b3_armhf.deb ... Unpacking libxml2:armhf (2.9.4+dfsg1-7+b3) ... Selecting previously unselected package libcroco3:armhf. Preparing to unpack .../098-libcroco3_0.6.12-3_armhf.deb ... Unpacking libcroco3:armhf (0.6.12-3) ... Selecting previously unselected package libncurses6:armhf. Preparing to unpack .../099-libncurses6_6.1+20181013-2+deb10u2_armhf.deb ... Unpacking libncurses6:armhf (6.1+20181013-2+deb10u2) ... Selecting previously unselected package gettext. Preparing to unpack .../100-gettext_0.19.8.1-9_armhf.deb ... Unpacking gettext (0.19.8.1-9) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../101-intltool-debian_0.35.0+20060710.5_all.deb ... Unpacking intltool-debian (0.35.0+20060710.5) ... Selecting previously unselected package po-debconf. Preparing to unpack .../102-po-debconf_1.0.21_all.deb ... Unpacking po-debconf (1.0.21) ... Selecting previously unselected package debhelper. Preparing to unpack .../103-debhelper_12.1.1_all.deb ... Unpacking debhelper (12.1.1) ... Selecting previously unselected package libedit2:armhf. Preparing to unpack .../104-libedit2_3.1-20181209-1_armhf.deb ... Unpacking libedit2:armhf (3.1-20181209-1) ... Selecting previously unselected package libllvm6.0:armhf. Preparing to unpack .../105-libllvm6.0_1%3a6.0.1-10_armhf.deb ... Unpacking libllvm6.0:armhf (1:6.0.1-10) ... Selecting previously unselected package libclang1-6.0:armhf. Preparing to unpack .../106-libclang1-6.0_1%3a6.0.1-10_armhf.deb ... Unpacking libclang1-6.0:armhf (1:6.0.1-10) ... Selecting previously unselected package doxygen. Preparing to unpack .../107-doxygen_1.8.13-10_armhf.deb ... Unpacking doxygen (1.8.13-10) ... Selecting previously unselected package libthai-data. Preparing to unpack .../108-libthai-data_0.1.28-2_all.deb ... Unpacking libthai-data (0.1.28-2) ... Selecting previously unselected package libdatrie1:armhf. Preparing to unpack .../109-libdatrie1_0.2.12-2_armhf.deb ... Unpacking libdatrie1:armhf (0.2.12-2) ... Selecting previously unselected package libthai0:armhf. Preparing to unpack .../110-libthai0_0.1.28-2_armhf.deb ... Unpacking libthai0:armhf (0.1.28-2) ... Selecting previously unselected package libsombok3:armhf. Preparing to unpack .../111-libsombok3_2.4.0-2_armhf.deb ... Unpacking libsombok3:armhf (2.4.0-2) ... Selecting previously unselected package libmime-charset-perl. Preparing to unpack .../112-libmime-charset-perl_1.012.2-1_all.deb ... Unpacking libmime-charset-perl (1.012.2-1) ... Selecting previously unselected package libunicode-linebreak-perl. Preparing to unpack .../113-libunicode-linebreak-perl_0.0.20190101-1_armhf.deb ... Unpacking libunicode-linebreak-perl (0.0.20190101-1) ... Selecting previously unselected package texlive-extra-utils. Preparing to unpack .../114-texlive-extra-utils_2018.20190227-2_all.deb ... Unpacking texlive-extra-utils (2018.20190227-2) ... Selecting previously unselected package preview-latex-style. Preparing to unpack .../115-preview-latex-style_11.91-2_all.deb ... Unpacking preview-latex-style (11.91-2) ... Selecting previously unselected package texlive-pictures. Preparing to unpack .../116-texlive-pictures_2018.20190227-2_all.deb ... Unpacking texlive-pictures (2018.20190227-2) ... Selecting previously unselected package texlive-latex-extra. Preparing to unpack .../117-texlive-latex-extra_2018.20190227-2_all.deb ... Unpacking texlive-latex-extra (2018.20190227-2) ... Selecting previously unselected package texlive-font-utils. Preparing to unpack .../118-texlive-font-utils_2018.20190227-2_all.deb ... Unpacking texlive-font-utils (2018.20190227-2) ... Selecting previously unselected package ghostscript. Preparing to unpack .../119-ghostscript_9.27~dfsg-2+deb10u3_armhf.deb ... Unpacking ghostscript (9.27~dfsg-2+deb10u3) ... Selecting previously unselected package texlive-fonts-recommended. Preparing to unpack .../120-texlive-fonts-recommended_2018.20190227-2_all.deb ... Unpacking texlive-fonts-recommended (2018.20190227-2) ... Selecting previously unselected package doxygen-latex. Preparing to unpack .../121-doxygen-latex_1.8.13-10_all.deb ... Unpacking doxygen-latex (1.8.13-10) ... Selecting previously unselected package fontconfig. Preparing to unpack .../122-fontconfig_2.13.1-2_armhf.deb ... Unpacking fontconfig (2.13.1-2) ... Selecting previously unselected package fonts-gfs-baskerville. Preparing to unpack .../123-fonts-gfs-baskerville_1.1-5_all.deb ... Unpacking fonts-gfs-baskerville (1.1-5) ... Selecting previously unselected package fonts-gfs-porson. Preparing to unpack .../124-fonts-gfs-porson_1.1-6_all.deb ... Unpacking fonts-gfs-porson (1.1-6) ... Selecting previously unselected package libcdt5. Preparing to unpack .../125-libcdt5_2.40.1-6_armhf.deb ... Unpacking libcdt5 (2.40.1-6) ... Selecting previously unselected package libcgraph6. Preparing to unpack .../126-libcgraph6_2.40.1-6_armhf.deb ... Unpacking libcgraph6 (2.40.1-6) ... Selecting previously unselected package libgd3:armhf. Preparing to unpack .../127-libgd3_2.2.5-5.2_armhf.deb ... Unpacking libgd3:armhf (2.2.5-5.2) ... Selecting previously unselected package libgts-0.7-5:armhf. Preparing to unpack .../128-libgts-0.7-5_0.7.6+darcs121130-4_armhf.deb ... Unpacking libgts-0.7-5:armhf (0.7.6+darcs121130-4) ... Selecting previously unselected package libltdl7:armhf. Preparing to unpack .../129-libltdl7_2.4.6-9_armhf.deb ... Unpacking libltdl7:armhf (2.4.6-9) ... Selecting previously unselected package libfribidi0:armhf. Preparing to unpack .../130-libfribidi0_1.0.5-3.1+deb10u1_armhf.deb ... Unpacking libfribidi0:armhf (1.0.5-3.1+deb10u1) ... Selecting previously unselected package libpango-1.0-0:armhf. Preparing to unpack .../131-libpango-1.0-0_1.42.4-8~deb10u1_armhf.deb ... Unpacking libpango-1.0-0:armhf (1.42.4-8~deb10u1) ... Selecting previously unselected package libpangoft2-1.0-0:armhf. Preparing to unpack .../132-libpangoft2-1.0-0_1.42.4-8~deb10u1_armhf.deb ... Unpacking libpangoft2-1.0-0:armhf (1.42.4-8~deb10u1) ... Selecting previously unselected package libpangocairo-1.0-0:armhf. Preparing to unpack .../133-libpangocairo-1.0-0_1.42.4-8~deb10u1_armhf.deb ... Unpacking libpangocairo-1.0-0:armhf (1.42.4-8~deb10u1) ... Selecting previously unselected package libpathplan4. Preparing to unpack .../134-libpathplan4_2.40.1-6_armhf.deb ... Unpacking libpathplan4 (2.40.1-6) ... Selecting previously unselected package libxdot4. Preparing to unpack .../135-libxdot4_2.40.1-6_armhf.deb ... Unpacking libxdot4 (2.40.1-6) ... Selecting previously unselected package libgvc6. Preparing to unpack .../136-libgvc6_2.40.1-6_armhf.deb ... Unpacking libgvc6 (2.40.1-6) ... Selecting previously unselected package libgvpr2. Preparing to unpack .../137-libgvpr2_2.40.1-6_armhf.deb ... Unpacking libgvpr2 (2.40.1-6) ... Selecting previously unselected package liblab-gamut1. Preparing to unpack .../138-liblab-gamut1_2.40.1-6_armhf.deb ... Unpacking liblab-gamut1 (2.40.1-6) ... Selecting previously unselected package graphviz. Preparing to unpack .../139-graphviz_2.40.1-6_armhf.deb ... Unpacking graphviz (2.40.1-6) ... Selecting previously unselected package libarchive13:armhf. Preparing to unpack .../140-libarchive13_3.3.3-4+deb10u1_armhf.deb ... Unpacking libarchive13:armhf (3.3.3-4+deb10u1) ... Selecting previously unselected package libbsd-dev:armhf. Preparing to unpack .../141-libbsd-dev_0.9.1-2_armhf.deb ... Unpacking libbsd-dev:armhf (0.9.1-2) ... Selecting previously unselected package libncurses-dev:armhf. Preparing to unpack .../142-libncurses-dev_6.1+20181013-2+deb10u2_armhf.deb ... Unpacking libncurses-dev:armhf (6.1+20181013-2+deb10u2) ... Selecting previously unselected package libedit-dev:armhf. Preparing to unpack .../143-libedit-dev_3.1-20181209-1_armhf.deb ... Unpacking libedit-dev:armhf (3.1-20181209-1) ... Selecting previously unselected package libgmpxx4ldbl:armhf. Preparing to unpack .../144-libgmpxx4ldbl_2%3a6.1.2+dfsg-4_armhf.deb ... Unpacking libgmpxx4ldbl:armhf (2:6.1.2+dfsg-4) ... Selecting previously unselected package libgmp-dev:armhf. Preparing to unpack .../145-libgmp-dev_2%3a6.1.2+dfsg-4_armhf.deb ... Unpacking libgmp-dev:armhf (2:6.1.2+dfsg-4) ... Selecting previously unselected package libjs-jquery. Preparing to unpack .../146-libjs-jquery_3.3.1~dfsg-3_all.deb ... Unpacking libjs-jquery (3.3.1~dfsg-3) ... Selecting previously unselected package libnspr4:armhf. Preparing to unpack .../147-libnspr4_2%3a4.20-1_armhf.deb ... Unpacking libnspr4:armhf (2:4.20-1) ... Selecting previously unselected package libnss3:armhf. Preparing to unpack .../148-libnss3_2%3a3.42.1-1+deb10u2_armhf.deb ... Unpacking libnss3:armhf (2:3.42.1-1+deb10u2) ... Selecting previously unselected package libossp-uuid16:armhf. Preparing to unpack .../149-libossp-uuid16_1.6.2-1.5+b7_armhf.deb ... Unpacking libossp-uuid16:armhf (1.6.2-1.5+b7) ... Selecting previously unselected package libpoppler82:armhf. Preparing to unpack .../150-libpoppler82_0.71.0-5_armhf.deb ... Unpacking libpoppler82:armhf (0.71.0-5) ... Selecting previously unselected package libreadline-dev:armhf. Preparing to unpack .../151-libreadline-dev_7.0-5_armhf.deb ... Unpacking libreadline-dev:armhf (7.0-5) ... Selecting previously unselected package libxft2:armhf. Preparing to unpack .../152-libxft2_2.3.2-2_armhf.deb ... Unpacking libxft2:armhf (2.3.2-2) ... Selecting previously unselected package libxinerama1:armhf. Preparing to unpack .../153-libxinerama1_2%3a1.1.4-2_armhf.deb ... Unpacking libxinerama1:armhf (2:1.1.4-2) ... Selecting previously unselected package libyaml-0-2:armhf. Preparing to unpack .../154-libyaml-0-2_0.2.1-1_armhf.deb ... Unpacking libyaml-0-2:armhf (0.2.1-1) ... Selecting previously unselected package poppler-utils. Preparing to unpack .../155-poppler-utils_0.71.0-5_armhf.deb ... Unpacking poppler-utils (0.71.0-5) ... Selecting previously unselected package swi-prolog-nox. Preparing to unpack .../156-swi-prolog-nox_8.0.2+dfsg-3+deb10u1_armhf.deb ... Unpacking swi-prolog-nox (8.0.2+dfsg-3+deb10u1) ... Selecting previously unselected package swi-prolog-x. Preparing to unpack .../157-swi-prolog-x_8.0.2+dfsg-3+deb10u1_armhf.deb ... Unpacking swi-prolog-x (8.0.2+dfsg-3+deb10u1) ... Selecting previously unselected package swi-prolog. Preparing to unpack .../158-swi-prolog_8.0.2+dfsg-3+deb10u1_armhf.deb ... Unpacking swi-prolog (8.0.2+dfsg-3+deb10u1) ... Selecting previously unselected package texlive-lang-greek. Preparing to unpack .../159-texlive-lang-greek_2018.20190227-2_all.deb ... Unpacking texlive-lang-greek (2018.20190227-2) ... Selecting previously unselected package texlive-science. Preparing to unpack .../160-texlive-science_2018.20190227-2_all.deb ... Unpacking texlive-science (2018.20190227-2) ... Setting up libgs9-common (9.27~dfsg-2+deb10u3) ... Setting up libexpat1:armhf (2.2.6-2+deb10u1) ... Setting up libpipeline1:armhf (1.5.1-2) ... Setting up libxdot4 (2.40.1-6) ... Setting up libgraphite2-3:armhf (1.3.13-7) ... Setting up liblcms2-2:armhf (2.9-3) ... Setting up libpixman-1-0:armhf (0.36.0-1) ... Setting up lsb-base (10.2019051400) ... Setting up libxau6:armhf (1:1.0.8-1+b2) ... Setting up libkeyutils1:armhf (1.6-6) ... Setting up mime-support (3.62) ... Setting up libtexlua52:armhf (2018.20181218.49446-1) ... Setting up fonts-gfs-porson (1.1-6) ... Setting up libdatrie1:armhf (0.2.12-2) ... Setting up libmagic-mgc (1:5.35-4+deb10u1) ... Setting up libtexlua53:armhf (2018.20181218.49446-1) ... Setting up libarchive-zip-perl (1.64-1) ... Setting up libyaml-0-2:armhf (0.2.1-1) ... Setting up libglib2.0-0:armhf (2.58.3-2+deb10u2) ... No schema files found: doing nothing. Setting up libssl1.1:armhf (1.1.1d-0+deb10u3) ... Setting up libijs-0.35:armhf (0.35-14) ... Setting up libtexluajit2:armhf (2018.20181218.49446-1) ... Setting up libbrotli1:armhf (1.0.7-2) ... Setting up liblab-gamut1 (2.40.1-6) ... Setting up x11-common (1:7.7+19) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults invoke-rc.d: could not determine current runlevel Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix. Setting up libmagic1:armhf (1:5.35-4+deb10u1) ... Setting up gettext-base (0.19.8.1-9) ... Setting up libzzip-0-13:armhf (0.13.62-3.2) ... Setting up file (1:5.35-4+deb10u1) ... Setting up libossp-uuid16:armhf (1.6.2-1.5+b7) ... Setting up libjbig0:armhf (2.1-3.1+b2) ... Setting up libicu63:armhf (63.1-6+deb10u1) ... Setting up poppler-data (0.4.9-2) ... Setting up libkrb5support0:armhf (1.17-3) ... Setting up libgts-0.7-5:armhf (0.7.6+darcs121130-4) ... Setting up autotools-dev (20180224.1) ... Setting up libgmpxx4ldbl:armhf (2:6.1.2+dfsg-4) ... Setting up libjpeg62-turbo:armhf (1:1.5.2-2+b1) ... Setting up libx11-data (2:1.6.7-1) ... Setting up libnspr4:armhf (2:4.20-1) ... Setting up libjbig2dec0:armhf (0.16-1) ... Setting up libidn11:armhf (1.33-2.2) ... Setting up libteckit0:armhf (2.5.8+ds2-5) ... Setting up libpathplan4 (2.40.1-6) ... Setting up libavahi-common-data:armhf (0.7-4+b1) ... Setting up libncurses6:armhf (6.1+20181013-2+deb10u2) ... Setting up libdbus-1-3:armhf (1.12.16-1) ... Setting up libsigsegv2:armhf (2.12-2) ... Setting up libfribidi0:armhf (1.0.5-3.1+deb10u1) ... Setting up t1utils (1.41-3) ... Setting up libpng16-16:armhf (1.6.36-6) ... Setting up autopoint (0.19.8.1-9) ... Setting up libwebp6:armhf (0.6.1-2) ... Setting up fonts-dejavu-core (2.37-1) ... Setting up libk5crypto3:armhf (1.17-3) ... Setting up libltdl7:armhf (2.4.6-9) ... Setting up libkpathsea6:armhf (2018.20181218.49446-1) ... Setting up fonts-gfs-baskerville (1.1-5) ... Setting up sensible-utils (0.0.12) ... Setting up libmime-charset-perl (1.012.2-1) ... Setting up libxxhash0:armhf (0.6.5-2) ... Setting up libuchardet0:armhf (0.0.6-3) ... Setting up fonts-lmodern (2.004.5-6) ... Setting up libopenjp2-7:armhf (2.3.0-2+deb10u1) ... Setting up libthai-data (0.1.28-2) ... Setting up libcdt5 (2.40.1-6) ... Setting up libkrb5-3:armhf (1.17-3) ... Setting up libcgraph6 (2.40.1-6) ... Setting up libtiff5:armhf (4.1.0+git191117-2~deb10u1) ... Setting up libjs-jquery (3.3.1~dfsg-3) ... Setting up libbsd0:armhf (0.9.1-2) ... Setting up libelf1:armhf (0.176-1.1) ... Setting up readline-common (7.0-5) ... Setting up libxml2:armhf (2.9.4+dfsg1-7+b3) ... Setting up xdg-utils (1.1.3-1+deb10u1) ... Setting up libbsd-dev:armhf (0.9.1-2) ... Setting up chrpath (0.16-2+b1) ... Setting up libsynctex2:armhf (2018.20181218.49446-1) ... Setting up libreadline7:armhf (7.0-5) ... Setting up libpotrace0:armhf (1.15-1) ... Setting up libfile-stripnondeterminism-perl (1.1.2-1) ... Setting up libice6:armhf (2:1.0.9-2) ... Setting up libxdmcp6:armhf (1:1.1.2-3) ... Setting up libncurses-dev:armhf (6.1+20181013-2+deb10u2) ... Setting up libxcb1:armhf (1.13.1-2) ... Setting up libgmp-dev:armhf (2:6.1.2+dfsg-4) ... Setting up libwoff1:armhf (1.0.2-1) ... Setting up libtool (2.4.6-9) ... Setting up libarchive13:armhf (3.3.3-4+deb10u1) ... Setting up libxcb-render0:armhf (1.13.1-2) ... Setting up libedit2:armhf (3.1-20181209-1) ... Setting up libavahi-common3:armhf (0.7-4+b1) ... Setting up m4 (1.4.18-2) ... Setting up libnss3:armhf (2:3.42.1-1+deb10u2) ... Setting up libxcb-shm0:armhf (1.13.1-2) ... Setting up libreadline-dev:armhf (7.0-5) ... Setting up libllvm6.0:armhf (1:6.0.1-10) ... Setting up libclang1-6.0:armhf (1:6.0.1-10) ... Setting up libpython2.7-stdlib:armhf (2.7.16-2+deb10u1) ... Setting up libthai0:armhf (0.1.28-2) ... Setting up doxygen (1.8.13-10) ... Setting up libptexenc1:armhf (2018.20181218.49446-1) ... Setting up libfreetype6:armhf (2.9.1-3+deb10u1) ... Setting up libedit-dev:armhf (3.1-20181209-1) ... Setting up bsdmainutils (11.1.2+b1) ... update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode Setting up libgssapi-krb5-2:armhf (1.17-3) ... Setting up libcroco3:armhf (0.6.12-3) ... Setting up ucf (3.0038+nmu1) ... Setting up autoconf (2.69-11) ... Setting up libgvpr2 (2.40.1-6) ... Setting up dwz (0.12-3) ... Setting up groff-base (1.22.4-3) ... Setting up swi-prolog-nox (8.0.2+dfsg-3+deb10u1) ... update-alternatives: using /usr/bin/swipl to provide /usr/bin/prolog (prolog) in auto mode Setting up libx11-6:armhf (2:1.6.7-1) ... Setting up libharfbuzz0b:armhf (2.3.1-1) ... Setting up libsm6:armhf (2:1.2.3-1) ... Setting up libavahi-client3:armhf (0.7-4+b1) ... Setting up automake (1:1.16.1-4) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libpaper1:armhf (1.1.28) ... Creating config file /etc/papersize with new version Setting up gettext (0.19.8.1-9) ... Setting up libharfbuzz-icu0:armhf (2.3.1-1) ... Setting up libxpm4:armhf (1:3.5.12-1) ... Setting up python2.7 (2.7.16-2+deb10u1) ... Setting up libxrender1:armhf (1:0.9.10-1) ... Setting up libpython2-stdlib:armhf (2.7.16-1) ... Setting up libsombok3:armhf (2.4.0-2) ... Setting up fontconfig-config (2.13.1-2) ... Setting up libxext6:armhf (2:1.3.3-1+b2) ... Setting up libpaper-utils (1.1.28) ... Setting up man-db (2.8.5-2) ... Not building database; man-db/auto-update is not 'true'. Setting up python2 (2.7.16-1) ... Setting up intltool-debian (0.35.0+20060710.5) ... Setting up tex-common (6.11) ... update-language: texlive-base not installed and configured, doing nothing! Setting up libpython-stdlib:armhf (2.7.16-1) ... Setting up libunicode-linebreak-perl (0.0.20190101-1) ... Setting up libxinerama1:armhf (2:1.1.4-2) ... Setting up libxt6:armhf (1:1.1.5-1+b3) ... Setting up libcups2:armhf (2.2.10-6+deb10u3) ... Setting up libfontconfig1:armhf (2.13.1-2) ... Setting up python (2.7.16-1) ... Setting up fontconfig (2.13.1-2) ... Regenerating fonts cache... done. Setting up libxft2:armhf (2.3.2-2) ... Setting up libxmu6:armhf (2:1.1.2-2+b3) ... Setting up libxi6:armhf (2:1.7.9-1) ... Setting up po-debconf (1.0.21) ... Setting up preview-latex-style (11.91-2) ... Setting up libpango-1.0-0:armhf (1.42.4-8~deb10u1) ... Setting up libpoppler82:armhf (0.71.0-5) ... Setting up libxaw7:armhf (2:1.0.13-1+b2) ... Setting up libcairo2:armhf (1.16.0-4) ... Setting up libcupsimage2:armhf (2.2.10-6+deb10u3) ... Setting up libgd3:armhf (2.2.5-5.2) ... Setting up poppler-utils (0.71.0-5) ... Setting up libpangoft2-1.0-0:armhf (1.42.4-8~deb10u1) ... Setting up libpangocairo-1.0-0:armhf (1.42.4-8~deb10u1) ... Setting up swi-prolog-x (8.0.2+dfsg-3+deb10u1) ... Setting up libgs9:armhf (9.27~dfsg-2+deb10u3) ... Setting up ghostscript (9.27~dfsg-2+deb10u3) ... Setting up libgvc6 (2.40.1-6) ... Setting up texlive-binaries (2018.20181218.49446-1) ... update-alternatives: using /usr/bin/xdvi-xaw to provide /usr/bin/xdvi.bin (xdvi.bin) in auto mode update-alternatives: using /usr/bin/bibtex.original to provide /usr/bin/bibtex (bibtex) in auto mode Setting up swi-prolog (8.0.2+dfsg-3+deb10u1) ... Setting up texlive-base (2018.20190227-2) ... tl-paper: setting paper size for dvips to a4: /var/lib/texmf/dvips/config/config-paper.ps tl-paper: setting paper size for dvipdfmx to a4: /var/lib/texmf/dvipdfmx/dvipdfmx-paper.cfg tl-paper: setting paper size for xdvi to a4: /var/lib/texmf/xdvi/XDvi-paper tl-paper: setting paper size for pdftex to a4: /var/lib/texmf/tex/generic/config/pdftexconfig.tex Setting up graphviz (2.40.1-6) ... Setting up texlive-lang-greek (2018.20190227-2) ... Setting up texlive-font-utils (2018.20190227-2) ... Setting up texlive-latex-base (2018.20190227-2) ... Setting up texlive-extra-utils (2018.20190227-2) ... Setting up texlive-latex-recommended (2018.20190227-2) ... Setting up texlive-pictures (2018.20190227-2) ... Setting up texlive-fonts-recommended (2018.20190227-2) ... Setting up cm-super-minimal (0.3.4-14) ... Setting up texlive-science (2018.20190227-2) ... Setting up texlive-latex-extra (2018.20190227-2) ... Setting up doxygen-latex (1.8.13-10) ... Setting up dh-autoreconf (19) ... Setting up debhelper (12.1.1) ... Setting up dh-strip-nondeterminism (1.1.2-1) ... Processing triggers for libc-bin (2.28-10) ... Processing triggers for tex-common (6.11) ... Running updmap-sys. This may take some time... done. Running mktexlsr /var/lib/texmf ... done. Building format(s) --all. This may take some time... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/ppl-1.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b dpkg-buildpackage: info: source package ppl dpkg-buildpackage: info: source version 1:1.2-7 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by James Clarke dpkg-source --before-build . dpkg-buildpackage: info: host architecture armhf debian/rules clean dh clean dh_clean debian/rules binary dh binary dh_update_autotools_config dh_autoreconf libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' configure.ac:152: installing './compile' configure.ac:43: installing './missing' demos/ppl_lcdd/Makefile.am: installing './depcomp' debian/rules override_dh_auto_configure make[1]: Entering directory '/build/ppl-1.2' dh_auto_configure -- --includedir="\${prefix}/include/arm-linux-gnueabihf" --disable-ppl_lpsol --disable-ppl_lcdd --enable-interfaces=c,cxx,swi_prolog ./configure --build=arm-linux-gnueabihf --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/arm-linux-gnueabihf --libexecdir=\${prefix}/lib/arm-linux-gnueabihf --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking --includedir=\${prefix}/include/arm-linux-gnueabihf --disable-ppl_lpsol --disable-ppl_lcdd --enable-interfaces=c,cxx,swi_prolog configure: WARNING: unrecognized options: --disable-maintainer-mode checking build system type... arm-unknown-linux-gnueabihf checking host system type... arm-unknown-linux-gnueabihf checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether UID '1111' is supported by ustar format... yes checking whether GID '1111' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking whether make supports the include directive... yes (GNU style) checking dependency style of gcc... none checking whether we are actually using the Intel C compiler... no checking whether we are actually using clang... no checking whether we are actually using llvm-gcc... no checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... none checking whether we are actually using the Intel C++ compiler... no checking whether we are actually using clang++... no checking whether we are actually using llvm-g++... no checking for grep that handles long lines and -e... /bin/grep checking for fgrep... /bin/grep -F checking for egrep... /bin/grep -E checking for a sed that does not truncate output... /bin/sed checking how to run the C++ preprocessor... g++ -E checking whether make sets $(MAKE)... (cached) yes checking whether to compile with debug info... yes checking whether to compile for profiling... no checking whether to compile for test coverage... no checking whether to enable checking of run-time assertions... no checking whether to enable even more run-time assertions... no checking whether to enable optimizations... standard checking for which architecture to optimize... default checking whether to use (a specific) floating point arithmetic... default checking whether to use precompiled headers... no checking the type of integral values to use as coefficients... GMP mpz checking for an ANSI C-conforming const... yes checking for inline... inline checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking whether byte ordering is bigendian... no checking for typeof syntax and keyword spelling... typeof checking size of char... 1 checking size of short... 2 checking size of int... 4 checking size of long... 4 checking size of long long... 8 checking size of size_t... 4 checking size of float... 4 checking size of double... 8 checking size of long double... 8 checking size of int*... 4 checking size of fp... 4 checking for perl... /usr/bin/perl checking for library containing sqrt... none required checking fenv.h usability... yes checking fenv.h presence... yes checking for fenv.h... yes checking ieeefp.h usability... no checking ieeefp.h presence... no checking for ieeefp.h... no checking if it is possible to control the FPU... no checking whether the plain char type is signed... no checking whether the C++ compiler provides proper long doubles... no checking the binary format of C++ floats... IEEE754 Single Precision checking the binary format of C++ doubles... IEEE754 Double Precision checking the binary format of C++ long doubles... IEEE754 Double Precision checking whether std::floor(long double) is buggy... no checking whether the C++ compiler supports zero-length arrays... yes checking whether the IEEE inexact flag is supported in C++... yes checking whether the C++ compiler supports __attribute__ ((weak))... yes checking for fenv.h... (cached) yes checking for ieeefp.h... (cached) no checking getopt.h usability... yes checking getopt.h presence... yes checking for getopt.h... yes checking signal.h usability... yes checking signal.h presence... yes checking for signal.h... yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking sys/resource.h usability... yes checking sys/resource.h presence... yes checking for sys/resource.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking whether ffs is declared... yes checking whether getenv is declared... yes checking whether strtof is declared... yes checking whether strtod is declared... yes checking whether strtold is declared... yes checking whether strtoll is declared... yes checking whether strtoull is declared... yes checking whether fma is declared... yes checking whether fmaf is declared... yes checking whether fmal is declared... yes checking whether rintf is declared... yes checking whether rintl is declared... yes checking for int_fast16_t... yes checking for int_fast32_t... yes checking for int_fast64_t... yes checking for uint_fast16_t... yes checking for uint_fast32_t... yes checking for uint_fast64_t... yes checking for uintptr_t... yes checking how to print strings... printf checking for a sed that does not truncate output... (cached) /bin/sed checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert arm-unknown-linux-gnueabihf file names to arm-unknown-linux-gnueabihf format... func_convert_file_noop checking how to convert arm-unknown-linux-gnueabihf file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking for shl_load... no checking for shl_load in -ldld... no checking for dlopen... no checking for dlopen in -ldl... yes checking whether a program can dlopen itself... yes checking whether a statically linked program can dlopen itself... no checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC -DPIC checking if g++ PIC flag -fPIC -DPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate configure: creating ./config.lt config.lt: creating libtool checking for the GMP library version 4.1.3 or above... yes checking size of mp_limb_t... 4 checking whether GMP has been compiled with support for exceptions... no checking for __mpz_struct._mp_alloc... yes checking for __mpz_struct._mp_size... yes checking for __mpz_struct._mp_d... yes checking whether to build the ppl_lcdd program... no checking whether to build the ppl_lpsol program... no checking whether to build the ppl_pips program... yes checking whether to build the PPL documentation... yes checking which interfaces are enabled... cxx c swi_prolog checking for swipl... /usr/bin/swipl checking for swipl-ld... /usr/bin/swipl-ld checking SWI-Prolog.h usability... yes checking SWI-Prolog.h presence... yes checking for SWI-Prolog.h... yes checking for SWI-Prolog version 5.6.0 or later... yes checking for GNU M4 that supports accurate traces... /usr/bin/m4 checking how m4 supports trace files... --debugfile checking which instantiations are enabled... Polyhedron@Grid@Rational_Box@BD_Shape@BD_Shape@Octagonal_Shape@Octagonal_Shape@Constraints_Product@Pointset_Powerset@Pointset_Powerset checking whether tests should be run under Valgrind... no checking whether `make check' does a thorough or quick check... quick checking for md5sum... md5sum checking for the text md5sum command... md5sum -t checking glpk.h usability... no checking glpk.h presence... no checking for glpk.h... no checking glpk/glpk.h usability... no checking glpk/glpk.h presence... no checking for glpk/glpk.h... no checking whether RLIMIT_DATA is declared... yes checking whether RLIMIT_RSS is declared... yes checking whether RLIMIT_VMEM is declared... no checking whether RLIMIT_AS is declared... yes checking whether getrusage is declared... yes checking whether setrlimit is declared... yes checking whether setitimer is declared... yes checking whether sigaction is declared... yes checking for timeval... yes checking for siginfo_t... yes checking whether we can limit memory in C++ using setrlimit()... no checking if the C++ compiler supports C++11 features... no checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating ppl.lsm config.status: creating src/Makefile config.status: creating src/version.hh config.status: creating src/ppl-config.cc config.status: creating tests/Makefile config.status: creating tests/BD_Shape/Makefile config.status: creating tests/Box/Makefile config.status: creating tests/Concrete_Expression/Makefile config.status: creating tests/CO_Tree/Makefile config.status: creating tests/Grid/Makefile config.status: creating tests/MIP_Problem/Makefile config.status: creating tests/Octagonal_Shape/Makefile config.status: creating tests/Partially_Reduced_Product/Makefile config.status: creating tests/PIP_Problem/Makefile config.status: creating tests/Polyhedron/Makefile config.status: creating tests/Powerset/Makefile config.status: creating tests/Watchdog/Makefile config.status: creating utils/Makefile config.status: creating m4/Makefile config.status: creating demos/Makefile config.status: creating demos/ppl_lcdd/Makefile config.status: creating demos/ppl_lcdd/examples/Makefile config.status: creating demos/ppl_lpsol/Makefile config.status: creating demos/ppl_lpsol/examples/Makefile config.status: creating demos/ppl_pips/Makefile config.status: creating demos/ppl_pips/examples/Makefile config.status: creating doc/Makefile config.status: creating doc/user.doxyconf-latex config.status: creating doc/devref.doxyconf-latex config.status: creating doc/user.doxyconf-html config.status: creating doc/devref.doxyconf-html config.status: creating doc/user-language-interface.doxyconf config.status: creating doc/devref-language-interface.doxyconf config.status: creating interfaces/Makefile config.status: creating interfaces/C/Makefile config.status: creating interfaces/C/ppl_c_version.h config.status: creating interfaces/C/tests/Makefile config.status: creating interfaces/Java/Makefile config.status: creating interfaces/Java/jni/Makefile config.status: creating interfaces/Java/tests/Makefile config.status: creating interfaces/Java/parma_polyhedra_library/Makefile config.status: creating interfaces/OCaml/Makefile config.status: creating interfaces/OCaml/tests/Makefile config.status: creating interfaces/Prolog/Makefile config.status: creating interfaces/Prolog/Ciao/Makefile config.status: creating interfaces/Prolog/GNU/Makefile config.status: creating interfaces/Prolog/SICStus/Makefile config.status: creating interfaces/Prolog/SWI/Makefile config.status: creating interfaces/Prolog/XSB/Makefile config.status: creating interfaces/Prolog/YAP/Makefile config.status: creating interfaces/Prolog/tests/Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands configure: WARNING: unrecognized options: --disable-maintainer-mode configure: WARNING: CANNOT PROPAGATE EXCEPTIONS BACK FROM GMP: *** MEMORY EXHAUSTION MAY RESULT IN ABRUPT TERMINATION. *** This is OK, if you do not plan to use the bounded memory capabilities *** offered by the PPL. Otherwise, if you are using GCC or the Intel C/C++ *** compiler, please make sure you use a version of GMP compiled with the *** `-fexceptions' compiler option. *** To build such a version, you can configure GMP as follows: *** CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/usr/local make[1]: Leaving directory '/build/ppl-1.2' debian/rules override_dh_auto_build-indep make[1]: Entering directory '/build/ppl-1.2' dh_auto_build make -j3 make[2]: Entering directory '/build/ppl-1.2' make all-recursive make[3]: Entering directory '/build/ppl-1.2' Making all in . make[4]: Entering directory '/build/ppl-1.2' /bin/sed -f ./ppl-config.sed config.h >ppl-config.h make[4]: Leaving directory '/build/ppl-1.2' Making all in utils make[4]: Entering directory '/build/ppl-1.2/utils' g++ -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o timings.o timings.cc /bin/sed -e 's,[@]PERL[@],/usr/bin/perl,g' -e 's,[@]generated_automatically[@],Generated automatically: do not modify; modify the .in file instead.,g' < ./build_header.in > build_header /bin/sed -e 's,[@]PERL[@],/usr/bin/perl,g' -e 's,[@]generated_automatically[@],Generated automatically: do not modify; modify the .in file instead.,g' < ./text2cxxarray.in > text2cxxarray chmod +x build_header chmod +x text2cxxarray rm -f libppl_utils.a ar cru libppl_utils.a timings.o ar: `u' modifier ignored since `D' is the default (see `U') ranlib libppl_utils.a make[4]: Leaving directory '/build/ppl-1.2/utils' Making all in src make[4]: Entering directory '/build/ppl-1.2/src' for file in namespaces.hh compiler.hh assertions.hh meta_programming.hh Slow_Copy.hh Has_Assign_Or_Swap.hh assign_or_swap.hh mp_std_bits_defs.hh mp_std_bits_inlines.hh Concrete_Expression_types.hh Concrete_Expression_defs.hh Concrete_Expression_inlines.hh Temp_defs.hh Temp_inlines.hh Temp_templates.hh Coefficient_traits_template.hh Checked_Number_types.hh termination_types.hh GMP_Integer_types.hh Coefficient_types.hh stdiobuf_types.hh c_streambuf_types.hh globals_types.hh iterator_to_const_types.hh distances_types.hh Interval_Info_types.hh Interval_types.hh Box_types.hh Constraint_types.hh Generator_types.hh Grid_Generator_types.hh Congruence_types.hh Init_types.hh Dense_Row_types.hh CO_Tree_types.hh Sparse_Row_types.hh Matrix_types.hh Swapping_Vector_types.hh Variable_types.hh Variables_Set_types.hh Linear_Expression_types.hh Expression_Adapter_types.hh Expression_Hide_Last_types.hh Expression_Hide_Inhomo_types.hh Linear_Expression_Impl_types.hh Linear_Expression_Interface_types.hh Linear_System_types.hh Linear_Form_types.hh Bit_Row_types.hh Bit_Matrix_types.hh Constraint_System_types.hh Generator_System_types.hh Grid_Generator_System_types.hh Congruence_System_types.hh Scalar_Products_types.hh PIP_Tree_types.hh PIP_Problem_types.hh Poly_Con_Relation_types.hh Poly_Gen_Relation_types.hh BHRZ03_Certificate_types.hh H79_Certificate_types.hh Grid_Certificate_types.hh Partial_Function_types.hh Polyhedron_types.hh C_Polyhedron_types.hh NNC_Polyhedron_types.hh Grid_types.hh Ptr_Iterator_types.hh DB_Row_types.hh DB_Matrix_types.hh BD_Shape_types.hh OR_Matrix_types.hh Octagonal_Shape_types.hh fpu_types.hh Float_defs.hh Float_inlines.hh Float_templates.hh C_Integer.hh fpu_defs.hh fpu-c99_inlines.hh fpu-ia32_inlines.hh fpu-none_inlines.hh fpu-sparc_inlines.hh Rounding_Dir_defs.hh Rounding_Dir_inlines.hh Result_defs.hh Result_inlines.hh Numeric_Format_defs.hh checked_defs.hh checked_inlines.hh checked_int_inlines.hh checked_float_inlines.hh checked_mpz_inlines.hh checked_mpq_inlines.hh checked_ext_inlines.hh Checked_Number_defs.hh Checked_Number_inlines.hh Checked_Number_templates.hh WRD_coefficient_types_defs.hh WRD_coefficient_types_inlines.hh checked_numeric_limits.hh GMP_Integer_defs.hh GMP_Integer_inlines.hh Coefficient_defs.hh Coefficient_inlines.hh stdiobuf_defs.hh stdiobuf_inlines.hh c_streambuf_defs.hh c_streambuf_inlines.hh globals_defs.hh globals_inlines.hh math_utilities_defs.hh math_utilities_inlines.hh iterator_to_const_defs.hh iterator_to_const_inlines.hh distances_defs.hh distances_inlines.hh Boundary_defs.hh intervals_defs.hh Interval_Info_defs.hh Interval_Info_inlines.hh Interval_defs.hh Interval_inlines.hh Interval_templates.hh Box_defs.hh Box_Status_inlines.hh Box_inlines.hh Box_templates.hh Integer_Interval.hh Rational_Interval.hh Rational_Box.hh Variable_defs.hh Variable_inlines.hh Variables_Set_defs.hh Variables_Set_inlines.hh Init_defs.hh Init_inlines.hh initializer.hh Topology_types.hh Dense_Row_defs.hh Dense_Row_inlines.hh Dense_Row_templates.hh CO_Tree_defs.hh CO_Tree_inlines.hh CO_Tree_templates.hh Sparse_Row_defs.hh Sparse_Row_inlines.hh Sparse_Row_templates.hh Bit_Row_defs.hh Bit_Row_inlines.hh Linear_System_defs.hh Linear_System_inlines.hh Linear_System_templates.hh Bit_Matrix_defs.hh Bit_Matrix_inlines.hh Constraint_System_defs.hh Generator_System_defs.hh Grid_Generator_System_defs.hh Congruence_System_defs.hh Linear_Expression_defs.hh Linear_Expression_inlines.hh Expression_Adapter_defs.hh Expression_Adapter_inlines.hh Expression_Hide_Last_defs.hh Expression_Hide_Last_inlines.hh Expression_Hide_Inhomo_defs.hh Expression_Hide_Inhomo_inlines.hh Linear_Expression_Impl_defs.hh Linear_Expression_Impl_inlines.hh Linear_Expression_Impl_templates.hh Linear_Expression_Interface_defs.hh Linear_Form_defs.hh Linear_Form_inlines.hh Linear_Form_templates.hh linearize.hh Constraint_defs.hh Constraint_inlines.hh Constraint_System_inlines.hh Generator_defs.hh Generator_inlines.hh Grid_Generator_defs.hh Grid_Generator_inlines.hh Congruence_defs.hh Congruence_inlines.hh Generator_System_inlines.hh Grid_Generator_System_inlines.hh Congruence_System_inlines.hh Scalar_Products_defs.hh Scalar_Products_inlines.hh Matrix_defs.hh Matrix_inlines.hh Matrix_templates.hh Swapping_Vector_defs.hh Swapping_Vector_inlines.hh MIP_Problem_types.hh MIP_Problem_defs.hh MIP_Problem_inlines.hh MIP_Problem_templates.hh PIP_Tree_types.hh PIP_Tree_defs.hh PIP_Tree_inlines.hh PIP_Problem_types.hh PIP_Problem_defs.hh PIP_Problem_inlines.hh PIP_Problem_templates.hh Poly_Con_Relation_defs.hh Poly_Con_Relation_inlines.hh Poly_Gen_Relation_defs.hh Poly_Gen_Relation_inlines.hh BHRZ03_Certificate_defs.hh BHRZ03_Certificate_inlines.hh H79_Certificate_defs.hh H79_Certificate_inlines.hh Grid_Certificate_defs.hh Grid_Certificate_inlines.hh Partial_Function_defs.hh Partial_Function_inlines.hh Polyhedron_defs.hh Ph_Status_inlines.hh Polyhedron_inlines.hh Polyhedron_chdims_templates.hh Polyhedron_conversion_templates.hh Polyhedron_minimize_templates.hh Polyhedron_simplify_templates.hh Polyhedron_templates.hh Grid_defs.hh Grid_Status_inlines.hh Grid_inlines.hh Grid_templates.hh C_Polyhedron_defs.hh C_Polyhedron_inlines.hh NNC_Polyhedron_defs.hh NNC_Polyhedron_inlines.hh Widening_Function_types.hh Widening_Function_defs.hh Widening_Function_inlines.hh Ptr_Iterator_defs.hh Ptr_Iterator_inlines.hh DB_Row_defs.hh DB_Row_inlines.hh DB_Row_templates.hh DB_Matrix_defs.hh DB_Matrix_inlines.hh DB_Matrix_templates.hh BD_Shape_defs.hh BDS_Status_inlines.hh BD_Shape_inlines.hh BD_Shape_templates.hh OR_Matrix_defs.hh OR_Matrix_inlines.hh OR_Matrix_templates.hh Octagonal_Shape_defs.hh Og_Status_inlines.hh Octagonal_Shape_inlines.hh Octagonal_Shape_templates.hh Determinate_types.hh Determinate_defs.hh Determinate_inlines.hh Powerset_types.hh Powerset_defs.hh Powerset_inlines.hh Powerset_templates.hh Pointset_Powerset_types.hh Pointset_Powerset_defs.hh Pointset_Powerset_inlines.hh Pointset_Powerset_templates.hh Partially_Reduced_Product_types.hh Partially_Reduced_Product_defs.hh Partially_Reduced_Product_inlines.hh Partially_Reduced_Product_templates.hh Weight_Profiler_defs.hh max_space_dimension.hh algorithms.hh termination_defs.hh termination_templates.hh wrap_assign.hh wrap_string.hh Floating_Point_Expression_types.hh Floating_Point_Expression_defs.hh Floating_Point_Expression_inlines.hh Floating_Point_Expression_templates.hh Cast_Floating_Point_Expression_types.hh Cast_Floating_Point_Expression_defs.hh Cast_Floating_Point_Expression_inlines.hh Cast_Floating_Point_Expression_templates.hh Constant_Floating_Point_Expression_types.hh Constant_Floating_Point_Expression_defs.hh Constant_Floating_Point_Expression_inlines.hh Variable_Floating_Point_Expression_types.hh Variable_Floating_Point_Expression_defs.hh Variable_Floating_Point_Expression_inlines.hh Sum_Floating_Point_Expression_types.hh Sum_Floating_Point_Expression_defs.hh Sum_Floating_Point_Expression_inlines.hh Sum_Floating_Point_Expression_templates.hh Difference_Floating_Point_Expression_types.hh Difference_Floating_Point_Expression_defs.hh Difference_Floating_Point_Expression_inlines.hh Difference_Floating_Point_Expression_templates.hh Multiplication_Floating_Point_Expression_types.hh Multiplication_Floating_Point_Expression_defs.hh Multiplication_Floating_Point_Expression_inlines.hh Multiplication_Floating_Point_Expression_templates.hh Division_Floating_Point_Expression_types.hh Division_Floating_Point_Expression_defs.hh Division_Floating_Point_Expression_inlines.hh Division_Floating_Point_Expression_templates.hh Opposite_Floating_Point_Expression_types.hh Opposite_Floating_Point_Expression_defs.hh Opposite_Floating_Point_Expression_inlines.hh Doubly_Linked_Object_types.hh EList_types.hh EList_Iterator_types.hh Handler_types.hh Pending_Element_types.hh Pending_List_types.hh Time_types.hh Watchdog_types.hh Threshold_Watcher_types.hh Handler_defs.hh Handler_inlines.hh Time_defs.hh Time_inlines.hh Doubly_Linked_Object_defs.hh Doubly_Linked_Object_inlines.hh EList_Iterator_defs.hh EList_Iterator_inlines.hh EList_defs.hh EList_inlines.hh Pending_Element_defs.hh Pending_Element_inlines.hh Pending_List_defs.hh Pending_List_inlines.hh Pending_List_templates.hh Watchdog_defs.hh Watchdog_inlines.hh Threshold_Watcher_defs.hh Threshold_Watcher_inlines.hh Threshold_Watcher_templates.hh ; \ do \ i="#include \"$file\"" ; \ ( cd ../src ; /bin/grep -F -q "$i" namespaces.hh compiler.hh assertions.hh meta_programming.hh Slow_Copy.hh Has_Assign_Or_Swap.hh assign_or_swap.hh mp_std_bits_defs.hh mp_std_bits_inlines.hh Concrete_Expression_types.hh Concrete_Expression_defs.hh Concrete_Expression_inlines.hh Temp_defs.hh Temp_inlines.hh Temp_templates.hh Coefficient_traits_template.hh Checked_Number_types.hh termination_types.hh GMP_Integer_types.hh Coefficient_types.hh stdiobuf_types.hh c_streambuf_types.hh globals_types.hh iterator_to_const_types.hh distances_types.hh Interval_Info_types.hh Interval_types.hh Box_types.hh Constraint_types.hh Generator_types.hh Grid_Generator_types.hh Congruence_types.hh Init_types.hh Dense_Row_types.hh CO_Tree_types.hh Sparse_Row_types.hh Matrix_types.hh Swapping_Vector_types.hh Variable_types.hh Variables_Set_types.hh Linear_Expression_types.hh Expression_Adapter_types.hh Expression_Hide_Last_types.hh Expression_Hide_Inhomo_types.hh Linear_Expression_Impl_types.hh Linear_Expression_Interface_types.hh Linear_System_types.hh Linear_Form_types.hh Bit_Row_types.hh Bit_Matrix_types.hh Constraint_System_types.hh Generator_System_types.hh Grid_Generator_System_types.hh Congruence_System_types.hh Scalar_Products_types.hh PIP_Tree_types.hh PIP_Problem_types.hh Poly_Con_Relation_types.hh Poly_Gen_Relation_types.hh BHRZ03_Certificate_types.hh H79_Certificate_types.hh Grid_Certificate_types.hh Partial_Function_types.hh Polyhedron_types.hh C_Polyhedron_types.hh NNC_Polyhedron_types.hh Grid_types.hh Ptr_Iterator_types.hh DB_Row_types.hh DB_Matrix_types.hh BD_Shape_types.hh OR_Matrix_types.hh Octagonal_Shape_types.hh fpu_types.hh Float_defs.hh Float_inlines.hh Float_templates.hh C_Integer.hh fpu_defs.hh fpu-c99_inlines.hh fpu-ia32_inlines.hh fpu-none_inlines.hh fpu-sparc_inlines.hh Rounding_Dir_defs.hh Rounding_Dir_inlines.hh Result_defs.hh Result_inlines.hh Numeric_Format_defs.hh checked_defs.hh checked_inlines.hh checked_int_inlines.hh checked_float_inlines.hh checked_mpz_inlines.hh checked_mpq_inlines.hh checked_ext_inlines.hh Checked_Number_defs.hh Checked_Number_inlines.hh Checked_Number_templates.hh WRD_coefficient_types_defs.hh WRD_coefficient_types_inlines.hh checked_numeric_limits.hh GMP_Integer_defs.hh GMP_Integer_inlines.hh Coefficient_defs.hh Coefficient_inlines.hh stdiobuf_defs.hh stdiobuf_inlines.hh c_streambuf_defs.hh c_streambuf_inlines.hh globals_defs.hh globals_inlines.hh math_utilities_defs.hh math_utilities_inlines.hh iterator_to_const_defs.hh iterator_to_const_inlines.hh distances_defs.hh distances_inlines.hh Boundary_defs.hh intervals_defs.hh Interval_Info_defs.hh Interval_Info_inlines.hh Interval_defs.hh Interval_inlines.hh Interval_templates.hh Box_defs.hh Box_Status_inlines.hh Box_inlines.hh Box_templates.hh Integer_Interval.hh Rational_Interval.hh Rational_Box.hh Variable_defs.hh Variable_inlines.hh Variables_Set_defs.hh Variables_Set_inlines.hh Init_defs.hh Init_inlines.hh initializer.hh Topology_types.hh Dense_Row_defs.hh Dense_Row_inlines.hh Dense_Row_templates.hh CO_Tree_defs.hh CO_Tree_inlines.hh CO_Tree_templates.hh Sparse_Row_defs.hh Sparse_Row_inlines.hh Sparse_Row_templates.hh Bit_Row_defs.hh Bit_Row_inlines.hh Linear_System_defs.hh Linear_System_inlines.hh Linear_System_templates.hh Bit_Matrix_defs.hh Bit_Matrix_inlines.hh Constraint_System_defs.hh Generator_System_defs.hh Grid_Generator_System_defs.hh Congruence_System_defs.hh Linear_Expression_defs.hh Linear_Expression_inlines.hh Expression_Adapter_defs.hh Expression_Adapter_inlines.hh Expression_Hide_Last_defs.hh Expression_Hide_Last_inlines.hh Expression_Hide_Inhomo_defs.hh Expression_Hide_Inhomo_inlines.hh Linear_Expression_Impl_defs.hh Linear_Expression_Impl_inlines.hh Linear_Expression_Impl_templates.hh Linear_Expression_Interface_defs.hh Linear_Form_defs.hh Linear_Form_inlines.hh Linear_Form_templates.hh linearize.hh Constraint_defs.hh Constraint_inlines.hh Constraint_System_inlines.hh Generator_defs.hh Generator_inlines.hh Grid_Generator_defs.hh Grid_Generator_inlines.hh Congruence_defs.hh Congruence_inlines.hh Generator_System_inlines.hh Grid_Generator_System_inlines.hh Congruence_System_inlines.hh Scalar_Products_defs.hh Scalar_Products_inlines.hh Matrix_defs.hh Matrix_inlines.hh Matrix_templates.hh Swapping_Vector_defs.hh Swapping_Vector_inlines.hh MIP_Problem_types.hh MIP_Problem_defs.hh MIP_Problem_inlines.hh MIP_Problem_templates.hh PIP_Tree_types.hh PIP_Tree_defs.hh PIP_Tree_inlines.hh PIP_Problem_types.hh PIP_Problem_defs.hh PIP_Problem_inlines.hh PIP_Problem_templates.hh Poly_Con_Relation_defs.hh Poly_Con_Relation_inlines.hh Poly_Gen_Relation_defs.hh Poly_Gen_Relation_inlines.hh BHRZ03_Certificate_defs.hh BHRZ03_Certificate_inlines.hh H79_Certificate_defs.hh H79_Certificate_inlines.hh Grid_Certificate_defs.hh Grid_Certificate_inlines.hh Partial_Function_defs.hh Partial_Function_inlines.hh Polyhedron_defs.hh Ph_Status_inlines.hh Polyhedron_inlines.hh Polyhedron_chdims_templates.hh Polyhedron_conversion_templates.hh Polyhedron_minimize_templates.hh Polyhedron_simplify_templates.hh Polyhedron_templates.hh Grid_defs.hh Grid_Status_inlines.hh Grid_inlines.hh Grid_templates.hh C_Polyhedron_defs.hh C_Polyhedron_inlines.hh NNC_Polyhedron_defs.hh NNC_Polyhedron_inlines.hh Widening_Function_types.hh Widening_Function_defs.hh Widening_Function_inlines.hh Ptr_Iterator_defs.hh Ptr_Iterator_inlines.hh DB_Row_defs.hh DB_Row_inlines.hh DB_Row_templates.hh DB_Matrix_defs.hh DB_Matrix_inlines.hh DB_Matrix_templates.hh BD_Shape_defs.hh BDS_Status_inlines.hh BD_Shape_inlines.hh BD_Shape_templates.hh OR_Matrix_defs.hh OR_Matrix_inlines.hh OR_Matrix_templates.hh Octagonal_Shape_defs.hh Og_Status_inlines.hh Octagonal_Shape_inlines.hh Octagonal_Shape_templates.hh Determinate_types.hh Determinate_defs.hh Determinate_inlines.hh Powerset_types.hh Powerset_defs.hh Powerset_inlines.hh Powerset_templates.hh Pointset_Powerset_types.hh Pointset_Powerset_defs.hh Pointset_Powerset_inlines.hh Pointset_Powerset_templates.hh Partially_Reduced_Product_types.hh Partially_Reduced_Product_defs.hh Partially_Reduced_Product_inlines.hh Partially_Reduced_Product_templates.hh Weight_Profiler_defs.hh max_space_dimension.hh algorithms.hh termination_defs.hh termination_templates.hh wrap_assign.hh wrap_string.hh Floating_Point_Expression_types.hh Floating_Point_Expression_defs.hh Floating_Point_Expression_inlines.hh Floating_Point_Expression_templates.hh Cast_Floating_Point_Expression_types.hh Cast_Floating_Point_Expression_defs.hh Cast_Floating_Point_Expression_inlines.hh Cast_Floating_Point_Expression_templates.hh Constant_Floating_Point_Expression_types.hh Constant_Floating_Point_Expression_defs.hh Constant_Floating_Point_Expression_inlines.hh Variable_Floating_Point_Expression_types.hh Variable_Floating_Point_Expression_defs.hh Variable_Floating_Point_Expression_inlines.hh Sum_Floating_Point_Expression_types.hh Sum_Floating_Point_Expression_defs.hh Sum_Floating_Point_Expression_inlines.hh Sum_Floating_Point_Expression_templates.hh Difference_Floating_Point_Expression_types.hh Difference_Floating_Point_Expression_defs.hh Difference_Floating_Point_Expression_inlines.hh Difference_Floating_Point_Expression_templates.hh Multiplication_Floating_Point_Expression_types.hh Multiplication_Floating_Point_Expression_defs.hh Multiplication_Floating_Point_Expression_inlines.hh Multiplication_Floating_Point_Expression_templates.hh Division_Floating_Point_Expression_types.hh Division_Floating_Point_Expression_defs.hh Division_Floating_Point_Expression_inlines.hh Division_Floating_Point_Expression_templates.hh Opposite_Floating_Point_Expression_types.hh Opposite_Floating_Point_Expression_defs.hh Opposite_Floating_Point_Expression_inlines.hh Doubly_Linked_Object_types.hh EList_types.hh EList_Iterator_types.hh Handler_types.hh Pending_Element_types.hh Pending_List_types.hh Time_types.hh Watchdog_types.hh Threshold_Watcher_types.hh Handler_defs.hh Handler_inlines.hh Time_defs.hh Time_inlines.hh Doubly_Linked_Object_defs.hh Doubly_Linked_Object_inlines.hh EList_Iterator_defs.hh EList_Iterator_inlines.hh EList_defs.hh EList_inlines.hh Pending_Element_defs.hh Pending_Element_inlines.hh Pending_List_defs.hh Pending_List_inlines.hh Pending_List_templates.hh Watchdog_defs.hh Watchdog_inlines.hh Threshold_Watcher_defs.hh Threshold_Watcher_inlines.hh Threshold_Watcher_templates.hh ) || echo "$i" ; \ done > ppl_include_files.hh ../utils/text2cxxarray --name=BUGS_array --decl-only \ ../BUGS >>BUGS.hh ../utils/text2cxxarray --name=COPYING_array --decl-only \ ../COPYING >>COPYING.hh ../utils/text2cxxarray --name=CREDITS_array --decl-only \ ../CREDITS >>CREDITS.hh ../utils/text2cxxarray --name=BUGS_array \ ../BUGS >>BUGS.cc ../utils/text2cxxarray --name=COPYING_array \ ../COPYING >>COPYING.cc ../utils/text2cxxarray --name=CREDITS_array \ ../CREDITS >>CREDITS.cc ../utils/build_header \ -I .. -I ../src \ ../src/ppl_header.hh >ppl.hh make all-am make[5]: Entering directory '/build/ppl-1.2/src' g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o BUGS.o BUGS.cc g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o COPYING.o COPYING.cc g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o CREDITS.o CREDITS.cc g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl-config.o ppl-config.cc /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o assertions.lo assertions.cc /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Box.lo Box.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c assertions.cc -fPIC -DPIC -o .libs/assertions.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Box.cc -fPIC -DPIC -o .libs/Box.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c assertions.cc -o assertions.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o checked.lo checked.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c checked.cc -fPIC -DPIC -o .libs/checked.o In file included from ppl-config.cc:25: ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ppl.hh:754, from ppl-config.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Constraint_defs.hh:36, from Box_defs.hh:34, from Box.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Coefficient_defs.hh:27, from Box_defs.hh:29, from Box.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl-config.cc:25: ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Box_inlines.hh:28, from Box_defs.hh:2285, from Box.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c checked.cc -o checked.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Box.cc -o Box.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Checked_Number.lo Checked_Number.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Checked_Number.cc -fPIC -DPIC -o .libs/Checked_Number.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Float.lo Float.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Float.cc -fPIC -DPIC -o .libs/Float.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Checked_Number.cc -o Checked_Number.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Float.cc -o Float.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o fpu-ia32.lo fpu-ia32.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c fpu-ia32.cc -fPIC -DPIC -o .libs/fpu-ia32.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c fpu-ia32.cc -o fpu-ia32.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o BDS_Status.lo BDS_Status.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c BDS_Status.cc -fPIC -DPIC -o .libs/BDS_Status.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c BDS_Status.cc -o BDS_Status.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Box_Status.lo Box_Status.cc /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Og_Status.lo Og_Status.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Box_Status.cc -fPIC -DPIC -o .libs/Box_Status.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Og_Status.cc -fPIC -DPIC -o .libs/Og_Status.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Box_Status.cc -o Box_Status.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Og_Status.cc -o Og_Status.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Concrete_Expression.lo Concrete_Expression.cc /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Constraint.lo Constraint.cc /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Constraint_System.lo Constraint_System.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Concrete_Expression.cc -fPIC -DPIC -o .libs/Concrete_Expression.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Constraint_System.cc -fPIC -DPIC -o .libs/Constraint_System.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Constraint.cc -fPIC -DPIC -o .libs/Constraint.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Constraint_defs.hh:36, from Constraint.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Linear_Expression_defs.hh:36, from Constraint_defs.hh:36, from Constraint.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Concrete_Expression.cc -o Concrete_Expression.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Constraint_System.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Swapping_Vector_defs.hh:28, from Linear_System_defs.hh:29, from Constraint_System_defs.hh:29, from Constraint_System.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Constraint_System.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Congruence.lo Congruence.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Congruence.cc -fPIC -DPIC -o .libs/Congruence.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Constraint.cc -o Constraint.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Congruence_defs.hh:35, from Congruence.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Coefficient_defs.hh:27, from Congruence_defs.hh:29, from Congruence.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Constraint_System.cc -o Constraint_System.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Congruence.cc -o Congruence.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Congruence_System.lo Congruence_System.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Congruence_System.cc -fPIC -DPIC -o .libs/Congruence_System.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Congruence_defs.hh:35, from Congruence_System_defs.hh:33, from Congruence_System.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Swapping_Vector_defs.hh:28, from Congruence_System_defs.hh:32, from Congruence_System.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Congruence_System.cc:27: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Generator_System.lo Generator_System.cc /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_Generator_System.lo Grid_Generator_System.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Generator_System.cc -fPIC -DPIC -o .libs/Generator_System.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_Generator_System.cc -fPIC -DPIC -o .libs/Grid_Generator_System.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Congruence_System.cc -o Congruence_System.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Grid_Generator_System_defs.hh:29, from Grid_Generator_System.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Swapping_Vector_defs.hh:28, from Linear_System_defs.hh:29, from Grid_Generator_System_defs.hh:29, from Grid_Generator_System.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Grid_Generator_System_defs.hh:29, from Grid_Generator_System.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Generator_System_defs.hh:30, from Generator_System.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Swapping_Vector_defs.hh:28, from Linear_System_defs.hh:29, from Generator_System_defs.hh:30, from Generator_System.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Generator_System_defs.hh:30, from Generator_System.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_Generator_System.cc -o Grid_Generator_System.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Generator.lo Generator.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Generator.cc -fPIC -DPIC -o .libs/Generator.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Generator_System.cc -o Generator_System.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Generator_defs.hh:40, from Generator.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Generator_defs.hh:39, from Generator.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_Generator.lo Grid_Generator.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_Generator.cc -fPIC -DPIC -o .libs/Grid_Generator.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Generator.cc -o Generator.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Grid_Generator_defs.hh:35, from Grid_Generator.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Coefficient_defs.hh:27, from Grid_Generator_defs.hh:34, from Grid_Generator.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Handler.lo Handler.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Handler.cc -fPIC -DPIC -o .libs/Handler.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Handler.cc -o Handler.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Init.lo Init.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Init.cc -fPIC -DPIC -o .libs/Init.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_Generator.cc -o Grid_Generator.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Coefficient.lo Coefficient.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Coefficient.cc -fPIC -DPIC -o .libs/Coefficient.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Init.cc:31: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Init.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Init.cc:36: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Coefficient.cc -o Coefficient.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Init.cc -o Init.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Linear_Expression.lo Linear_Expression.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Linear_Expression.cc -fPIC -DPIC -o .libs/Linear_Expression.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Linear_Expression_Impl.lo Linear_Expression_Impl.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Linear_Expression_Impl.cc -fPIC -DPIC -o .libs/Linear_Expression_Impl.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_Expression.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Linear_Expression_defs.hh:36, from Linear_Expression.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Linear_Expression_Impl_defs.hh:33, from Linear_Expression_Impl.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Coefficient_defs.hh:27, from Linear_Expression_Interface_defs.hh:28, from Linear_Expression_Impl_defs.hh:28, from Linear_Expression_Impl.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Linear_Expression_Interface.lo Linear_Expression_Interface.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Linear_Expression_Interface.cc -fPIC -DPIC -o .libs/Linear_Expression_Interface.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Linear_Expression_Impl.cc -o Linear_Expression_Impl.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Linear_Expression_Interface.cc -o Linear_Expression_Interface.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Linear_Form.lo Linear_Form.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Linear_Form.cc -fPIC -DPIC -o .libs/Linear_Form.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Scalar_Products.lo Scalar_Products.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Scalar_Products.cc -fPIC -DPIC -o .libs/Scalar_Products.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Linear_Expression.cc -o Linear_Expression.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Linear_Form.cc -o Linear_Form.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Scalar_Products_inlines.hh:27, from Scalar_Products.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Scalar_Products_defs.hh:28, from Scalar_Products.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o MIP_Problem.lo MIP_Problem.cc In file included from Scalar_Products.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c MIP_Problem.cc -fPIC -DPIC -o .libs/MIP_Problem.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Scalar_Products.cc -o Scalar_Products.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from MIP_Problem_defs.hh:30, from MIP_Problem.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Matrix_defs.hh:28, from MIP_Problem_defs.hh:29, from MIP_Problem.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from MIP_Problem.cc:30: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o PIP_Tree.lo PIP_Tree.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c PIP_Tree.cc -fPIC -DPIC -o .libs/PIP_Tree.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from PIP_Tree_defs.hh:30, from PIP_Tree.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from PIP_Tree_defs.hh:28, from PIP_Tree.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from PIP_Tree_defs.hh:30, from PIP_Tree.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ PIP_Tree.cc: In copy constructor 'Parma_Polyhedra_Library::PIP_Decision_Node::PIP_Decision_Node(const Parma_Polyhedra_Library::PIP_Decision_Node&)': PIP_Tree.cc:1105:8: warning: 'template class std::auto_ptr' is deprecated [-Wdeprecated-declarations] std::auto_ptr wrapped_node(false_child); ^~~~~~~~ In file included from /usr/include/c++/8/bits/locale_conv.h:41, from /usr/include/c++/8/locale:43, from /usr/include/c++/8/iomanip:43, from Checked_Number_templates.hh:28, from Checked_Number_defs.hh:1068, from Coefficient_types.hh:16, from Coefficient_defs.hh:27, from Linear_System_inlines.hh:28, from Linear_System_defs.hh:579, from Constraint_System_defs.hh:29, from PIP_Tree_defs.hh:30, from PIP_Tree.cc:25: /usr/include/c++/8/bits/unique_ptr.h:53:28: note: declared here template class auto_ptr; ^~~~~~~~ PIP_Tree.cc: In member function 'virtual Parma_Polyhedra_Library::PIP_Tree_Node* Parma_Polyhedra_Library::PIP_Solution_Node::solve(const Parma_Polyhedra_Library::PIP_Problem&, bool, const Parma_Polyhedra_Library::Matrix&, const Parma_Polyhedra_Library::Variables_Set&, Parma_Polyhedra_Library::dimension_type, int)': PIP_Tree.cc:3144:12: warning: 'template class std::auto_ptr' is deprecated [-Wdeprecated-declarations] std::auto_ptr wrapped_node(t_node); ^~~~~~~~ In file included from /usr/include/c++/8/bits/locale_conv.h:41, from /usr/include/c++/8/locale:43, from /usr/include/c++/8/iomanip:43, from Checked_Number_templates.hh:28, from Checked_Number_defs.hh:1068, from Coefficient_types.hh:16, from Coefficient_defs.hh:27, from Linear_System_inlines.hh:28, from Linear_System_defs.hh:579, from Constraint_System_defs.hh:29, from PIP_Tree_defs.hh:30, from PIP_Tree.cc:25: /usr/include/c++/8/bits/unique_ptr.h:53:28: note: declared here template class auto_ptr; ^~~~~~~~ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o PIP_Problem.lo PIP_Problem.cc In file included from /usr/include/c++/8/vector:69, from Linear_Form_defs.hh:32, from Float_inlines.hh:28, from Float_defs.hh:519, from checked_defs.hh:31, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Coefficient_defs.hh:27, from Matrix_defs.hh:29, from MIP_Problem_defs.hh:29, from MIP_Problem.cc:25: /usr/include/c++/8/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {std::pair}; _Tp = std::pair; _Alloc = std::allocator >]': /usr/include/c++/8/bits/vector.tcc:413:7: note: parameter passing for argument of type 'std::vector >::iterator' {aka '__gnu_cxx::__normal_iterator*, std::vector > >'} changed in GCC 7.1 vector<_Tp, _Alloc>:: ^~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c PIP_Problem.cc -fPIC -DPIC -o .libs/PIP_Problem.o /usr/include/c++/8/bits/vector.tcc: In member function 'Parma_Polyhedra_Library::dimension_type Parma_Polyhedra_Library::MIP_Problem::steepest_edge_float_entering_index() const': /usr/include/c++/8/bits/vector.tcc:109:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator*, std::vector > >' changed in GCC 7.1 _M_realloc_insert(end(), std::forward<_Args>(__args)...); ^~~~~~~~~~~~~~~~~ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from PIP_Problem_defs.hh:30, from PIP_Problem.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Linear_Expression_defs.hh:36, from PIP_Problem_defs.hh:30, from PIP_Problem.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from PIP_Tree_defs.hh:30, from PIP_Problem.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c PIP_Problem.cc -o PIP_Problem.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c MIP_Problem.cc -o MIP_Problem.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Poly_Con_Relation.lo Poly_Con_Relation.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Poly_Con_Relation.cc -fPIC -DPIC -o .libs/Poly_Con_Relation.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Poly_Con_Relation.cc -o Poly_Con_Relation.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c PIP_Tree.cc -o PIP_Tree.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Poly_Gen_Relation.lo Poly_Gen_Relation.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Poly_Gen_Relation.cc -fPIC -DPIC -o .libs/Poly_Gen_Relation.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Poly_Gen_Relation.cc -o Poly_Gen_Relation.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o BHRZ03_Certificate.lo BHRZ03_Certificate.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c BHRZ03_Certificate.cc -fPIC -DPIC -o .libs/BHRZ03_Certificate.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from BHRZ03_Certificate.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from BHRZ03_Certificate_defs.hh:29, from BHRZ03_Certificate.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from BHRZ03_Certificate.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c BHRZ03_Certificate.cc -o BHRZ03_Certificate.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o H79_Certificate.lo H79_Certificate.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c H79_Certificate.cc -fPIC -DPIC -o .libs/H79_Certificate.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from H79_Certificate_inlines.hh:27, from H79_Certificate_defs.hh:95, from H79_Certificate.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Polyhedron_defs.hh:29, from H79_Certificate_inlines.hh:27, from H79_Certificate_defs.hh:95, from H79_Certificate.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from H79_Certificate_inlines.hh:27, from H79_Certificate_defs.hh:95, from H79_Certificate.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_Certificate.lo Grid_Certificate.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c H79_Certificate.cc -o H79_Certificate.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_Certificate.cc -fPIC -DPIC -o .libs/Grid_Certificate.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Grid_defs.hh:31, from Grid_Certificate.cc:27: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Grid_Certificate_defs.hh:30, from Grid_Certificate.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Grid_defs.hh:33, from Grid_Certificate.cc:27: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_Certificate.cc -o Grid_Certificate.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Partial_Function.lo Partial_Function.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Partial_Function.cc -fPIC -DPIC -o .libs/Partial_Function.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Partial_Function.cc -o Partial_Function.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Polyhedron_nonpublic.lo Polyhedron_nonpublic.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Polyhedron_nonpublic.cc -fPIC -DPIC -o .libs/Polyhedron_nonpublic.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Polyhedron_public.lo Polyhedron_public.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Polyhedron_public.cc -fPIC -DPIC -o .libs/Polyhedron_public.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Polyhedron_nonpublic.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Polyhedron_defs.hh:29, from Polyhedron_nonpublic.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Polyhedron_chdims.lo Polyhedron_chdims.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Polyhedron_chdims.cc -fPIC -DPIC -o .libs/Polyhedron_chdims.o In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Polyhedron_nonpublic.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Polyhedron_public.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Polyhedron_defs.hh:29, from Polyhedron_public.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Polyhedron_public.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Polyhedron_chdims.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Polyhedron_defs.hh:29, from Polyhedron_chdims.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Polyhedron_chdims.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Polyhedron_chdims.cc -o Polyhedron_chdims.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Polyhedron_widenings.lo Polyhedron_widenings.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Polyhedron_widenings.cc -fPIC -DPIC -o .libs/Polyhedron_widenings.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Polyhedron_widenings.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Polyhedron_defs.hh:29, from Polyhedron_widenings.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Polyhedron_widenings.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Polyhedron_nonpublic.cc -o Polyhedron_nonpublic.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Polyhedron_public.cc -o Polyhedron_public.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Polyhedron_widenings.cc -o Polyhedron_widenings.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o C_Polyhedron.lo C_Polyhedron.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c C_Polyhedron.cc -fPIC -DPIC -o .libs/C_Polyhedron.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o NNC_Polyhedron.lo NNC_Polyhedron.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c NNC_Polyhedron.cc -fPIC -DPIC -o .libs/NNC_Polyhedron.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from C_Polyhedron_defs.hh:29, from C_Polyhedron.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Polyhedron_defs.hh:29, from C_Polyhedron_defs.hh:29, from C_Polyhedron.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from C_Polyhedron_defs.hh:29, from C_Polyhedron.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from NNC_Polyhedron_defs.hh:29, from NNC_Polyhedron.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Polyhedron_defs.hh:29, from NNC_Polyhedron_defs.hh:29, from NNC_Polyhedron.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from NNC_Polyhedron_defs.hh:29, from NNC_Polyhedron.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c C_Polyhedron.cc -o C_Polyhedron.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c NNC_Polyhedron.cc -o NNC_Polyhedron.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_nonpublic.lo Grid_nonpublic.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_nonpublic.cc -fPIC -DPIC -o .libs/Grid_nonpublic.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_public.lo Grid_public.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_public.cc -fPIC -DPIC -o .libs/Grid_public.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Grid_defs.hh:31, from Grid_nonpublic.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Grid_defs.hh:28, from Grid_nonpublic.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Grid_defs.hh:33, from Grid_nonpublic.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Grid_defs.hh:31, from Grid_public.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Grid_defs.hh:28, from Grid_public.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Grid_defs.hh:33, from Grid_public.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_chdims.lo Grid_chdims.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_chdims.cc -fPIC -DPIC -o .libs/Grid_chdims.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Grid_defs.hh:31, from Grid_chdims.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Grid_defs.hh:28, from Grid_chdims.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Grid_defs.hh:33, from Grid_chdims.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_nonpublic.cc -o Grid_nonpublic.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_chdims.cc -o Grid_chdims.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_widenings.lo Grid_widenings.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_public.cc -o Grid_public.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_widenings.cc -fPIC -DPIC -o .libs/Grid_widenings.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Grid_defs.hh:31, from Grid_widenings.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Grid_defs.hh:28, from Grid_widenings.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Grid_defs.hh:33, from Grid_widenings.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o BD_Shape.lo BD_Shape.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c BD_Shape.cc -fPIC -DPIC -o .libs/BD_Shape.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_widenings.cc -o Grid_widenings.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from BD_Shape_inlines.hh:27, from BD_Shape_defs.hh:2371, from BD_Shape.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from BD_Shape_defs.hh:28, from BD_Shape.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from BD_Shape_inlines.hh:27, from BD_Shape_defs.hh:2371, from BD_Shape.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Octagonal_Shape.lo Octagonal_Shape.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c BD_Shape.cc -o BD_Shape.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Octagonal_Shape.cc -fPIC -DPIC -o .libs/Octagonal_Shape.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from C_Polyhedron_defs.hh:29, from OR_Matrix_inlines.hh:29, from OR_Matrix_defs.hh:607, from Octagonal_Shape_defs.hh:36, from Octagonal_Shape.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from OR_Matrix_defs.hh:28, from Octagonal_Shape_defs.hh:36, from Octagonal_Shape.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Pointset_Powerset.lo Pointset_Powerset.cc In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from C_Polyhedron_defs.hh:29, from OR_Matrix_inlines.hh:29, from OR_Matrix_defs.hh:607, from Octagonal_Shape_defs.hh:36, from Octagonal_Shape.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Pointset_Powerset.cc -fPIC -DPIC -o .libs/Pointset_Powerset.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o CO_Tree.lo CO_Tree.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c CO_Tree.cc -fPIC -DPIC -o .libs/CO_Tree.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from C_Polyhedron_defs.hh:29, from Pointset_Powerset_defs.hh:34, from Pointset_Powerset.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Pointset_Powerset_defs.hh:28, from Pointset_Powerset.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from C_Polyhedron_defs.hh:29, from Pointset_Powerset_defs.hh:34, from Pointset_Powerset.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Octagonal_Shape.cc -o Octagonal_Shape.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from CO_Tree.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Coefficient_defs.hh:27, from CO_Tree_defs.hh:29, from CO_Tree.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c CO_Tree.cc -o CO_Tree.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Sparse_Row.lo Sparse_Row.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Sparse_Row.cc -fPIC -DPIC -o .libs/Sparse_Row.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Pointset_Powerset.cc -o Pointset_Powerset.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Dense_Row.lo Dense_Row.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Dense_Row.cc -fPIC -DPIC -o .libs/Dense_Row.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Sparse_Row.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from mp_std_bits_defs.hh:28, from checked_defs.hh:27, from Checked_Number_defs.hh:28, from Coefficient_types.hh:16, from Coefficient_defs.hh:27, from CO_Tree_defs.hh:29, from Sparse_Row_defs.hh:29, from Sparse_Row.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Dense_Row.cc:28: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Dense_Row_defs.hh:29, from Dense_Row.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ Dense_Row.cc: In member function 'void Parma_Polyhedra_Library::Dense_Row::resize(Parma_Polyhedra_Library::dimension_type)': Dense_Row.cc:58:66: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] memcpy(new_vec, impl.vec, sizeof(Coefficient) * impl.size); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Dense_Row_defs.hh:29, from Dense_Row.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ Dense_Row.cc: In member function 'void Parma_Polyhedra_Library::Dense_Row::resize(Parma_Polyhedra_Library::dimension_type, Parma_Polyhedra_Library::dimension_type)': Dense_Row.cc:103:62: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] memcpy(new_vec, impl.vec, sizeof(Coefficient) * impl.size); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Dense_Row_defs.hh:29, from Dense_Row.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ Dense_Row.cc:116:66: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] memcpy(new_vec, impl.vec, sizeof(Coefficient) * impl.size); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Dense_Row_defs.hh:29, from Dense_Row.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ Dense_Row.cc: In member function 'void Parma_Polyhedra_Library::Dense_Row::add_zeroes_and_shift(Parma_Polyhedra_Library::dimension_type, Parma_Polyhedra_Library::dimension_type)': Dense_Row.cc:168:63: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] memcpy(new_row.impl.vec, impl.vec, sizeof(Coefficient) * i); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Dense_Row_defs.hh:29, from Dense_Row.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ Dense_Row.cc:170:49: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] sizeof(Coefficient) * (impl.size - i)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Dense_Row_defs.hh:29, from Dense_Row.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ Dense_Row.cc:184:30: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] * (impl.size - i)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Dense_Row_defs.hh:29, from Dense_Row.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::Coefficient' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Dense_Row.cc -o Dense_Row.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Sparse_Row.cc -o Sparse_Row.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Bit_Matrix.lo Bit_Matrix.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Bit_Matrix.cc -fPIC -DPIC -o .libs/Bit_Matrix.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Bit_Row.lo Bit_Row.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Bit_Row.cc -fPIC -DPIC -o .libs/Bit_Row.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Bit_Matrix.cc -o Bit_Matrix.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Ph_Status.lo Ph_Status.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Bit_Row.cc -o Bit_Row.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Ph_Status.cc -fPIC -DPIC -o .libs/Ph_Status.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_Status.lo Grid_Status.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_Status.cc -fPIC -DPIC -o .libs/Grid_Status.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Linear_System_templates.hh:28, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Ph_Status.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Variable_inlines.hh:27, from Variable_defs.hh:155, from Polyhedron_defs.hh:29, from Ph_Status.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Polyhedron_defs.hh:32, from Ph_Status.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Grid_defs.hh:31, from Grid_Status.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Grid_defs.hh:28, from Grid_Status.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Grid_defs.hh:33, from Grid_Status.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Variable.lo Variable.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Variable.cc -fPIC -DPIC -o .libs/Variable.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Ph_Status.cc -o Ph_Status.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_Status.cc -o Grid_Status.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Variable.cc -o Variable.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Variables_Set.lo Variables_Set.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Variables_Set.cc -fPIC -DPIC -o .libs/Variables_Set.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_conversion.lo Grid_conversion.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_conversion.cc -fPIC -DPIC -o .libs/Grid_conversion.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Variables_Set.cc -o Variables_Set.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Grid_simplify.lo Grid_simplify.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_simplify.cc -fPIC -DPIC -o .libs/Grid_simplify.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o set_GMP_memory_alloc_funcs.lo set_GMP_memory_alloc_funcs.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c set_GMP_memory_alloc_funcs.cc -fPIC -DPIC -o .libs/set_GMP_memory_alloc_funcs.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c set_GMP_memory_alloc_funcs.cc -o set_GMP_memory_alloc_funcs.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o stdiobuf.lo stdiobuf.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c stdiobuf.cc -fPIC -DPIC -o .libs/stdiobuf.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Grid_defs.hh:31, from Grid_simplify.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Grid_defs.hh:28, from Grid_simplify.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Grid_defs.hh:31, from Grid_conversion.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from Grid_defs.hh:28, from Grid_conversion.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Grid_defs.hh:33, from Grid_simplify.cc:26: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from Grid_defs.hh:33, from Grid_conversion.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c stdiobuf.cc -o stdiobuf.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o c_streambuf.lo c_streambuf.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c c_streambuf.cc -fPIC -DPIC -o .libs/c_streambuf.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_conversion.cc -o Grid_conversion.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Grid_simplify.cc -o Grid_simplify.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c c_streambuf.cc -o c_streambuf.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o globals.lo globals.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c globals.cc -fPIC -DPIC -o .libs/globals.o In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Constraint_defs.hh:36, from globals.cc:26: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from globals.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c globals.cc -o globals.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o mp_std_bits.lo mp_std_bits.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c mp_std_bits.cc -fPIC -DPIC -o .libs/mp_std_bits.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Weight_Profiler.lo Weight_Profiler.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Weight_Profiler.cc -fPIC -DPIC -o .libs/Weight_Profiler.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c mp_std_bits.cc -o mp_std_bits.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o version.lo version.cc /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o termination.lo termination.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Weight_Profiler.cc -o Weight_Profiler.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c version.cc -fPIC -DPIC -o .libs/version.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c version.cc -o version.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c termination.cc -fPIC -DPIC -o .libs/termination.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o wrap_string.lo wrap_string.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c wrap_string.cc -fPIC -DPIC -o .libs/wrap_string.o /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Time.lo Time.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Time.cc -fPIC -DPIC -o .libs/Time.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Time.cc -o Time.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Watchdog.lo Watchdog.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Watchdog.cc -fPIC -DPIC -o .libs/Watchdog.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c wrap_string.cc -o wrap_string.o >/dev/null 2>&1 In file included from CO_Tree_defs.hh:1557, from Sparse_Row_defs.hh:29, from Expression_Adapter_defs.hh:31, from Linear_Expression_defs.hh:48, from Generator_defs.hh:40, from termination_templates.hh:29, from termination_defs.hh:500, from termination.cc:25: CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from meta_programming.hh:27, from C_Integer.hh:27, from globals_defs.hh:28, from termination_templates.hh:27, from termination_defs.hh:500, from termination.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from Linear_System_templates.hh:30, from Linear_System_defs.hh:580, from Constraint_System_defs.hh:29, from termination_templates.hh:30, from termination_defs.hh:500, from termination.cc:25: Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Watchdog.cc -o Watchdog.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o Threshold_Watcher.lo Threshold_Watcher.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Threshold_Watcher.cc -fPIC -DPIC -o .libs/Threshold_Watcher.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c Threshold_Watcher.cc -o Threshold_Watcher.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c termination.cc -o termination.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -version-info 14:0:0 -Wl,-z,relro -o libppl.la -rpath /usr/lib/arm-linux-gnueabihf assertions.lo Box.lo checked.lo Checked_Number.lo Float.lo fpu-ia32.lo BDS_Status.lo Box_Status.lo Og_Status.lo Concrete_Expression.lo Constraint.lo Constraint_System.lo Congruence.lo Congruence_System.lo Generator_System.lo Grid_Generator_System.lo Generator.lo Grid_Generator.lo Handler.lo Init.lo Coefficient.lo Linear_Expression.lo Linear_Expression_Impl.lo Linear_Expression_Interface.lo Linear_Form.lo Scalar_Products.lo MIP_Problem.lo PIP_Tree.lo PIP_Problem.lo Poly_Con_Relation.lo Poly_Gen_Relation.lo BHRZ03_Certificate.lo H79_Certificate.lo Grid_Certificate.lo Partial_Function.lo Polyhedron_nonpublic.lo Polyhedron_public.lo Polyhedron_chdims.lo Polyhedron_widenings.lo C_Polyhedron.lo NNC_Polyhedron.lo Grid_nonpublic.lo Grid_public.lo Grid_chdims.lo Grid_widenings.lo BD_Shape.lo Octagonal_Shape.lo Pointset_Powerset.lo CO_Tree.lo Sparse_Row.lo Dense_Row.lo Bit_Matrix.lo Bit_Row.lo Ph_Status.lo Grid_Status.lo Variable.lo Variables_Set.lo Grid_conversion.lo Grid_simplify.lo set_GMP_memory_alloc_funcs.lo stdiobuf.lo c_streambuf.lo globals.lo mp_std_bits.lo Weight_Profiler.lo version.lo termination.lo wrap_string.lo Time.lo Watchdog.lo Threshold_Watcher.lo -lgmpxx -lgmp libtool: link: g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/crti.o /usr/lib/gcc/arm-linux-gnueabihf/8/crtbeginS.o .libs/assertions.o .libs/Box.o .libs/checked.o .libs/Checked_Number.o .libs/Float.o .libs/fpu-ia32.o .libs/BDS_Status.o .libs/Box_Status.o .libs/Og_Status.o .libs/Concrete_Expression.o .libs/Constraint.o .libs/Constraint_System.o .libs/Congruence.o .libs/Congruence_System.o .libs/Generator_System.o .libs/Grid_Generator_System.o .libs/Generator.o .libs/Grid_Generator.o .libs/Handler.o .libs/Init.o .libs/Coefficient.o .libs/Linear_Expression.o .libs/Linear_Expression_Impl.o .libs/Linear_Expression_Interface.o .libs/Linear_Form.o .libs/Scalar_Products.o .libs/MIP_Problem.o .libs/PIP_Tree.o .libs/PIP_Problem.o .libs/Poly_Con_Relation.o .libs/Poly_Gen_Relation.o .libs/BHRZ03_Certificate.o .libs/H79_Certificate.o .libs/Grid_Certificate.o .libs/Partial_Function.o .libs/Polyhedron_nonpublic.o .libs/Polyhedron_public.o .libs/Polyhedron_chdims.o .libs/Polyhedron_widenings.o .libs/C_Polyhedron.o .libs/NNC_Polyhedron.o .libs/Grid_nonpublic.o .libs/Grid_public.o .libs/Grid_chdims.o .libs/Grid_widenings.o .libs/BD_Shape.o .libs/Octagonal_Shape.o .libs/Pointset_Powerset.o .libs/CO_Tree.o .libs/Sparse_Row.o .libs/Dense_Row.o .libs/Bit_Matrix.o .libs/Bit_Row.o .libs/Ph_Status.o .libs/Grid_Status.o .libs/Variable.o .libs/Variables_Set.o .libs/Grid_conversion.o .libs/Grid_simplify.o .libs/set_GMP_memory_alloc_funcs.o .libs/stdiobuf.o .libs/c_streambuf.o .libs/globals.o .libs/mp_std_bits.o .libs/Weight_Profiler.o .libs/version.o .libs/termination.o .libs/wrap_string.o .libs/Time.o .libs/Watchdog.o .libs/Threshold_Watcher.o -lgmpxx -lgmp -L/usr/lib/gcc/arm-linux-gnueabihf/8 -L/usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf -L/usr/lib/gcc/arm-linux-gnueabihf/8/../../.. -L/lib/arm-linux-gnueabihf -L/usr/lib/arm-linux-gnueabihf -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/arm-linux-gnueabihf/8/crtendS.o /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/crtn.o -g -O2 -g -O2 -fstack-protector-strong -g -marm -Wl,-z -Wl,relro -Wl,-soname -Wl,libppl.so.14 -o .libs/libppl.so.14.0.0 libtool: link: (cd ".libs" && rm -f "libppl.so.14" && ln -s "libppl.so.14.0.0" "libppl.so.14") libtool: link: (cd ".libs" && rm -f "libppl.so" && ln -s "libppl.so.14.0.0" "libppl.so") libtool: link: ar cru .libs/libppl.a assertions.o Box.o checked.o Checked_Number.o Float.o fpu-ia32.o BDS_Status.o Box_Status.o Og_Status.o Concrete_Expression.o Constraint.o Constraint_System.o Congruence.o Congruence_System.o Generator_System.o Grid_Generator_System.o Generator.o Grid_Generator.o Handler.o Init.o Coefficient.o Linear_Expression.o Linear_Expression_Impl.o Linear_Expression_Interface.o Linear_Form.o Scalar_Products.o MIP_Problem.o PIP_Tree.o PIP_Problem.o Poly_Con_Relation.o Poly_Gen_Relation.o BHRZ03_Certificate.o H79_Certificate.o Grid_Certificate.o Partial_Function.o Polyhedron_nonpublic.o Polyhedron_public.o Polyhedron_chdims.o Polyhedron_widenings.o C_Polyhedron.o NNC_Polyhedron.o Grid_nonpublic.o Grid_public.o Grid_chdims.o Grid_widenings.o BD_Shape.o Octagonal_Shape.o Pointset_Powerset.o CO_Tree.o Sparse_Row.o Dense_Row.o Bit_Matrix.o Bit_Row.o Ph_Status.o Grid_Status.o Variable.o Variables_Set.o Grid_conversion.o Grid_simplify.o set_GMP_memory_alloc_funcs.o stdiobuf.o c_streambuf.o globals.o mp_std_bits.o Weight_Profiler.o version.o termination.o wrap_string.o Time.o Watchdog.o Threshold_Watcher.o ar: `u' modifier ignored since `D' is the default (see `U') libtool: link: ranlib .libs/libppl.a libtool: link: ( cd ".libs" && rm -f "libppl.la" && ln -s "../libppl.la" "libppl.la" ) /bin/bash ../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z,relro -o ppl-config BUGS.o COPYING.o CREDITS.o ppl-config.o -lgmpxx -lgmp libppl.la libtool: link: g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z -Wl,relro -o .libs/ppl-config BUGS.o COPYING.o CREDITS.o ppl-config.o -lgmpxx -lgmp ./.libs/libppl.so make[5]: Leaving directory '/build/ppl-1.2/src' make[4]: Leaving directory '/build/ppl-1.2/src' Making all in tests make[4]: Entering directory '/build/ppl-1.2/tests' Making all in . make[5]: Entering directory '/build/ppl-1.2/tests' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/build/ppl-1.2/tests' Making all in Concrete_Expression make[5]: Entering directory '/build/ppl-1.2/tests/Concrete_Expression' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/Concrete_Expression' Making all in CO_Tree make[5]: Entering directory '/build/ppl-1.2/tests/CO_Tree' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/CO_Tree' Making all in PIP_Problem make[5]: Entering directory '/build/ppl-1.2/tests/PIP_Problem' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/PIP_Problem' Making all in Powerset make[5]: Entering directory '/build/ppl-1.2/tests/Powerset' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/Powerset' Making all in Partially_Reduced_Product make[5]: Entering directory '/build/ppl-1.2/tests/Partially_Reduced_Product' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/Partially_Reduced_Product' Making all in Box make[5]: Entering directory '/build/ppl-1.2/tests/Box' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/Box' Making all in MIP_Problem make[5]: Entering directory '/build/ppl-1.2/tests/MIP_Problem' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/MIP_Problem' Making all in Octagonal_Shape make[5]: Entering directory '/build/ppl-1.2/tests/Octagonal_Shape' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/Octagonal_Shape' Making all in BD_Shape make[5]: Entering directory '/build/ppl-1.2/tests/BD_Shape' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/BD_Shape' Making all in Polyhedron make[5]: Entering directory '/build/ppl-1.2/tests/Polyhedron' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/Polyhedron' Making all in Grid make[5]: Entering directory '/build/ppl-1.2/tests/Grid' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/Grid' Making all in Watchdog make[5]: Entering directory '/build/ppl-1.2/tests/Watchdog' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/tests/Watchdog' make[4]: Leaving directory '/build/ppl-1.2/tests' Making all in interfaces make[4]: Entering directory '/build/ppl-1.2/interfaces' echo "m4_define(\`m4_interface_classes_names', \`Polyhedron@Grid@Rational_Box@BD_Shape_mpz_class@BD_Shape_mpq_class@Octagonal_Shape_mpz_class@Octagonal_Shape_mpq_class@Constraints_Product_C_Polyhedron_Grid@Pointset_Powerset_C_Polyhedron@Pointset_Powerset_NNC_Polyhedron')" > ppl_interface_instantiations.m4 echo "m4_define(\`m4_cplusplus_classes_names', \`Polyhedron@Grid@Rational_Box@BD_Shape@BD_Shape@Octagonal_Shape@Octagonal_Shape@Constraints_Product@Pointset_Powerset@Pointset_Powerset')" >> ppl_interface_instantiations.m4 make all-recursive make[5]: Entering directory '/build/ppl-1.2/interfaces' Making all in . make[6]: Entering directory '/build/ppl-1.2/interfaces' make[6]: Nothing to be done for 'all-am'. make[6]: Leaving directory '/build/ppl-1.2/interfaces' Making all in C make[6]: Entering directory '/build/ppl-1.2/interfaces/C' /usr/bin/m4 --prefix-builtin -I.. -I. -I./.. \ ./ppl_interface_generator_c_h.m4 > ppl_c_domains.h /usr/bin/m4 --prefix-builtin -I.. -I. -I./.. \ ./ppl_interface_generator_c_hh_files.m4 \ > ppl_c_hh_blob /usr/bin/m4 --prefix-builtin -I.. -I. -I./.. \ ./ppl_interface_generator_c_cc_files.m4 \ > ppl_c_cc_blob ../../utils/cm_cleaner.sh ./ppl_c_hh_blob ../../utils/cm_splitter.sh ./ppl_c_hh_blob rm -f ppl_c_hh_blob ../../utils/build_header \ -I ../../interfaces/C -I ../../src \ ../../interfaces/C/ppl_c_header.h >ppl_c.h ../../utils/cm_cleaner.sh ./ppl_c_cc_blob ../../utils/cm_splitter.sh ./ppl_c_cc_blob rm -f ppl_c_cc_blob echo timestamp >ppl_c_implementation_domains.cc.stamp make all-recursive make[7]: Entering directory '/build/ppl-1.2/interfaces/C' Making all in . make[8]: Entering directory '/build/ppl-1.2/interfaces/C' /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_implementation_common.lo ppl_c_implementation_common.cc /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_Polyhedron.lo ppl_c_Polyhedron.cc /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_Grid.lo ppl_c_Grid.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_implementation_common.cc -fPIC -DPIC -o .libs/ppl_c_implementation_common.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Polyhedron.cc -fPIC -DPIC -o .libs/ppl_c_Polyhedron.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Grid.cc -fPIC -DPIC -o .libs/ppl_c_Grid.o In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Grid.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_Grid.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Polyhedron.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_Polyhedron.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_implementation_common.cc:26: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_implementation_common.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Grid.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Polyhedron.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_implementation_common.cc:26: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Grid.cc -o ppl_c_Grid.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Polyhedron.cc -o ppl_c_Polyhedron.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_implementation_common.cc -o ppl_c_implementation_common.o >/dev/null 2>&1 /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_Rational_Box.lo ppl_c_Rational_Box.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Rational_Box.cc -fPIC -DPIC -o .libs/ppl_c_Rational_Box.o In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Rational_Box.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_Rational_Box.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Rational_Box.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_BD_Shape_mpz_class.lo ppl_c_BD_Shape_mpz_class.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_BD_Shape_mpz_class.cc -fPIC -DPIC -o .libs/ppl_c_BD_Shape_mpz_class.o In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_BD_Shape_mpz_class.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_BD_Shape_mpz_class.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_BD_Shape_mpz_class.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_BD_Shape_mpq_class.lo ppl_c_BD_Shape_mpq_class.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_BD_Shape_mpq_class.cc -fPIC -DPIC -o .libs/ppl_c_BD_Shape_mpq_class.o In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_BD_Shape_mpq_class.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_BD_Shape_mpq_class.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_BD_Shape_mpq_class.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Rational_Box.cc -o ppl_c_Rational_Box.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_BD_Shape_mpz_class.cc -o ppl_c_BD_Shape_mpz_class.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_BD_Shape_mpq_class.cc -o ppl_c_BD_Shape_mpq_class.o >/dev/null 2>&1 /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_Octagonal_Shape_mpz_class.lo ppl_c_Octagonal_Shape_mpz_class.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Octagonal_Shape_mpz_class.cc -fPIC -DPIC -o .libs/ppl_c_Octagonal_Shape_mpz_class.o In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Octagonal_Shape_mpz_class.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_Octagonal_Shape_mpz_class.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Octagonal_Shape_mpz_class.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_Octagonal_Shape_mpq_class.lo ppl_c_Octagonal_Shape_mpq_class.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Octagonal_Shape_mpq_class.cc -fPIC -DPIC -o .libs/ppl_c_Octagonal_Shape_mpq_class.o In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Octagonal_Shape_mpq_class.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_Octagonal_Shape_mpq_class.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Octagonal_Shape_mpq_class.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_Constraints_Product_C_Polyhedron_Grid.lo ppl_c_Constraints_Product_C_Polyhedron_Grid.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Constraints_Product_C_Polyhedron_Grid.cc -fPIC -DPIC -o .libs/ppl_c_Constraints_Product_C_Polyhedron_Grid.o In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Constraints_Product_C_Polyhedron_Grid.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_Constraints_Product_C_Polyhedron_Grid.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Constraints_Product_C_Polyhedron_Grid.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Octagonal_Shape_mpz_class.cc -o ppl_c_Octagonal_Shape_mpz_class.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Constraints_Product_C_Polyhedron_Grid.cc -o ppl_c_Constraints_Product_C_Polyhedron_Grid.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Octagonal_Shape_mpq_class.cc -o ppl_c_Octagonal_Shape_mpq_class.o >/dev/null 2>&1 /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_Pointset_Powerset_C_Polyhedron.lo ppl_c_Pointset_Powerset_C_Polyhedron.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Pointset_Powerset_C_Polyhedron.cc -fPIC -DPIC -o .libs/ppl_c_Pointset_Powerset_C_Polyhedron.o In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Pointset_Powerset_C_Polyhedron.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_Pointset_Powerset_C_Polyhedron.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Pointset_Powerset_C_Polyhedron.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_c_Pointset_Powerset_NNC_Polyhedron.lo ppl_c_Pointset_Powerset_NNC_Polyhedron.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Pointset_Powerset_NNC_Polyhedron.cc -fPIC -DPIC -o .libs/ppl_c_Pointset_Powerset_NNC_Polyhedron.o In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Pointset_Powerset_NNC_Polyhedron.cc:24: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_c_implementation_common_defs.hh:28, from ppl_c_Pointset_Powerset_NNC_Polyhedron.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_c_implementation_common_defs.hh:28, from ppl_c_Pointset_Powerset_NNC_Polyhedron.cc:24: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Pointset_Powerset_C_Polyhedron.cc -o ppl_c_Pointset_Powerset_C_Polyhedron.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../interfaces -I../../interfaces/C -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_c_Pointset_Powerset_NNC_Polyhedron.cc -o ppl_c_Pointset_Powerset_NNC_Polyhedron.o >/dev/null 2>&1 /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -version-info 4:0:0 -Wl,-z,relro -o libppl_c.la -rpath /usr/lib/arm-linux-gnueabihf ppl_c_implementation_common.lo ppl_c_Polyhedron.lo ppl_c_Grid.lo ppl_c_Rational_Box.lo ppl_c_BD_Shape_mpz_class.lo ppl_c_BD_Shape_mpq_class.lo ppl_c_Octagonal_Shape_mpz_class.lo ppl_c_Octagonal_Shape_mpq_class.lo ppl_c_Constraints_Product_C_Polyhedron_Grid.lo ppl_c_Pointset_Powerset_C_Polyhedron.lo ppl_c_Pointset_Powerset_NNC_Polyhedron.lo ../../src/libppl.la -lgmpxx -lgmp libtool: link: g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/crti.o /usr/lib/gcc/arm-linux-gnueabihf/8/crtbeginS.o .libs/ppl_c_implementation_common.o .libs/ppl_c_Polyhedron.o .libs/ppl_c_Grid.o .libs/ppl_c_Rational_Box.o .libs/ppl_c_BD_Shape_mpz_class.o .libs/ppl_c_BD_Shape_mpq_class.o .libs/ppl_c_Octagonal_Shape_mpz_class.o .libs/ppl_c_Octagonal_Shape_mpq_class.o .libs/ppl_c_Constraints_Product_C_Polyhedron_Grid.o .libs/ppl_c_Pointset_Powerset_C_Polyhedron.o .libs/ppl_c_Pointset_Powerset_NNC_Polyhedron.o -Wl,-rpath -Wl,/build/ppl-1.2/src/.libs ../../src/.libs/libppl.so -lgmpxx -lgmp -L/usr/lib/gcc/arm-linux-gnueabihf/8 -L/usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf -L/usr/lib/gcc/arm-linux-gnueabihf/8/../../.. -L/lib/arm-linux-gnueabihf -L/usr/lib/arm-linux-gnueabihf -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/arm-linux-gnueabihf/8/crtendS.o /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/crtn.o -g -O2 -g -O2 -fstack-protector-strong -g -marm -Wl,-z -Wl,relro -Wl,-soname -Wl,libppl_c.so.4 -o .libs/libppl_c.so.4.0.0 libtool: link: (cd ".libs" && rm -f "libppl_c.so.4" && ln -s "libppl_c.so.4.0.0" "libppl_c.so.4") libtool: link: (cd ".libs" && rm -f "libppl_c.so" && ln -s "libppl_c.so.4.0.0" "libppl_c.so") libtool: link: ar cru .libs/libppl_c.a ppl_c_implementation_common.o ppl_c_Polyhedron.o ppl_c_Grid.o ppl_c_Rational_Box.o ppl_c_BD_Shape_mpz_class.o ppl_c_BD_Shape_mpq_class.o ppl_c_Octagonal_Shape_mpz_class.o ppl_c_Octagonal_Shape_mpq_class.o ppl_c_Constraints_Product_C_Polyhedron_Grid.o ppl_c_Pointset_Powerset_C_Polyhedron.o ppl_c_Pointset_Powerset_NNC_Polyhedron.o ar: `u' modifier ignored since `D' is the default (see `U') libtool: link: ranlib .libs/libppl_c.a libtool: link: ( cd ".libs" && rm -f "libppl_c.la" && ln -s "../libppl_c.la" "libppl_c.la" ) make[8]: Leaving directory '/build/ppl-1.2/interfaces/C' Making all in tests make[8]: Entering directory '/build/ppl-1.2/interfaces/C/tests' make[8]: Nothing to be done for 'all'. make[8]: Leaving directory '/build/ppl-1.2/interfaces/C/tests' make[7]: Leaving directory '/build/ppl-1.2/interfaces/C' make[6]: Leaving directory '/build/ppl-1.2/interfaces/C' Making all in Prolog make[6]: Entering directory '/build/ppl-1.2/interfaces/Prolog' /usr/bin/m4 --prefix-builtin -I.. -I. -I./.. \ ./ppl_interface_generator_prolog_hh_files.m4 \ > ppl_prolog_hh_blob /usr/bin/m4 --prefix-builtin -I.. -I. -I./.. \ ./ppl_interface_generator_prolog_cc_files.m4 \ > ppl_prolog_cc_blob ../../utils/cm_cleaner.sh ./ppl_prolog_hh_blob ../../utils/cm_splitter.sh ./ppl_prolog_hh_blob rm -f ppl_prolog_hh_blob ../../utils/cm_cleaner.sh ./ppl_prolog_cc_blob ../../utils/cm_splitter.sh ./ppl_prolog_cc_blob rm -f ppl_prolog_cc_blob echo timestamp >ppl_prolog_domains.cc.stamp make all-recursive make[7]: Entering directory '/build/ppl-1.2/interfaces/Prolog' Making all in . make[8]: Entering directory '/build/ppl-1.2/interfaces/Prolog' /usr/bin/m4 --prefix-builtin -I.. -I. -I./.. \ ./ppl_interface_generator_prolog_dox.m4 \ > Prolog_configured_domains.dox make[8]: Leaving directory '/build/ppl-1.2/interfaces/Prolog' Making all in tests make[8]: Entering directory '/build/ppl-1.2/interfaces/Prolog/tests' make[8]: Nothing to be done for 'all'. make[8]: Leaving directory '/build/ppl-1.2/interfaces/Prolog/tests' Making all in SWI make[8]: Entering directory '/build/ppl-1.2/interfaces/Prolog/SWI' /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o swi_efli.lo swi_efli.cc /usr/bin/m4 --prefix-builtin -I../.. -I./.. -I./../.. \ ./ppl_interface_generator_swiprolog_cc.m4 > ppl_swiprolog.cc /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_common.lo `test -f '../ppl_prolog_common.cc' || echo './'`../ppl_prolog_common.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c swi_efli.cc -fPIC -DPIC -o .libs/swi_efli.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_common.cc -fPIC -DPIC -o .libs/ppl_prolog_common.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_common.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_common.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_common.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from swi_efli.hh:28, from swi_efli.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from swi_efli.hh:28, from swi_efli.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from swi_efli.hh:28, from swi_efli.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_common.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_common.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ In file included from /usr/include/c++/8/cassert:44, from swi_cfli.hh:32, from swi_efli.hh:31, from swi_efli.cc:24: swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from swi_efli.hh:31, from swi_efli.cc:24: swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c swi_efli.cc -o swi_efli.o >/dev/null 2>&1 /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_Polyhedron.lo `test -f '../ppl_prolog_Polyhedron.cc' || echo './'`../ppl_prolog_Polyhedron.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Polyhedron.cc -fPIC -DPIC -o .libs/ppl_prolog_Polyhedron.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Polyhedron.hh:24, from ../ppl_prolog_Polyhedron.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Polyhedron.hh:24, from ../ppl_prolog_Polyhedron.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Polyhedron.hh:24, from ../ppl_prolog_Polyhedron.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_Grid.lo `test -f '../ppl_prolog_Grid.cc' || echo './'`../ppl_prolog_Grid.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Grid.cc -fPIC -DPIC -o .libs/ppl_prolog_Grid.o In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Polyhedron.hh:24, from ../ppl_prolog_Polyhedron.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Polyhedron.hh:24, from ../ppl_prolog_Polyhedron.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_Polyhedron.cc: In function 'Prolog_foreign_return_type ppl_new_C_Polyhedron_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_Polyhedron.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_Polyhedron.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ ../ppl_prolog_Polyhedron.cc: In function 'Prolog_foreign_return_type ppl_new_NNC_Polyhedron_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_Polyhedron.cc:87:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_Polyhedron.cc:92:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Grid.hh:24, from ../ppl_prolog_Grid.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Grid.hh:24, from ../ppl_prolog_Grid.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Grid.hh:24, from ../ppl_prolog_Grid.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_common.cc -o ppl_prolog_common.o >/dev/null 2>&1 In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Grid.hh:24, from ../ppl_prolog_Grid.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Grid.hh:24, from ../ppl_prolog_Grid.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_Grid.cc: In function 'Prolog_foreign_return_type ppl_new_Grid_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_Grid.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_Grid.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_Rational_Box.lo `test -f '../ppl_prolog_Rational_Box.cc' || echo './'`../ppl_prolog_Rational_Box.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Rational_Box.cc -fPIC -DPIC -o .libs/ppl_prolog_Rational_Box.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Rational_Box.hh:24, from ../ppl_prolog_Rational_Box.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Rational_Box.hh:24, from ../ppl_prolog_Rational_Box.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Rational_Box.hh:24, from ../ppl_prolog_Rational_Box.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Grid.cc -o ppl_prolog_Grid.o >/dev/null 2>&1 In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Rational_Box.hh:24, from ../ppl_prolog_Rational_Box.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Rational_Box.hh:24, from ../ppl_prolog_Rational_Box.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_Rational_Box.cc: In function 'Prolog_foreign_return_type ppl_new_Rational_Box_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_Rational_Box.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_Rational_Box.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Polyhedron.cc -o ppl_prolog_Polyhedron.o >/dev/null 2>&1 /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_BD_Shape_mpz_class.lo `test -f '../ppl_prolog_BD_Shape_mpz_class.cc' || echo './'`../ppl_prolog_BD_Shape_mpz_class.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_BD_Shape_mpz_class.cc -fPIC -DPIC -o .libs/ppl_prolog_BD_Shape_mpz_class.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_BD_Shape_mpz_class.hh:24, from ../ppl_prolog_BD_Shape_mpz_class.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_BD_Shape_mpz_class.hh:24, from ../ppl_prolog_BD_Shape_mpz_class.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_BD_Shape_mpz_class.hh:24, from ../ppl_prolog_BD_Shape_mpz_class.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_BD_Shape_mpz_class.hh:24, from ../ppl_prolog_BD_Shape_mpz_class.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_BD_Shape_mpz_class.hh:24, from ../ppl_prolog_BD_Shape_mpz_class.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_BD_Shape_mpz_class.cc: In function 'Prolog_foreign_return_type ppl_new_BD_Shape_mpz_class_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_BD_Shape_mpz_class.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_BD_Shape_mpz_class.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Rational_Box.cc -o ppl_prolog_Rational_Box.o >/dev/null 2>&1 /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_BD_Shape_mpq_class.lo `test -f '../ppl_prolog_BD_Shape_mpq_class.cc' || echo './'`../ppl_prolog_BD_Shape_mpq_class.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_BD_Shape_mpq_class.cc -fPIC -DPIC -o .libs/ppl_prolog_BD_Shape_mpq_class.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_BD_Shape_mpq_class.hh:24, from ../ppl_prolog_BD_Shape_mpq_class.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_BD_Shape_mpq_class.hh:24, from ../ppl_prolog_BD_Shape_mpq_class.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_BD_Shape_mpq_class.hh:24, from ../ppl_prolog_BD_Shape_mpq_class.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_BD_Shape_mpq_class.hh:24, from ../ppl_prolog_BD_Shape_mpq_class.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_BD_Shape_mpq_class.hh:24, from ../ppl_prolog_BD_Shape_mpq_class.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_BD_Shape_mpq_class.cc: In function 'Prolog_foreign_return_type ppl_new_BD_Shape_mpq_class_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_BD_Shape_mpq_class.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_BD_Shape_mpq_class.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_BD_Shape_mpz_class.cc -o ppl_prolog_BD_Shape_mpz_class.o >/dev/null 2>&1 /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_Octagonal_Shape_mpz_class.lo `test -f '../ppl_prolog_Octagonal_Shape_mpz_class.cc' || echo './'`../ppl_prolog_Octagonal_Shape_mpz_class.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Octagonal_Shape_mpz_class.cc -fPIC -DPIC -o .libs/ppl_prolog_Octagonal_Shape_mpz_class.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Octagonal_Shape_mpz_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpz_class.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Octagonal_Shape_mpz_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpz_class.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Octagonal_Shape_mpz_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpz_class.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Octagonal_Shape_mpz_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpz_class.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Octagonal_Shape_mpz_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpz_class.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_Octagonal_Shape_mpz_class.cc: In function 'Prolog_foreign_return_type ppl_new_Octagonal_Shape_mpz_class_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_Octagonal_Shape_mpz_class.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_Octagonal_Shape_mpz_class.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_BD_Shape_mpq_class.cc -o ppl_prolog_BD_Shape_mpq_class.o >/dev/null 2>&1 /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_Octagonal_Shape_mpq_class.lo `test -f '../ppl_prolog_Octagonal_Shape_mpq_class.cc' || echo './'`../ppl_prolog_Octagonal_Shape_mpq_class.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Octagonal_Shape_mpq_class.cc -fPIC -DPIC -o .libs/ppl_prolog_Octagonal_Shape_mpq_class.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Octagonal_Shape_mpq_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpq_class.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Octagonal_Shape_mpq_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpq_class.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Octagonal_Shape_mpq_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpq_class.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Octagonal_Shape_mpq_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpq_class.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Octagonal_Shape_mpq_class.hh:24, from ../ppl_prolog_Octagonal_Shape_mpq_class.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_Octagonal_Shape_mpq_class.cc: In function 'Prolog_foreign_return_type ppl_new_Octagonal_Shape_mpq_class_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_Octagonal_Shape_mpq_class.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_Octagonal_Shape_mpq_class.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Octagonal_Shape_mpz_class.cc -o ppl_prolog_Octagonal_Shape_mpz_class.o >/dev/null 2>&1 /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_Constraints_Product_C_Polyhedron_Grid.lo `test -f '../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc' || echo './'`../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc -fPIC -DPIC -o .libs/ppl_prolog_Constraints_Product_C_Polyhedron_Grid.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.hh:24, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.hh:24, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.hh:24, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.hh:24, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.hh:24, from ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc: In function 'Prolog_foreign_return_type ppl_new_Constraints_Product_C_Polyhedron_Grid_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc -o ppl_prolog_Constraints_Product_C_Polyhedron_Grid.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Octagonal_Shape_mpq_class.cc -o ppl_prolog_Octagonal_Shape_mpq_class.o >/dev/null 2>&1 /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_Pointset_Powerset_C_Polyhedron.lo `test -f '../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc' || echo './'`../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc -fPIC -DPIC -o .libs/ppl_prolog_Pointset_Powerset_C_Polyhedron.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc: In function 'Prolog_foreign_return_type ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_prolog_Pointset_Powerset_NNC_Polyhedron.lo `test -f '../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc' || echo './'`../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc -fPIC -DPIC -o .libs/ppl_prolog_Pointset_Powerset_NNC_Polyhedron.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.hh:24, from ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc: In function 'Prolog_foreign_return_type ppl_new_Pointset_Powerset_NNC_Polyhedron_from_space_dimension(Prolog_term_ref, Prolog_term_ref, Prolog_term_ref)': ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc:57:5: warning: this 'else' clause does not guard... [-Wmisleading-indentation] else ^~~~ ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc:62:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else' Prolog_term_ref tmp = Prolog_new_term_ref(); ^~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc -o ppl_prolog_Pointset_Powerset_C_Polyhedron.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc -o ppl_prolog_Pointset_Powerset_NNC_Polyhedron.o >/dev/null 2>&1 /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_swiprolog.lo ppl_swiprolog.cc libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_swiprolog.cc -fPIC -DPIC -o .libs/ppl_swiprolog.o In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_domains.hh:24, from ppl_swiprolog.cc:24: ../../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../../src/ppl.hh:754, from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_domains.hh:24, from ppl_swiprolog.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../ppl_prolog_common_defs.hh:28, from ../ppl_prolog_domains.hh:24, from ppl_swiprolog.cc:24: ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from /usr/include/c++/8/cassert:44, from ./swi_cfli.hh:32, from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_domains.hh:24, from ppl_swiprolog.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_big_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:85:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] assert(ul > LONG_MAX && ul > (uint64_t) INT64_MAX); ^ In file included from ./swi_efli.hh:31, from ./ppl_prolog_sysdep.hh:24, from ../ppl_prolog_common_defs.hh:29, from ../ppl_prolog_domains.hh:24, from ppl_swiprolog.cc:24: ./swi_cfli.hh: In function 'int Prolog_put_ulong(Prolog_term_ref, long unsigned int)': ./swi_cfli.hh:108:15: warning: comparison is always true due to limited range of data type [-Wtype-limits] else if (ul <= (uint64_t) INT64_MAX) { ^ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../../interfaces -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src -I/usr/lib/swi-prolog/include -I/usr/include/pl -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c ppl_swiprolog.cc -o ppl_swiprolog.o >/dev/null 2>&1 /bin/bash ../../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -module -avoid-version -Wl,-z,relro -o libppl_swiprolog.la -rpath /usr/lib/arm-linux-gnueabihf/ppl swi_efli.lo ppl_swiprolog.lo ppl_prolog_common.lo ppl_prolog_Polyhedron.lo ppl_prolog_Grid.lo ppl_prolog_Rational_Box.lo ppl_prolog_BD_Shape_mpz_class.lo ppl_prolog_BD_Shape_mpq_class.lo ppl_prolog_Octagonal_Shape_mpz_class.lo ppl_prolog_Octagonal_Shape_mpq_class.lo ppl_prolog_Constraints_Product_C_Polyhedron_Grid.lo ppl_prolog_Pointset_Powerset_C_Polyhedron.lo ppl_prolog_Pointset_Powerset_NNC_Polyhedron.lo ../../../src/libppl.la -lgmpxx -lgmp -L/usr/lib/swi-prolog/lib/armv8l-linux -L/usr/lib/swi-prolog/lib -lswipl libtool: link: g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/crti.o /usr/lib/gcc/arm-linux-gnueabihf/8/crtbeginS.o .libs/swi_efli.o .libs/ppl_swiprolog.o .libs/ppl_prolog_common.o .libs/ppl_prolog_Polyhedron.o .libs/ppl_prolog_Grid.o .libs/ppl_prolog_Rational_Box.o .libs/ppl_prolog_BD_Shape_mpz_class.o .libs/ppl_prolog_BD_Shape_mpq_class.o .libs/ppl_prolog_Octagonal_Shape_mpz_class.o .libs/ppl_prolog_Octagonal_Shape_mpq_class.o .libs/ppl_prolog_Constraints_Product_C_Polyhedron_Grid.o .libs/ppl_prolog_Pointset_Powerset_C_Polyhedron.o .libs/ppl_prolog_Pointset_Powerset_NNC_Polyhedron.o -Wl,-rpath -Wl,/build/ppl-1.2/src/.libs ../../../src/.libs/libppl.so -lgmpxx -lgmp -L/usr/lib/swi-prolog/lib/armv8l-linux -L/usr/lib/swi-prolog/lib -lswipl -L/usr/lib/gcc/arm-linux-gnueabihf/8 -L/usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf -L/usr/lib/gcc/arm-linux-gnueabihf/8/../../.. -L/lib/arm-linux-gnueabihf -L/usr/lib/arm-linux-gnueabihf -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/arm-linux-gnueabihf/8/crtendS.o /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/crtn.o -g -O2 -g -O2 -fstack-protector-strong -g -marm -Wl,-z -Wl,relro -Wl,-soname -Wl,libppl_swiprolog.so -o .libs/libppl_swiprolog.so libtool: link: ar cru .libs/libppl_swiprolog.a swi_efli.o ppl_swiprolog.o ppl_prolog_common.o ppl_prolog_Polyhedron.o ppl_prolog_Grid.o ppl_prolog_Rational_Box.o ppl_prolog_BD_Shape_mpz_class.o ppl_prolog_BD_Shape_mpq_class.o ppl_prolog_Octagonal_Shape_mpz_class.o ppl_prolog_Octagonal_Shape_mpq_class.o ppl_prolog_Constraints_Product_C_Polyhedron_Grid.o ppl_prolog_Pointset_Powerset_C_Polyhedron.o ppl_prolog_Pointset_Powerset_NNC_Polyhedron.o ar: `u' modifier ignored since `D' is the default (see `U') libtool: link: ranlib .libs/libppl_swiprolog.a libtool: link: ( cd ".libs" && rm -f "libppl_swiprolog.la" && ln -s "../libppl_swiprolog.la" "libppl_swiprolog.la" ) make[8]: Leaving directory '/build/ppl-1.2/interfaces/Prolog/SWI' make[7]: Leaving directory '/build/ppl-1.2/interfaces/Prolog' make[6]: Leaving directory '/build/ppl-1.2/interfaces/Prolog' make[5]: Leaving directory '/build/ppl-1.2/interfaces' make[4]: Leaving directory '/build/ppl-1.2/interfaces' Making all in demos make[4]: Entering directory '/build/ppl-1.2/demos' Making all in ppl_pips make[5]: Entering directory '/build/ppl-1.2/demos/ppl_pips' Making all in examples make[6]: Entering directory '/build/ppl-1.2/demos/ppl_pips/examples' make[6]: Nothing to be done for 'all'. make[6]: Leaving directory '/build/ppl-1.2/demos/ppl_pips/examples' make[6]: Entering directory '/build/ppl-1.2/demos/ppl_pips' g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../src -I../../utils -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_pips.o ppl_pips.cc In file included from ppl_pips.cc:36: ../../src/ppl.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/ppl.hh:23961:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/ppl.hh:754, from ppl_pips.cc:36: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ppl_pips.cc:36: ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/ppl.hh:42067:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42068:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/ppl.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/ppl.hh:42075:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/ppl.hh:42076:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ppl_pips.cc: In function 'int main(int, char**)': ppl_pips.cc:820:8: warning: 'template class std::auto_ptr' is deprecated [-Wdeprecated-declarations] std::auto_ptr parser; ^~~~~~~~ In file included from /usr/include/c++/8/bits/locale_conv.h:41, from /usr/include/c++/8/locale:43, from /usr/include/c++/8/iomanip:43, from ../../src/ppl.hh:15079, from ppl_pips.cc:36: /usr/include/c++/8/bits/unique_ptr.h:53:28: note: declared here template class auto_ptr; ^~~~~~~~ ppl_pips.cc:841:10: warning: 'template class std::auto_ptr' is deprecated [-Wdeprecated-declarations] std::auto_ptr pip_p; ^~~~~~~~ In file included from /usr/include/c++/8/bits/locale_conv.h:41, from /usr/include/c++/8/locale:43, from /usr/include/c++/8/iomanip:43, from ../../src/ppl.hh:15079, from ppl_pips.cc:36: /usr/include/c++/8/bits/unique_ptr.h:53:28: note: declared here template class auto_ptr; ^~~~~~~~ /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z,relro -o ppl_pips ppl_pips.o ../../src/libppl.la ../../utils/libppl_utils.a -lgmpxx -lgmp libtool: link: g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z -Wl,relro -o .libs/ppl_pips ppl_pips.o ../../src/.libs/libppl.so ../../utils/libppl_utils.a -lgmpxx -lgmp make[6]: Leaving directory '/build/ppl-1.2/demos/ppl_pips' make[5]: Leaving directory '/build/ppl-1.2/demos/ppl_pips' make[5]: Entering directory '/build/ppl-1.2/demos' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/build/ppl-1.2/demos' make[4]: Leaving directory '/build/ppl-1.2/demos' Making all in doc make[4]: Entering directory '/build/ppl-1.2/doc' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/doc' Making all in m4 make[4]: Entering directory '/build/ppl-1.2/m4' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/m4' make[3]: Leaving directory '/build/ppl-1.2' make[2]: Leaving directory '/build/ppl-1.2' save_size=10000 dh_auto_build --builddirectory=doc -- user-configured cd doc && make -j3 user-configured make[2]: Entering directory '/build/ppl-1.2/doc' rm -rf ppl-user-1.2-html rm -rf user-configured-c-interface.latex-dir TEXINPUTS=/build/ppl-1.2/doc: texmf_casefold_search=0 doxygen user.doxyconf-html /bin/sed -e 's//PPL_DOXYGEN_CONFIGURED_MANUAL/' -e 's//Configured C/' -e 's//configured-c-interface/' -e 's///' \ ./user-language-interface.tex \ > user-configured-c-interface.tex rm -rf user-configured-prolog-interface.latex-dir /bin/sed -e 's//PPL_DOXYGEN_CONFIGURED_MANUAL/' -e 's//Configured Prolog/' -e 's//configured-prolog-interface/' -e 's///' \ ./user-language-interface.tex \ > user-configured-prolog-interface.tex /bin/sed -e 's//PPL_DOXYGEN_CONFIGURED_MANUAL/' -e 's//Configured C/' -e 's//configured-c-interface/' -e 's///' -f ./interfaces-latex.sed -e 's///' \ -e 's||'"./gpl.dox ./fdl.dox ./../interfaces/C/C_interface.dox ../interfaces/C/ppl_c.h"'|' \ user-language-interface.doxyconf \ > Doxyfile.user-configured-c-interface-latex /bin/sed -e 's//PPL_DOXYGEN_CONFIGURED_MANUAL/' -e 's//Configured Prolog/' -e 's//configured-prolog-interface/' -e 's///' -f ./interfaces-latex.sed -e 's///' \ -e 's||'"./gpl.dox ./fdl.dox ./../interfaces/Prolog/Prolog_configured_interface.dox ./../interfaces/Prolog/Prolog_interface_sysindep.dox ../interfaces/Prolog/Prolog_configured_domains.dox ./../interfaces/Prolog/Prolog_interface_compilation.dox ./../interfaces/Prolog/Prolog_interface_sysdep.dox"'|' \ user-language-interface.doxyconf \ > Doxyfile.user-configured-prolog-interface-latex TEXINPUTS=/build/ppl-1.2/doc: texmf_casefold_search=0 doxygen Doxyfile.user-configured-c-interface-latex TEXINPUTS=/build/ppl-1.2/doc: texmf_casefold_search=0 doxygen Doxyfile.user-configured-prolog-interface-latex warning: doxygen no longer ships with the FreeSans font. You may want to clear or change DOT_FONTNAME. Otherwise you run the risk that the wrong font is being used for dot generated graphs. warning: doxygen no longer ships with the FreeSans font. You may want to clear or change DOT_FONTNAME. Otherwise you run the risk that the wrong font is being used for dot generated graphs. warning: doxygen no longer ships with the FreeSans font. You may want to clear or change DOT_FONTNAME. Otherwise you run the risk that the wrong font is being used for dot generated graphs. GPL:-1: warning: multiple use of section label 'GPL', (first occurrence: /build/ppl-1.2/doc/gpl.dox, line 6) GFDL:-1: warning: multiple use of section label 'GFDL', (first occurrence: /build/ppl-1.2/doc/fdl.dox, line 6) GPL:-1: warning: multiple use of section label 'GPL', (first occurrence: /build/ppl-1.2/doc/gpl.dox, line 6) GFDL:-1: warning: multiple use of section label 'GFDL', (first occurrence: /build/ppl-1.2/doc/fdl.dox, line 6) TEXINPUTS=/build/ppl-1.2/doc: texmf_casefold_search=0 make -C user-configured-prolog-interface.latex-dir \ refman.pdf \ && mv -f user-configured-prolog-interface.latex-dir/refman.pdf ppl-user-configured-prolog-interface-1.2.pdf make[3]: Entering directory '/build/ppl-1.2/doc' make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf pdflatex refman This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./refman.tex LaTeX2e <2018-12-01> (/usr/share/texlive/texmf-dist/tex/latex/base/article.clsTEXINPUTS=/build/ppl-1.2/doc: texmf_casefold_search=0 make -C user-configured-c-interface.latex-dir refman.pdf \ && mv -f user-configured-c-interface.latex-dir/refman.pdf ppl-user-configured-c-interface-1.2.pdf Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clomake[3]: Entering directory '/build/ppl-1.2/doc' make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf )pdflatex refman ) (/usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.styThis is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex) restricted \write18 enabled. (/usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.styentering extended mode (./refman.tex LaTeX2e <2018-12-01> (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls)) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty)) (/usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty (/usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty)) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def)))))) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty)) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu))))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty)) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty (/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty)) (/usr/share/texlive/texmf-dist/tex/latex/tocloft/tocloft.sty (/usr/share/texlive/texmf-dist/tex/latex/tocloft/tocloft.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty) (/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty)))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/backref.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty) (./doxygen.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty) (/usr/share/texlive/texmf-dist/tex/latex/tabu/tabu.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/backref.sty (/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) (/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty) (./doxygen.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty) (/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty)) (/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty) (/usr/share/texlive/texmf-dist/tex/latex/tabu/tabu.sty (/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty)/build/ppl-1.2/src/ppl.hh:44030: warning: no matching class member found for Parma_Polyhedra_Library::Constraint_System_const_iterator::Constraint_System_const_iterator(const Parma_Polyhedra_Library::Linear_System< Parma_Polyhedra_Library::Constraint >::const_iterator &iter, const Constraint_System &cs) Possible candidates: Parma_Polyhedra_Library::Constraint_System_const_iterator::Constraint_System_const_iterator() Parma_Polyhedra_Library::Constraint_System_const_iterator::Constraint_System_const_iterator(const Constraint_System_const_iterator &y) Parma_Polyhedra_Library::Constraint_System_const_iterator::Constraint_System_const_iterator(const Linear_System< Constraint > ::const_iterator &iter, const Constraint_System &cs) )) (/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty (/build/ppl-1.2/doc/ppl.sty) (/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty) (/build/ppl-1.2/doc/ppl.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty))) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)))) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty)))) Writing index file refman.idx No file refman.aux. (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd Writing index file refman.idx No file refman.aux. (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd)) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd)) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] ) [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty)) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)))) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd)) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd)) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd)) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/Ustmry.fd (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/Ustmry.fd))GPL:-1: warning: multiple use of section label 'GPL', (first occurrence: /build/ppl-1.2/doc/gpl.dox, line 6) GFDL:-1: warning: multiple use of section label 'GFDL', (first occurrence: /build/ppl-1.2/doc/fdl.dox, line 6) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd)) [1 [1{/var/lib/texmf/fo nts/map/pdftex/updmap/pdftex.map{/var/lib/texmf/fo nts/map/pdftex/updmap/pdftex.map}} ] ] [2] [2] (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd)) [3 [3 ] [4] ] [4] [1 [1]] [2] [2] (./index.tex (./index.tex) (./GPL.texpdfTeX warning (ext4) : destination with the same identifier (name{page.1}) has been already used, du plicate ignored \relax l.22 [1] Underfull \hbox (badness 10000) detected at line 9 [][][] pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored \relax l.25 [1pdfTeX warning (ext4): destination with the same identifier (name{page .2}) has been already used, duplicate ignored \relax l.58 [2])] (./GPL.texpdfTeX warning (ext4): destination with the same identifier (name{page .3}) has been already used, duplicate ignored \relax l.84 [3pdfTeX warning (ext4): destination with the same identifie r (name{page.2}) has been already used, duplicate ignored \relax l.37 ` `Copyright'' also means copyright-\/like laws that apply to other kind... [2]]pdfTeX warning (ext4): destination with the same identifier (name{page .4}) has been already used, duplicate ignored \relax l.121 [4]pdfTeX warning (ext4): destination with the same identifier (name{page.3}) h as been already used, duplicate ignored \relax l.68 [3 [5]] [6] [7pdfTeX warning (ext4): destination with the same identifier (name{page .4}) has been already used, duplicate ignored \relax l.104 [4]] [5] [6] [7] [8] [8]) Overfull \hbox (10.35326pt too wide) in paragraph at lines 291--187 \OT1/ptm/m/n/10 stead of this Li-cense. But first, please read [][]\OT1/pcr/m/n /10 http[]://www.[]gnu.[]org/philosophy/why-not-lgpl.[] [9] (./GFDL.tex [9 [10]]) Overfull \hbox (10.35326pt too wide) in paragraph at lines 291--187 \OT1/ptm/m/n/10 stead of this Li-cense. But first, please read [][]\OT1/pcr/m/n /10 http[]://www.[]gnu.[]org/philosophy/why-not-lgpl.[] (./GFDL.tex [11 [10]] [12] [11] Overfull \hbox (7.49895pt too wide) in paragraph at lines 97--98 \OT1/ptm/m/n/10 ments, form-ing one sec-tion En-ti-tled "[]History"; like-wise com-bine any sec-tions En-ti-tled "[]Acknowledgements", [13 [12]]) [13 (./PI_SI_Features.tex] [14] Overfull \hbox (7.49895pt too wide) in paragraph at lines 97--98 \OT1/ptm/m/n/10 ments, form-ing one sec-tion En-ti-tled "[]History"; like-wise com-bine any sec-tions En-ti-tled "[]Acknowledgements", Underfull \vbox (badness 1377) has occurred while \output is active [14]) (./modules.tex LaTeX Warning: Reference `group__PPL__C__interface' on page 15 undefined on inp ut line 3. LaTeX Warning: Reference `group__Init' on page 15 undefined on input line 4. LaTeX Warning: Reference `group__Version' on page 15 undefined on input line 5. LaTeX Warning: Reference `group__Error' on page 15 undefined on input line 6. LaTeX Warning: Reference `group__Timeout' on page 15 undefined on input line 7. LaTeX Warning: Reference `group__Datatypes' on page 15 undefined on input line 8. ) Underfull \hbox (badness 10000) in paragraph at lines 19--20 Underfull \hbox (badness 10000) in paragraph at lines 21--22 Underfull \hbox (badness 10000) in paragraph at lines 23--24 Overfull \hbox (3.40186pt too wide) in paragraph at lines 28--29 []\OT1/ptm/m/n/10 The prod-uct do-mains con-sist of Direct[][][][]Product[][][] []S[][][]T, Smash[][][][]Product[][][][]S[][][]T, Constraints[][][][]Product[] [15 (./annotated.tex] [16 LaTeX Warning: Reference `interfaceppl__Artificial__Parameter__Sequence__const_ _iterator__tag' on page 15 undefined on input line 3. LaTeX Warning: Reference `interfaceppl__Artificial__Parameter__tag' on page 15 undefined on input line 4. LaTeX Warning: Reference `interfaceppl__BD__Shape__mpq__class__tag' on page 15 undefined on input line 5. LaTeX Warning: Reference `interfaceppl__BD__Shape__mpz__class__tag' on page 15 undefined on input line 6. [15]] Underfull \vbox (badness 10000) has occurred while \output is active [17] Underfull \hbox (badness 10000) in paragraph at lines 241--242 Underfull \hbox (badness 10000) in paragraph at lines 246--247 [18] Underfull \hbox (badness 10000) in paragraph at lines 251--252 Underfull \hbox (badness 10000) in paragraph at lines 256--257 Underfull \hbox (badness 10000) in paragraph at lines 261--262 Underfull \hbox (badness 10000) in paragraph at lines 266--267 Underfull \hbox (badness 10000) in paragraph at lines 271--272 Underfull \hbox (badness 10000) in paragraph at lines 276--277 Underfull \hbox (badness 10000) in paragraph at lines 281--282 Underfull \hbox (badness 10000) in paragraph at lines 286--287 Underfull \hbox (badness 10000) in paragraph at lines 291--292 Underfull \hbox (badness 10000) in paragraph at lines 296--297 Underfull \hbox (badness 10000) in paragraph at lines 303--304 Underfull \hbox (badness 10000) in paragraph at lines 308--309 [19] LaTeX Warning: Reference `interfaceppl__Coefficient__tag' on page 16 undefined on input line 7. LaTeX Warning: Reference `interfaceppl__Congruence__System__const__iterator__ta g' on page 16 undefined on input line 8. LaTeX Warning: Reference `interfaceppl__Congruence__System__tag' on page 16 und efined on input line 9. LaTeX Warning: Reference `interfaceppl__Congruence__tag' on page 16 undefined o n input line 10. LaTeX Warning: Reference `interfaceppl__Constraint__System__const__iterator__ta g' on page 16 undefined on input line 11. LaTeX Warning: Reference `interfaceppl__Constraint__System__tag' on page 16 und efined on input line 12. LaTeX Warning: Reference `interfaceppl__Constraint__tag' on page 16 undefined o n input line 13. LaTeX Warning: Reference `interfaceppl__Constraints__Product__C__Polyhedron__Gr id__tag' on page 16 undefined on input line 14. LaTeX Warning: Reference `interfaceppl__Generator__System__const__iterator__tag ' on page 16 undefined on input line 15. LaTeX Warning: Reference `interfaceppl__Generator__System__tag' on page 16 unde fined on input line 16. LaTeX Warning: Reference `interfaceppl__Generator__tag' on page 16 undefined on input line 17. LaTeX Warning: Reference `interfaceppl__Grid__Generator__System__const__iterato r__tag' on page 16 undefined on input line 18. LaTeX Warning: Reference `interfaceppl__Grid__Generator__System__tag' on page 1 6 undefined on input line 19. LaTeX Warning: Reference `interfaceppl__Grid__Generator__tag' on page 16 undefi ned on input line 20. LaTeX Warning: Reference `interfaceppl__Grid__tag' on page 16 undefined on inpu t line 21. LaTeX Warning: Reference `interfaceppl__Linear__Expression__tag' on page 16 und efined on input line 22. LaTeX Warning: Reference `interfaceppl__MIP__Problem__tag' on page 16 undefined on input line 23. LaTeX Warning: Reference `interfaceppl__Octagonal__Shape__mpq__class__tag' on p age 16 undefined on input line 24. LaTeX Warning: Reference `interfaceppl__Octagonal__Shape__mpz__class__tag' on p age 16 undefined on input line 25. [16] Underfull \hbox (badness 10000) in paragraph at lines 313--314 Underfull \hbox (badness 10000) in paragraph at lines 318--319 Underfull \hbox (badness 10000) in paragraph at lines 323--324 Underfull \hbox (badness 10000) in paragraph at lines 334--335 Overfull \hbox (70.9953pt too wide) in paragraph at lines 339--340 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]M[]I[]P[][][][]Problem(+[]Dimension[][][] []Type, +[]Constraint[][][][]System, +[]Lin[][][][]Expr, +[]Optimization[] Underfull \hbox (badness 10000) in paragraph at lines 339--340 Underfull \hbox (badness 10000) in paragraph at lines 344--345 Underfull \hbox (badness 10000) in paragraph at lines 349--350 Underfull \hbox (badness 10000) in paragraph at lines 354--355 Underfull \hbox (badness 10000) in paragraph at lines 359--360 Underfull \hbox (badness 10000) in paragraph at lines 364--365 Underfull \hbox (badness 10000) in paragraph at lines 369--370 Underfull \hbox (badness 10000) in paragraph at lines 374--375 [20] LaTeX Warning: Reference `interfaceppl__PIP__Decision__Node__tag' on page 17 un defined on input line 26. LaTeX Warning: Reference `interfaceppl__PIP__Problem__tag' on page 17 undefined on input line 27. LaTeX Warning: Reference `interfaceppl__PIP__Solution__Node__tag' on page 17 un defined on input line 28. LaTeX Warning: Reference `interfaceppl__PIP__Tree__Node__tag' on page 17 undefi ned on input line 29. LaTeX Warning: Reference `interfaceppl__Pointset__Powerset__C__Polyhedron__cons t__iterator__tag' on page 17 undefined on input line 30. LaTeX Warning: Reference `interfaceppl__Pointset__Powerset__C__Polyhedron__iter ator__tag' on page 17 undefined on input line 31. Overfull \hbox (20.64815pt too wide) in paragraph at lines 31--31 \OT1/ptm/b/n/10 Types and func-tions for it-er-at-ing on the dis-juncts of a [ ][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] LaTeX Warning: Reference `interfaceppl__Pointset__Powerset__C__Polyhedron__tag' on page 17 undefined on input line 32. LaTeX Warning: Reference `interfaceppl__Pointset__Powerset__NNC__Polyhedron__co nst__iterator__tag' on page 17 undefined on input line 33. LaTeX Warning: Reference `interfaceppl__Pointset__Powerset__NNC__Polyhedron__it erator__tag' on page 17 undefined on input line 34. LaTeX Warning: Reference `interfaceppl__Pointset__Powerset__NNC__Polyhedron__ta g' on page 17 undefined on input line 35. LaTeX Warning: Reference `interfaceppl__Polyhedron__tag' on page 17 undefined o n input line 36. LaTeX Warning: Reference `interfaceppl__Rational__Box__tag' on page 17 undefine d on input line 37. ) (./group__PPL__C__interface.tex) [17] (./group__Init.tex Underfull \hbox (badness 10000) in paragraph at lines 379--380 Overfull \hbox (7.87047pt too wide) in paragraph at lines 382--383 []\OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Optimization[][][][]Mode \OT1/ptm/m /it/10 with the op-ti-miza-tion mode for the M[]IP Prob-lem ref-er-enced by \OT 1/pcr/m/sl/10 Handle\OT1/ptm/m/it/10 . Underfull \hbox (badness 10000) in paragraph at lines 384--385 Overfull \hbox (9.2138pt too wide) in paragraph at lines 389--390 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]space[][][]di mensions[][][]and[][][]embed( +[]Handle, +[]Dimension[][][][]Type) Underfull \hbox (badness 10000) in paragraph at lines 389--390 Underfull \hbox (badness 10000) in paragraph at lines 389--390 Underfull \hbox (badness 10000) in paragraph at lines 394--395 Underfull \hbox (badness 10000) in paragraph at lines 399--400 Underfull \hbox (badness 10000) in paragraph at lines 404--405 Underfull \hbox (badness 10000) in paragraph at lines 409--410 Overfull \hbox (5.6138pt too wide) in paragraph at lines 414--415 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]set[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Value) Underfull \hbox (badness 10000) in paragraph at lines 414--415 Underfull \hbox (badness 10000) in paragraph at lines 414--415 Overfull \hbox (62.5953pt too wide) in paragraph at lines 419--420 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]get[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Name, ?Control[] Underfull \hbox (badness 10000) in paragraph at lines 419--420 Overfull \hbox (18.68352pt too wide) in paragraph at lines 422--423 []\OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Control[][][][]Parameter[][][][]Val ue \OT1/ptm/m/it/10 with the value of the con-trol pa-ram-e-ter \OT1/pcr/m/sl/1 0 Control[][][][]Parameter[] Underfull \hbox (badness 10000) in paragraph at lines 424--425 Overfull \hbox (41.0819pt too wide) in paragraph at lines 427--428 []\OT1/ptm/m/it/10 Updates the M[]IP Prob-lem ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 so that the op-ti-miza-tion mode is changed to \OT1/pcr /m/sl/10 Optimization[] Underfull \hbox (badness 10000) in paragraph at lines 429--430 Underfull \hbox (badness 10000) in paragraph at lines 434--435 Overfull \hbox (15.46123pt too wide) in paragraph at lines 437--438 []\OT1/ptm/m/it/10 Solves the M[]IP prob-lem ref-er-enced by \OT1/pcr/m/sl/10 H andle \OT1/ptm/m/it/10 and uni-fies \OT1/pcr/m/sl/10 M[]I[]P[][][][]Problem[][] [][]Status \OT1/ptm/m/it/10 with[]: \OT1/pcr/m/sl/10 unfeasible\OT1/ptm/m/it/10 , Underfull \hbox (badness 10000) in paragraph at lines 439--440 [21] Underfull \hbox (badness 10000) detected at line 35 [][][] Underfull \hbox (badness 10000) detected at line 48 [][][] [18]) [19] (./group__Version.tex Underfull \hbox (badness 10000) in paragraph at lines 444--445 Underfull \hbox (badness 10000) in paragraph at lines 449--450 Overfull \hbox (13.3953pt too wide) in paragraph at lines 454--456 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][]objectiv e[][][]function(+[]Handle, +[]Generator, ?Coeff[] Overfull \hbox (41.48175pt too wide) in paragraph at lines 454--456 \OT1/ptm/m/it/10 Evaluates the ob-jec-tive func-tion of the M[]IP prob-lem ref- er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 at point \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Coefficient[] Underfull \hbox (badness 10000) in paragraph at lines 457--458 Underfull \hbox (badness 10000) in paragraph at lines 462--463 Underfull \hbox (badness 10000) in paragraph at lines 467--468 Underfull \hbox (badness 10000) in paragraph at lines 476--477 Overfull \hbox (4.9953pt too wide) in paragraph at lines 484--485 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]P[]I[]P[][][][]Problem(+[]Dimension[][][] []Type, +[]Constraint[][][][]System, +[]Vars[][][][]List, -[] Underfull \hbox (badness 10000) in paragraph at lines 484--485 [22] Overfull \hbox (62.5953pt too wide) in paragraph at lines 504--505 []\OT1/pcr/m/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]get[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Name, ?Control[] Underfull \hbox (badness 10000) in paragraph at lines 504--505 Overfull \hbox (18.68352pt too wide) in paragraph at lines 507--508 []\OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Control[][][][]Parameter[][][][]Val ue \OT1/ptm/m/it/10 with the value of the con-trol pa-ram-e-ter \OT1/pcr/m/sl/1 0 Control[][][][]Parameter[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 512--514 []\OT1/pcr/m/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]di mensions[][][]and[][][]embed( +[]Handle, +[]Dimension[][][][]Type1, Overfull \hbox (5.6138pt too wide) in paragraph at lines 524--525 []\OT1/pcr/m/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]set[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Value) Underfull \hbox (badness 10000) in paragraph at lines 524--525 Underfull \hbox (badness 10000) in paragraph at lines 524--525 Underfull \hbox (badness 10000) in paragraph at lines 544--545 [23]) (./configured_domains_predicates.tex [24] [20]) [21] (./group__Error.tex Overfull \hbox (6.19531pt too wide) in paragraph at lines 31--33 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]space[ ][][]dimension(+[]Dimension[][][][]Type, +[]Universe[][][]or[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 38--40 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] space[][][]dimension(+[]Dimension[][][][]Type, +[]Universe[] Underfull \hbox (badness 10000) in paragraph at lines 68--69 [25 (/usr/share/texlive/texmf-dist/tex/latex/psnfss/omsptm.fd]) Overfull \hbox (11.00215pt too wide) in paragraph at lines 101--103 \OT1/ptm/m/it/10 Builds a new N[]NC poly-he-dron \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (12.11226pt too wide) in paragraph at lines 107--109 \OT1/ptm/m/it/10 Builds a new N[]NC poly-he-dron \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 110--112 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 113--115 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 116--118 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 119--121 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 122--124 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[][ ][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, [26] Overfull \hbox (39.2138pt too wide) in paragraph at lines 125--127 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (39.2138pt too wide) in paragraph at lines 128--130 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[]N []C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (51.2138pt too wide) in paragraph at lines 131--133 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (2.5953pt too wide) in paragraph at lines 134--136 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Grid [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 137--139 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 140--142 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rati onal[][][][]Box[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (39.2138pt too wide) in paragraph at lines 143--145 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 146--148 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 149--151 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (1.39532pt too wide) in paragraph at lines 152--154 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 155--157 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (22.41382pt too wide) in paragraph at lines 158--160 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 161--163 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[] [27] Overfull \hbox (22.41382pt too wide) in paragraph at lines 164--166 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 167--169 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[] [28] Overfull \hbox (15.79529pt too wide) in paragraph at lines 235--237 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][]constraint (+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (28.99063pt too wide) in paragraph at lines 235--237 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (3.79529pt too wide) in paragraph at lines 238--240 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][]generator( +[]Handle, +[]Generator, ?Relation[] Overfull \hbox (22.99063pt too wide) in paragraph at lines 238--240 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . Overfull \hbox (15.79529pt too wide) in paragraph at lines 241--243 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][]congruence (+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (28.99063pt too wide) in paragraph at lines 241--243 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (16.41379pt too wide) in paragraph at lines 262--264 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]maximize(+[]Handle, +[]Lin[][][][] Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (16.41379pt too wide) in paragraph at lines 267--269 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]minimize(+[]Handle, +[]Lin[][][][] Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) [29] Overfull \hbox (10.9953pt too wide) in paragraph at lines 272--274 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]maximize[][][]with[][][]point(+[]H andle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (10.9953pt too wide) in paragraph at lines 277--279 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]minimize[][][]with[][][]point(+[]H andle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] [30] Overfull \hbox (2.92062pt too wide) in paragraph at lines 347--349 \OT1/ptm/m/it/10 Transforms the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 H andle \OT1/ptm/m/it/10 sub-sti-tut-ing the affine ex-pres-sion for \OT1/pcr/m/s l/10 Lin[][][][]Expr/Coeff Overfull \hbox (14.5953pt too wide) in paragraph at lines 350--352 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][]image(+[] Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[]Lin[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 353--355 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][]preimage( +[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[] Overfull \hbox (32.0138pt too wide) in paragraph at lines 356--358 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]image (+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[][][][]Symbol, Overfull \hbox (13.3953pt too wide) in paragraph at lines 359--361 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]preim age(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] [31] Overfull \hbox (6.19531pt too wide) in paragraph at lines 362--364 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]image [][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 365--367 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]preim age[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][] Overfull \hbox (44.0138pt too wide) in paragraph at lines 368--370 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]wrap[][][]assign(+[]Handle, +[]Lis t[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[]Representation, [32] Overfull \hbox (1.62299pt too wide) in paragraph at lines 6--20 [][]\OT1/ptm/m/n/10 P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]O[]U[]T[][][][]O[]F[][] [][]M[]E[]M[]O[]RY[][], [][]P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]V[]A[]L[] I[]D[][][][]A[]R[]G[]U[]M[]E[]NT[][], [][]P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]D []O[]M[] Overfull \hbox (1.35289pt too wide) in paragraph at lines 6--20 [][]\OT1/ptm/m/n/10 P[]P[]L[][][][]A[]R[]I[]T[]H[]M[]E[]T[]I[]C[][][][]O[]V[]E[ ]R[]F[]L[]OW[][], [][]P[]P[]L[][][][]S[]T[]D[]I[]O[][][][]E[]R[]R[]OR[][], [][] P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]T[]E[]R[]N[]A[]L[][][][]E[]R[]R[]OR[] [], [][]P[] Package longtable Warning: Column widths have changed (longtable) in table 1 on input line 88. [22 Overfull \hbox (29.6138pt too wide) in paragraph at lines 399--401 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]context[] [][]assign(+[]Handle[][][]1, +[]Handle[][][]2, ?Boolean) Overfull \hbox (16.9953pt too wide) in paragraph at lines 402--404 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]linear[][][]partition(+[]Handle[][ ][]1, +[]Handle[][][]2, -[]Handle[][][]3, -[]Handle[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 409--411 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][] assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 412--414 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign[][ ][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 421--423 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[][] []tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]C[][][]unsigned[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 427--429 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 430--432 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 433--435 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapolat ion[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] [33]]) [23] (./group__Timeout.tex Overfull \hbox (12.19531pt too wide) in paragraph at lines 436--438 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapolat ion[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 439--441 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[][][] Overfull \hbox (2.5953pt too wide) in paragraph at lines 442--444 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[][][] Overfull \hbox (8.5953pt too wide) in paragraph at lines 445--447 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapolat ion[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 448--450 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapolat ion[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] [34] Package longtable Warning: Column widths have changed (longtable) in table 2 on input line 36. Underfull \hbox (badness 10000) detected at line 47 [][][] Overfull \hbox (4.67143pt too wide) in paragraph at lines 48--49 []\OT1/pcr/m/n/10 P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]V[]A[]L[]I[]D[][][] []A[]R[]G[]U[]M[]E[]NT \OT1/ptm/bc/n/10 if \OT1/pcr/m/n/10 unscaled[][][]weight \OT1/ptm/bc/n/10 is zero or if the com-puted weight thresh- Package longtable Warning: Column widths have changed (longtable) in table 3 on input line 56. [24 Overfull \hbox (11.6138pt too wide) in paragraph at lines 467--469 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][] []and[][][]project(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (2.0138pt too wide) in paragraph at lines 473--475 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[][][ ]dimensions(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (14.0138pt too wide) in paragraph at lines 476--478 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]expand[][][]space[][][]dimension(+ []Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[][][][]Type) Overfull \hbox (0.19531pt too wide) in paragraph at lines 479--481 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]fold[][][]space[][][]dimensions(+[ ]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[]P[]P[]L[][][] Overfull \hbox (12.19531pt too wide) in paragraph at lines 501--503 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][]space[][][]dimension( +[]Dimension[][][][]Type, +[]Universe[][][]or[][][][]Empty, -[] [35] Underfull \hbox (badness 10000) detected at line 59 [][][] Underfull \hbox (badness 10000) detected at line 62 [][][] )] [25] (./group__Datatypes.tex Underfull \hbox (badness 10000) in paragraph at lines 522--523 Overfull \hbox (2.5953pt too wide) in paragraph at lines 552--554 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 555--557 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Poly hedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 561--563 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][]Box [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (12.81381pt too wide) in paragraph at lines 564--566 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, [36] Overfull \hbox (12.81381pt too wide) in paragraph at lines 567--569 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (54.81381pt too wide) in paragraph at lines 570--572 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (54.81381pt too wide) in paragraph at lines 573--575 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, [37] Overfull \hbox (3.74069pt too wide) in paragraph at lines 43--45 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraint[][][][]System[] [][]const[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/ bc/n/10 ppl[][][]const[][][][]Constraint[][][][]System[][][]const[] Overfull \hbox (0.36111pt too wide) in paragraph at lines 61--63 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/b c/n/10 ppl[][][]const[][][][]Generator[][][][]System[][][]const[] [26 Overfull \hbox (7.44052pt too wide) in paragraph at lines 635--637 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Dimension[][][][]Type \OT1/ptm/m/it/1 0 with the di-men-sion of the vec-tor space en-clos-ing the grid ref-er-enced b y \OT1/pcr/m/sl/10 Handle\OT1/ptm/m/it/10 . Overfull \hbox (4.41379pt too wide) in paragraph at lines 641--643 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]relation[][][]with[][][]constraint(+[]Ha ndle, +[]Constraint, ?Relation[][][][]List) Overfull \hbox (0.56071pt too wide) in paragraph at lines 641--643 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (4.41379pt too wide) in paragraph at lines 647--649 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]relation[][][]with[][][]congruence(+[]Ha ndle, +[]Congruence, ?Relation[][][][]List) Overfull \hbox (0.56071pt too wide) in paragraph at lines 647--649 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (22.9953pt too wide) in paragraph at lines 650--652 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]relation[][][]with[][][]grid[][][]genera tor(+[]Handle, +[]Grid[][][][]Generator, ?Relation[] Overfull \hbox (41.6138pt too wide) in paragraph at lines 681--683 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]maximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean, [38]] Overfull \hbox (41.6138pt too wide) in paragraph at lines 686--688 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]minimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean, [39] Overfull \hbox (7.24037pt too wide) in paragraph at lines 728--730 \OT1/ptm/m/it/10 Updates the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ ptm/m/it/10 to one ob-tained by re-fin-ing its con-straint sys-tem with \OT1/pc r/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (13.48053pt too wide) in paragraph at lines 731--733 \OT1/ptm/m/it/10 Updates the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ ptm/m/it/10 to one ob-tained by re-fin-ing its con-gru-ence sys-tem with \OT1/p cr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (6.19531pt too wide) in paragraph at lines 759--761 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]bounded[][][]affine[][][]image(+[]Handle , +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[]Lin[][][][]Expr[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 762--764 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]bounded[][][]affine[][][]preimage(+[]Han dle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[]Lin[][][] Overfull \hbox (16.9953pt too wide) in paragraph at lines 765--767 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image(+[]Ha ndle, +[]P[]P[]L[][][][]Var, +[]Relation[][][][]Symbol, +[] Overfull \hbox (14.0138pt too wide) in paragraph at lines 768--770 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage(+[ ]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[][][][]Symbol, Overfull \hbox (18.19531pt too wide) in paragraph at lines 771--773 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][] lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[]Relation[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 774--776 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][ ][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[]Relation[] [40] Overfull \hbox (2.5953pt too wide) in paragraph at lines 777--779 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][] with[][][]congruence(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 780--782 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][ ][]with[][][]congruence(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 783--785 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][] lhs[][][]rhs[][][]with[][][]congruence(+[]Handle, +[]Lin[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 786--788 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][ ][]lhs[][][]rhs[][][]with[][][]congruence(+[]Handle, +[] Overfull \hbox (8.0138pt too wide) in paragraph at lines 789--791 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]wrap[][][]assign(+[]Handle, +[]List[][][ ]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[]Representation, [41] Overfull \hbox (6.19531pt too wide) in paragraph at lines 818--820 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[][] []with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 821--823 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[][][ ]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 830--832 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]widening[][][]assign[][][]with[][][]toke ns(+[]Handle[][][]1, +[]Handle[][][]2, +[]C[][][]unsigned[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 836--838 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolati on[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 839--841 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolatio n[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 842--844 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolati on[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 845--847 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolatio n[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.99101pt too wide) in paragraph at lines 854--856 \OT1/ptm/m/it/10 Assigns to the grid \OT1/pcr/m/sl/10 P \OT1/ptm/m/it/10 ref-er -enced by \OT1/pcr/m/sl/10 Handle[][][]1 \OT1/ptm/m/it/10 the con-cate-na-tion of \OT1/pcr/m/sl/10 P \OT1/ptm/m/it/10 and the grid ref-er-enced by \OT1/pcr/m/ sl/10 Handle[] [42 Overfull \hbox (1.80132pt too wide) in paragraph at lines 76--78 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/1 0 ppl[][][][]Congruence[][][][]System[][][]const[][][]iterator[] Overfull \hbox (16.4409pt too wide) in paragraph at lines 139--141 [][] \OT1/ptm/bc/n/10 type-def struct ppl[][][][]Artificial[][][][]Parameter[][ ][][]Sequence[][][]tag const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][ ][]const[][][][]Artificial[][][][]Parameter[][][][]Sequence[] [27]] Overfull \hbox (6.19531pt too wide) in paragraph at lines 898--900 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][]space[ ][][]dimension(+[]Dimension[][][][]Type, +[]Universe[][][]or[] [43] Underfull \hbox (badness 10000) in paragraph at lines 919--920 Overfull \hbox (1.39532pt too wide) in paragraph at lines 943--945 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (1.39532pt too wide) in paragraph at lines 946--948 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (27.2138pt too wide) in paragraph at lines 949--951 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[][ ][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (39.2138pt too wide) in paragraph at lines 952--954 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[]N []C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, [44] Overfull \hbox (2.5953pt too wide) in paragraph at lines 955--957 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Grid [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 958--960 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rati onal[][][][]Box[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 961--963 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 964--966 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (22.41382pt too wide) in paragraph at lines 967--969 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, Overfull \hbox (22.41382pt too wide) in paragraph at lines 970--972 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, [45] Overfull \hbox (25.3953pt too wide) in paragraph at lines 1038--1040 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][][]c onstraint(+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (13.3953pt too wide) in paragraph at lines 1041--1043 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][][]g enerator(+[]Handle, +[]Generator, ?Relation[] Overfull \hbox (25.3953pt too wide) in paragraph at lines 1044--1046 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][][]c ongruence(+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (2.0138pt too wide) in paragraph at lines 1053--1055 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][]c onstraints(+[]Handle, ?Constraint[][][][]System) Overfull \hbox (2.0138pt too wide) in paragraph at lines 1056--1058 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][]c ongruences(+[]Handle, ?Congruence[][][][]System) Overfull \hbox (35.6138pt too wide) in paragraph at lines 1059--1061 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]has[][][]upper[][][]bound (+[]Handle, +[]Var, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) [46] Overfull \hbox (27.11154pt too wide) in paragraph at lines 190--192 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[][][][]Grid[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][ ]\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[] Overfull \hbox (14.85136pt too wide) in paragraph at lines 193--195 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[][][][]Grid[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^ C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Constraints[][][][]Product[] [28 Overfull \hbox (35.6138pt too wide) in paragraph at lines 1064--1066 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]has[][][]lower[][][]bound (+[]Handle, +[]Var, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (26.0138pt too wide) in paragraph at lines 1069--1071 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]maximize(+[]Handle, +[]Li n[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (26.0138pt too wide) in paragraph at lines 1074--1076 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]minimize(+[]Handle, +[]Li n[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (20.5953pt too wide) in paragraph at lines 1079--1081 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]maximize[][][]with[][][]p oint(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 1084--1086 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]minimize[][][]with[][][]p oint(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] [47]] Overfull \hbox (3.2138pt too wide) in paragraph at lines 1142--1144 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[][ ][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var) Overfull \hbox (6.24055pt too wide) in paragraph at lines 1148--1150 \OT1/ptm/m/it/10 Transforms the ra-tio-nal box ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 sub-sti-tut-ing the affine ex-pres-sion for \OT1/pcr/m /sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (6.19531pt too wide) in paragraph at lines 1151--1153 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]bounded[][][]affine[][][] image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[] [48] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1154--1156 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]bounded[][][]affine[][][] preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][] Overfull \hbox (4.9953pt too wide) in paragraph at lines 1157--1159 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (22.9953pt too wide) in paragraph at lines 1160--1162 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1163--1165 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]image[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 1166--1168 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]preimage[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[] Overfull \hbox (53.6138pt too wide) in paragraph at lines 1169--1171 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]wrap[][][]assign(+[]Handl e, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[]Representation, [49] Overfull \hbox (39.2138pt too wide) in paragraph at lines 1191--1193 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][][] context[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, ?Boolean) Overfull \hbox (26.5953pt too wide) in paragraph at lines 1194--1196 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]linear[][][]partition(+[] Handle[][][]1, +[]Handle[][][]2, -[]Handle[][][]3, -[]Handle[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1201--1203 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[][ ][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (45.79532pt too wide) in paragraph at lines 1207--1209 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[][][ ]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]C[][][]unsigned[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1213--1215 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][] []extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1216--1218 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][] []extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[][][] Underfull \vbox (badness 2503) has occurred while \output is active [50] Overfull \hbox (9.2138pt too wide) in paragraph at lines 1235--1237 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dimen sions[][][]and[][][]embed(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (0.19531pt too wide) in paragraph at lines 1238--1240 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dimen sions[][][]and[][][]project(+[]Handle, +[]Dimension[][][] Overfull \hbox (11.6138pt too wide) in paragraph at lines 1244--1246 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][]s pace[][][]dimensions(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (2.5953pt too wide) in paragraph at lines 1247--1249 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]expand[][][]space[][][]di mension(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1250--1252 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]fold[][][]space[][][]dime nsions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[]P[]P[] [51] Overfull \hbox (18.00154pt too wide) in paragraph at lines 202--204 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/pt m/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[ ] Overfull \hbox (21.60114pt too wide) in paragraph at lines 208--210 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][ ]\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[] Overfull \hbox (9.34096pt too wide) in paragraph at lines 211--213 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^ C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.77115pt too wide) in paragraph at lines 226--228 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][]tag[][] $\OMS/cms y/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (8.4811pt too wide) in paragraph at lines 229--231 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][]tag[][] const $\O MS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Pointset[] [29] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1272--1274 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[]Universe[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 1279--1281 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][]constraints(+[]Constraint[][][][]System, -[]Handle) Overfull \hbox (3.2138pt too wide) in paragraph at lines 1282--1284 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][]congruences(+[]Congruence[][][][]System, -[]Handle) Underfull \hbox (badness 10000) in paragraph at lines 1293--1294 Overfull \hbox (28.99533pt too wide) in paragraph at lines 1317--1319 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 1317--1319 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 1320--1322 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 1320--1322 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] [52] Overfull \hbox (1.39532pt too wide) in paragraph at lines 1323--1325 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1326--1328 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (12.81381pt too wide) in paragraph at lines 1329--1331 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 1332--1334 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (11.61383pt too wide) in paragraph at lines 1335--1337 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (11.61383pt too wide) in paragraph at lines 1338--1340 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 1341--1343 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 1344--1346 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] [53] Overfull \hbox (4.99533pt too wide) in paragraph at lines 1387--1389 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strictl y[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, +[] Overfull \hbox (32.59534pt too wide) in paragraph at lines 1390--1392 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][][ ]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][ ]1, +[]Handle[] Overfull \hbox (56.5953pt too wide) in paragraph at lines 1412--1414 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relatio n[][][]with[][][]constraint(+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1412--1414 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (44.5953pt too wide) in paragraph at lines 1415--1417 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relatio n[][][]with[][][]generator(+[]Handle, +[]Generator, ?Relation[] Overfull \hbox (13.12079pt too wide) in paragraph at lines 1415--1417 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . Overfull \hbox (56.5953pt too wide) in paragraph at lines 1418--1420 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relatio n[][][]with[][][]congruence(+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1418--1420 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . [54] [30] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1427--1429 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][] []minimized[][][]constraints(+[]Handle, ?Constraint[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1430--1432 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][] []minimized[][][]congruences(+[]Handle, ?Congruence[][][] Overfull \hbox (57.2138pt too wide) in paragraph at lines 1433--1435 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (57.2138pt too wide) in paragraph at lines 1438--1440 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (0.81381pt too wide) in paragraph at lines 1443--1445 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, Overfull \hbox (0.81381pt too wide) in paragraph at lines 1448--1450 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, Underfull \vbox (badness 1259) has occurred while \output is active [55] Overfull \hbox (25.80045pt too wide) in paragraph at lines 1484--1486 \OT1/ptm/m/it/10 Updates the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Handle \ OT1/ptm/m/it/10 to one ob-tained by re-fin-ing its con-straint sys-tem with \OT 1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (27.2138pt too wide) in paragraph at lines 1490--1492 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine[ ][][]with[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (27.2138pt too wide) in paragraph at lines 1493--1495 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine[ ][][]with[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (3.79532pt too wide) in paragraph at lines 1506--1508 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]unconst rain[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 1509--1511 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]affine[ ][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[]Coeff) Overfull \hbox (0.19531pt too wide) in paragraph at lines 1512--1514 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]affine[ ][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[] [56] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1515--1517 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounded [][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1518--1520 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounded [][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 1521--1523 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 1524--1526 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1527--1529 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1530--1532 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, +[]Lin[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1533--1535 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wrap[][ ][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[] [57] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1555--1557 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simplif y[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (0.81381pt too wide) in paragraph at lines 1558--1560 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]linear[ ][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[]Handle[][][]3, Overfull \hbox (31.39532pt too wide) in paragraph at lines 1565--1567 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H[ ]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Ha ndle[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1568--1570 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[] [][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1577--1579 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]widenin g[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 1583--1585 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 1586--1588 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] [58] Overfull \hbox (31.39532pt too wide) in paragraph at lines 1589--1591 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1592--1594 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1595--1597 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 1598--1600 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1617--1619 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[]Dimension[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 1620--1622 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]project(+[]Handle, +[]Dimension[] [59] Overfull \hbox (10.41382pt too wide) in paragraph at lines 1623--1625 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove[ ][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var s) Overfull \hbox (18.19531pt too wide) in paragraph at lines 1626--1628 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove[ ][][]higher[][][]space[][][]dimensions(+[]Handle, +[]Dimension[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 1629--1631 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expand[ ][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1632--1634 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold[][ ][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1654--1656 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[]Universe[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 1661--1663 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][]constraints(+[]Constraint[][][][]System, -[]Handle) Overfull \hbox (3.2138pt too wide) in paragraph at lines 1664--1666 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][]congruences(+[]Congruence[][][][]System, -[]Handle) [60] Underfull \hbox (badness 10000) in paragraph at lines 1675--1676 Overfull \hbox (28.99533pt too wide) in paragraph at lines 1699--1701 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 1699--1701 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 1702--1704 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 1702--1704 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 1705--1707 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1708--1710 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (12.81381pt too wide) in paragraph at lines 1711--1713 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 1714--1716 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, +[] [61] Underfull \hbox (badness 10000) detected at line 333 [][][] Overfull \hbox (27.05392pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]io[][][]variable[][][]output[][][]function[][][]typ e[] \OT1/pcr/m/n/8 typedef const char$\OMS/cmsy/m/n/8 ^^C$ \OT1/pcr/m/n/8 ppl[] [][]io[][][]variable[][][]output[][][]function[][][]type([][]ppl[] Package longtable Warning: Column widths have changed (longtable) in table 4 on input line 383. Package longtable Warning: Column widths have changed (longtable) in table 5 on input line 411. [31]This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=latex) restricted \write18 enabled. Overfull \hbox (11.61383pt too wide) in paragraph at lines 1717--1719 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (11.61383pt too wide) in paragraph at lines 1720--1722 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 1723--1725 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 1726--1728 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (4.99533pt too wide) in paragraph at lines 1769--1771 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strictl y[][][]contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, +[] Overfull \hbox (32.59534pt too wide) in paragraph at lines 1772--1774 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][][ ]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][ ]1, +[]Handle[] [62]entering extended mode (./_formulas.tex Overfull \hbox (56.5953pt too wide) in paragraph at lines 1794--1796 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relatio n[][][]with[][][]constraint(+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1794--1796 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (44.5953pt too wide) in paragraph at lines 1797--1799 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relatio n[][][]with[][][]generator(+[]Handle, +[]Generator, ?Relation[] Overfull \hbox (13.12079pt too wide) in paragraph at lines 1797--1799 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . Overfull \hbox (56.5953pt too wide) in paragraph at lines 1800--1802 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relatio n[][][]with[][][]congruence(+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1800--1802 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (0.19531pt too wide) in paragraph at lines 1809--1811 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][] []minimized[][][]constraints(+[]Handle, ?Constraint[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1812--1814 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][] []minimized[][][]congruences(+[]Handle, ?Congruence[][][] Overfull \hbox (57.2138pt too wide) in paragraph at lines 1815--1817 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (57.2138pt too wide) in paragraph at lines 1820--1822 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) [63 LaTeX2e <2018-12-01> ] Overfull \hbox (0.81381pt too wide) in paragraph at lines 1825--1827 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, Overfull \hbox (0.81381pt too wide) in paragraph at lines 1830--1832 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, [64] Overfull \hbox (25.80045pt too wide) in paragraph at lines 1866--1868 \OT1/ptm/m/it/10 Updates the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Handle \ OT1/ptm/m/it/10 to one ob-tained by re-fin-ing its con-straint sys-tem with \OT 1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (27.2138pt too wide) in paragraph at lines 1872--1874 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine[ ][][]with[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (27.2138pt too wide) in paragraph at lines 1875--1877 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine[ ][][]with[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (3.79532pt too wide) in paragraph at lines 1888--1890 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]unconst rain[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 1891--1893 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]affine[ ][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[]Coeff) Overfull \hbox (0.19531pt too wide) in paragraph at lines 1894--1896 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]affine[ ][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1897--1899 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounded [][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1900--1902 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounded [][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 1903--1905 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 1906--1908 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] [65] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1909--1911 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1912--1914 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, +[]Lin[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1915--1917 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wrap[][ ][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1937--1939 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simplif y[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (0.81381pt too wide) in paragraph at lines 1940--1942 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]linear[ ][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[]Handle[][][]3, [66] Overfull \hbox (31.39532pt too wide) in paragraph at lines 1947--1949 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H[ ]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Ha ndle[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1950--1952 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[] [][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1959--1961 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]widenin g[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 1965--1967 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 1968--1970 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (31.39532pt too wide) in paragraph at lines 1971--1973 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1974--1976 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1977--1979 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 1980--1982 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] [67] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1999--2001 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[]Dimension[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 2002--2004 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]project(+[]Handle, +[]Dimension[] Overfull \hbox (10.41382pt too wide) in paragraph at lines 2005--2007 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove[ ][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var s) Overfull \hbox (18.19531pt too wide) in paragraph at lines 2008--2010 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove[ ][][]higher[][][]space[][][]dimensions(+[]Handle, +[]Dimension[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 2011--2013 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expand[ ][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 2014--2016 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold[][ ][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[] [68] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2036--2038 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2043--2045 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]constraints(+[]Constraint[][][][]System, -[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2046--2048 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]congruences(+[]Congruence[][][][]System, -[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2049--2051 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]generators(+[]Generator[][][][]System, -[] Underfull \hbox (badness 10000) in paragraph at lines 2057--2058 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2063--2065 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2066--2068 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[] [69] Package longtable Warning: Column widths have changed (longtable) in table 6 on input line 435. Package longtable Warning: Column widths have changed (longtable) in table 7 on input line 467. Overfull \hbox (19.9918pt too wide) in paragraph at lines 472--473 []\OT1/ptm/b/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][][ ][]Representation[] \OT1/pcr/m/n/8 enum [][]ppl[][][]enum[][][][]Bounded[][][][ ]Integer[][][][]Type[][][][]Representation[][] Package longtable Warning: Column widths have changed (longtable) in table 8 on input line 487. Underfull \hbox (badness 10000) detected at line 516 [][][] Package longtable Warning: Column widths have changed (longtable) in table 9 on input line 516. [32 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2072--2074 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Rational[][][][]Box(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2075--2077 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 2075--2077 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2078--2080 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 2078--2080 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2081--2083 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2084--2086 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[] Overfull \hbox (22.41382pt too wide) in paragraph at lines 2087--2089 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 2090--2092 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[] Overfull \hbox (54.81381pt too wide) in paragraph at lines 2093--2095 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (22.41382pt too wide) in paragraph at lines 2096--2098 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 2099--2101 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 2102--2104 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2105--2107 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]co mplexity(+[] [70]] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2108--2110 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]co mplexity(+[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2148--2150 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]co ntains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 2151--2153 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]st rictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[] Overfull \hbox (16.99533pt too wide) in paragraph at lines 2154--2156 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]is [][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2157--2159 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]eq uals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][] [71] Overfull \hbox (5.6138pt too wide) in paragraph at lines 2173--2175 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]af fine[][][]dimension(+[]Handle, ?Dimension[][][][]Type) Overfull \hbox (29.6138pt too wide) in paragraph at lines 2176--2178 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re lation[][][]with[][][]constraint(+[]Handle, +[]Constraint, Overfull \hbox (17.6138pt too wide) in paragraph at lines 2179--2181 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re lation[][][]with[][][]generator(+[]Handle, +[]Generator, Overfull \hbox (29.6138pt too wide) in paragraph at lines 2182--2184 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re lation[][][]with[][][]congruence(+[]Handle, +[]Congruence, Overfull \hbox (17.6138pt too wide) in paragraph at lines 2185--2187 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]constraints(+[]Handle, ?Constraint[][][][]System) Overfull \hbox (17.6138pt too wide) in paragraph at lines 2188--2190 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]congruences(+[]Handle, ?Congruence[][][][]System) Overfull \hbox (38.5953pt too wide) in paragraph at lines 2191--2193 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]minimized[][][]constraints(+[]Handle, ?Constraint[] Overfull \hbox (38.5953pt too wide) in paragraph at lines 2194--2196 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]minimized[][][]congruences(+[]Handle, ?Congruence[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2197--2199 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ma ximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2202--2204 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]mi nimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2207--2209 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ma ximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] [72] Package longtable Warning: Column widths have changed (longtable) in table 10 on input line 540. Underfull \hbox (badness 10000) detected at line 541 [][][] ) [33] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2212--2214 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]mi nimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2217--2219 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ex ternal[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2242--2244 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2245--2247 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2248--2250 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]constraint( +[]Handle, +[]Constraint) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2251--2253 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]congruence( +[]Handle, +[]Congruence) [73 (./interfaceppl__Artificial__Parameter__Sequence__const__iterator__tag.tex] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2254--2256 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2257--2259 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 2267--2269 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]un constrain[][][]space[][][]dimension(+[]Handle, +[]P[]P[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 2270--2272 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]un constrain[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2273--2275 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]af fine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, Overfull \hbox (14.61084pt too wide) in paragraph at lines 2273--2275 \OT1/ptm/m/it/10 Transforms the oc-tag-o-nal shape ref-er-enced by \OT1/pcr/m/s l/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/m /sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (0.19531pt too wide) in paragraph at lines 2276--2278 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]af fine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2279--2281 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]bo unded[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2282--2284 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]bo unded[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (9.2138pt too wide) in paragraph at lines 2285--2287 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (2.5953pt too wide) in paragraph at lines 2288--2290 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2291--2293 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[] [74] Overfull \hbox (7.82706pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Artificial[][][][]Paramete r[][][][]Sequence[][][]const[][][]iterator[][][]from[][][][]Artificial[][][][]P arameter[][][][]Sequence[] Overfull \hbox (23.68665pt too wide) in paragraph at lines 22--24 [][]\OT1/ptm/bc/n/10 const[][][]iterator[][] ([][]ppl[][][][]Artificial[][][][] Parameter[][][][]Sequence[][][]const[][][]iterator[][][]t[][] dst, [][]ppl[][][ ]const[][][][]Artificial[][][][]Parameter[] Overfull \hbox (26.38684pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Artificial[][][][]Paramete r[][][][]Sequence[][][]const[][][]iterator[][] ([][]ppl[][][]const[][][][]Artif icial[][][][]Parameter[][][][]Sequence[] Overfull \hbox (7.21704pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Seq uence[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]const[][][][] Artificial[][][][]Parameter[] Overfull \hbox (17.78696pt too wide) in paragraph at lines 35--37 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Seq uence[][][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Artificial[][ ][][]Parameter[][][][]Sequence[] ) (./interfaceppl__Artificial__Parameter__tag.tex Overfull \hbox (12.81381pt too wide) in paragraph at lines 2294--2296 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, Overfull \hbox (24.81381pt too wide) in paragraph at lines 2297--2299 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]wr ap[][][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, Overfull \hbox (31.39532pt too wide) in paragraph at lines 2316--2318 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]up per[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2319--2321 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]si mplify[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2322--2324 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li near[][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[] [75] Overfull \hbox (4.9309pt too wide) in paragraph at lines 15--17 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][]get[] [][][]Linear[][][][]Expression[][] ([][]ppl[][][]const[][][][]Artificial[][][][ ]Parameter[][][]t[][] ap, [][]ppl[][][][]Linear[] [34] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2329--2331 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2332--2334 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (33.79532pt too wide) in paragraph at lines 2335--2337 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]wi dening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (1.24307pt too wide) in paragraph at lines 2335--2337 \OT1/ptm/m/it/10 Same as pred-i-cate \OT1/pcr/m/sl/10 ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[][][][]H79[][][]widening[][][]assign[][][]with[][] []tokens\OT1/ptm/m/it/10 /4 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2341--2343 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][] Overfull \hbox (19.9953pt too wide) in paragraph at lines 2341--2343 \OT1/pcr/m/n/10 tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]Constraint[][][][ ]System, +[]C[][][]unsigned[][][]1, ?C[][][]unsigned[] Overfull \hbox (37.39532pt too wide) in paragraph at lines 2344--2346 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2347--2349 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2350--2352 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2353--2355 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][] C[]C76[][][]narrowing[][][]assign(+[]Handle[][][]1, +[]Handle[] Underfull \vbox (badness 3058) has occurred while \output is active [76] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2369--2371 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2372--2374 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]project(+[]Handle, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2375--2377 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re move[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2378--2380 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re move[][][]higher[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2381--2383 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ex pand[][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2384--2386 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]fo ld[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] [77] Overfull \hbox (0.85934pt too wide) in paragraph at lines 18--20 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][]coeff icient[][] ([][]ppl[][][]const[][][][]Artificial[][][][]Parameter[][][]t[][] ap , [][]ppl[][][]dimension[][][]type[][] var, ) Overfull \hbox (15.79532pt too wide) in paragraph at lines 2406--2408 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2413--2415 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]constraints(+[]Constraint[][][][]System, -[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2416--2418 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]congruences(+[]Congruence[][][][]System, -[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2419--2421 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]generators(+[]Generator[][][][]System, -[] Underfull \hbox (badness 10000) in paragraph at lines 2427--2428 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2433--2435 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2436--2438 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2442--2444 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Rational[][][][]Box(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2445--2447 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 2445--2447 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] [78 (./interfaceppl__BD__Shape__mpq__class__tag.tex] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2448--2450 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 2448--2450 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2451--2453 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2454--2456 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[] Overfull \hbox (22.41382pt too wide) in paragraph at lines 2457--2459 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 2460--2462 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[] Overfull \hbox (54.81381pt too wide) in paragraph at lines 2463--2465 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (22.41382pt too wide) in paragraph at lines 2466--2468 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 2469--2471 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 2472--2474 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2475--2477 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]co mplexity(+[] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2478--2480 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]co mplexity(+[] [79] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2518--2520 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]co ntains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 2521--2523 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]st rictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[] Overfull \hbox (16.99533pt too wide) in paragraph at lines 2524--2526 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]is [][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2527--2529 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]eq uals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][] Overfull \hbox (5.6138pt too wide) in paragraph at lines 2543--2545 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]af fine[][][]dimension(+[]Handle, ?Dimension[][][][]Type) Overfull \hbox (29.6138pt too wide) in paragraph at lines 2546--2548 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re lation[][][]with[][][]constraint(+[]Handle, +[]Constraint, [80] Overfull \hbox (5.86221pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (3.64197pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (10.56195pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] [35 Overfull \hbox (17.6138pt too wide) in paragraph at lines 2549--2551 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re lation[][][]with[][][]generator(+[]Handle, +[]Generator, Overfull \hbox (29.6138pt too wide) in paragraph at lines 2552--2554 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re lation[][][]with[][][]congruence(+[]Handle, +[]Congruence, Overfull \hbox (17.6138pt too wide) in paragraph at lines 2555--2557 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]constraints(+[]Handle, ?Constraint[][][][]System) Overfull \hbox (17.6138pt too wide) in paragraph at lines 2558--2560 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]congruences(+[]Handle, ?Congruence[][][][]System) Overfull \hbox (38.5953pt too wide) in paragraph at lines 2561--2563 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]minimized[][][]constraints(+[]Handle, ?Constraint[] Overfull \hbox (38.5953pt too wide) in paragraph at lines 2564--2566 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]minimized[][][]congruences(+[]Handle, ?Congruence[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2567--2569 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ma ximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2572--2574 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]mi nimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2577--2579 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ma ximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2582--2584 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]mi nimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] [81]] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2587--2589 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ex ternal[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2612--2614 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2615--2617 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2618--2620 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]constraint( +[]Handle, +[]Constraint) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2621--2623 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]congruence( +[]Handle, +[]Congruence) Overfull \hbox (32.5953pt too wide) in paragraph at lines 2624--2626 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2627--2629 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]congruences( +[]Handle, +[]Congruence[] [82] Overfull \hbox (2.5953pt too wide) in paragraph at lines 2637--2639 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]un constrain[][][]space[][][]dimension(+[]Handle, +[]P[]P[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 2640--2642 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]un constrain[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2643--2645 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]af fine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, Overfull \hbox (14.61084pt too wide) in paragraph at lines 2643--2645 \OT1/ptm/m/it/10 Transforms the oc-tag-o-nal shape ref-er-enced by \OT1/pcr/m/s l/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/m /sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (0.19531pt too wide) in paragraph at lines 2646--2648 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]af fine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2649--2651 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]bo unded[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2652--2654 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]bo unded[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (9.2138pt too wide) in paragraph at lines 2655--2657 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (2.5953pt too wide) in paragraph at lines 2658--2660 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2661--2663 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[] Overfull \hbox (12.81381pt too wide) in paragraph at lines 2664--2666 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, Overfull \hbox (24.81381pt too wide) in paragraph at lines 2667--2669 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]wr ap[][][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, [83] Overfull \hbox (31.39532pt too wide) in paragraph at lines 2686--2688 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]up per[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2689--2691 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]si mplify[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2692--2694 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li near[][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2699--2701 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2702--2704 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign(+[]Handle[][][]1, +[]Handle[] [84] Overfull \hbox (33.79532pt too wide) in paragraph at lines 2705--2707 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]wi dening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (1.24307pt too wide) in paragraph at lines 2705--2707 \OT1/ptm/m/it/10 Same as pred-i-cate \OT1/pcr/m/sl/10 ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[][][][]H79[][][]widening[][][]assign[][][]with[][] []tokens\OT1/ptm/m/it/10 /4 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2711--2713 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][] Overfull \hbox (19.9953pt too wide) in paragraph at lines 2711--2713 \OT1/pcr/m/n/10 tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]Constraint[][][][ ]System, +[]C[][][]unsigned[][][]1, ?C[][][]unsigned[] Overfull \hbox (37.39532pt too wide) in paragraph at lines 2714--2716 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2717--2719 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2720--2722 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2723--2725 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][] C[]C76[][][]narrowing[][][]assign(+[]Handle[][][]1, +[]Handle[] [85] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2739--2741 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2742--2744 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]project(+[]Handle, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2745--2747 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re move[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2748--2750 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re move[][][]higher[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2751--2753 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ex pand[][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2754--2756 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]fo ld[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] Overfull \hbox (39.79532pt too wide) in paragraph at lines 2776--2778 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension(+[]Dimension[] [86] Overfull \hbox (11.12201pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.40195pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.93196pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]B[]D[ ][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n /10 pph, [][]ppl[] Overfull \hbox (3.1817pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.77185pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (12.33191pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (17.60164pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (18.1617pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (6.14209pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, [][]ppl[] Overfull \hbox (9.18156pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []space[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (9.49162pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []affine[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (0.2818pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []relation[][][]with[][][][]Congruence[][] ([][]ppl[][][]const[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (25.56108pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (1.9613pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]minimized[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (8.61162pt too Overfull \hbox (24.19531pt too wide) in paragraph at lines 2783--2785 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][]constraints(+[]Constraint[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 2786--2788 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][]congruences(+[]Congruence[] Underfull \hbox (badness 10000) in paragraph at lines 2794--2795 Overfull \hbox (3.79532pt too wide) in paragraph at lines 2800--2802 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2803--2805 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 2806--2808 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Grid(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2809--2811 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box(+[]Handle[] Overfull \hbox (34.99533pt too wide) in paragraph at lines 2812--2814 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class (+[]Handle[] Overfull \hbox (34.99533pt too wide) in paragraph at lines 2815--2817 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class (+[]Handle[] Overfull \hbox (40.99533pt too wide) in paragraph at lines 2818--2820 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class(+[] Overfull \hbox (40.99533pt too wide) in paragraph at lines 2821--2823 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class(+[] Overfull \hbox (0.86227pt too wide) in paragraph at lines 2821--2823 \OT1/ptm/m/it/10 Builds a new con-straints prod-uct \OT1/pcr/m/sl/10 P[][][]1 \ OT1/ptm/m/it/10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[] [87] wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] [36 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2824--2826 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][] Overfull \hbox (58.99533pt too wide) in paragraph at lines 2827--2829 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]co mplexity(+[] Overfull \hbox (70.99533pt too wide) in paragraph at lines 2830--2832 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[] [][]complexity(+[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 2833--2835 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexity(+[] Overfull \hbox (58.99533pt too wide) in paragraph at lines 2836--2838 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]co mplexity(+[] Overfull \hbox (14.59534pt too wide) in paragraph at lines 2839--2841 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]with[] Overfull \hbox (14.59534pt too wide) in paragraph at lines 2842--2844 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]with[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2845--2847 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2848--2850 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[] Overfull \hbox (0.86227pt too wide) in paragraph at lines 2848--2850 \OT1/ptm/m/it/10 Builds a new con-straints prod-uct \OT1/pcr/m/sl/10 P[][][]1 \ OT1/ptm/m/it/10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2851--2853 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][] [88]] Overfull \hbox (15.2138pt too wide) in paragraph at lines 2876--2878 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]is[][][]topologically[][][]closed(+[]Handle) Overfull \hbox (0.19531pt too wide) in paragraph at lines 2882--2884 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounds[][][]from[][][]above(+[]Handle, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2885--2887 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounds[][][]from[][][]below(+[]Handle, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2888--2890 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2891--2893 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2894--2896 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][][] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2897--2899 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C[][][] Overfull \hbox (44.5953pt too wide) in paragraph at lines 2910--2912 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]space[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (50.5953pt too wide) in paragraph at lines 2913--2915 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]affine[][][]dimension(+[]Handle, ?Dimension[] [89] Overfull \hbox (0.25233pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounds[][][]from[][][]above[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (0.86206pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounds[][][]from[][][]below[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (6.12149pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 97--99 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (4.46144pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 99--101 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (14.71156pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]const [][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (14.12123pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []is[][][]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ( [][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.93167pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []equals[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]const[] [][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (12.4822pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]congruence[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (3.07146pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (16.37209pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (28.89116pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []refine[][][]with[][][]constraint[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (12.2214pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []intersection[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.84169pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []difference[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]cl ass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.7616pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []concatenate[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]c lass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] [37 Overfull \hbox (21.2138pt too wide) in paragraph at lines 2916--2918 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]relation[][][]with[][][]constraint(+[]Handle, Overfull \hbox (15.2138pt too wide) in paragraph at lines 2919--2921 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]relation[][][]with[][][]generator(+[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 2922--2924 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]relation[][][]with[][][]congruence(+[]Handle, Overfull \hbox (44.5953pt too wide) in paragraph at lines 2925--2927 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]maximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (44.5953pt too wide) in paragraph at lines 2930--2932 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]minimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2935--2937 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]maximize[][][]with[][][]point(+[]Handle, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2940--2942 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]minimize[][][]with[][][]point(+[]Handle, +[] Overfull \hbox (18.81381pt too wide) in paragraph at lines 2945--2947 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes(+[]Handle, Overfull \hbox (0.81381pt too wide) in paragraph at lines 2948--2950 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes(+[]Handle, [90]] Overfull \hbox (41.6138pt too wide) in paragraph at lines 2964--2966 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]constraint(+[]Handle, +[]Constraint) Overfull \hbox (41.6138pt too wide) in paragraph at lines 2967--2969 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]congruence(+[]Handle, +[]Congruence) Overfull \hbox (56.5953pt too wide) in paragraph at lines 2970--2972 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (56.5953pt too wide) in paragraph at lines 2973--2975 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 2976--2978 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]constraint( +[]Handle, Overfull \hbox (15.2138pt too wide) in paragraph at lines 2979--2981 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]congruence( +[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 2982--2984 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]constraints( +[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 2985--2987 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]congruences( +[]Handle, Overfull \hbox (0.19531pt too wide) in paragraph at lines 2992--2994 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]topological[][][]closure[][][]assign(+[] [91] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2995--2997 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension(+[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2998--3000 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]unconstrain[][][]space[][][]dimensions(+[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 3001--3003 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3004--3006 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]affine[][][]preimage(+[]Handle, +[]P[]P[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3007--3009 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounded[][][]affine[][][]image(+[]Handle, +[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3010--3012 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounded[][][]affine[][][]preimage(+[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 3013--3015 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]image(+[]Handle, Overfull \hbox (6.19531pt too wide) in paragraph at lines 3016--3018 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]preimage(+[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3019--3021 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3022--3024 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[] [92] Overfull \hbox (11.9314pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []time[][][]elapse[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.66202pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (5.592pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounded[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (18.3619pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 155--157 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (17.2415pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (30.0114pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (3.06163pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 161--163 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (15.83153pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 163--165 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (9.43188pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (10.54173pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (21.65166pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3029--3031 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]intersection[][][]assign(+[]Handle[][][] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3032--3034 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]upper[][][]bound[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3035--3037 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]difference[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3038--3040 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]time[][][]elapse[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3041--3043 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact(+[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 3048--3050 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3051--3053 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]widening[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3060--3062 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]concatenate[][][]assign(+[]Handle[][][]1, +[] [93]class[][] []remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (5.53194pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (16.80182pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []expand[][][]space[][][]dimension[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.07158pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (9.18156pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []map[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (3.88039pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] ph, int com- Overfull \hbox (1.2322pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][][]2[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] [38] Overfull \hbox (19.39532pt too wide) in paragraph at lines 3067--3069 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embed(+[] Overfull \hbox (31.39532pt too wide) in paragraph at lines 3070--3072 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]project(+[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3073--3075 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]remove[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (21.79532pt too wide) in paragraph at lines 3076--3078 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions(+[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 3079--3081 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]expand[][][]space[][][]dimension(+[]Handle, Overfull \hbox (3.2138pt too wide) in paragraph at lines 3082--3084 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]fold[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (18.19531pt too wide) in paragraph at lines 3085--3087 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]map[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3104--3106 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][]space[][][]dimension(+[]Dimension[] [94] Overfull \hbox (21.2138pt too wide) in paragraph at lines 3111--3113 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][]constraints(+[]Constraint[][][][]System, Overfull \hbox (21.2138pt too wide) in paragraph at lines 3114--3116 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][]congruences(+[]Congruence[][][][]System, Underfull \hbox (badness 10000) in paragraph at lines 3122--3123 Overfull \hbox (31.39532pt too wide) in paragraph at lines 3128--3130 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron (+[] Overfull \hbox (10.35161pt too wide) in paragraph at lines 3128--3130 \OT1/ptm/m/it/10 Builds a new pointset pow-er-set \OT1/pcr/m/sl/10 P[][][]1 \OT 1/ptm/m/it/10 from the pointset[][][]powerset[][][]c[][][]polyhedron ref-er-enc ed by han-dle \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 3131--3133 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 3134--3136 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron [] Overfull \hbox (10.35161pt too wide) in paragraph at lines 3134--3136 \OT1/ptm/m/it/10 Builds a new pointset pow-er-set \OT1/pcr/m/sl/10 P[][][]1 \OT 1/ptm/m/it/10 from the pointset[][][]powerset[][][]c[][][]polyhedron ref-er-enc ed by han-dle \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 3137--3139 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[] [95] Overfull \hbox (3.2138pt too wide) in paragraph at lines 3171--3173 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounds[][][]from[][][]above(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (3.2138pt too wide) in paragraph at lines 3174--3176 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounds[][][]from[][][]below(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (33.79532pt too wide) in paragraph at lines 3177--3179 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron(+[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3180--3182 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3183--3185 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3186--3188 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3189--3191 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3192--3194 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron(+[] Overfull \hbox (4.9953pt too wide) in paragraph at lines 3205--3207 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]space[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (10.9953pt too wide) in paragraph at lines 3208--3210 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]affine[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3211--3213 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]relation[][][]with[][][]constraint(+[]Handle, +[] [96] Overfull \hbox (47.6138pt too wide) in paragraph at lines 3214--3216 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]relation[][][]with[][][]generator(+[]Handle, +[]Generator, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3217--3219 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]relation[][][]with[][][]congruence(+[]Handle, +[] Overfull \hbox (4.9953pt too wide) in paragraph at lines 3220--3222 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]maximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (4.9953pt too wide) in paragraph at lines 3225--3227 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]minimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3230--3232 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]maximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, Overfull \hbox (15.2138pt too wide) in paragraph at lines 3235--3237 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]minimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, Overfull \hbox (33.2138pt too wide) in paragraph at lines 3240--3242 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]external[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (15.2138pt too wide) in paragraph at lines 3243--3245 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]total[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) [97] Overfull \hbox (3.17146pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]t[][] ps, size[] Overfull \hbox (4.35188pt too wide) in paragraph at lines 189--191 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] [][]H79[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (8.24164pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (2.78186pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []widening[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.19151pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][ ] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (0.70154pt too wide) in paragraph at lines 207--209 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]H79[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (6.82141pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (9.79172pt too wide) in paragraph at lines 217--219 \OT1/ptm/bc/n/10 Shape[][][]mpq[][][]class[][][]t[][] y, [][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/1 0 p[][][]inters, [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[] Overfull \hbox (8.77168pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (15.422pt too wide) in paragraph at lines 223--225 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (7.0819pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (11.38148pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][ ][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] dst, [][]ppl[] Overfull \hbox (15.68144pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][][]Constraint[] [39 Overfull \hbox (2.0138pt too wide) in paragraph at lines 3262--3264 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]constraint(+[]Handle, +[]Constraint) Overfull \hbox (2.0138pt too wide) in paragraph at lines 3265--3267 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]congruence(+[]Handle, +[]Congruence) Overfull \hbox (16.9953pt too wide) in paragraph at lines 3268--3270 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3271--3273 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (53.6138pt too wide) in paragraph at lines 3274--3276 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]constraint( +[]Handle, +[]Constraint) Overfull \hbox (53.6138pt too wide) in paragraph at lines 3277--3279 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]congruence( +[]Handle, +[]Congruence) Overfull \hbox (2.5953pt too wide) in paragraph at lines 3280--3282 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]constraints( +[]Handle, +[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3283--3285 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]congruences( +[]Handle, +[] [98]] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3299--3301 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]unconstrain[][][]space[][][]dimension(+[]Handle, +[] Overfull \hbox (5.6138pt too wide) in paragraph at lines 3302--3304 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]unconstrain[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (8.5953pt too wide) in paragraph at lines 3305--3307 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[] Overfull \hbox (19.06027pt too wide) in paragraph at lines 3305--3307 \OT1/ptm/m/it/10 Transforms the pointset pow-er-set ref-er-enced by \OT1/pcr/m/ sl/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/ m/sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (8.5953pt too wide) in paragraph at lines 3308--3310 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3311--3313 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounded[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3314--3316 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounded[][][]affine[][][]preimage(+[]Handle, +[]P[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3317--3319 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]image(+[]Handle, +[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3320--3322 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]preimage(+[]Handle, +[] Overfull \hbox (24.81381pt too wide) in paragraph at lines 3323--3325 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, Overfull \hbox (9.79532pt too wide) in paragraph at lines 3326--3328 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3333--3335 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]intersection[][][]assign(+[]Handle[][][]1, +[]Handle[] [99] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3336--3338 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]upper[][][]bound[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3339--3341 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]difference[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3342--3344 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]time[][][]elapse[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3345--3347 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]upper[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[][][] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3348--3350 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]simplify[][][]using[][][]context[][][]assign(+[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 3355--3357 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][]a ssign(+[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 3358--3360 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3361--3363 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign(+[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3364--3366 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign(+[]Handle[] [100] Overfull \hbox (28.98207pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]recycled[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][][]Congruence[] Overfull \hbox (8.45016pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (6.2302pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (7.89984pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (5.67987pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (9.94308pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[ ]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][]space[] Overfull \hbox (21.70216pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]C[][][][]Polyhedron [40 Overfull \hbox (14.5953pt too wide) in paragraph at lines 3373--3375 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]concatenate[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (12.81381pt too wide) in paragraph at lines 3380--3382 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, Overfull \hbox (24.81381pt too wide) in paragraph at lines 3383--3385 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]space[][][]dimensions[][][]and[][][]project(+[]Handle, Overfull \hbox (20.5953pt too wide) in paragraph at lines 3386--3388 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]remove[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3389--3391 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]remove[][][]higher[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3392--3394 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]expand[][][]space[][][]dimension(+[]Handle, +[]P[]P[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3395--3397 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]fold[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (1.7817pt too wide) in paragraph at lines 3395--3397 \OT1/ptm/m/it/10 Modifies the pointset pow-er-set ref-er-enced by \OT1/pcr/m/sl /10 Handle \OT1/ptm/m/it/10 by fold-ing the space di-men-sions con-tained in \O T1/pcr/m/sl/10 List[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 3398--3400 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]map[][][]space[][][]dimensions(+[]Handle, +[]P[][][][]Func) Overfull \hbox (6.19531pt too wide) in paragraph at lines 3405--3407 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]from[][][]iterator(+[]Iterator[] [101]] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3414--3416 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]iterator[][][]equals[][][]iterator(+[]Iterator[][][] Overfull \hbox (29.6138pt too wide) in paragraph at lines 3423--3425 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]iterator[][][]get[][][]disjunct(+[]Iterator, -[]Handle) Overfull \hbox (20.5953pt too wide) in paragraph at lines 3435--3437 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]drop[][][]disjuncts(+[]Handle, +[]Iterator[][][]1, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3454--3456 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][]space[][][]dimension(+[]Dimension[] [102] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3461--3463 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][]constraints(+[]Constraint[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3464--3466 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][]congruences(+[]Congruence[][][] Underfull \hbox (badness 10000) in paragraph at lines 3472--3473 Overfull \hbox (55.39532pt too wide) in paragraph at lines 3478--3480 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] []Polyhedron(+[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3481--3483 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[][][]1, - [] Overfull \hbox (43.39532pt too wide) in paragraph at lines 3484--3486 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] []Polyhedron[] Overfull \hbox (43.39532pt too wide) in paragraph at lines 3487--3489 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]comp lexity(+[] [103] Overfull \hbox (3.84358pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]N[]N[]C[] Overfull \hbox (10.45357pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Rational[] Overfull \hbox (1.37308pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (2.49307pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (9.29279pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.41278pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (22.7929pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [41] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3521--3523 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounds[][][]from[][][]above(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (15.2138pt too wide) in paragraph at lines 3524--3526 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounds[][][]from[][][]below(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (57.79532pt too wide) in paragraph at lines 3527--3529 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron(+[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3530--3532 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 3533--3535 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 3536--3538 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 3539--3541 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[] Overfull \hbox (45.79532pt too wide) in paragraph at lines 3542--3544 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyh edron(+[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3555--3557 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]space[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (22.9953pt too wide) in paragraph at lines 3558--3560 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]affine[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3561--3563 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]relation[][][]with[][][]constraint(+[]Handle, +[] [104] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3564--3566 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]relation[][][]with[][][]generator(+[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3567--3569 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]relation[][][]with[][][]congruence(+[]Handle, +[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3570--3572 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]maximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3575--3577 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]minimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3580--3582 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]maximize[][][]with[][][]point(+[]Handle, +[]Lin[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3585--3587 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]minimize[][][]with[][][]point(+[]Handle, +[]Lin[] Overfull \hbox (45.2138pt too wide) in paragraph at lines 3590--3592 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]external[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (27.2138pt too wide) in paragraph at lines 3593--3595 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]total[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) [105] Overfull \hbox (14.0138pt too wide) in paragraph at lines 3612--3614 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]constraint(+[]Handle, +[]Constraint) Overfull \hbox (14.0138pt too wide) in paragraph at lines 3615--3617 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]congruence(+[]Handle, +[]Congruence) Overfull \hbox (28.9953pt too wide) in paragraph at lines 3618--3620 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (28.9953pt too wide) in paragraph at lines 3621--3623 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3624--3626 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]constraint( +[]Handle, +[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3627--3629 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]congruence( +[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3630--3632 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]constraints( +[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3633--3635 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]congruences( +[]Handle, +[] Overfull \hbox (5.6138pt too wide) in paragraph at lines 3640--3642 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]topological[][][]closure[][][]assign(+[]Handle) [106] Overfull \hbox (10.35281pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (5.54291pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (19.8428pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.88231pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (9.0023pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (1.40201pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (2.522pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (43.37317pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Constraint[] [42] Overfull \hbox (11.6138pt too wide) in paragraph at lines 3649--3651 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]unconstrain[][][]space[][][]dimension(+[]Handle, Overfull \hbox (17.6138pt too wide) in paragraph at lines 3652--3654 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]unconstrain[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3655--3657 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (19.06027pt too wide) in paragraph at lines 3655--3657 \OT1/ptm/m/it/10 Transforms the pointset pow-er-set ref-er-enced by \OT1/pcr/m/ sl/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/ m/sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (20.5953pt too wide) in paragraph at lines 3658--3660 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3661--3663 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounded[][][]affine[][][]image(+[]Handle, +[]P[]P[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3664--3666 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounded[][][]affine[][][]preimage(+[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3667--3669 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]image(+[]Handle, +[] Overfull \hbox (11.6138pt too wide) in paragraph at lines 3670--3672 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]preimage(+[]Handle, Overfull \hbox (3.79532pt too wide) in paragraph at lines 3673--3675 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs(+[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3676--3678 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[] [107] Overfull \hbox (0.9232pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][] Overfull \hbox (36.89323pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Generator[] Overfull \hbox (38.1416pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]relation[][][]with[][][][]Constraint Overfull \hbox (31.66167pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]relation[][][]with[][][][]Generator Overfull \hbox (1.79314pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]relation[][][]with[] [43 Overfull \hbox (32.5953pt too wide) in paragraph at lines 3683--3685 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]intersection[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 3686--3688 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]upper[][][]bound[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3689--3691 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]difference[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 3692--3694 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]time[][][]elapse[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 3695--3697 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]upper[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 3698--3700 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]simplify[][][]using[][][]context[][][]assign(+[]Handle[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3705--3707 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[ ][][]assign(+[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3708--3710 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign(+[]Han dle[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3711--3713 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign(+[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 3714--3716 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign(+[]Handle[] [108]] Overfull \hbox (26.5953pt too wide) in paragraph at lines 3723--3725 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]concatenate[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (24.81381pt too wide) in paragraph at lines 3730--3732 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, Overfull \hbox (3.79532pt too wide) in paragraph at lines 3733--3735 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project(+[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3736--3738 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]remove[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 3739--3741 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]remove[][][]higher[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3742--3744 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]expand[][][]space[][][]dimension(+[]Handle, +[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3745--3747 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]fold[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (1.7817pt too wide) in paragraph at lines 3745--3747 \OT1/ptm/m/it/10 Modifies the pointset pow-er-set ref-er-enced by \OT1/pcr/m/sl /10 Handle \OT1/ptm/m/it/10 by fold-ing the space di-men-sions con-tained in \O T1/pcr/m/sl/10 List[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3748--3750 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]map[][][]space[][][]dimensions(+[]Handle, +[]P[][][] [109] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3755--3757 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]from[][][]iterator(+[]Iterator[] Overfull \hbox (2.0138pt too wide) in paragraph at lines 3758--3760 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]begin[][][]iterator(+[]Handle, -[]Iterator) Overfull \hbox (8.5953pt too wide) in paragraph at lines 3764--3766 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]iterator[][][]equals[][][]iterator(+[]Iterator[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3773--3775 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]iterator[][][]get[][][]disjunct(+[]Iterator, -[] ) Overfull \hbox (4.9953pt too wide) in paragraph at lines 3785--199 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]drop[][][]disjuncts(+[]Handle, +[]Iterator[] (./PI_Compilation.tex) (./PI_SD_Features.tex Overfull \hbox (3.0828pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]get[][][]minimized[] Overfull \hbox (8.63286pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]get[][][]minimized[] Overfull \hbox (0.2731pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]contains[][][]integer[] Overfull \hbox (2.60301pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]is[][][]topologically[][][] Overfull \hbox (30.05296pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topolo gical[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]topological[][][]closure[] [44 [110]] [111] Overfull \hbox (30.3312pt too wide) in paragraph at lines 86--87 []\OT1/ptm/m/n/10 Notice that, for dy-namic link-ing to work, you should have c on-fig-ured the li-brary with the \OT1/pcr/m/n/10 --enable-shared [112 Overfull \hbox (7.81178pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpq[][][]class[][][]maximize[][][]with[][][]point ( Overfull \hbox (6.15161pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpq[][][]class[][][]minimize[][][]with[][][]point ( Overfull \hbox (1.11285pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contains[][][] Overfull \hbox (31.82233pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/ 8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strictly[] [45]] Overfull \hbox (2.20367pt too wide) in paragraph at lines 100--101 \OT1/ptm/m/n/10 e.[]g., [][]\OT1/pcr/m/n/10 http[]://www.[]cs.[]unipr.[]it/pipe rmail/ppl-devel/2006-[]January/007780.[]html[][]\OT1/ptm/m/n/10 ). ) Overfull \hbox (0.40225pt too wide) in paragraph at lines 102--207 []\OT1/ptm/m/n/10 In or-der to dy-nam-i-cally load the li-brary from Y[]AP you should sim-ply load \OT1/pcr/m/n/10 prefix/lib/ppl/ppl[] (./modules.tex LaTeX Warning: Reference `group__PPL__Prolog__interface' on page 113 undefined on input line 3. ) (./group__PPL__Prolog__interface.tex) [113] [114] No file refman.ind. (./refman.aux) Package rerunfilecheck Warning: File `refman.out' has changed. (rerunfilecheck) Rerun to get outlines right (rerunfilecheck) or use package `bookmark'. LaTeX Warning: There were undefined references. LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. ) (see the transcript file for additional information){/usr/share/texlive/texmf-d ist/fonts/enc/dvips/base/8r.enc} Overfull \hbox (0.89246pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] Overfull \hbox (19.66292pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][ ]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals[][][][]B[]D[][][][]Shape[] Overfull \hbox (16.8717pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]refine[][][]with[][][]constraint Overfull \hbox (22.42177pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]refine[][][]with[][][]congruence [46]] Output written on refman.pdf (120 pages, 622279 bytes). Transcript written on refman.log. makeindex refman.idx Overfull \hbox (8.76266pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpq[][][]class[][][]unconstrain[] Overfull \hbox (12.65256pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][] Shape[][][]mpq[][][]class[][][]unconstrain[] Overfull \hbox (7.47191pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpq[][][]class[][][]bounded[][][]affine[][][]image Overfull \hbox (3.83328pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]bounded[][][]affine[] [48]This is makeindex, version 2.15 [TeX Live 2019/dev] (kpathsea + Thai support). Scanning input file refman.idx....done (1 entries accepted, 0 rejected). Sorting entries...done (0 comparisons). Generating output file refman.ind....done (5 lines written, 0 warnings). Output written in refman.ind. Transcript written in refman.ilg. pdflatex refman This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex) restricted \write18 enabled. Overfull \hbox (20.41315pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]generalized[][][]affine[] Overfull \hbox (2.99301pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (22.05263pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (36.31252pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (17.78265pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][] B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][][]space[] Overfull \hbox (19.81268pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][][]space[] Overfull \hbox (37.58159pt too wide) in paragraph at lines 739--740 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]remove[][][]space[][][]dimensions [49]entering extended mode (./refman.tex LaTeX2e <2018-12-01> (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty (/usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty)) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) Overfull \hbox (0.1827pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[ ][][][]Shape[][][]mpq[][][]class[][][]remove[] Overfull \hbox (28.74158pt too wide) in paragraph at lines 751--752 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expand [][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]expand[][][]space[][][]dimension Overfull \hbox (13.1315pt too wide) in paragraph at lines 757--758 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold[] [][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]fold[][][]space[][][]dimensions Overfull \hbox (10.8016pt too wide) in paragraph at lines 763--764 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]map[][ ][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpq[][][]class[][][]map[][][]space[][][]dimensions Overfull \hbox (0.36298pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]B[ ]D[][][][]Shape[][][]mpq[][][]class[][][]drop[][][]some[] Overfull \hbox (8.96298pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[][][]some[] Overfull \hbox (12.23328pt too wide) in paragraph at lines 781--782 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]external[][][]memory[] [50 (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def]))) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty) (/usr/share/texlive/texmf-dist/tex/latex/tocloft/tocloft.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty) Overfull \hbox (12.81189pt too wide) in paragraph at lines 787--788 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]total[ ][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]total[][][]memory[][][]in[][][]bytes Overfull \hbox (1.7624pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[] Overfull \hbox (29.86266pt too wide) in paragraph at lines 799--800 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[][][]widening[] Overfull \hbox (13.27301pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (8.39174pt too wide) in paragraph at lines 811--812 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][][]H79[][][]widening[][][]assign ( Overfull \hbox (22.88277pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]widening[][][]assign[] Overfull \hbox (1.84178pt too wide) in paragraph at lines 829--830 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [51)]) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def Overfull \hbox (23.22203pt too wide) in paragraph at lines 835--836 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.00206pt too wide) in paragraph at lines 841--842 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/p cr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (28.7124pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (5.93262pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (12.59267pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (3.96262pt too wide) in paragraph at lines 865--866 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[] Overfull \hbox (29.87323pt too wide) in paragraph at lines 871--872 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][][]C[]C76[][][]extrapolation[] [52]) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/backref.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty) (./doxygen.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty) (/usr/share/texlive/texmf-dist/tex/latex/tabu/tabu.sty (/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty)) (/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty) (/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty) Overfull \hbox (1.05347pt too wide) in paragraph at lines 877--878 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][][]C[]C76[][][]narrowing[][][] Overfull \hbox (15.77289pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (21.32295pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (14.09296pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[] [][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (3.71283pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [53)] (/build/ppl-1.2/doc/ppl.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty Overfull \hbox (38.69156pt too wide) in paragraph at lines 919--920 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]add[][][]recycled[][][]constraints Overfull \hbox (0.4231pt too wide) in paragraph at lines 925--926 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]add[][][]recycled[][][] Overfull \hbox (6.13176pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class ( Overfull \hbox (4.46184pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class ( Overfull \hbox (8.48293pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (6.813pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (12.73273pt too wide) in paragraph at lines 955--956 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (11.0628pt too wide) in paragraph at lines 961--962 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (14.11327pt too wide) in paragraph at lines 967--968 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [54)]) Writing index file refman.idx (./refman.aux) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./refman.out) (./refman.out) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/Ustmry.fd) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd) Overfull \hbox (12.44334pt too wide) in paragraph at lines 973--974 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (17.08293pt too wide) in paragraph at lines 979--980 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (15.41301pt too wide) in paragraph at lines 985--986 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (21.33273pt too wide) in paragraph at lines 991--992 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (19.66281pt too wide) in paragraph at lines 997--998 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] [55] [1{/var/lib/texmf/fo nts/map/pdftex/updmap/pdftex.map}) (./interfaceppl__BD__Shape__mpz__class__tag.tex ] [2] (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd) [3 ] [4] (./refman.toc) [1 ] [2] (./index.tex) (./GPL.texpdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored \relax l.22 [1] Overfull \hbox (4.7421pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (2.52185pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (9.44183pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (10.00189pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (12.8701pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\ OT1/ptm/bc/n/10 pph, Overfull \hbox (4.28183pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.81184pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]B[]D[ ][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n /10 pph, [][]ppl[] Overfull \hbox (2.06158pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.65173pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.21179pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [56pdfTeX warning (ext4): destination with the same identifier (name{page .2}) has been already used, duplicate ignored \relax l.58 [2]pdfTeX warning (ext4): destination with the same identifier (name{page .3}) has been already used, duplicate ignored \relax l.84 [3]]pdfTeX warning (ext4): destination with the same identifier (name{page .4}) has been already used, duplicate ignored \relax l.121 [4] [5] [6] [7] [8]) Overfull \hbox (10.35326pt too wide) in paragraph at lines 291--187 \OT1/ptm/m/n/10 stead of this Li-cense. But first, please read [][]\OT1/pcr/m/n /10 http[]://www.[]gnu.[]org/philosophy/why-not-lgpl.[] [9] (./GFDL.tex [10] [11] [12 Overfull \hbox (17.04158pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (17.60164pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.02197pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, [][]ppl[] Overfull \hbox (8.06145pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []space[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.3715pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []affine[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (24.44096pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (37.7416pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (0.84119pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]minimized[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (7.4915pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (5.00137pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 97--99 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (3.34132pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 99--101 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] [57] Overfull \hbox (7.49895pt too wide) in paragraph at lines 97--98 \OT1/ptm/m/n/10 ments, form-ing one sec-tion En-ti-tled "[]History"; like-wise com-bine any sec-tions En-ti-tled "[]Acknowledgements", [13])] (./PI_SI_Features.tex [14] Underfull \hbox (badness 10000) in paragraph at lines 19--20 Underfull \hbox (badness 10000) in paragraph at lines 21--22 Underfull \hbox (badness 10000) in paragraph at lines 23--24 Overfull \hbox (3.40186pt too wide) in paragraph at lines 28--29 []\OT1/ptm/m/n/10 The prod-uct do-mains con-sist of Direct[][][][]Product[][][] []S[][][]T, Smash[][][][]Product[][][][]S[][][]T, Constraints[][][][]Product[] [15] [16] Underfull \vbox (badness 10000) has occurred while \output is active [17] Underfull \hbox (badness 10000) in paragraph at lines 241--242 Underfull \hbox (badness 10000) in paragraph at lines 246--247 [18] Underfull \hbox (badness 10000) in paragraph at lines 251--252 Underfull \hbox (badness 10000) in paragraph at lines 256--257 Underfull \hbox (badness 10000) in paragraph at lines 261--262 Underfull \hbox (badness 10000) in paragraph at lines 266--267 Underfull \hbox (badness 10000) in paragraph at lines 271--272 Underfull \hbox (badness 10000) in paragraph at lines 276--277 Underfull \hbox (badness 10000) in paragraph at lines 281--282 Underfull \hbox (badness 10000) in paragraph at lines 286--287 Underfull \hbox (badness 10000) in paragraph at lines 291--292 Underfull \hbox (badness 10000) in paragraph at lines 296--297 Underfull \hbox (badness 10000) in paragraph at lines 303--304 Underfull \hbox (badness 10000) in paragraph at lines 308--309 [19] Underfull \hbox (badness 10000) in paragraph at lines 313--314 Underfull \hbox (badness 10000) in paragraph at lines 318--319 Underfull \hbox (badness 10000) in paragraph at lines 323--324 Underfull \hbox (badness 10000) in paragraph at lines 334--335 Overfull \hbox (70.9953pt too wide) in paragraph at lines 339--340 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]M[]I[]P[][][][]Problem(+[]Dimension[][][] []Type, +[]Constraint[][][][]System, +[]Lin[][][][]Expr, +[]Optimization[] Underfull \hbox (badness 10000) in paragraph at lines 339--340 Underfull \hbox (badness 10000) in paragraph at lines 344--345 Underfull \hbox (badness 10000) in paragraph at lines 349--350 Underfull \hbox (badness 10000) in paragraph at lines 354--355 Underfull \hbox (badness 10000) in paragraph at lines 359--360 Underfull \hbox (badness 10000) in paragraph at lines 364--365 Underfull \hbox (badness 10000) in paragraph at lines 369--370 Underfull \hbox (badness 10000) in paragraph at lines 374--375 [20 Overfull \hbox (13.03139pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]const [][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (13.83092pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []strictly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][] ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.44106pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []is[][][]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ( [][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.2515pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []equals[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]const[] [][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (11.36208pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]congruence[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (1.95134pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (15.25197pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (27.77104pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []refine[][][]with[][][]constraint[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (11.10129pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []intersection[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.72157pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []difference[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]cl ass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.64148pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []concatenate[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]c lass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.81128pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []time[][][]elapse[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [][]class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.5419pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (10.4113pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]B[]D[][][][] Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overf]ull \hbox (4.47188pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []bounded[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] [58] Underfull \hbox (badness 10000) in paragraph at lines 379--380 Overfull \hbox (7.87047pt too wide) in paragraph at lines 382--383 []\OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Optimization[][][][]Mode \OT1/ptm/m /it/10 with the op-ti-miza-tion mode for the M[]IP Prob-lem ref-er-enced by \OT 1/pcr/m/sl/10 Handle\OT1/ptm/m/it/10 . Underfull \hbox (badness 10000) in paragraph at lines 384--385 Overfull \hbox (9.2138pt too wide) in paragraph at lines 389--390 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]space[][][]di mensions[][][]and[][][]embed( +[]Handle, +[]Dimension[][][][]Type) Underfull \hbox (badness 10000) in paragraph at lines 389--390 Underfull \hbox (badness 10000) in paragraph at lines 389--390 Underfull \hbox (badness 10000) in paragraph at lines 394--395 Underfull \hbox (badness 10000) in paragraph at lines 399--400 Underfull \hbox (badness 10000) in paragraph at lines 404--405 Underfull \hbox (badness 10000) in paragraph at lines 409--410 Overfull \hbox (5.6138pt too wide) in paragraph at lines 414--415 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]set[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Value) Underfull \hbox (badness 10000) in paragraph at lines 414--415 Underfull \hbox (badness 10000) in paragraph at lines 414--415 Overfull \hbox (62.5953pt too wide) in paragraph at lines 419--420 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]get[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Name, ?Control[] Underfull \hbox (badness 10000) in paragraph at lines 419--420 Overfull \hbox (18.68352pt too wide) in paragraph at lines 422--423 []\OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Control[][][][]Parameter[][][][]Val ue \OT1/ptm/m/it/10 with the value of the con-trol pa-ram-e-ter \OT1/pcr/m/sl/1 0 Control[][][][]Parameter[] Underfull \hbox (badness 10000) in paragraph at lines 424--425 Overfull \hbox (41.0819pt too wide) in paragraph at lines 427--428 []\OT1/ptm/m/it/10 Updates the M[]IP Prob-lem ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 so that the op-ti-miza-tion mode is changed to \OT1/pcr /m/sl/10 Optimization[] Underfull \hbox (badness 10000) in paragraph at lines 429--430 Underfull \hbox (badness 10000) in paragraph at lines 434--435 Overfull \hbox (15.46123pt too wide) in paragraph at lines 437--438 []\OT1/ptm/m/it/10 Solves the M[]IP prob-lem ref-er-enced by \OT1/pcr/m/sl/10 H andle \OT1/ptm/m/it/10 and uni-fies \OT1/pcr/m/sl/10 M[]I[]P[][][][]Problem[][] [][]Status \OT1/ptm/m/it/10 with[]: \OT1/pcr/m/sl/10 unfeasible\OT1/ptm/m/it/10 , Underfull \hbox (badness 10000) in paragraph at lines 439--440 [21] Underfull \hbox (badness 10000) in paragraph at lines 444--445 Underfull \hbox (badness 10000) in paragraph at lines 449--450 Overfull \hbox (13.3953pt too wide) in paragraph at lines 454--456 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][]objectiv e[][][]function(+[]Handle, +[]Generator, ?Coeff[] Overfull \hbox (41.48175pt too wide) in paragraph at lines 454--456 \OT1/ptm/m/it/10 Evaluates the ob-jec-tive func-tion of the M[]IP prob-lem ref- er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 at point \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Coefficient[] Underfull \hbox (badness 10000) in paragraph at lines 457--458 Underfull \hbox (badness 10000) in paragraph at lines 462--463 Underfull \hbox (badness 10000) in paragraph at lines 467--468 Underfull \hbox (badness 10000) in paragraph at lines 476--477 Overfull \hbox (4.9953pt too wide) in paragraph at lines 484--485 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]P[]I[]P[][][][]Problem(+[]Dimension[][][] []Type, +[]Constraint[][][][]System, +[]Vars[][][][]List, -[] Underfull \hbox (badness 10000) in paragraph at lines 484--485 [22] Overfull \hbox (17.24178pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 155--157 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (16.12138pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (28.89128pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (1.94151pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 161--163 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (14.71141pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 163--165 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (8.31177pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (9.42162pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (20.53154pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (4.41182pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.6817pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []expand[][][]space[][][]dimension[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (6.95146pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.06145pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []map[] Overfull \hbox (62.5953pt too wide) in paragraph at lines 504--505 []\OT1/pcr/m/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]get[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Name, ?Control[] Underfull \hbox (badness 10000) in paragraph at lines 504--505 Overfull \hbox (18.68352pt too wide) in paragraph at lines 507--508 []\OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Control[][][][]Parameter[][][][]Val ue \OT1/ptm/m/it/10 with the value of the con-trol pa-ram-e-ter \OT1/pcr/m/sl/1 0 Control[][][][]Parameter[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 512--514 []\OT1/pcr/m/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]di mensions[][][]and[][][]embed( +[]Handle, +[]Dimension[][][][]Type1, Overfull \hbox (5.6138pt too wide) in paragraph at lines 524--525 []\OT1/pcr/m/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]set[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Value) Underfull \hbox (badness 10000) in paragraph at lines 524--525 Underfull \hbox (badness 10000) in paragraph at lines 524--525 Underfull \hbox (badness 10000) in paragraph at lines 544--545 [23]) (./configured_domains_predicates.tex [24][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (2.76027pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] ph, int com- Overfull \hbox (0.11208pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][][]2[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (2.05135pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]t[][] ps, size[] Overfull \hbox (3.23177pt too wide) in paragraph at lines 189--191 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] [][]H79[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (7.12152pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (1.66174pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []widening[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] [59 Overfull \hbox (6.19531pt too wide) in paragraph at lines 31--33 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]space[ ][][]dimension(+[]Dimension[][][][]Type, +[]Universe[][][]or[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 38--40 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] space[][][]dimension(+[]Dimension[][][][]Type, +[]Universe[] Underfull \hbox (badness 10000) in paragraph at lines 68--69 [25]] Overfull \hbox (11.00215pt too wide) in paragraph at lines 101--103 \OT1/ptm/m/it/10 Builds a new N[]NC poly-he-dron \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (12.11226pt too wide) in paragraph at lines 107--109 \OT1/ptm/m/it/10 Builds a new N[]NC poly-he-dron \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 110--112 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 113--115 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 116--118 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 119--121 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 122--124 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[][ ][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, [26] Overfull \hbox (39.2138pt too wide) in paragraph at lines 125--127 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (39.2138pt too wide) in paragraph at lines 128--130 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[]N []C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (51.2138pt too wide) in paragraph at lines 131--133 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (2.5953pt too wide) in paragraph at lines 134--136 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Grid [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 137--139 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 140--142 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rati onal[][][][]Box[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (39.2138pt too wide) in paragraph at lines 143--145 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 146--148 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 149--151 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (1.39532pt too wide) in paragraph at lines 152--154 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 155--157 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (22.41382pt too wide) in paragraph at lines 158--160 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 161--163 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[] [27] Overfull \hbox (22.41382pt too wide) in paragraph at lines 164--166 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 167--169 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[] [28] Overfull \hbox (3.0714pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][ ] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (5.7013pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (8.6716pt too wide) in paragraph at lines 217--219 \OT1/ptm/bc/n/10 Shape[][][]mpz[][][]class[][][]t[][] y, [][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/1 0 p[][][]inters, [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[] Overfull \hbox (7.65157pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (14.30188pt too wide) in paragraph at lines 223--225 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.96178pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (9.70131pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][ ][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] dst, [][]ppl[] Overfull \hbox (14.56133pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][][]Constraint[] Overfull \hbox (27.86195pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]recycled[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][][]Congruence[] Overfull \hbox (7.33005pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (5.11008pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (6.77972pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (4.55975pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, [60 Overfull \hbox (15.79529pt too wide) in paragraph at lines 235--237 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][]constraint (+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (28.99063pt too wide) in paragraph at lines 235--237 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (3.79529pt too wide) in paragraph at lines 238--240 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][]generator( +[]Handle, +[]Generator, ?Relation[] Overfull \hbox (22.99063pt too wide) in paragraph at lines 238--240 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . Overfull \hbox (15.79529pt too wide) in paragraph at lines 241--243 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][]congruence (+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (28.99063pt too wide) in paragraph at lines 241--243 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (16.41379pt too wide) in paragraph at lines 262--264 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]maximize(+[]Handle, +[]Lin[][][][] Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (16.41379pt too wide) in paragraph at lines 267--269 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]minimize(+[]Handle, +[]Lin[][][][] Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) [29]] Overfull \hbox (10.9953pt too wide) in paragraph at lines 272--274 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]maximize[][][]with[][][]point(+[]H andle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (10.9953pt too wide) in paragraph at lines 277--279 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]minimize[][][]with[][][]point(+[]H andle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] [30] Overfull \hbox (2.92062pt too wide) in paragraph at lines 347--349 \OT1/ptm/m/it/10 Transforms the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 H andle \OT1/ptm/m/it/10 sub-sti-tut-ing the affine ex-pres-sion for \OT1/pcr/m/s l/10 Lin[][][][]Expr/Coeff Overfull \hbox (14.5953pt too wide) in paragraph at lines 350--352 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][]image(+[] Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[]Lin[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 353--355 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][]preimage( +[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[] Overfull \hbox (32.0138pt too wide) in paragraph at lines 356--358 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]image (+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[][][][]Symbol, Overfull \hbox (13.3953pt too wide) in paragraph at lines 359--361 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]preim age(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] [31] Overfull \hbox (6.19531pt too wide) in paragraph at lines 362--364 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]image [][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 365--367 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]preim age[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][] Overfull \hbox (44.0138pt too wide) in paragraph at lines 368--370 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]wrap[][][]assign(+[]Handle, +[]Lis t[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[]Representation, [32] Overfull \hbox (8.82309pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[ ]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][]space[] Overfull \hbox (20.58217pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (2.72359pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]N[]N[]C[] Overfull \hbox (9.33357pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Rational[] [61 Overfull \hbox (29.6138pt too wide) in paragraph at lines 399--401 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]context[] [][]assign(+[]Handle[][][]1, +[]Handle[][][]2, ?Boolean) Overfull \hbox (16.9953pt too wide) in paragraph at lines 402--404 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]linear[][][]partition(+[]Handle[][ ][]1, +[]Handle[][][]2, -[]Handle[][][]3, -[]Handle[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 409--411 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][] assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 412--414 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign[][ ][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 421--423 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[][] []tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]C[][][]unsigned[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 427--429 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 430--432 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 433--435 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapolat ion[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] [33]] Overfull \hbox (12.19531pt too wide) in paragraph at lines 436--438 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapolat ion[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 439--441 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[][][] Overfull \hbox (2.5953pt too wide) in paragraph at lines 442--444 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[][][] Overfull \hbox (8.5953pt too wide) in paragraph at lines 445--447 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapolat ion[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 448--450 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapolat ion[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] [34] Overfull \hbox (11.6138pt too wide) in paragraph at lines 467--469 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][] []and[][][]project(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (2.0138pt too wide) in paragraph at lines 473--475 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[][][ ]dimensions(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (14.0138pt too wide) in paragraph at lines 476--478 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]expand[][][]space[][][]dimension(+ []Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[][][][]Type) Overfull \hbox (0.19531pt too wide) in paragraph at lines 479--481 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]fold[][][]space[][][]dimensions(+[ ]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[]P[]P[]L[][][] Overfull \hbox (12.19531pt too wide) in paragraph at lines 501--503 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][]space[][][]dimension( +[]Dimension[][][][]Type, +[]Universe[][][]or[][][][]Empty, -[] [35] Overfull \hbox (0.25308pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (1.37308pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (8.17279pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.29279pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (21.6729pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.23282pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (4.42291pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (18.72281pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] [62] Underfull \hbox (badness 10000) in paragraph at lines 522--523 Overfull \hbox (2.5953pt too wide) in paragraph at lines 552--554 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 555--557 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Poly hedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 561--563 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][]Box [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (12.81381pt too wide) in paragraph at lines 564--566 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, [36] Overfull \hbox (12.81381pt too wide) in paragraph at lines 567--569 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (54.81381pt too wide) in paragraph at lines 570--572 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (54.81381pt too wide) in paragraph at lines 573--575 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, [37] Overfull \hbox (7.44052pt too wide) in paragraph at lines 635--637 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Dimension[][][][]Type \OT1/ptm/m/it/1 0 with the di-men-sion of the vec-tor space en-clos-ing the grid ref-er-enced b y \OT1/pcr/m/sl/10 Handle\OT1/ptm/m/it/10 . Overfull \hbox (4.41379pt too wide) in paragraph at lines 641--643 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]relation[][][]with[][][]constraint(+[]Ha ndle, +[]Constraint, ?Relation[][][][]List) Overfull \hbox (0.56071pt too wide) in paragraph at lines 641--643 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (4.41379pt too wide) in paragraph at lines 647--649 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]relation[][][]with[][][]congruence(+[]Ha ndle, +[]Congruence, ?Relation[][][][]List) Overfull \hbox (0.56071pt too wide) in paragraph at lines 647--649 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (22.9953pt too wide) in paragraph at lines 650--652 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]relation[][][]with[][][]grid[][][]genera tor(+[]Handle, +[]Grid[][][][]Generator, ?Relation[] Overfull \hbox (41.6138pt too wide) in paragraph at lines 681--683 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]maximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean, [38] Overfull \hbox (41.6138pt too wide) in paragraph at lines 686--688 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]minimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean, [39] Overfull \hbox (6.76231pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.88231pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (0.28201pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (1.40201pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (42.25317pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Constraint[] Overfull \hbox (47.80324pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Congruence[] Overfull \hbox (35.77324pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Generator[] [63] Overfull \hbox (7.24037pt too wide) in paragraph at lines 728--730 \OT1/ptm/m/it/10 Updates the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ ptm/m/it/10 to one ob-tained by re-fin-ing its con-straint sys-tem with \OT1/pc r/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (13.48053pt too wide) in paragraph at lines 731--733 \OT1/ptm/m/it/10 Updates the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ ptm/m/it/10 to one ob-tained by re-fin-ing its con-gru-ence sys-tem with \OT1/p cr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (6.19531pt too wide) in paragraph at lines 759--761 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]bounded[][][]affine[][][]image(+[]Handle , +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[]Lin[][][][]Expr[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 762--764 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]bounded[][][]affine[][][]preimage(+[]Han dle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[]Lin[][][] Overfull \hbox (16.9953pt too wide) in paragraph at lines 765--767 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image(+[]Ha ndle, +[]P[]P[]L[][][][]Var, +[]Relation[][][][]Symbol, +[] Overfull \hbox (14.0138pt too wide) in paragraph at lines 768--770 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage(+[ ]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[][][][]Symbol, Overfull \hbox (18.19531pt too wide) in paragraph at lines 771--773 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][] lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[]Relation[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 774--776 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][ ][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[]Relation[] [40] Overfull \hbox (2.5953pt too wide) in paragraph at lines 777--779 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][] with[][][]congruence(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 780--782 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][ ][]with[][][]congruence(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 783--785 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][] lhs[][][]rhs[][][]with[][][]congruence(+[]Handle, +[]Lin[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 786--788 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][ ][]lhs[][][]rhs[][][]with[][][]congruence(+[]Handle, +[] Overfull \hbox (8.0138pt too wide) in paragraph at lines 789--791 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]wrap[][][]assign(+[]Handle, +[]List[][][ ]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[]Representation, [41] Overfull \hbox (6.19531pt too wide) in paragraph at lines 818--820 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[][] []with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 821--823 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[][][ ]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 830--832 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]widening[][][]assign[][][]with[][][]toke ns(+[]Handle[][][]1, +[]Handle[][][]2, +[]C[][][]unsigned[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 836--838 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolati on[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 839--841 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolatio n[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 842--844 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolati on[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 845--847 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolatio n[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.99101pt too wide) in paragraph at lines 854--856 \OT1/ptm/m/it/10 Assigns to the grid \OT1/pcr/m/sl/10 P \OT1/ptm/m/it/10 ref-er -enced by \OT1/pcr/m/sl/10 Handle[][][]1 \OT1/ptm/m/it/10 the con-cate-na-tion of \OT1/pcr/m/sl/10 P \OT1/ptm/m/it/10 and the grid ref-er-enced by \OT1/pcr/m/ sl/10 Handle[] [42] Overfull \hbox (6.19531pt too wide) in paragraph at lines 898--900 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][]space[ ][][]dimension(+[]Dimension[][][][]Type, +[]Universe[][][]or[] [43] Overfull \hbox (37.0216pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]relation[][][]with[][][][]Constraint Overfull \hbox (30.54167pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]relation[][][]with[][][][]Generator Overfull \hbox (0.67314pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]relation[][][]with[] Overfull \hbox (1.9628pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]get[][][]minimized[] Overfull \hbox (7.51286pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]get[][][]minimized[] [64] Underfull \hbox (badness 10000) in paragraph at lines 919--920 Overfull \hbox (1.39532pt too wide) in paragraph at lines 943--945 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (1.39532pt too wide) in paragraph at lines 946--948 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (27.2138pt too wide) in paragraph at lines 949--951 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[][ ][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (39.2138pt too wide) in paragraph at lines 952--954 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[]N []C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, [44] Overfull \hbox (2.03311pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]contains[][][]integer[][][] Overfull \hbox (1.48302pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]is[][][]topologically[][][] Overfull \hbox (28.93297pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topolo gical[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]topological[][][]closure[] [65] Overfull \hbox (2.5953pt too wide) in paragraph at lines 955--957 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Grid [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 958--960 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rati onal[][][][]Box[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 961--963 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 964--966 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (22.41382pt too wide) in paragraph at lines 967--969 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, Overfull \hbox (22.41382pt too wide) in paragraph at lines 970--972 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, [45] Overfull \hbox (25.3953pt too wide) in paragraph at lines 1038--1040 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][][]c onstraint(+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (13.3953pt too wide) in paragraph at lines 1041--1043 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][][]g enerator(+[]Handle, +[]Generator, ?Relation[] Overfull \hbox (25.3953pt too wide) in paragraph at lines 1044--1046 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][][]c ongruence(+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (2.0138pt too wide) in paragraph at lines 1053--1055 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][]c onstraints(+[]Handle, ?Constraint[][][][]System) Overfull \hbox (2.0138pt too wide) in paragraph at lines 1056--1058 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][]c ongruences(+[]Handle, ?Congruence[][][][]System) Overfull \hbox (35.6138pt too wide) in paragraph at lines 1059--1061 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]has[][][]upper[][][]bound (+[]Handle, +[]Var, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) [46] Overfull \hbox (6.69179pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpz[][][]class[][][]maximize[][][]with[][][]point ( Overfull \hbox (5.03162pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpz[][][]class[][][]minimize[][][]with[][][]point ( Overfull \hbox (3.67287pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contains[][][][]B[] Overfull \hbox (29.58234pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/ 8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strictly[] Overfull \hbox (1.53247pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][][] Overfull \hbox (17.42293pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][ ]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals[][][][]B[]D[][][][]Shape[] [66 Overfull \hbox (35.6138pt too wide) in paragraph at lines 1064--1066 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]has[][][]lower[][][]bound (+[]Handle, +[]Var, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (26.0138pt too wide) in paragraph at lines 1069--1071 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]maximize(+[]Handle, +[]Li n[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (26.0138pt too wide) in paragraph at lines 1074--1076 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]minimize(+[]Handle, +[]Li n[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (20.5953pt too wide) in paragraph at lines 1079--1081 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]maximize[][][]with[][][]p oint(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 1084--1086 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]minimize[][][]with[][][]p oint(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] [47]] Overfull \hbox (3.2138pt too wide) in paragraph at lines 1142--1144 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[][ ][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var) Overfull \hbox (6.24055pt too wide) in paragraph at lines 1148--1150 \OT1/ptm/m/it/10 Transforms the ra-tio-nal box ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 sub-sti-tut-ing the affine ex-pres-sion for \OT1/pcr/m /sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (6.19531pt too wide) in paragraph at lines 1151--1153 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]bounded[][][]affine[][][] image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[] [48] Overfull \hbox (15.75171pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]refine[][][]with[][][]constraint Overfull \hbox (21.30177pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]refine[][][]with[][][]congruence Overfull \hbox (24.4416pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]refine[][][]with[][][]constraints Overfull \hbox (29.99167pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]refine[][][]with[][][]congruences [67] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1154--1156 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]bounded[][][]affine[][][] preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][] Overfull \hbox (4.9953pt too wide) in paragraph at lines 1157--1159 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (22.9953pt too wide) in paragraph at lines 1160--1162 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1163--1165 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]image[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 1166--1168 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]preimage[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[] Overfull \hbox (53.6138pt too wide) in paragraph at lines 1169--1171 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]wrap[][][]assign(+[]Handl e, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[]Representation, [49] Overfull \hbox (1.81296pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]upper[][][]bound[] Overfull \hbox (19.83264pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simpli fy[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]simplify[][][]using[] Overfull \hbox (7.64267pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpz[][][]class[][][]unconstrain[] [68] Overfull \hbox (39.2138pt too wide) in paragraph at lines 1191--1193 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][][] context[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, ?Boolean) Overfull \hbox (26.5953pt too wide) in paragraph at lines 1194--1196 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]linear[][][]partition(+[] Handle[][][]1, +[]Handle[][][]2, -[]Handle[][][]3, -[]Handle[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1201--1203 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[][ ][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (45.79532pt too wide) in paragraph at lines 1207--1209 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[][][ ]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]C[][][]unsigned[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1213--1215 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][] []extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1216--1218 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][] []extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[][][] Underfull \vbox (badness 2503) has occurred while \output is active [50] Overfull \hbox (9.2138pt too wide) in paragraph at lines 1235--1237 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dimen sions[][][]and[][][]embed(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (0.19531pt too wide) in paragraph at lines 1238--1240 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dimen sions[][][]and[][][]project(+[]Handle, +[]Dimension[][][] Overfull \hbox (11.6138pt too wide) in paragraph at lines 1244--1246 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][]s pace[][][]dimensions(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (2.5953pt too wide) in paragraph at lines 1247--1249 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]expand[][][]space[][][]di mension(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1250--1252 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]fold[][][]space[][][]dime nsions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[]P[]P[] [51] Overfull \hbox (11.53256pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][] Shape[][][]mpz[][][]class[][][]unconstrain[] Overfull \hbox (6.35191pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounde d[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpz[][][]class[][][]bounded[][][]affine[][][]image Overfull \hbox (2.71329pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounde d[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]bounded[][][]affine[] Overfull \hbox (19.29315pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]generalized[][][]affine[] Overfull \hbox (1.87302pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpz[][][]class[][][]generalized[] [69 Overfull \hbox (21.79532pt too wide) in paragraph at lines 1272--1274 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[]Universe[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 1279--1281 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][]constraints(+[]Constraint[][][][]System, -[]Handle) Overfull \hbox (3.2138pt too wide) in paragraph at lines 1282--1284 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][]congruences(+[]Congruence[][][][]System, -[]Handle) Underfull \hbox (badness 10000) in paragraph at lines 1293--1294 Overfull \hbox (28.99533pt too wide) in paragraph at lines 1317--1319 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 1317--1319 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 1320--1322 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 1320--1322 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] [52]] Overfull \hbox (1.39532pt too wide) in paragraph at lines 1323--1325 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1326--1328 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (12.81381pt too wide) in paragraph at lines 1329--1331 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 1332--1334 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (11.61383pt too wide) in paragraph at lines 1335--1337 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (11.61383pt too wide) in paragraph at lines 1338--1340 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 1341--1343 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 1344--1346 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] [53] Overfull \hbox (4.99533pt too wide) in paragraph at lines 1387--1389 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strictl y[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, +[] Overfull \hbox (32.59534pt too wide) in paragraph at lines 1390--1392 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][][ ]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][ ]1, +[]Handle[] Overfull \hbox (56.5953pt too wide) in paragraph at lines 1412--1414 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relatio n[][][]with[][][]constraint(+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1412--1414 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (44.5953pt too wide) in paragraph at lines 1415--1417 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relatio n[][][]with[][][]generator(+[]Handle, +[]Generator, ?Relation[] Overfull \hbox (13.12079pt too wide) in paragraph at lines 1415--1417 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . Overfull \hbox (56.5953pt too wide) in paragraph at lines 1418--1420 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relatio n[][][]with[][][]congruence(+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1418--1420 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . [54] Overfull \hbox (20.93263pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (35.19252pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (16.66266pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][] B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][][]space[] Overfull \hbox (18.69269pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][][]space[] Overfull \hbox (36.4616pt too wide) in paragraph at lines 739--740 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]remove[][][]space[][][]dimensions Overfull \hbox (1.9427pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[ ][][][]Shape[][][]mpz[][][]class[][][]remove[][][] Overfull \hbox (27.62158pt too wide) in paragraph at lines 751--752 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expand [][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]expand[][][]space[][][]dimension [70] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1427--1429 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][] []minimized[][][]constraints(+[]Handle, ?Constraint[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1430--1432 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][] []minimized[][][]congruences(+[]Handle, ?Congruence[][][] Overfull \hbox (57.2138pt too wide) in paragraph at lines 1433--1435 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (57.2138pt too wide) in paragraph at lines 1438--1440 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (0.81381pt too wide) in paragraph at lines 1443--1445 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, Overfull \hbox (0.81381pt too wide) in paragraph at lines 1448--1450 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, Underfull \vbox (badness 1259) has occurred while \output is active [55] Overfull \hbox (25.80045pt too wide) in paragraph at lines 1484--1486 \OT1/ptm/m/it/10 Updates the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Handle \ OT1/ptm/m/it/10 to one ob-tained by re-fin-ing its con-straint sys-tem with \OT 1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (27.2138pt too wide) in paragraph at lines 1490--1492 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine[ ][][]with[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (27.2138pt too wide) in paragraph at lines 1493--1495 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine[ ][][]with[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (3.79532pt too wide) in paragraph at lines 1506--1508 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]unconst rain[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 1509--1511 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]affine[ ][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[]Coeff) Overfull \hbox (0.19531pt too wide) in paragraph at lines 1512--1514 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]affine[ ][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[] [56] Overfull \hbox (12.0115pt too wide) in paragraph at lines 757--758 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold[] [][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]fold[][][]space[][][]dimensions Overfull \hbox (9.68161pt too wide) in paragraph at lines 763--764 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]map[][ ][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpz[][][]class[][][]map[][][]space[][][]dimensions Overfull \hbox (2.12299pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]B[ ]D[][][][]Shape[][][]mpz[][][]class[][][]drop[][][]some[][][] Overfull \hbox (7.84299pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[][][]some[] Overfull \hbox (11.11328pt too wide) in paragraph at lines 781--782 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]external[][][]memory[] Overfull \hbox (11.6919pt too wide) in paragraph at lines 787--788 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]total[ ][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]total[][][]memory[][][]in[][][]bytes Overfull \hbox (0.64241pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[] [71] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1515--1517 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounded [][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1518--1520 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounded [][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 1521--1523 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 1524--1526 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1527--1529 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1530--1532 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, +[]Lin[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1533--1535 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wrap[][ ][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[] [57] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1555--1557 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simplif y[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (0.81381pt too wide) in paragraph at lines 1558--1560 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]linear[ ][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[]Handle[][][]3, Overfull \hbox (31.39532pt too wide) in paragraph at lines 1565--1567 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H[ ]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Ha ndle[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1568--1570 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[] [][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1577--1579 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]widenin g[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 1583--1585 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 1586--1588 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] [58] Overfull \hbox (28.74266pt too wide) in paragraph at lines 799--800 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[][][]widening[] Overfull \hbox (12.15302pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (7.27174pt too wide) in paragraph at lines 811--812 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][][]H79[][][]widening[][][]assign ( Overfull \hbox (21.76277pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]widening[][][]assign[] Overfull \hbox (0.72179pt too wide) in paragraph at lines 829--830 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (22.10204pt too wide) in paragraph at lines 835--836 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.88206pt too wide) in paragraph at lines 841--842 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/p cr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [72 Overfull \hbox (31.39532pt too wide) in paragraph at lines 1589--1591 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1592--1594 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1595--1597 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 1598--1600 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1617--1619 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[]Dimension[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 1620--1622 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]project(+[]Handle, +[]Dimension[] [59]] Overfull \hbox (10.41382pt too wide) in paragraph at lines 1623--1625 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove[ ][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var s) Overfull \hbox (18.19531pt too wide) in paragraph at lines 1626--1628 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove[ ][][]higher[][][]space[][][]dimensions(+[]Handle, +[]Dimension[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 1629--1631 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expand[ ][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1632--1634 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold[][ ][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1654--1656 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[]Universe[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 1661--1663 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][]constraints(+[]Constraint[][][][]System, -[]Handle) Overfull \hbox (3.2138pt too wide) in paragraph at lines 1664--1666 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][]congruences(+[]Congruence[][][][]System, -[]Handle) [60] Overfull \hbox (27.5924pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (4.81262pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (11.47267pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (2.84262pt too wide) in paragraph at lines 865--866 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[] Overfull \hbox (28.75323pt too wide) in paragraph at lines 871--872 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (19.75198pt too wide) in paragraph at lines 877--878 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][][]C[]C76[][][]narrowing[][][]assign [73] Underfull \hbox (badness 10000) in paragraph at lines 1675--1676 Overfull \hbox (28.99533pt too wide) in paragraph at lines 1699--1701 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 1699--1701 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 1702--1704 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 1702--1704 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 1705--1707 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1708--1710 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (12.81381pt too wide) in paragraph at lines 1711--1713 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 1714--1716 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, +[] [61] Overfull \hbox (11.61383pt too wide) in paragraph at lines 1717--1719 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (11.61383pt too wide) in paragraph at lines 1720--1722 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 1723--1725 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 1726--1728 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (4.99533pt too wide) in paragraph at lines 1769--1771 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strictl y[][][]contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, +[] Overfull \hbox (32.59534pt too wide) in paragraph at lines 1772--1774 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][][ ]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][ ]1, +[]Handle[] [62] Overfull \hbox (14.6529pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (20.20296pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (12.97296pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[] [][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (1.47284pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (37.57156pt too wide) in paragraph at lines 919--920 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]add[][][]recycled[][][]constraints Overfull \hbox (43.12163pt too wide) in paragraph at lines 925--926 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]add[][][]recycled[][][]congruences Overfull \hbox (5.01176pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class ( [74 Overfull \hbox (56.5953pt too wide) in paragraph at lines 1794--1796 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relatio n[][][]with[][][]constraint(+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1794--1796 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (44.5953pt too wide) in paragraph at lines 1797--1799 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relatio n[][][]with[][][]generator(+[]Handle, +[]Generator, ?Relation[] Overfull \hbox (13.12079pt too wide) in paragraph at lines 1797--1799 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . Overfull \hbox (56.5953pt too wide) in paragraph at lines 1800--1802 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relatio n[][][]with[][][]congruence(+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1800--1802 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (0.19531pt too wide) in paragraph at lines 1809--1811 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][] []minimized[][][]constraints(+[]Handle, ?Constraint[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1812--1814 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][] []minimized[][][]congruences(+[]Handle, ?Congruence[][][] Overfull \hbox (57.2138pt too wide) in paragraph at lines 1815--1817 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (57.2138pt too wide) in paragraph at lines 1820--1822 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) [63]] Overfull \hbox (0.81381pt too wide) in paragraph at lines 1825--1827 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, Overfull \hbox (0.81381pt too wide) in paragraph at lines 1830--1832 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, [64] Overfull \hbox (3.34184pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class ( Overfull \hbox (7.36293pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (5.69301pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (11.61273pt too wide) in paragraph at lines 955--956 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (9.94281pt too wide) in paragraph at lines 961--962 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (12.99327pt too wide) in paragraph at lines 967--968 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.32335pt too wide) in paragraph at lines 973--974 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.96294pt too wide) in paragraph at lines 979--980 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (14.29301pt too wide) in paragraph at lines 985--986 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] [75] Overfull \hbox (25.80045pt too wide) in paragraph at lines 1866--1868 \OT1/ptm/m/it/10 Updates the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Handle \ OT1/ptm/m/it/10 to one ob-tained by re-fin-ing its con-straint sys-tem with \OT 1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (27.2138pt too wide) in paragraph at lines 1872--1874 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine[ ][][]with[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (27.2138pt too wide) in paragraph at lines 1875--1877 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine[ ][][]with[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (3.79532pt too wide) in paragraph at lines 1888--1890 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]unconst rain[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 1891--1893 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]affine[ ][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[]Coeff) Overfull \hbox (0.19531pt too wide) in paragraph at lines 1894--1896 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]affine[ ][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1897--1899 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounded [][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1900--1902 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounded [][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 1903--1905 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 1906--1908 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] [65] Overfull \hbox (20.21274pt too wide) in paragraph at lines 991--992 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (18.54282pt too wide) in paragraph at lines 997--998 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] ) (./interfaceppl__Coefficient__tag.tex [76 Overfull \hbox (19.39532pt too wide) in paragraph at lines 1909--1911 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1912--1914 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, +[]Lin[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1915--1917 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wrap[][ ][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1937--1939 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simplif y[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (0.81381pt too wide) in paragraph at lines 1940--1942 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]linear[ ][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[]Handle[][][]3, [66]]) (./interfaceppl__Congruence__System__const__iterator__tag.tex Overfull \hbox (31.39532pt too wide) in paragraph at lines 1947--1949 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H[ ]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Ha ndle[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1950--1952 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[] [][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1959--1961 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]widenin g[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 1965--1967 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 1968--1970 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (31.39532pt too wide) in paragraph at lines 1971--1973 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1974--1976 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1977--1979 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 1980--1982 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] [67] [77] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1999--2001 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[]Dimension[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 2002--2004 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]project(+[]Handle, +[]Dimension[] Overfull \hbox (10.41382pt too wide) in paragraph at lines 2005--2007 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove[ ][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var s) Overfull \hbox (18.19531pt too wide) in paragraph at lines 2008--2010 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove[ ][][]higher[][][]space[][][]dimensions(+[]Handle, +[]Dimension[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 2011--2013 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expand[ ][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 2014--2016 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold[][ ][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[] [68] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2036--2038 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2043--2045 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]constraints(+[]Constraint[][][][]System, -[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2046--2048 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]congruences(+[]Congruence[][][][]System, -[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2049--2051 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]generators(+[]Generator[][][][]System, -[] Underfull \hbox (badness 10000) in paragraph at lines 2057--2058 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2063--2065 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2066--2068 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[] [69] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2072--2074 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Rational[][][][]Box(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2075--2077 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 2075--2077 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2078--2080 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 2078--2080 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2081--2083 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2084--2086 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[] Overfull \hbox (22.41382pt too wide) in paragraph at lines 2087--2089 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 2090--2092 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[] Overfull \hbox (54.81381pt too wide) in paragraph at lines 2093--2095 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (22.41382pt too wide) in paragraph at lines 2096--2098 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 2099--2101 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 2102--2104 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2105--2107 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]co mplexity(+[] [70 Overfull \hbox (1.72762pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][][]from[][][][]Congruence[][][][]System[][][]const[][ ][]iterator[][] ([][]ppl[] Overfull \hbox (2.27753pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][] ([][]ppl[][][]const[][][][]Congruence[][][][]System [][][]const[][][]iterator[] Overfull \hbox (17.54732pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]const[][ ][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Congruence[][][ ][]System[][][]const[][][]iterator[] ) (./interfaceppl__Congruence__System__tag.tex] [78] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2108--2110 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]co mplexity(+[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2148--2150 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]co ntains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 2151--2153 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]st rictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[] Overfull \hbox (16.99533pt too wide) in paragraph at lines 2154--2156 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]is [][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2157--2159 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]eq uals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][] [71] Overfull \hbox (5.6138pt too wide) in paragraph at lines 2173--2175 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]af fine[][][]dimension(+[]Handle, ?Dimension[][][][]Type) Overfull \hbox (29.6138pt too wide) in paragraph at lines 2176--2178 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re lation[][][]with[][][]constraint(+[]Handle, +[]Constraint, Overfull \hbox (17.6138pt too wide) in paragraph at lines 2179--2181 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re lation[][][]with[][][]generator(+[]Handle, +[]Generator, Overfull \hbox (29.6138pt too wide) in paragraph at lines 2182--2184 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re lation[][][]with[][][]congruence(+[]Handle, +[]Congruence, Overfull \hbox (17.6138pt too wide) in paragraph at lines 2185--2187 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]constraints(+[]Handle, ?Constraint[][][][]System) Overfull \hbox (17.6138pt too wide) in paragraph at lines 2188--2190 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]congruences(+[]Handle, ?Congruence[][][][]System) Overfull \hbox (38.5953pt too wide) in paragraph at lines 2191--2193 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]minimized[][][]constraints(+[]Handle, ?Constraint[] Overfull \hbox (38.5953pt too wide) in paragraph at lines 2194--2196 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]minimized[][][]congruences(+[]Handle, ?Congruence[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2197--2199 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ma ximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2202--2204 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]mi nimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2207--2209 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ma ximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] [72] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2212--2214 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]mi nimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2217--2219 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ex ternal[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2242--2244 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2245--2247 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2248--2250 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]constraint( +[]Handle, +[]Constraint) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2251--2253 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]congruence( +[]Handle, +[]Congruence) [73] Overfull \hbox (7.63844pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Congruence[][][][]System[][][ ]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Congruence[][][][]Sys tem[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, [][]ppl[] Overfull \hbox (9.56808pt too wide) in paragraph at lines 28--30 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Congruence[][][][]System[] [][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Congruence[][][][] System[][][]t[][] dst, [][]ppl[] Overfull \hbox (10.67792pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]space[][ ][]dimension[][] ([][]ppl[][][]const[][][][]Congruence[][][][]System[][][]t[][] cs, [][]ppl[][][]dimension[] Overfull \hbox (4.96837pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]begin[][ ] ([][]ppl[][][]const[][][][]Congruence[][][][]System[][][]t[][] cs, [][]ppl[][ ][][]Congruence[][][][]System[] Overfull \hbox (23.98816pt too wide) in paragraph at lines 60--62 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]insert[] [][][]Congruence[][] ([][]ppl[][][][]Congruence[][][][]System[][][]t[][] cs, [] []ppl[][][]const[][][][]Congruence[] [79] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2254--2256 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2257--2259 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 2267--2269 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]un constrain[][][]space[][][]dimension(+[]Handle, +[]P[]P[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 2270--2272 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]un constrain[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2273--2275 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]af fine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, Overfull \hbox (14.61084pt too wide) in paragraph at lines 2273--2275 \OT1/ptm/m/it/10 Transforms the oc-tag-o-nal shape ref-er-enced by \OT1/pcr/m/s l/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/m /sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (0.19531pt too wide) in paragraph at lines 2276--2278 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]af fine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2279--2281 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]bo unded[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2282--2284 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]bo unded[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (9.2138pt too wide) in paragraph at lines 2285--2287 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (2.5953pt too wide) in paragraph at lines 2288--2290 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2291--2293 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[] [74) (./interfaceppl__Congruence__tag.tex] Overfull \hbox (12.81381pt too wide) in paragraph at lines 2294--2296 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, Overfull \hbox (24.81381pt too wide) in paragraph at lines 2297--2299 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]wr ap[][][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, Overfull \hbox (31.39532pt too wide) in paragraph at lines 2316--2318 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]up per[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2319--2321 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]si mplify[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2322--2324 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li near[][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[] [75] Overfull \hbox (15.0983pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][]coefficient[][] ([][]p pl[][][]const[][][][]Congruence[][][]t[][] c, [][]ppl[][][]dimension[][][]type[ ][] var, [][]ppl[][][][]Coefficient[] [80]) (./interfaceppl__Constraint__System__const__iterator__tag.tex Overfull \hbox (9.79532pt too wide) in paragraph at lines 2329--2331 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2332--2334 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (33.79532pt too wide) in paragraph at lines 2335--2337 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]wi dening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (1.24307pt too wide) in paragraph at lines 2335--2337 \OT1/ptm/m/it/10 Same as pred-i-cate \OT1/pcr/m/sl/10 ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[][][][]H79[][][]widening[][][]assign[][][]with[][] []tokens\OT1/ptm/m/it/10 /4 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2341--2343 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][] Overfull \hbox (19.9953pt too wide) in paragraph at lines 2341--2343 \OT1/pcr/m/n/10 tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]Constraint[][][][ ]System, +[]C[][][]unsigned[][][]1, ?C[][][]unsigned[] Overfull \hbox (37.39532pt too wide) in paragraph at lines 2344--2346 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2347--2349 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2350--2352 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2353--2355 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][] C[]C76[][][]narrowing[][][]assign(+[]Handle[][][]1, +[]Handle[] Underfull \vbox (badness 3058) has occurred while \output is active [76] Overfull \hbox (25.10667pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][][][]System[][][ ]const[][][]iterator[][][]from[][][][]Constraint[][][][]System[][][]const[][][] iterator[][] ([][]ppl[][][][]Constraint[] Overfull \hbox (33.69638pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Constraint[][][][]System[] [][]const[][][]iterator[][][]from[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][] ([][]ppl[][][][]Constraint[] Overfull \hbox (11.7268pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][][]dereference[][] ([][]ppl[][][]const[][][][]Constraint[][][][]S ystem[][][]const[][][]iterator[] Overfull \hbox (4.24669pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Constraint[][][ ][]System[][][]const[][][]iterator[] [81]) (./interfaceppl__Constraint__System__tag.tex Overfull \hbox (3.79532pt too wide) in paragraph at lines 2369--2371 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2372--2374 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]project(+[]Handle, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2375--2377 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re move[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2378--2380 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re move[][][]higher[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2381--2383 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ex pand[][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2384--2386 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]fo ld[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] [77] Overfull \hbox (24.61707pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][][][]System[][][ ]from[][][][]Constraint[][] ([][]ppl[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, [][]ppl[][][]const[][][][]Constrai nt[] Overfull \hbox (2.09717pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]end[][] ([][]ppl[][][]const[][][][]Constraint[][][][]System[][][]t[][] cs, [][]ppl[][][ ][]Constraint[][][][]System[][][]const[] [82] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2406--2408 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2413--2415 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]constraints(+[]Constraint[][][][]System, -[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2416--2418 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]congruences(+[]Congruence[][][][]System, -[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2419--2421 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]generators(+[]Generator[][][][]System, -[] Underfull \hbox (badness 10000) in paragraph at lines 2427--2428 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2433--2435 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2436--2438 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2442--2444 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Rational[][][][]Box(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2445--2447 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 2445--2447 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] [78]) (./interfaceppl__Constraint__tag.tex Overfull \hbox (28.99533pt too wide) in paragraph at lines 2448--2450 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 2448--2450 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2451--2453 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2454--2456 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[] Overfull \hbox (22.41382pt too wide) in paragraph at lines 2457--2459 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 2460--2462 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[] Overfull \hbox (54.81381pt too wide) in paragraph at lines 2463--2465 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (22.41382pt too wide) in paragraph at lines 2466--2468 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 2469--2471 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 2472--2474 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2475--2477 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]co mplexity(+[] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2478--2480 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]co mplexity(+[] [79] Overfull \hbox (1.5281pt too wide) in paragraph at lines 16--18 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][] ([][]ppl[][][] []Constraint[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pc, [][]ppl[][][ ]const[][][][]Linear[][][][]Expression[][][]t[][] le, enum [][]ppl[][][]enum[] [83] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2518--2520 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]co ntains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 2521--2523 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]st rictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[] Overfull \hbox (16.99533pt too wide) in paragraph at lines 2524--2526 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]is [][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2527--2529 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]eq uals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][] Overfull \hbox (5.6138pt too wide) in paragraph at lines 2543--2545 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]af fine[][][]dimension(+[]Handle, ?Dimension[][][][]Type) Overfull \hbox (29.6138pt too wide) in paragraph at lines 2546--2548 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re lation[][][]with[][][]constraint(+[]Handle, +[]Constraint, [80] Overfull \hbox (1.79767pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][]coefficient[][] ([][]p pl[][][]const[][][][]Constraint[][][]t[][] c, [][]ppl[][][]dimension[][][]type[ ][] var, [][]ppl[][][][]Coefficient[] ) (./interfaceppl__Constraints__Product__C__Polyhedron__Grid__tag.tex Overfull \hbox (17.6138pt too wide) in paragraph at lines 2549--2551 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re lation[][][]with[][][]generator(+[]Handle, +[]Generator, Overfull \hbox (29.6138pt too wide) in paragraph at lines 2552--2554 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re lation[][][]with[][][]congruence(+[]Handle, +[]Congruence, Overfull \hbox (17.6138pt too wide) in paragraph at lines 2555--2557 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]constraints(+[]Handle, ?Constraint[][][][]System) Overfull \hbox (17.6138pt too wide) in paragraph at lines 2558--2560 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]congruences(+[]Handle, ?Congruence[][][][]System) Overfull \hbox (38.5953pt too wide) in paragraph at lines 2561--2563 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]minimized[][][]constraints(+[]Handle, ?Constraint[] Overfull \hbox (38.5953pt too wide) in paragraph at lines 2564--2566 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]minimized[][][]congruences(+[]Handle, ?Congruence[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2567--2569 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ma ximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2572--2574 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]mi nimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2577--2579 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ma ximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2582--2584 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]mi nimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] [81] Overfull \hbox (14.4614pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[][][]const[][][][]Constraints [][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (16.42136pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension[][] ([][] ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (5.32178pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][] ([][ ]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (19.76172pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][ ] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (27.2516pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][] ([][]ppl[][][][]Con straints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.10153pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][] ([][ ]ppl[][][][]Constraints[][][][]Product[] [84] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2587--2589 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ex ternal[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2612--2614 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2615--2617 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2618--2620 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]constraint( +[]Handle, +[]Constraint) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2621--2623 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]congruence( +[]Handle, +[]Congruence) Overfull \hbox (32.5953pt too wide) in paragraph at lines 2624--2626 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2627--2629 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]congruences( +[]Handle, +[]Congruence[] [82] Overfull \hbox (0.58157pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (27.2312pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (27.79126pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (0.26022pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid[][] Overfull \hbox (5.4219pt too wide) in paragraph at lines 35--37 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.44136pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]wit h[][][]complexity[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (5.72202pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][ ][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (2.39153pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexi ty[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (38.22112pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]wit h[][][]complexity[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (20.69154pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[] [][]class[][][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (21.2516pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (20.90985pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][][]with[][][]complexity[][] Overfull \hbox (2.55026pt too wide) in paragraph at lines 49--51 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, int Overfull \hbox (21.46991pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][][]with[][][]complexity[][] Overfull \hbox (3.11032pt too wide) in paragraph at lines 51--53 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/ Overfull \hbox (2.5953pt too wide) in paragraph at lines 2637--2639 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]un constrain[][][]space[][][]dimension(+[]Handle, +[]P[]P[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 2640--2642 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]un constrain[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2643--2645 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]af fine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, Overfull \hbox (14.61084pt too wide) in paragraph at lines 2643--2645 \OT1/ptm/m/it/10 Transforms the oc-tag-o-nal shape ref-er-enced by \OT1/pcr/m/s l/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/m /sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (0.19531pt too wide) in paragraph at lines 2646--2648 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]af fine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2649--2651 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]bo unded[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2652--2654 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]bo unded[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (9.2138pt too wide) in paragraph at lines 2655--2657 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (2.5953pt too wide) in paragraph at lines 2658--2660 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2661--2663 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[] Overfull \hbox (12.81381pt too wide) in paragraph at lines 2664--2666 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, Overfull \hbox (24.81381pt too wide) in paragraph at lines 2667--2669 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]wr ap[][][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, [83]bc/n/10 pph, [][] ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, int Overfull \hbox (9.24173pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid[] Overfull \hbox (16.57161pt too wide) in paragraph at lines 53--55 [][]\OT1/ptm/bc/n/10 with[][][]complexity[][] ([][]ppl[][][][]Constraints[][][] []Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^ ^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (23.66107pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (26.11101pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[ ][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (25.8513pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (34.3313pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]universe[][] ([][]ppl[][][]const[][][][]C onstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.29152pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]bounded[][] ([][]ppl[][][]const[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] [85] Overfull \hbox (31.39532pt too wide) in paragraph at lines 2686--2688 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]up per[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2689--2691 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]si mplify[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2692--2694 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li near[][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2699--2701 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2702--2704 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign(+[]Handle[][][]1, +[]Handle[] [84] Overfull \hbox (33.79532pt too wide) in paragraph at lines 2705--2707 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]wi dening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (1.24307pt too wide) in paragraph at lines 2705--2707 \OT1/ptm/m/it/10 Same as pred-i-cate \OT1/pcr/m/sl/10 ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[][][][]H79[][][]widening[][][]assign[][][]with[][] []tokens\OT1/ptm/m/it/10 /4 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2711--2713 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][] Overfull \hbox (19.9953pt too wide) in paragraph at lines 2711--2713 \OT1/pcr/m/n/10 tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]Constraint[][][][ ]System, +[]C[][][]unsigned[][][]1, ?C[][][]unsigned[] Overfull \hbox (37.39532pt too wide) in paragraph at lines 2714--2716 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2717--2719 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2720--2722 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2723--2725 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][] C[]C76[][][]narrowing[][][]assign(+[]Handle[][][]1, +[]Handle[] [85] Overfull \hbox (22.80093pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][ ][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (31.95103pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]discrete[][] ([][]ppl[][][]const[][][][]C onstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.9711pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]topological[][][]closure[][][]assign[][] ([][]ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (9.71191pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounds[][][]from[][][]above[][] ([][]ppl[][][]con st[][][][]Constraints[][][][]Product[] Overfull \hbox (10.32164pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounds[][][]from[][][]below[][] ([][]ppl[][][]con st[][][][]Constraints[][][][]Product[] Overfull \hbox (30.02118pt too wide) in paragraph at lines 85--87 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]maximize[][] ([][]ppl[][][]const[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.78001pt too wide) in paragraph at lines 85--87 [][][]\OT1/ptm/bc/n/10 Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][] [][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 poptimum) Overfull \hbox (28.36113pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]minimize[][] ([][]ppl[][][]const[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.78001pt too wide) in paragraph at lines 87--89 [][][]\OT1/ptm/bc/n/10 Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][] [][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 poptimum) Overfull \hbox (15.58107pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]c onst[][][][]Constraints[][][][]Product[] Overfull \hbox (3.36195pt too wide) in paragraph at lines 89--91 [][][]\OT1/ptm/bc/n/10 C[][][][]Polyhedron[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coeffic ient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[] Overfull \hbox (13.92102pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]c onst[][][][]Constraints[][][][]Product[] Overfull \hbox (3.36195pt too wide) in paragraph at lines 91--93 [][][]\OT1/ptm/bc/n/10 C[][][][]Polyhedron[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coeffic ient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[] Overfull \hbox (21.13144pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[][][][ ]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[] Overfull \hbox (12.5711pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedro Overfull \hbox (3.79532pt too wide) in paragraph at lines 2739--2741 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2742--2744 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]project(+[]Handle, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2745--2747 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re move[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2748--2750 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re move[][][]higher[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2751--2753 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ex pand[][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2754--2756 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]fo ld[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] Overfull \hbox (39.79532pt too wide) in paragraph at lines 2776--2778 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension(+[]Dimension[] [86] Overfull \hbox (24.19531pt too wide) in paragraph at lines 2783--2785 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][]constraints(+[]Constraint[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 2786--2788 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][]congruences(+[]Congruence[] Underfull \hbox (badness 10000) in paragraph at lines 2794--2795 Overfull \hbox (3.79532pt too wide) in paragraph at lines 2800--2802 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2803--2805 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 2806--2808 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Grid(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2809--2811 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box(+[]Handle[] Overfull \hbox (34.99533pt too wide) in paragraph at lines 2812--2814 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class (+[]Handle[] Overfull \hbox (34.99533pt too wide) in paragraph at lines 2815--2817 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class (+[]Handle[] Overfull \hbox (40.99533pt too wide) in paragraph at lines 2818--2820 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class(+[] Overfull \hbox (40.99533pt too wide) in paragraph at lines 2821--2823 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class(+[] Overfull \hbox (0.86227pt too wide) in paragraph at lines 2821--2823 \OT1/ptm/m/it/10 Builds a new con-straints prod-uct \OT1/pcr/m/sl/10 P[][][]1 \ OT1/ptm/m/it/10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[] [87]n[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[][][][] Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.18124pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][] [][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.35155pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C [][][][]Polyhedron[][][][]Grid[][] ([][]ppl[] Overfull \hbox (5.02113pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][][]OK[][] ([][]ppl[][][]const[][][][]Constraints[] [][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (23.35141pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]constraint[][] ([][]ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (30.00172pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]congruence[][] ([][]ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (27.2413pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]constraints[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (33.89162pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]congruences[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.62155pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]refine[][][]with[][][]congruences[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] [86] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2824--2826 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][] Overfull \hbox (58.99533pt too wide) in paragraph at lines 2827--2829 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]co mplexity(+[] Overfull \hbox (70.99533pt too wide) in paragraph at lines 2830--2832 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[] [][]complexity(+[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 2833--2835 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexity(+[] Overfull \hbox (58.99533pt too wide) in paragraph at lines 2836--2838 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]co mplexity(+[] Overfull \hbox (14.59534pt too wide) in paragraph at lines 2839--2841 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]with[] Overfull \hbox (14.59534pt too wide) in paragraph at lines 2842--2844 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]with[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2845--2847 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2848--2850 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[] Overfull \hbox (0.86227pt too wide) in paragraph at lines 2848--2850 \OT1/ptm/m/it/10 Builds a new con-straints prod-uct \OT1/pcr/m/sl/10 P[][][]1 \ OT1/ptm/m/it/10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2851--2853 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][] [88] Overfull \hbox (15.2138pt too wide) in paragraph at lines 2876--2878 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]is[][][]topologically[][][]closed(+[]Handle) Overfull \hbox (0.19531pt too wide) in paragraph at lines 2882--2884 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounds[][][]from[][][]above(+[]Handle, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2885--2887 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounds[][][]from[][][]below(+[]Handle, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2888--2890 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2891--2893 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2894--2896 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][][] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2897--2899 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C[][][] Overfull \hbox (44.5953pt too wide) in paragraph at lines 2910--2912 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]space[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (50.5953pt too wide) in paragraph at lines 2913--2915 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]affine[][][]dimension(+[]Handle, ?Dimension[] [89] Overfull \hbox (34.7512pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]difference[][][]assign[][] ([][]ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.84091pt too wide) in paragraph at lines 127--129 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][] Constraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.1216pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[] [] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (6.42146pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]constrains[][] ([][]ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (23.63115pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension[][] ([][]pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (16.4315pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]affine[][][]image[][] ([][]ppl[][][][]Constraints [][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.2014pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]affine[][][]preimage[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.26169pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (6.1413pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]image[][] ([][]ppl[] [][][]Constraints[][][][]Product[] Overfull \hbox (18.9112pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][] ([][]pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (2.52121pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][] rhs[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (15.2911pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[][ ][]rhs[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (8.89146pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embe d[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (10.00131pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]proj ect[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (10.55145pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]remove[][][]space[][][]dimensions[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (4.99152pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (5.70161pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][] [][]Constraints[][][][]Product[] [87 Overfull \hbox (21.2138pt too wide) in paragraph at lines 2916--2918 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]relation[][][]with[][][]constraint(+[]Handle, Overfull \hbox (15.2138pt too wide) in paragraph at lines 2919--2921 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]relation[][][]with[][][]generator(+[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 2922--2924 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]relation[][][]with[][][]congruence(+[]Handle, Overfull \hbox (44.5953pt too wide) in paragraph at lines 2925--2927 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]maximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (44.5953pt too wide) in paragraph at lines 2930--2932 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]minimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2935--2937 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]maximize[][][]with[][][]point(+[]Handle, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2940--2942 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]minimize[][][]with[][][]point(+[]Handle, +[] Overfull \hbox (18.81381pt too wide) in paragraph at lines 2945--2947 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes(+[]Handle, Overfull \hbox (0.81381pt too wide) in paragraph at lines 2948--2950 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes(+[]Handle, [90]] Overfull \hbox (41.6138pt too wide) in paragraph at lines 2964--2966 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]constraint(+[]Handle, +[]Constraint) Overfull \hbox (41.6138pt too wide) in paragraph at lines 2967--2969 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]congruence(+[]Handle, +[]Congruence) Overfull \hbox (56.5953pt too wide) in paragraph at lines 2970--2972 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (56.5953pt too wide) in paragraph at lines 2973--2975 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 2976--2978 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]constraint( +[]Handle, Overfull \hbox (15.2138pt too wide) in paragraph at lines 2979--2981 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]congruence( +[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 2982--2984 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]constraints( +[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 2985--2987 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]congruences( +[]Handle, Overfull \hbox (0.19531pt too wide) in paragraph at lines 2992--2994 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]topological[][][]closure[][][]assign(+[] [91] Overfull \hbox (0.69177pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points[ ][][]2[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (0.97137pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes[][] ([][] ppl[][][]const[][][][]Constraints[] Overfull \hbox (21.40106pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl [][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (22.70122pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens[][] ([ ][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (31.69138pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]widening[][][]assign[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.85143pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]print[][][][]Constraints[][][][]Pro duct[][][][]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[][][]const[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (17.83125pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Constraints[][][][]P roduct[][][][]C[][][][]Polyhedron[][][][]Grid[][] (char $\OMS/cmsy/m/n/10 ^^C$$ ^^C$\OT1/ptm/bc/n/10 strp, [][]ppl[][][]const[][][][]Constraints[][][][]Product [] Overfull \hbox (35.29124pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (5.02145pt too wide) in paragraph at lines 187--188 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]ascii[][][]load[][] ([][]ppl[][][][]Constraints[] [][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (36.6532pt too wide) in paragraph at lines 199--200 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Constraints[][][][]Product[][][][]C[] [][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.3924pt too wide) in paragraph at lines 205--206 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/ 8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (7.45296pt too wide) in paragraph at lines 211--212 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (21.8929pt too wide) in paragraph at lines 217--218 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/p cr/m/n/8 int ppl[][][]new[][][][]Constraints[] [88 Overfull \hbox (6.19531pt too wide) in paragraph at lines 2995--2997 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension(+[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2998--3000 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]unconstrain[][][]space[][][]dimensions(+[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 3001--3003 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3004--3006 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]affine[][][]preimage(+[]Handle, +[]P[]P[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3007--3009 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounded[][][]affine[][][]image(+[]Handle, +[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3010--3012 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounded[][][]affine[][][]preimage(+[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 3013--3015 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]image(+[]Handle, Overfull \hbox (6.19531pt too wide) in paragraph at lines 3016--3018 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]preimage(+[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3019--3021 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3022--3024 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[] [92]] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3029--3031 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]intersection[][][]assign(+[]Handle[][][] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3032--3034 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]upper[][][]bound[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3035--3037 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]difference[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3038--3040 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]time[][][]elapse[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3041--3043 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact(+[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 3048--3050 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3051--3053 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]widening[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3060--3062 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]concatenate[][][]assign(+[]Handle[][][]1, +[] [93] Overfull \hbox (19.39532pt too wide) in paragraph at lines 3067--3069 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embed(+[] Overfull \hbox (31.39532pt too wide) in paragraph at lines 3070--3072 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]project(+[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3073--3075 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]remove[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (21.79532pt too wide) in paragraph at lines 3076--3078 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions(+[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 3079--3081 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]expand[][][]space[][][]dimension(+[]Handle, Overfull \hbox (3.2138pt too wide) in paragraph at lines 3082--3084 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]fold[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (18.19531pt too wide) in paragraph at lines 3085--3087 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]map[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3104--3106 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][]space[][][]dimension(+[]Dimension[] [94] Overfull \hbox (4.60298pt too wide) in paragraph at lines 223--224 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Constraints[][][][]Product[] Overfull \hbox (4.50287pt too wide) in paragraph at lines 229--230 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (36.70241pt too wide) in paragraph at lines 235--236 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (37.8224pt too wide) in paragraph at lines 241--242 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (11.0221pt too wide) in paragraph at lines 247--248 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[] Overfull \hbox (12.14209pt too wide) in paragraph at lines 253--254 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[] Overfull \hbox (21.9302pt too wide) in paragraph at lines 259--260 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[ ][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (7.24219pt too wide) in paragraph at lines 265--266 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] [89 Overfull \hbox (21.2138pt too wide) in paragraph at lines 3111--3113 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][]constraints(+[]Constraint[][][][]System, Overfull \hbox (21.2138pt too wide) in paragraph at lines 3114--3116 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][]congruences(+[]Congruence[][][][]System, Underfull \hbox (badness 10000) in paragraph at lines 3122--3123 Overfull \hbox (31.39532pt too wide) in paragraph at lines 3128--3130 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron (+[] Overfull \hbox (10.35161pt too wide) in paragraph at lines 3128--3130 \OT1/ptm/m/it/10 Builds a new pointset pow-er-set \OT1/pcr/m/sl/10 P[][][]1 \OT 1/ptm/m/it/10 from the pointset[][][]powerset[][][]c[][][]polyhedron ref-er-enc ed by han-dle \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 3131--3133 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 3134--3136 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron [] Overfull \hbox (10.35161pt too wide) in paragraph at lines 3134--3136 \OT1/ptm/m/it/10 Builds a new pointset pow-er-set \OT1/pcr/m/sl/10 P[][][]1 \OT 1/ptm/m/it/10 from the pointset[][][]powerset[][][]c[][][]polyhedron ref-er-enc ed by han-dle \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 3137--3139 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[] [95]] Overfull \hbox (3.2138pt too wide) in paragraph at lines 3171--3173 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounds[][][]from[][][]above(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (3.2138pt too wide) in paragraph at lines 3174--3176 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounds[][][]from[][][]below(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (33.79532pt too wide) in paragraph at lines 3177--3179 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron(+[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3180--3182 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3183--3185 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3186--3188 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3189--3191 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3192--3194 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron(+[] Overfull \hbox (4.9953pt too wide) in paragraph at lines 3205--3207 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]space[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (10.9953pt too wide) in paragraph at lines 3208--3210 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]affine[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3211--3213 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]relation[][][]with[][][]constraint(+[]Handle, +[] [96] Overfull \hbox (47.6138pt too wide) in paragraph at lines 3214--3216 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]relation[][][]with[][][]generator(+[]Handle, +[]Generator, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3217--3219 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]relation[][][]with[][][]congruence(+[]Handle, +[] Overfull \hbox (4.9953pt too wide) in paragraph at lines 3220--3222 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]maximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (4.9953pt too wide) in paragraph at lines 3225--3227 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]minimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3230--3232 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]maximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, Overfull \hbox (15.2138pt too wide) in paragraph at lines 3235--3237 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]minimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, Overfull \hbox (33.2138pt too wide) in paragraph at lines 3240--3242 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]external[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (15.2138pt too wide) in paragraph at lines 3243--3245 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]total[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) [97] Overfull \hbox (21.68213pt too wide) in paragraph at lines 271--272 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[ ][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (40.87224pt too wide) in paragraph at lines 277--278 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexity()[] \ OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (4.2921pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (8.31012pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int Overfull \hbox (9.43011pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int Overfull \hbox (15.90984pt too wide) in paragraph at lines 301--302 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class[][][]with[][][]complexity()[] Overfull \hbox (11.25407pt too wide) in paragraph at lines 301--302 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class[][][]with[][][]complexity Overfull \hbox (17.02983pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class[][][]with[][][]complexity()[] Overfull \hbox (11.25407pt too wide) in paragraph at lines 307--308 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class[][][]with[][][]complexity [90 Overfull \hbox (2.0138pt too wide) in paragraph at lines 3262--3264 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]constraint(+[]Handle, +[]Constraint) Overfull \hbox (2.0138pt too wide) in paragraph at lines 3265--3267 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]congruence(+[]Handle, +[]Congruence) Overfull \hbox (16.9953pt too wide) in paragraph at lines 3268--3270 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3271--3273 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (53.6138pt too wide) in paragraph at lines 3274--3276 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]constraint( +[]Handle, +[]Constraint) Overfull \hbox (53.6138pt too wide) in paragraph at lines 3277--3279 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]congruence( +[]Handle, +[]Congruence) Overfull \hbox (2.5953pt too wide) in paragraph at lines 3280--3282 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]constraints( +[]Handle, +[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3283--3285 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]congruences( +[]Handle, +[] [98]] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3299--3301 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]unconstrain[][][]space[][][]dimension(+[]Handle, +[] Overfull \hbox (5.6138pt too wide) in paragraph at lines 3302--3304 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]unconstrain[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (8.5953pt too wide) in paragraph at lines 3305--3307 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[] Overfull \hbox (19.06027pt too wide) in paragraph at lines 3305--3307 \OT1/ptm/m/it/10 Transforms the pointset pow-er-set ref-er-enced by \OT1/pcr/m/ sl/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/ m/sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (8.5953pt too wide) in paragraph at lines 3308--3310 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3311--3313 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounded[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3314--3316 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounded[][][]affine[][][]preimage(+[]Handle, +[]P[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3317--3319 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]image(+[]Handle, +[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3320--3322 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]preimage(+[]Handle, +[] Overfull \hbox (24.81381pt too wide) in paragraph at lines 3323--3325 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, Overfull \hbox (9.79532pt too wide) in paragraph at lines 3326--3328 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3333--3335 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]intersection[][][]assign(+[]Handle[][][]1, +[]Handle[] [99] Overfull \hbox (1.85179pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[ ][][][]Polyhedron[][][][]Grid[] Overfull \hbox (9.12473pt too wide) in paragraph at lines 313--314 [][]\OT1/ptm/b/n/10 with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]Constraints[][][][]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]fro m[][][][]Constraints[][][][]Product[] Overfull \hbox (27.82246pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraint[][][][]System()[] \OT1/pc r/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (33.37253pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Congruence[][][][]System()[] \OT1/pc r/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (2.81264pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][] Overfull \hbox (0.49269pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]C onstraints[][][][]Product[][][][]C[] Overfull \hbox (26.7724pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (25.09247pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 in t ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (32.32246pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] [91 Overfull \hbox (12.19531pt too wide) in paragraph at lines 3336--3338 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]upper[][][]bound[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3339--3341 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]difference[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3342--3344 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]time[][][]elapse[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3345--3347 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]upper[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[][][] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3348--3350 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]simplify[][][]using[][][]context[][][]assign(+[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 3355--3357 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][]a ssign(+[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 3358--3360 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3361--3363 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign(+[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3364--3366 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign(+[]Handle[] [100]] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3373--3375 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]concatenate[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (12.81381pt too wide) in paragraph at lines 3380--3382 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, Overfull \hbox (24.81381pt too wide) in paragraph at lines 3383--3385 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]space[][][]dimensions[][][]and[][][]project(+[]Handle, Overfull \hbox (20.5953pt too wide) in paragraph at lines 3386--3388 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]remove[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3389--3391 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]remove[][][]higher[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3392--3394 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]expand[][][]space[][][]dimension(+[]Handle, +[]P[]P[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3395--3397 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]fold[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (1.7817pt too wide) in paragraph at lines 3395--3397 \OT1/ptm/m/it/10 Modifies the pointset pow-er-set ref-er-enced by \OT1/pcr/m/sl /10 Handle \OT1/ptm/m/it/10 by fold-ing the space di-men-sions con-tained in \O T1/pcr/m/sl/10 List[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 3398--3400 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]map[][][]space[][][]dimensions(+[]Handle, +[]P[][][][]Func) Overfull \hbox (6.19531pt too wide) in paragraph at lines 3405--3407 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]from[][][]iterator(+[]Iterator[] [101] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3414--3416 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]iterator[][][]equals[][][]iterator(+[]Iterator[][][] Overfull \hbox (29.6138pt too wide) in paragraph at lines 3423--3425 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]iterator[][][]get[][][]disjunct(+[]Iterator, -[]Handle) Overfull \hbox (20.5953pt too wide) in paragraph at lines 3435--3437 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]drop[][][]disjuncts(+[]Handle, +[]Iterator[][][]1, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3454--3456 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][]space[][][]dimension(+[]Dimension[] [102] Overfull \hbox (16.91315pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.16286pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (27.49298pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.85233pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (23.39287pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.78227pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (5.47299pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (5.57285pt too wide) in paragraph at lines 403--404 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (21.08315pt too wide) in paragraph at lines 409--410 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][ ][][]Product[][][][]C[][][][]Polyhedron[] [92] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3461--3463 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][]constraints(+[]Constraint[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3464--3466 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][]congruences(+[]Congruence[][][] Underfull \hbox (badness 10000) in paragraph at lines 3472--3473 Overfull \hbox (55.39532pt too wide) in paragraph at lines 3478--3480 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] []Polyhedron(+[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3481--3483 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[][][]1, - [] Overfull \hbox (43.39532pt too wide) in paragraph at lines 3484--3486 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] []Polyhedron[] Overfull \hbox (43.39532pt too wide) in paragraph at lines 3487--3489 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]comp lexity(+[] [103] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3521--3523 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounds[][][]from[][][]above(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (15.2138pt too wide) in paragraph at lines 3524--3526 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounds[][][]from[][][]below(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (57.79532pt too wide) in paragraph at lines 3527--3529 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron(+[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3530--3532 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 3533--3535 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 3536--3538 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 3539--3541 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[] Overfull \hbox (45.79532pt too wide) in paragraph at lines 3542--3544 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyh edron(+[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3555--3557 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]space[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (22.9953pt too wide) in paragraph at lines 3558--3560 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]affine[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3561--3563 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]relation[][][]with[][][]constraint(+[]Handle, +[] [104] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3564--3566 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]relation[][][]with[][][]generator(+[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3567--3569 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]relation[][][]with[][][]congruence(+[]Handle, +[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3570--3572 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]maximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3575--3577 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]minimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3580--3582 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]maximize[][][]with[][][]point(+[]Handle, +[]Lin[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3585--3587 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]minimize[][][]with[][][]point(+[]Handle, +[]Lin[] Overfull \hbox (45.2138pt too wide) in paragraph at lines 3590--3592 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]external[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (27.2138pt too wide) in paragraph at lines 3593--3595 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]total[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) [105] Overfull \hbox (14.0138pt too wide) in paragraph at lines 3612--3614 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]constraint(+[]Handle, +[]Constraint) Overfull \hbox (14.0138pt too wide) in paragraph at lines 3615--3617 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]congruence(+[]Handle, +[]Congruence) Overfull \hbox (28.9953pt too wide) in paragraph at lines 3618--3620 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (28.9953pt too wide) in paragraph at lines 3621--3623 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3624--3626 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]constraint( +[]Handle, +[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3627--3629 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]congruence( +[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3630--3632 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]constraints( +[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3633--3635 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]congruences( +[]Handle, +[] Overfull \hbox (5.6138pt too wide) in paragraph at lines 3640--3642 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]topological[][][]closure[][][]assign(+[]Handle) [106] Overfull \hbox (19.42297pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][ ][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.84259pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Constraints[][][][]Product[] Overfull \hbox (9.18242pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Constraints[][][][]Product[] Overfull \hbox (15.74998pt too wide) in paragraph at lines 433--434 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (5.10138pt too wide) in paragraph at lines 439--440 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[][][][]Product[ ][][][]C[][][][]Polyhedron[] Overfull \hbox (3.73514pt too wide) in paragraph at lines 439--440 [][][]\OT1/ptm/b/n/10 Grid()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]strictly[][][]contains[][] [][]Constraints[][][][]Product[] Overfull \hbox (2.97153pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][][][]Prod uct[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.69514pt too wide) in paragraph at lines 445--446 [][][]\OT1/ptm/b/n/10 Grid()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]is[][][]disjoint[][][]from [][][][]Constraints[][][][]Product[][][][]C[] [93] Overfull \hbox (11.6138pt too wide) in paragraph at lines 3649--3651 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]unconstrain[][][]space[][][]dimension(+[]Handle, Overfull \hbox (17.6138pt too wide) in paragraph at lines 3652--3654 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]unconstrain[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3655--3657 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (19.06027pt too wide) in paragraph at lines 3655--3657 \OT1/ptm/m/it/10 Transforms the pointset pow-er-set ref-er-enced by \OT1/pcr/m/ sl/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/ m/sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (20.5953pt too wide) in paragraph at lines 3658--3660 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3661--3663 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounded[][][]affine[][][]image(+[]Handle, +[]P[]P[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3664--3666 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounded[][][]affine[][][]preimage(+[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3667--3669 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]image(+[]Handle, +[] Overfull \hbox (11.6138pt too wide) in paragraph at lines 3670--3672 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]preimage(+[]Handle, Overfull \hbox (3.79532pt too wide) in paragraph at lines 3673--3675 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs(+[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3676--3678 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[] [107] Overfull \hbox (32.5953pt too wide) in paragraph at lines 3683--3685 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]intersection[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 3686--3688 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]upper[][][]bound[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3689--3691 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]difference[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 3692--3694 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]time[][][]elapse[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 3695--3697 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]upper[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 3698--3700 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]simplify[][][]using[][][]context[][][]assign(+[]Handle[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3705--3707 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[ ][][]assign(+[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3708--3710 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign(+[]Han dle[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3711--3713 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign(+[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 3714--3716 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign(+[]Handle[] [108] Overfull \hbox (7.42003pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C[][][][] Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (17.62337pt too wide) in paragraph at lines 457--458 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][][]O[]K()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][ ][]Product[][][][]C[][][][]Polyhedron[][][][]Grid[] Overfull \hbox (43.0329pt too wide) in paragraph at lines 463--464 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Con straints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.58293pt too wide) in paragraph at lines 469--470 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Con straints[][][][]Product[][][][]C[][][] Overfull \hbox (46.92279pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.59282pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[] Overfull \hbox (15.10251pt too wide) in paragraph at lines 487--488 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] Overfull \hbox (20.65257pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] [94 Overfull \hbox (26.5953pt too wide) in paragraph at lines 3723--3725 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]concatenate[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (24.81381pt too wide) in paragraph at lines 3730--3732 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, Overfull \hbox (3.79532pt too wide) in paragraph at lines 3733--3735 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project(+[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3736--3738 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]remove[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 3739--3741 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]remove[][][]higher[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3742--3744 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]expand[][][]space[][][]dimension(+[]Handle, +[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3745--3747 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]fold[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (1.7817pt too wide) in paragraph at lines 3745--3747 \OT1/ptm/m/it/10 Modifies the pointset pow-er-set ref-er-enced by \OT1/pcr/m/sl /10 Handle \OT1/ptm/m/it/10 by fold-ing the space di-men-sions con-tained in \O T1/pcr/m/sl/10 List[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3748--3750 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]map[][][]space[][][]dimensions(+[]Handle, +[]P[][][] [109]] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3755--3757 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]from[][][]iterator(+[]Iterator[] Overfull \hbox (2.0138pt too wide) in paragraph at lines 3758--3760 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]begin[][][]iterator(+[]Handle, -[]Iterator) Overfull \hbox (8.5953pt too wide) in paragraph at lines 3764--3766 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]iterator[][][]equals[][][]iterator(+[]Iterator[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3773--3775 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]iterator[][][]get[][][]disjunct(+[]Iterator, -[] ) Overfull \hbox (4.9953pt too wide) in paragraph at lines 3785--199 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]drop[][][]disjuncts(+[]Handle, +[]Iterator[] (./PI_Compilation.tex) (./PI_SD_Features.tex [110] [111] Overfull \hbox (18.9924pt too wide) in paragraph at lines 499--500 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (24.54247pt too wide) in paragraph at lines 505--506 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (1.13237pt too wide) in paragraph at lines 511--512 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []Constraints[][][][]Product[] Overfull \hbox (7.54259pt too wide) in paragraph at lines 517--518 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Constraints[][][][]Product[] Overfull \hbox (1.40259pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][] Constraints[][][][]Product[][][][]C[] Overfull \hbox (1.6827pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Constraints[][][][]Product[] Overfull \hbox (2.6125pt too wide) in paragraph at lines 535--536 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Constraints[][][][]Product[][][] Overfull \hbox (6.58226pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/ pcr/m/n/8 int ppl[][][][]Constraints[] [95 Overfull \hbox (30.3312pt too wide) in paragraph at lines 86--87 []\OT1/ptm/m/n/10 Notice that, for dy-namic link-ing to work, you should have c on-fig-ured the li-brary with the \OT1/pcr/m/n/10 --enable-shared [112]] Overfull \hbox (2.20367pt too wide) in paragraph at lines 100--101 \OT1/ptm/m/n/10 e.[]g., [][]\OT1/pcr/m/n/10 http[]://www.[]cs.[]unipr.[]it/pipe rmail/ppl-devel/2006-[]January/007780.[]html[][]\OT1/ptm/m/n/10 ). ) Overfull \hbox (0.40225pt too wide) in paragraph at lines 102--207 []\OT1/ptm/m/n/10 In or-der to dy-nam-i-cally load the li-brary from Y[]AP you should sim-ply load \OT1/pcr/m/n/10 prefix/lib/ppl/ppl[] (./modules.tex) (./group__PPL__Prolog__interface.tex) [113] [114] (./refman.ind [115]) (./refman.aux) Package rerunfilecheck Warning: File `refman.out' has changed. (rerunfilecheck) Rerun to get outlines right (rerunfilecheck) or use package `bookmark'. ) (see the transcript file for additional information){/usr/share/texlive/texmf-d ist/fonts/enc/dvips/base/8r.enc} Output written on refman.pdf (121 pages, 626916 bytes). Transcript written on refman.log. latex_count=8 ; \ while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $latex_count -gt 0 ] ;\ do \ echo "Rerunning latex...." ;\ pdflatex refman ;\ latex_count=`expr $latex_count - 1` ;\ done Overfull \hbox (23.87296pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[ ][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.49197pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (14.38187pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.02313pt too wide) in paragraph at lines 565--566 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Const raints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (47.28302pt too wide) in paragraph at lines 571--572 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.30272pt too wide) in paragraph at lines 577--578 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (29.5626pt too wide) in paragraph at lines 583--584 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] [96]makeindex refman.idx This is makeindex, version 2.15 [TeX Live 2019/dev] (kpathsea + Thai support). Scanning input file refman.idx....done (1 entries accepted, 0 rejected). Sorting entries...done (0 comparisons). Generating output file refman.ind....done (5 lines written, 0 warnings). Output written in refman.ind. Transcript written in refman.ilg. pdflatex refman Overfull \hbox (26.94246pt too wide) in paragraph at lines 589--590 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (4.72232pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (23.78194pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (38.04182pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs() [] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (31.03197pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \O T1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.062pt too wide) in paragraph at lines 619--620 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] [97]This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./refman.tex LaTeX2e <2018-12-01> (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty (/usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty)) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty Overfull \hbox (31.01239pt too wide) in paragraph at lines 625--626 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (25.91202pt too wide) in paragraph at lines 631--632 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pc r/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (26.97238pt too wide) in paragraph at lines 637--638 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] Overfull \hbox (16.16231pt too wide) in paragraph at lines 643--644 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (18.63242pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (13.61229pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1 /pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (22.2123pt too wide) in paragraph at lines 661--662 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2() [] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.1626pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Constraints[][][][]Product[] [98) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def)])) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty) (/usr/share/texlive/texmf-dist/tex/latex/tocloft/tocloft.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty)) Overfull \hbox (17.7627pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (7.33206pt too wide) in paragraph at lines 679--680 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m /n/8 int ppl[][][][]Constraints[] Overfull \hbox (0.60266pt too wide) in paragraph at lines 685--686 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][] Overfull \hbox (1.51312pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[][] [][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]pri nt[][][][]Constraints[][][][]Product[][][][]C[] Overfull \hbox (1.96307pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fp rint[][][][]Constraints[][][][]Product[] Overfull \hbox (12.32301pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]a sprint[][][][]Constraints[][][][]Product[] Overfull \hbox (27.48296pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.81302pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] [99) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty]) (./interfaceppl__Generator__System__const__iterator__tag.tex)) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) Overfull \hbox (20.03731pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] const[][][]iterator[][][]from[][][][]Generator[][][][]System[][][]const[][][]it erator[][] ([][]ppl[][][][]Generator[] Overfull \hbox (28.62701pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]from[][][][]Generator[][][][]System[][][]const[][][ ]iterator[][] ([][]ppl[][][][]Generator[] Overfull \hbox (8.34723pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]const[][] []iterator[][][]dereference[][] ([][]ppl[][][]const[][][][]Generator[][][][]Sys tem[][][]const[][][]iterator[] Overfull \hbox (0.86711pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]const[][] []iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Generator[][][][ ]System[][][]const[][][]iterator[] ) (./interfaceppl__Generator__System__tag.tex (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def [100]) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/backref.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty) Overfull \hbox (18.41797pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] from[][][][]Generator[][] ([][]ppl[][][][]Generator[][][][]System[][][]t[][] $\ OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (7.88792pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Generator[][][][]System [][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs, [][]ppl[][][]const[] Overfull \hbox (5.21785pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]begin[][] ([][]ppl[][][]const[][][][]Generator[][][][]System[][][]t[][] gs, [][]ppl[][][ ][]Generator[][][][]System[][][]const[] [101) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def]) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty) (./doxygen.sty) (./interfaceppl__Generator__tag.tex (/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty) (/usr/share/texlive/texmf-dist/tex/latex/tabu/tabu.sty (/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty)) (/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty) (/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty)) (/build/ppl-1.2/doc/ppl.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty)) Writing index file refman.idx (./refman.aux) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) [102 (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii] [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty)) (./interfaceppl__Grid__Generator__System__const__iterator__tag.tex (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./refman.out) (./refman.out) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd) Overfull \hbox (20.31735pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][][]Generator[][][][] System[][][]const[][][]iterator[][][]from[][][][]Grid[][][][]Generator[][][][]S ystem[][][]const[][][]iterator[][] ([][]ppl[] Overfull \hbox (2.36742pt too wide) in paragraph at lines 19--21 [][][]\OT1/ptm/bc/n/10 Grid[][][][]Generator[][][][]System[][][]const[][][]iter ator[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgit, [][]ppl[][][]const [][][][]Grid[][][][]Generator[][][][]System[][][]const[][][]iterator[] Overfull \hbox (1.91568pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Grid[][][][]Generator[][][ ][]System[][][]const[][][]iterator[][][]from[][][][]Grid[][][][]Generator[][][] []System[][][]const[][][]iterator[][] Overfull \hbox (10.18723pt too wide) in paragraph at lines 22--24 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Grid[][][][]Generator[][][][]System[][][]const [][][]iterator[][][]t[][] dst, [][]ppl[][][]const[][][][]Grid[][][][]Generator[ ][][][]System[][][]const[][][]iterator[] Overfull \hbox (20.85709pt too wide) in paragraph at lines 35--37 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Grid[][][][]Generator [][][][]System[][][]const[][][]iterator[] Overfull \hbox (12.24728pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Grid [][][][]Generator[][][][]System[][][]const[] [103 (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/Ustmry.fd]) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd)) (./interfaceppl__Grid__Generator__System__tag.tex [1{/var/lib/texmf/fo nts/map/pdftex/updmap/pdftex.map} ] [2] (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd) [3 ] [4] (./refman.toc) [1 ] [2] (./index.tex Overfull \hbox (4.49792pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][][]Generator[][][][] System[][][]from[][][][]Grid[][][][]Generator[][][][]System[][] ([][]ppl[][][][ ]Grid[][][][]Generator[][][][]System[] Overfull \hbox (13.08763pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Grid[][][][]Generator[][][ ][]System[][][]from[][][][]Grid[][][][]Generator[][][][]System[][] ([][]ppl[][] [][]Grid[][][][]Generator[][][][]System[] Overfull \hbox (13.24803pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]begin[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][]System[][] []t[][] gs, [][]ppl[][][][]Grid[][][][]Generator[] Overfull \hbox (5.61804pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]end[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][]System[][][] t[][] gs, [][]ppl[][][][]Grid[][][][]Generator[] [104) (./GPL.texpdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored \relax l.22 [1]]pdfTeX warning (ext4): destination with the same identifier (name{page .2}) has been already used, duplicate ignored \relax l.58 [2]pdfTeX warning (ext4): destination with the same identifier (name{page .3}) has been already used, duplicate ignored \relax l.84 [3]pdfTeX warning (ext4): destination with the same identifier (name{page .4}) has been already used, duplicate ignored \relax l.121 [4 Overfull \hbox (2.72562pt too wide) in paragraph at lines 73--75 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][] System[][][]t[][] x, F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stream) ) (./interfaceppl__Grid__Generator__tag.tex] [5] [6] [7] [105] [8]) (./interfaceppl__Grid__tag.tex) Overfull \hbox (10.35326pt too wide) in paragraph at lines 291--187 \OT1/ptm/m/n/10 stead of this Li-cense. But first, please read [][]\OT1/pcr/m/n /10 http[]://www.[]gnu.[]org/philosophy/why-not-lgpl.[] [9] (./GFDL.tex [10] [11] [12] [106 Overfull \hbox (7.49895pt too wide) in paragraph at lines 97--98 \OT1/ptm/m/n/10 ments, form-ing one sec-tion En-ti-tled "[]History"; like-wise com-bine any sec-tions En-ti-tled "[]Acknowledgements", [13]]) (./PI_SI_Features.tex [14] Underfull \hbox (badness 10000) in paragraph at lines 19--20 Underfull \hbox (badness 10000) in paragraph at lines 21--22 Underfull \hbox (badness 10000) in paragraph at lines 23--24 Overfull \hbox (3.40186pt too wide) in paragraph at lines 28--29 []\OT1/ptm/m/n/10 The prod-uct do-mains con-sist of Direct[][][][]Product[][][] []S[][][]T, Smash[][][][]Product[][][][]S[][][]T, Constraints[][][][]Product[] [15] [16] Underfull \vbox (badness 10000) has occurred while \output is active [17] Underfull \hbox (badness 10000) in paragraph at lines 241--242 Underfull \hbox (badness 10000) in paragraph at lines 246--247 [18] Underfull \hbox (badness 10000) in paragraph at lines 251--252 Underfull \hbox (badness 10000) in paragraph at lines 256--257 Underfull \hbox (badness 10000) in paragraph at lines 261--262 Underfull \hbox (badness 10000) in paragraph at lines 266--267 Underfull \hbox (badness 10000) in paragraph at lines 271--272 Underfull \hbox (badness 10000) in paragraph at lines 276--277 Underfull \hbox (badness 10000) in paragraph at lines 281--282 Underfull \hbox (badness 10000) in paragraph at lines 286--287 Underfull \hbox (badness 10000) in paragraph at lines 291--292 Underfull \hbox (badness 10000) in paragraph at lines 296--297 Underfull \hbox (badness 10000) in paragraph at lines 303--304 Underfull \hbox (badness 10000) in paragraph at lines 308--309 [19] Underfull \hbox (badness 10000) in paragraph at lines 313--314 Underfull \hbox (badness 10000) in paragraph at lines 318--319 Underfull \hbox (badness 10000) in paragraph at lines 323--324 Underfull \hbox (badness 10000) in paragraph at lines 334--335 Overfull \hbox (70.9953pt too wide) in paragraph at lines 339--340 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]M[]I[]P[][][][]Problem(+[]Dimension[][][] []Type, +[]Constraint[][][][]System, +[]Lin[][][][]Expr, +[]Optimization[] Underfull \hbox (badness 10000) in paragraph at lines 339--340 Underfull \hbox (badness 10000) in paragraph at lines 344--345 Underfull \hbox (badness 10000) in paragraph at lines 349--350 Underfull \hbox (badness 10000) in paragraph at lines 354--355 Underfull \hbox (badness 10000) in paragraph at lines 359--360 Underfull \hbox (badness 10000) in paragraph at lines 364--365 Underfull \hbox (badness 10000) in paragraph at lines 369--370 Underfull \hbox (badness 10000) in paragraph at lines 374--375 [20] Overfull \hbox (3.80247pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][ ][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Grid[][][]t[][] $ \OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron [] Overfull \hbox (6.9618pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][] []Generator[][][][]System[][] ([][]ppl[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Grid[][][][]Generator[][][ ][]System[] Overfull \hbox (3.21011pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]get[][][]minimized[][][]congrue nces[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][ ][]Congruence[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 p cs) Overfull \hbox (7.22137pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]get[][][]minimized[][][]grid[][ ][]generators[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]c onst[][][][]Grid[][][][]Generator[][][][]System[] Overfull \hbox (28.41115pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]maximize[][][]with[][][]point[] [] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[] Overfull \hbox (26.7511pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]minimize[][][]with[][][]point[] [] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[] [107 Underfull \hbox (badness 10000) in paragraph at lines 379--380 Overfull \hbox (7.87047pt too wide) in paragraph at lines 382--383 []\OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Optimization[][][][]Mode \OT1/ptm/m /it/10 with the op-ti-miza-tion mode for the M[]IP Prob-lem ref-er-enced by \OT 1/pcr/m/sl/10 Handle\OT1/ptm/m/it/10 . Underfull \hbox (badness 10000) in paragraph at lines 384--385 Overfull \hbox (9.2138pt too wide) in paragraph at lines 389--390 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]space[][][]di mensions[][][]and[][][]embed( +[]Handle, +[]Dimension[][][][]Type) Underfull \hbox (badness 10000) in paragraph at lines 389--390 Underfull \hbox (badness 10000) in paragraph at lines 389--390 Underfull \hbox (badness 10000) in paragraph at lines 394--395 Underfull \hbox (badness 10000) in paragraph at lines 399--400 Underfull \hbox (badness 10000) in paragraph at lines 404--405 Underfull \hbox (badness 10000) in paragraph at lines 409--410 Overfull \hbox (5.6138pt too wide) in paragraph at lines 414--415 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]set[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Value) Underfull \hbox (badness 10000) in paragraph at lines 414--415 Underfull \hbox (badness 10000) in paragraph at lines 414--415 Overfull \hbox (62.5953pt too wide) in paragraph at lines 419--420 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]get[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Name, ?Control[] Underfull \hbox (badness 10000) in paragraph at lines 419--420 Overfull \hbox (18.68352pt too wide) in paragraph at lines 422--423 []\OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Control[][][][]Parameter[][][][]Val ue \OT1/ptm/m/it/10 with the value of the con-trol pa-ram-e-ter \OT1/pcr/m/sl/1 0 Control[][][][]Parameter[] Underfull \hbox (badness 10000) in paragraph at lines 424--425 Overfull \hbox (41.0819pt too wide) in paragraph at lines 427--428 []\OT1/ptm/m/it/10 Updates the M[]IP Prob-lem ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 so that the op-ti-miza-tion mode is changed to \OT1/pcr /m/sl/10 Optimization[] Underfull \hbox (badness 10000) in paragraph at lines 429--430 Underfull \hbox (badness 10000) in paragraph at lines 434--435 Overfull \hbox (15.46123pt too wide) in paragraph at lines 437--438 []\OT1/ptm/m/it/10 Solves the M[]IP prob-lem ref-er-enced by \OT1/pcr/m/sl/10 H andle \OT1/ptm/m/it/10 and uni-fies \OT1/pcr/m/sl/10 M[]I[]P[][][][]Problem[][] [][]Status \OT1/ptm/m/it/10 with[]: \OT1/pcr/m/sl/10 unfeasible\OT1/ptm/m/it/10 , Underfull \hbox (badness 10000) in paragraph at lines 439--440 [21]] Underfull \hbox (badness 10000) in paragraph at lines 444--445 Underfull \hbox (badness 10000) in paragraph at lines 449--450 Overfull \hbox (13.3953pt too wide) in paragraph at lines 454--456 []\OT1/pcr/m/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][]objectiv e[][][]function(+[]Handle, +[]Generator, ?Coeff[] Overfull \hbox (41.48175pt too wide) in paragraph at lines 454--456 \OT1/ptm/m/it/10 Evaluates the ob-jec-tive func-tion of the M[]IP prob-lem ref- er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 at point \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Coefficient[] Underfull \hbox (badness 10000) in paragraph at lines 457--458 Underfull \hbox (badness 10000) in paragraph at lines 462--463 Underfull \hbox (badness 10000) in paragraph at lines 467--468 Underfull \hbox (badness 10000) in paragraph at lines 476--477 Overfull \hbox (4.9953pt too wide) in paragraph at lines 484--485 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]P[]I[]P[][][][]Problem(+[]Dimension[][][] []Type, +[]Constraint[][][][]System, +[]Vars[][][][]List, -[] Underfull \hbox (badness 10000) in paragraph at lines 484--485 [22] Overfull \hbox (62.5953pt too wide) in paragraph at lines 504--505 []\OT1/pcr/m/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]get[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Name, ?Control[] Underfull \hbox (badness 10000) in paragraph at lines 504--505 Overfull \hbox (18.68352pt too wide) in paragraph at lines 507--508 []\OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Control[][][][]Parameter[][][][]Val ue \OT1/ptm/m/it/10 with the value of the con-trol pa-ram-e-ter \OT1/pcr/m/sl/1 0 Control[][][][]Parameter[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 512--514 []\OT1/pcr/m/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]di mensions[][][]and[][][]embed( +[]Handle, +[]Dimension[][][][]Type1, Overfull \hbox (5.6138pt too wide) in paragraph at lines 524--525 []\OT1/pcr/m/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]set[][][]control[][][] parameter(+[]Handle, +[]Control[][][][]Parameter[][][][]Value) Underfull \hbox (badness 10000) in paragraph at lines 524--525 Underfull \hbox (badness 10000) in paragraph at lines 524--525 Underfull \hbox (badness 10000) in paragraph at lines 544--545 [23]) (./configured_domains_predicates.tex [24] Overfull \hbox (6.19531pt too wide) in paragraph at lines 31--33 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]space[ ][][]dimension(+[]Dimension[][][][]Type, +[]Universe[][][]or[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 38--40 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] space[][][]dimension(+[]Dimension[][][][]Type, +[]Universe[] Underfull \hbox (badness 10000) in paragraph at lines 68--69 [25] Overfull \hbox (24.14204pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]bounded[][][]affine[][][]image[ ][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] va r, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (7.17998pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]im age[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum Overfull \hbox (4.87045pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]im age[][][]with[][][]congruence[][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]dimension[][][]type[][] var, enum Overfull \hbox (1.3616pt too wide) in paragraph at lines 175--177 [][]\OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][]c onst[][][][]Coefficient[][][]t[][] d, [][]ppl[] Overfull \hbox (5.27174pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]pr eimage[][][]lhs[][][]rhs[][][]with[][][]congruence[][] ([][]ppl[][][][]Grid[][] []t[][] ph, [][]ppl[][][]const[][][][]Linear[] [108 Overfull \hbox (11.00215pt too wide) in paragraph at lines 101--103 \OT1/ptm/m/it/10 Builds a new N[]NC poly-he-dron \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (12.11226pt too wide) in paragraph at lines 107--109 \OT1/ptm/m/it/10 Builds a new N[]NC poly-he-dron \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 110--112 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 113--115 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 116--118 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 119--121 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 122--124 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[][ ][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, [26]] Overfull \hbox (39.2138pt too wide) in paragraph at lines 125--127 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (39.2138pt too wide) in paragraph at lines 128--130 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[]N []C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (51.2138pt too wide) in paragraph at lines 131--133 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (2.5953pt too wide) in paragraph at lines 134--136 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Grid [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 137--139 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 140--142 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rati onal[][][][]Box[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (39.2138pt too wide) in paragraph at lines 143--145 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 146--148 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 149--151 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (1.39532pt too wide) in paragraph at lines 152--154 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 155--157 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (22.41382pt too wide) in paragraph at lines 158--160 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 161--163 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[] [27] Overfull \hbox (22.41382pt too wide) in paragraph at lines 164--166 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 167--169 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][] []Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[] [28] Overfull \hbox (15.79529pt too wide) in paragraph at lines 235--237 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][]constraint (+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (28.99063pt too wide) in paragraph at lines 235--237 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (3.79529pt too wide) in paragraph at lines 238--240 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][]generator( +[]Handle, +[]Generator, ?Relation[] Overfull \hbox (22.99063pt too wide) in paragraph at lines 238--240 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . Overfull \hbox (15.79529pt too wide) in paragraph at lines 241--243 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][]congruence (+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (28.99063pt too wide) in paragraph at lines 241--243 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (16.41379pt too wide) in paragraph at lines 262--264 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]maximize(+[]Handle, +[]Lin[][][][] Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (16.41379pt too wide) in paragraph at lines 267--269 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]minimize(+[]Handle, +[]Lin[][][][] Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) [29] Overfull \hbox (10.9953pt too wide) in paragraph at lines 272--274 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]maximize[][][]with[][][]point(+[]H andle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (10.9953pt too wide) in paragraph at lines 277--279 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]minimize[][][]with[][][]point(+[]H andle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] [30 Overfull \hbox (7.88818pt too wide) in paragraph at lines 193--195 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]fold[][][]space[][][]dimensions [][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] d s[]$ $[], size[][][]t n, [][]ppl[][][]dimension[] Overfull \hbox (9.77875pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]wrap[][][]assign[][] ([][]ppl[] [][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] ds[]$ $[], size[ ][][]t n, enum [][]ppl[][][]enum[][][][]Bounded[] Overfull \hbox (8.82231pt too wide) in paragraph at lines 225--227 [][][]\OT1/ptm/bc/n/10 Bounded[][][][]Integer[][][][]Type[][][][]Overflow[][] o , const [][]ppl[][][]const[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cms y/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, un-signed complexity[] Overfull \hbox (4.96187pt too wide) in paragraph at lines 257--259 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] [109]] Overfull \hbox (2.92062pt too wide) in paragraph at lines 347--349 \OT1/ptm/m/it/10 Transforms the poly-he-dron ref-er-enced by \OT1/pcr/m/sl/10 H andle \OT1/ptm/m/it/10 sub-sti-tut-ing the affine ex-pres-sion for \OT1/pcr/m/s l/10 Lin[][][][]Expr/Coeff Overfull \hbox (14.5953pt too wide) in paragraph at lines 350--352 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][]image(+[] Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[]Lin[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 353--355 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][]preimage( +[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[] Overfull \hbox (32.0138pt too wide) in paragraph at lines 356--358 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]image (+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[][][][]Symbol, Overfull \hbox (13.3953pt too wide) in paragraph at lines 359--361 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]preim age(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] [31] Overfull \hbox (2.7419pt too wide) in paragraph at lines 259--261 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] Overfull \hbox (4.41154pt too wide) in paragraph at lines 261--263 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] pset[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] Overfull \hbox (2.19157pt too wide) in paragraph at lines 263--265 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] pset[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] [110] Overfull \hbox (6.19531pt too wide) in paragraph at lines 362--364 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]image [][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 365--367 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]preim age[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][] Overfull \hbox (44.0138pt too wide) in paragraph at lines 368--370 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]wrap[][][]assign(+[]Handle, +[]Lis t[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[]Representation, [32] Overfull \hbox (29.6138pt too wide) in paragraph at lines 399--401 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]context[] [][]assign(+[]Handle[][][]1, +[]Handle[][][]2, ?Boolean) Overfull \hbox (16.9953pt too wide) in paragraph at lines 402--404 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]linear[][][]partition(+[]Handle[][ ][]1, +[]Handle[][][]2, -[]Handle[][][]3, -[]Handle[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 409--411 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][] assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 412--414 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign[][ ][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 421--423 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[][] []tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]C[][][]unsigned[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 427--429 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 430--432 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 433--435 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapolat ion[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] [33] Overfull \hbox (12.19531pt too wide) in paragraph at lines 436--438 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapolat ion[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 439--441 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[][][] Overfull \hbox (2.5953pt too wide) in paragraph at lines 442--444 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][]e xtrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[][][] Overfull \hbox (8.5953pt too wide) in paragraph at lines 445--447 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapolat ion[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 448--450 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapolat ion[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] [34] Overfull \hbox (8.37189pt too wide) in paragraph at lines 333--334 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class Overfull \hbox (9.49188pt too wide) in paragraph at lines 339--340 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class Overfull \hbox (36.272pt too wide) in paragraph at lines 345--346 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity Overfull \hbox (18.41342pt too wide) in paragraph at lines 351--352 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Pol yhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Gr id[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (33.32191pt too wide) in paragraph at lines 363--364 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][]Bo x[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity [111 Overfull \hbox (11.6138pt too wide) in paragraph at lines 467--469 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][] []and[][][]project(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (2.0138pt too wide) in paragraph at lines 473--475 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[][][ ]dimensions(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (14.0138pt too wide) in paragraph at lines 476--478 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]expand[][][]space[][][]dimension(+ []Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[][][][]Type) Overfull \hbox (0.19531pt too wide) in paragraph at lines 479--481 []\OT1/pcr/m/n/10 ppl[][][][]Polyhedron[][][]fold[][][]space[][][]dimensions(+[ ]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[]P[]P[]L[][][] Overfull \hbox (12.19531pt too wide) in paragraph at lines 501--503 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][]space[][][]dimension( +[]Dimension[][][][]Type, +[]Universe[][][]or[][][][]Empty, -[] [35]] Underfull \hbox (badness 10000) in paragraph at lines 522--523 Overfull \hbox (2.5953pt too wide) in paragraph at lines 552--554 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 555--557 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Poly hedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 561--563 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][]Box [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (12.81381pt too wide) in paragraph at lines 564--566 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, [36] Overfull \hbox (12.81381pt too wide) in paragraph at lines 567--569 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (54.81381pt too wide) in paragraph at lines 570--572 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (54.81381pt too wide) in paragraph at lines 573--575 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[]Complexity, [37] Overfull \hbox (7.44052pt too wide) in paragraph at lines 635--637 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Dimension[][][][]Type \OT1/ptm/m/it/1 0 with the di-men-sion of the vec-tor space en-clos-ing the grid ref-er-enced b y \OT1/pcr/m/sl/10 Handle\OT1/ptm/m/it/10 . Overfull \hbox (4.41379pt too wide) in paragraph at lines 641--643 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]relation[][][]with[][][]constraint(+[]Ha ndle, +[]Constraint, ?Relation[][][][]List) Overfull \hbox (0.56071pt too wide) in paragraph at lines 641--643 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (4.41379pt too wide) in paragraph at lines 647--649 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]relation[][][]with[][][]congruence(+[]Ha ndle, +[]Congruence, ?Relation[][][][]List) Overfull \hbox (0.56071pt too wide) in paragraph at lines 647--649 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (22.9953pt too wide) in paragraph at lines 650--652 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]relation[][][]with[][][]grid[][][]genera tor(+[]Handle, +[]Grid[][][][]Generator, ?Relation[] Overfull \hbox (41.6138pt too wide) in paragraph at lines 681--683 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]maximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean, [38] Overfull \hbox (2.50291pt too wide) in paragraph at lines 369--370 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (0.7429pt too wide) in paragraph at lines 375--376 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (19.06262pt too wide) in paragraph at lines 381--382 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Grid[][][]from[][][][]Octagonal[] Overfull \hbox (20.18262pt too wide) in paragraph at lines 387--388 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Grid[][][]from[][][][]Octagonal[] [112] Overfull \hbox (41.6138pt too wide) in paragraph at lines 686--688 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]minimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean, [39] Overfull \hbox (7.24037pt too wide) in paragraph at lines 728--730 \OT1/ptm/m/it/10 Updates the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ ptm/m/it/10 to one ob-tained by re-fin-ing its con-straint sys-tem with \OT1/pc r/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (13.48053pt too wide) in paragraph at lines 731--733 \OT1/ptm/m/it/10 Updates the grid ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ ptm/m/it/10 to one ob-tained by re-fin-ing its con-gru-ence sys-tem with \OT1/p cr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (6.19531pt too wide) in paragraph at lines 759--761 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]bounded[][][]affine[][][]image(+[]Handle , +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[]Lin[][][][]Expr[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 762--764 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]bounded[][][]affine[][][]preimage(+[]Han dle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[]Lin[][][] Overfull \hbox (16.9953pt too wide) in paragraph at lines 765--767 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image(+[]Ha ndle, +[]P[]P[]L[][][][]Var, +[]Relation[][][][]Symbol, +[] Overfull \hbox (14.0138pt too wide) in paragraph at lines 768--770 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage(+[ ]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[][][][]Symbol, Overfull \hbox (18.19531pt too wide) in paragraph at lines 771--773 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][] lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[]Relation[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 774--776 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][ ][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[]Relation[] [40] [113] Overfull \hbox (2.5953pt too wide) in paragraph at lines 777--779 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][] with[][][]congruence(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 780--782 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][ ][]with[][][]congruence(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 783--785 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][] lhs[][][]rhs[][][]with[][][]congruence(+[]Handle, +[]Lin[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 786--788 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][ ][]lhs[][][]rhs[][][]with[][][]congruence(+[]Handle, +[] Overfull \hbox (8.0138pt too wide) in paragraph at lines 789--791 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]wrap[][][]assign(+[]Handle, +[]List[][][ ]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[]Representation, [41] [114] Overfull \hbox (6.19531pt too wide) in paragraph at lines 818--820 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[][] []with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 821--823 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[][][ ]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 830--832 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]widening[][][]assign[][][]with[][][]toke ns(+[]Handle[][][]1, +[]Handle[][][]2, +[]C[][][]unsigned[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 836--838 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolati on[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 839--841 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolatio n[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 842--844 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolati on[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 845--847 []\OT1/pcr/m/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolatio n[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (0.99101pt too wide) in paragraph at lines 854--856 \OT1/ptm/m/it/10 Assigns to the grid \OT1/pcr/m/sl/10 P \OT1/ptm/m/it/10 ref-er -enced by \OT1/pcr/m/sl/10 Handle[][][]1 \OT1/ptm/m/it/10 the con-cate-na-tion of \OT1/pcr/m/sl/10 P \OT1/ptm/m/it/10 and the grid ref-er-enced by \OT1/pcr/m/ sl/10 Handle[] [42] Overfull \hbox (6.19531pt too wide) in paragraph at lines 898--900 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][]space[ ][][]dimension(+[]Dimension[][][][]Type, +[]Universe[][][]or[] [43] [115] Underfull \hbox (badness 10000) in paragraph at lines 919--920 Overfull \hbox (1.39532pt too wide) in paragraph at lines 943--945 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (1.39532pt too wide) in paragraph at lines 946--948 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (27.2138pt too wide) in paragraph at lines 949--951 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[][ ][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (39.2138pt too wide) in paragraph at lines 952--954 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[]N []C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[]Complexity, [44] Overfull \hbox (2.5953pt too wide) in paragraph at lines 955--957 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Grid [][][]with[][][]complexity(+[]Handle, +[]Complexity, -[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 958--960 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rati onal[][][][]Box[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 961--963 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 964--966 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (22.41382pt too wide) in paragraph at lines 967--969 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+[]Handle, Overfull \hbox (22.41382pt too wide) in paragraph at lines 970--972 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+[]Handle, [45] [116] Overfull \hbox (25.3953pt too wide) in paragraph at lines 1038--1040 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][][]c onstraint(+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (13.3953pt too wide) in paragraph at lines 1041--1043 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][][]g enerator(+[]Handle, +[]Generator, ?Relation[] Overfull \hbox (25.3953pt too wide) in paragraph at lines 1044--1046 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][][]c ongruence(+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (2.0138pt too wide) in paragraph at lines 1053--1055 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][]c onstraints(+[]Handle, ?Constraint[][][][]System) Overfull \hbox (2.0138pt too wide) in paragraph at lines 1056--1058 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][]c ongruences(+[]Handle, ?Congruence[][][][]System) Overfull \hbox (35.6138pt too wide) in paragraph at lines 1059--1061 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]has[][][]upper[][][]bound (+[]Handle, +[]Var, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) [46] Overfull \hbox (35.6138pt too wide) in paragraph at lines 1064--1066 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]has[][][]lower[][][]bound (+[]Handle, +[]Var, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (26.0138pt too wide) in paragraph at lines 1069--1071 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]maximize(+[]Handle, +[]Li n[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (26.0138pt too wide) in paragraph at lines 1074--1076 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]minimize(+[]Handle, +[]Li n[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (20.5953pt too wide) in paragraph at lines 1079--1081 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]maximize[][][]with[][][]p oint(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 1084--1086 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]minimize[][][]with[][][]p oint(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] [47] [117] Overfull \hbox (3.2138pt too wide) in paragraph at lines 1142--1144 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[][ ][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var) Overfull \hbox (6.24055pt too wide) in paragraph at lines 1148--1150 \OT1/ptm/m/it/10 Transforms the ra-tio-nal box ref-er-enced by \OT1/pcr/m/sl/10 Handle \OT1/ptm/m/it/10 sub-sti-tut-ing the affine ex-pres-sion for \OT1/pcr/m /sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (6.19531pt too wide) in paragraph at lines 1151--1153 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]bounded[][][]affine[][][] image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][]1, +[] [48] [118 Overfull \hbox (0.19531pt too wide) in paragraph at lines 1154--1156 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]bounded[][][]affine[][][] preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[][][] Overfull \hbox (4.9953pt too wide) in paragraph at lines 1157--1159 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (22.9953pt too wide) in paragraph at lines 1160--1162 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1163--1165 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]image[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[][][]1, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 1166--1168 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[] [][]preimage[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[] Overfull \hbox (53.6138pt too wide) in paragraph at lines 1169--1171 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]wrap[][][]assign(+[]Handl e, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[]Representation, [49]] Overfull \hbox (39.2138pt too wide) in paragraph at lines 1191--1193 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][][] context[][][]assign(+[]Handle[][][]1, +[]Handle[][][]2, ?Boolean) Overfull \hbox (26.5953pt too wide) in paragraph at lines 1194--1196 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]linear[][][]partition(+[] Handle[][][]1, +[]Handle[][][]2, -[]Handle[][][]3, -[]Handle[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1201--1203 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[][ ][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (45.79532pt too wide) in paragraph at lines 1207--1209 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[][][ ]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]C[][][]unsigned[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1213--1215 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][] []extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1216--1218 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][] []extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[][][] Underfull \vbox (badness 2503) has occurred while \output is active [50] Overfull \hbox (3.7116pt too wide) in paragraph at lines 759--760 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalized[][][]a ffine[][][]preimage[][][]lhs[][][]rhs Overfull \hbox (13.20297pt too wide) in paragraph at lines 765--766 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalized[] [][]affine[][][]image[][][]with[] Overfull \hbox (19.78285pt too wide) in paragraph at lines 771--772 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalize d[][][]affine[][][]preimage[] Overfull \hbox (0.44244pt too wide) in paragraph at lines 777--778 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]lhs[][][]rhs[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[ ][][]generalized[][][]affine[][][] Overfull \hbox (11.82233pt too wide) in paragraph at lines 783--784 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Gr id[][][]generalized[][][]affine[] [119] Overfull \hbox (9.2138pt too wide) in paragraph at lines 1235--1237 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dimen sions[][][]and[][][]embed(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (0.19531pt too wide) in paragraph at lines 1238--1240 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dimen sions[][][]and[][][]project(+[]Handle, +[]Dimension[][][] Overfull \hbox (11.6138pt too wide) in paragraph at lines 1244--1246 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][]s pace[][][]dimensions(+[]Handle, +[]Dimension[][][][]Type) Overfull \hbox (2.5953pt too wide) in paragraph at lines 1247--1249 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]expand[][][]space[][][]di mension(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1250--1252 []\OT1/pcr/m/n/10 ppl[][][][]Rational[][][][]Box[][][]fold[][][]space[][][]dime nsions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[]P[]P[] [51] [120 Overfull \hbox (21.79532pt too wide) in paragraph at lines 1272--1274 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[]Universe[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 1279--1281 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][]constraints(+[]Constraint[][][][]System, -[]Handle) Overfull \hbox (3.2138pt too wide) in paragraph at lines 1282--1284 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][]congruences(+[]Congruence[][][][]System, -[]Handle) Underfull \hbox (badness 10000) in paragraph at lines 1293--1294 Overfull \hbox (28.99533pt too wide) in paragraph at lines 1317--1319 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 1317--1319 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 1320--1322 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 1320--1322 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] [52]] Overfull \hbox (1.39532pt too wide) in paragraph at lines 1323--1325 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1326--1328 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (12.81381pt too wide) in paragraph at lines 1329--1331 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 1332--1334 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (11.61383pt too wide) in paragraph at lines 1335--1337 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (11.61383pt too wide) in paragraph at lines 1338--1340 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 1341--1343 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 1344--1346 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] [53] Overfull \hbox (17.18285pt too wide) in paragraph at lines 855--856 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[][ ][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]congruence[][][ ]widening[][][]assign[][][]with[] Overfull \hbox (5.15298pt too wide) in paragraph at lines 861--862 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[][] []with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generator[][][]w idening[][][]assign[][][]with[] [121] Overfull \hbox (4.99533pt too wide) in paragraph at lines 1387--1389 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strictl y[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, +[] Overfull \hbox (32.59534pt too wide) in paragraph at lines 1390--1392 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][][ ]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][ ]1, +[]Handle[] Overfull \hbox (56.5953pt too wide) in paragraph at lines 1412--1414 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relatio n[][][]with[][][]constraint(+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1412--1414 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (44.5953pt too wide) in paragraph at lines 1415--1417 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relatio n[][][]with[][][]generator(+[]Handle, +[]Generator, ?Relation[] Overfull \hbox (13.12079pt too wide) in paragraph at lines 1415--1417 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . Overfull \hbox (56.5953pt too wide) in paragraph at lines 1418--1420 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relatio n[][][]with[][][]congruence(+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1418--1420 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . [54] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1427--1429 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][] []minimized[][][]constraints(+[]Handle, ?Constraint[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1430--1432 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][] []minimized[][][]congruences(+[]Handle, ?Congruence[][][] Overfull \hbox (57.2138pt too wide) in paragraph at lines 1433--1435 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (57.2138pt too wide) in paragraph at lines 1438--1440 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (0.81381pt too wide) in paragraph at lines 1443--1445 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, Overfull \hbox (0.81381pt too wide) in paragraph at lines 1448--1450 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, Underfull \vbox (badness 1259) has occurred while \output is active [55] Overfull \hbox (10.54222pt too wide) in paragraph at lines 891--892 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][ ][]limited[][][]congruence[] Overfull \hbox (1.39236pt too wide) in paragraph at lines 897--898 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][] []limited[][][]generator[][][] Overfull \hbox (22.05283pt too wide) in paragraph at lines 903--904 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]limited[][][]congru ence[][][]extrapolation[] Overfull \hbox (10.02296pt too wide) in paragraph at lines 909--910 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]limited[][][]generat or[][][]extrapolation[] [122] Overfull \hbox (25.80045pt too wide) in paragraph at lines 1484--1486 \OT1/ptm/m/it/10 Updates the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Handle \ OT1/ptm/m/it/10 to one ob-tained by re-fin-ing its con-straint sys-tem with \OT 1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (27.2138pt too wide) in paragraph at lines 1490--1492 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine[ ][][]with[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (27.2138pt too wide) in paragraph at lines 1493--1495 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine[ ][][]with[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (3.79532pt too wide) in paragraph at lines 1506--1508 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]unconst rain[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 1509--1511 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]affine[ ][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[]Coeff) Overfull \hbox (0.19531pt too wide) in paragraph at lines 1512--1514 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]affine[ ][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[] [56] Overfull \hbox (7.5717pt too wide) in paragraph at lines 933--934 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Grid[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]recyc le[][][][]Grid[][][][]Generator[][][][]System ( [123] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1515--1517 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounded [][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1518--1520 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounded [][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 1521--1523 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 1524--1526 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1527--1529 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1530--1532 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]general ized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, +[]Lin[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1533--1535 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wrap[][ ][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[] [57] [124 Overfull \hbox (3.79532pt too wide) in paragraph at lines 1555--1557 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simplif y[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (0.81381pt too wide) in paragraph at lines 1558--1560 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]linear[ ][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[]Handle[][][]3, Overfull \hbox (31.39532pt too wide) in paragraph at lines 1565--1567 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H[ ]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Ha ndle[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1568--1570 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[] [][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1577--1579 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]widenin g[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 1583--1585 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 1586--1588 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] [58]]) (./interfaceppl__Linear__Expression__tag.tex Overfull \hbox (31.39532pt too wide) in paragraph at lines 1589--1591 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1592--1594 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1595--1597 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 1598--1600 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1617--1619 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[]Dimension[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 1620--1622 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]project(+[]Handle, +[]Dimension[] [59] Overfull \hbox (22.34773pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Linear[][][][]Expression[][][ ]from[][][][]Constraint[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ple, [][]ppl[][][]const[][][][]Constrai nt[] Overfull \hbox (18.96815pt too wide) in paragraph at lines 28--30 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Linear[][][][]Expression[][][ ]from[][][][]Generator[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ple, [][]ppl[][][]const[][][][]Generator [] [125 Overfull \hbox (10.41382pt too wide) in paragraph at lines 1623--1625 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove[ ][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var s) Overfull \hbox (18.19531pt too wide) in paragraph at lines 1626--1628 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove[ ][][]higher[][][]space[][][]dimensions(+[]Handle, +[]Dimension[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 1629--1631 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expand[ ][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1632--1634 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold[][ ][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1654--1656 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[]Universe[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 1661--1663 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][]constraints(+[]Constraint[][][][]System, -[]Handle) Overfull \hbox (3.2138pt too wide) in paragraph at lines 1664--1666 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][]congruences(+[]Congruence[][][][]System, -[]Handle) [60]] Underfull \hbox (badness 10000) in paragraph at lines 1675--1676 Overfull \hbox (28.99533pt too wide) in paragraph at lines 1699--1701 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 1699--1701 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 1702--1704 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 1702--1704 \OT1/ptm/m/it/10 Builds a new bd shape \OT1/pcr/m/sl/10 P[][][]1 \OT1/ptm/m/it/ 10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \O T1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 1705--1707 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1708--1710 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, +[ ] Overfull \hbox (12.81381pt too wide) in paragraph at lines 1711--1713 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (1.39532pt too wide) in paragraph at lines 1714--1716 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, +[] [61] Overfull \hbox (15.40788pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]inhomoge neous[][][]term[][] ([][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[ ][] le, [][]ppl[][][][]Coefficient[] Overfull \hbox (2.65662pt too wide) in paragraph at lines 69--71 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]add[][][ ]to[][][]coefficient[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] le , [][]ppl[][][]dimension[][][]type[][] var, Overfull \hbox (22.89804pt too wide) in paragraph at lines 72--74 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]add[][][ ]to[][][]inhomogeneous[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (25.43753pt too wide) in paragraph at lines 81--83 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]multiply[][][][]Linear[][][][]Expression [][][]by[][][][]Coefficient[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t [][] le, [][]ppl[][][]const[][][][]Coefficient[] ) (./interfaceppl__MIP__Problem__tag.tex [126 Overfull \hbox (11.61383pt too wide) in paragraph at lines 1717--1719 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (11.61383pt too wide) in paragraph at lines 1720--1722 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity(+ []Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 1723--1725 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 1726--1728 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (4.99533pt too wide) in paragraph at lines 1769--1771 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strictl y[][][]contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, +[] Overfull \hbox (32.59534pt too wide) in paragraph at lines 1772--1774 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][][ ]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][ ]1, +[]Handle[] [62]] Overfull \hbox (56.5953pt too wide) in paragraph at lines 1794--1796 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relatio n[][][]with[][][]constraint(+[]Handle, +[]Constraint, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1794--1796 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (44.5953pt too wide) in paragraph at lines 1797--1799 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relatio n[][][]with[][][]generator(+[]Handle, +[]Generator, ?Relation[] Overfull \hbox (13.12079pt too wide) in paragraph at lines 1797--1799 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Generator\OT1/ptm/m/it/10 . Overfull \hbox (56.5953pt too wide) in paragraph at lines 1800--1802 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relatio n[][][]with[][][]congruence(+[]Handle, +[]Congruence, ?Relation[] Overfull \hbox (19.12079pt too wide) in paragraph at lines 1800--1802 \OT1/ptm/m/it/10 Unifies \OT1/pcr/m/sl/10 Relation[][][][]List \OT1/ptm/m/it/10 with the list of re-la-tions the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Han dle \OT1/ptm/m/it/10 has with \OT1/pcr/m/sl/10 Congruence\OT1/ptm/m/it/10 . Overfull \hbox (0.19531pt too wide) in paragraph at lines 1809--1811 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][] []minimized[][][]constraints(+[]Handle, ?Constraint[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1812--1814 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][] []minimized[][][]congruences(+[]Handle, ?Congruence[][][] Overfull \hbox (57.2138pt too wide) in paragraph at lines 1815--1817 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) Overfull \hbox (57.2138pt too wide) in paragraph at lines 1820--1822 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimiz e(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[][][]2, ?Boolean) [63] Overfull \hbox (0.81381pt too wide) in paragraph at lines 1825--1827 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, Overfull \hbox (0.81381pt too wide) in paragraph at lines 1830--1832 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimiz e[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, [64] Overfull \hbox (25.80045pt too wide) in paragraph at lines 1866--1868 \OT1/ptm/m/it/10 Updates the bd shape ref-er-enced by \OT1/pcr/m/sl/10 Handle \ OT1/ptm/m/it/10 to one ob-tained by re-fin-ing its con-straint sys-tem with \OT 1/pcr/m/sl/10 Constraint\OT1/ptm/m/it/10 . Overfull \hbox (27.2138pt too wide) in paragraph at lines 1872--1874 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine[ ][][]with[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (27.2138pt too wide) in paragraph at lines 1875--1877 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine[ ][][]with[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (3.79532pt too wide) in paragraph at lines 1888--1890 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]unconst rain[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 1891--1893 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]affine[ ][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[]Coeff) Overfull \hbox (0.19531pt too wide) in paragraph at lines 1894--1896 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]affine[ ][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, +[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1897--1899 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounded [][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 1900--1902 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounded [][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 1903--1905 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Relation[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 1906--1908 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] [65] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1909--1911 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[]Lin[][][][]Expr[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 1912--1914 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]general ized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, +[]Lin[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1915--1917 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wrap[][ ][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, +[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1937--1939 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simplif y[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (0.81381pt too wide) in paragraph at lines 1940--1942 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]linear[ ][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[]Handle[][][]3, [66] Overfull \hbox (14.92802pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]M[]I[]P[][][][]Problem[][] ([ ][]ppl[][][][]M[]I[]P[][][][]Problem[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/ bc/n/10 pmip, [][]ppl[][][]dimension[][][]type[][] d, [][]ppl[][][]const[][][][ ]Constraint[] Overfull \hbox (20.14798pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]M[]I[]P[][][][]Problem[][][]f rom[][][][]M[]I[]P[][][][]Problem[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem[][ ][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pmip, [][]ppl[][][]const[][][][ ]M[]I[]P[][][][]Problem[] Overfull \hbox (14.84767pt too wide) in paragraph at lines 56--58 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]M[]I[]P[][][][]Problem[][] []from[][][][]M[]I[]P[][][][]Problem[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem [][][]t[][] dst, [][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[] Overfull \hbox (1.62802pt too wide) in paragraph at lines 69--71 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]number[][] []of[][][]integer[][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]M[] I[]P[][][][]Problem[][][]t[][] mip, [][]ppl[] Overfull \hbox (0.81778pt too wide) in paragraph at lines 72--74 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]integer[][ ][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[ ][][]t[][] mip, [][]ppl[][][]dimension[] [127] Overfull \hbox (31.39532pt too wide) in paragraph at lines 1947--1949 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H[ ]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Ha ndle[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 1950--1952 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[] [][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 1959--1961 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]widenin g[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 1965--1967 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 1968--1970 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (31.39532pt too wide) in paragraph at lines 1971--1973 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 1974--1976 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 1977--1979 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]H79[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 1980--1982 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited [][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[][][]1, +[]Handle[] [67] Overfull \hbox (15.79532pt too wide) in paragraph at lines 1999--2001 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[]Dimension[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 2002--2004 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][] []space[][][]dimensions[][][]and[][][]project(+[]Handle, +[]Dimension[] Overfull \hbox (10.41382pt too wide) in paragraph at lines 2005--2007 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove[ ][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var s) Overfull \hbox (18.19531pt too wide) in paragraph at lines 2008--2010 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove[ ][][]higher[][][]space[][][]dimensions(+[]Handle, +[]Dimension[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 2011--2013 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expand[ ][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Dimension[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 2014--2016 []\OT1/pcr/m/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold[][ ][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Vars, +[] [68] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2036--2038 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2043--2045 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]constraints(+[]Constraint[][][][]System, -[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2046--2048 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]congruences(+[]Congruence[][][][]System, -[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2049--2051 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][]generators(+[]Generator[][][][]System, -[] Underfull \hbox (badness 10000) in paragraph at lines 2057--2058 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2063--2065 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2066--2068 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[] [69] Overfull \hbox (28.59772pt too wide) in paragraph at lines 81--83 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]objective[ ][][]function[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[][][]t[][] mip, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (11.228pt too wide) in paragraph at lines 97--99 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]s pace[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]M[]I[]P[][][][]Pro blem[][][]t[][] mip, [][]ppl[][][]dimension[] Overfull \hbox (5.5279pt too wide) in paragraph at lines 100--102 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]t o[][][]integer[][][]space[][][]dimensions[][] ([][]ppl[][][][]M[]I[]P[][][][]Pr oblem[][][]t[][] mip, [][]ppl[][][]dimension[] Overfull \hbox (18.59772pt too wide) in paragraph at lines 109--111 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]set[][][]o bjective[][][]function[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem[][][]t[][] mi p, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (28.95757pt too wide) in paragraph at lines 124--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][ ]objective[][][]function[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[ ][][]t[][] mip, [][]ppl[][][]const[][][][]Generator[] [128] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2072--2074 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Rational[][][][]Box(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2075--2077 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 2075--2077 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2078--2080 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 2078--2080 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2081--2083 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2084--2086 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[] Overfull \hbox (22.41382pt too wide) in paragraph at lines 2087--2089 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 2090--2092 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[] Overfull \hbox (54.81381pt too wide) in paragraph at lines 2093--2095 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (22.41382pt too wide) in paragraph at lines 2096--2098 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 2099--2101 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 2102--2104 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2105--2107 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]co mplexity(+[] [70] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2108--2110 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]co mplexity(+[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2148--2150 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]co ntains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 2151--2153 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]st rictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[] Overfull \hbox (16.99533pt too wide) in paragraph at lines 2154--2156 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]is [][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2157--2159 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]eq uals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][] [71] Underfull \hbox (badness 10000) detected at line 188 [][][] Overfull \hbox (2.87207pt too wide) in paragraph at lines 195--196 []\OT1/ptm/b/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][]objecti ve[][][]function()[] \OT1/pcr/m/n/8 int ppl[][][][]M[]I[]P[][][][]Problem[][][] evaluate[][][]objective[][][]function [129] Overfull \hbox (5.6138pt too wide) in paragraph at lines 2173--2175 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]af fine[][][]dimension(+[]Handle, ?Dimension[][][][]Type) Overfull \hbox (29.6138pt too wide) in paragraph at lines 2176--2178 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re lation[][][]with[][][]constraint(+[]Handle, +[]Constraint, Overfull \hbox (17.6138pt too wide) in paragraph at lines 2179--2181 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re lation[][][]with[][][]generator(+[]Handle, +[]Generator, Overfull \hbox (29.6138pt too wide) in paragraph at lines 2182--2184 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re lation[][][]with[][][]congruence(+[]Handle, +[]Congruence, Overfull \hbox (17.6138pt too wide) in paragraph at lines 2185--2187 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]constraints(+[]Handle, ?Constraint[][][][]System) Overfull \hbox (17.6138pt too wide) in paragraph at lines 2188--2190 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]congruences(+[]Handle, ?Congruence[][][][]System) Overfull \hbox (38.5953pt too wide) in paragraph at lines 2191--2193 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]minimized[][][]constraints(+[]Handle, ?Constraint[] Overfull \hbox (38.5953pt too wide) in paragraph at lines 2194--2196 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge t[][][]minimized[][][]congruences(+[]Handle, ?Congruence[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2197--2199 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ma ximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2202--2204 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]mi nimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2207--2209 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ma ximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] [72] Package longtable Warning: Column widths have changed (longtable) in table 11 on input line 211. Package longtable Warning: Column widths have changed (longtable) in table 12 on input line 230. ) (./interfaceppl__Octagonal__Shape__mpq__class__tag.tex Overfull \hbox (36.19531pt too wide) in paragraph at lines 2212--2214 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]mi nimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2217--2219 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ex ternal[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2242--2244 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2245--2247 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2248--2250 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]constraint( +[]Handle, +[]Constraint) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2251--2253 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]congruence( +[]Handle, +[]Congruence) [73] Overfull \hbox (1.09158pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.79044pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (4.43195pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.57019pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, [130 Overfull \hbox (32.5953pt too wide) in paragraph at lines 2254--2256 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2257--2259 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re fine[][][]with[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 2267--2269 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]un constrain[][][]space[][][]dimension(+[]Handle, +[]P[]P[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 2270--2272 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]un constrain[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2273--2275 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]af fine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, Overfull \hbox (14.61084pt too wide) in paragraph at lines 2273--2275 \OT1/ptm/m/it/10 Transforms the oc-tag-o-nal shape ref-er-enced by \OT1/pcr/m/s l/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/m /sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (0.19531pt too wide) in paragraph at lines 2276--2278 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]af fine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2279--2281 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]bo unded[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2282--2284 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]bo unded[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (9.2138pt too wide) in paragraph at lines 2285--2287 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (2.5953pt too wide) in paragraph at lines 2288--2290 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2291--2293 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[] [74]] Overfull \hbox (12.81381pt too wide) in paragraph at lines 2294--2296 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ge neralized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, Overfull \hbox (24.81381pt too wide) in paragraph at lines 2297--2299 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]wr ap[][][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, Overfull \hbox (31.39532pt too wide) in paragraph at lines 2316--2318 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]up per[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2319--2321 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]si mplify[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2322--2324 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li near[][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[] [75] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2329--2331 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2332--2334 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (33.79532pt too wide) in paragraph at lines 2335--2337 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]wi dening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (1.24307pt too wide) in paragraph at lines 2335--2337 \OT1/ptm/m/it/10 Same as pred-i-cate \OT1/pcr/m/sl/10 ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[][][][]H79[][][]widening[][][]assign[][][]with[][] []tokens\OT1/ptm/m/it/10 /4 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2341--2343 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][] Overfull \hbox (19.9953pt too wide) in paragraph at lines 2341--2343 \OT1/pcr/m/n/10 tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]Constraint[][][][ ]System, +[]C[][][]unsigned[][][]1, ?C[][][]unsigned[] Overfull \hbox (37.39532pt too wide) in paragraph at lines 2344--2346 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2347--2349 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2350--2352 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2353--2355 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][] C[]C76[][][]narrowing[][][]assign(+[]Handle[][][]1, +[]Handle[] Underfull \vbox (badness 3058) has occurred while \output is active [76] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2369--2371 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2372--2374 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]project(+[]Handle, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2375--2377 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re move[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2378--2380 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]re move[][][]higher[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2381--2383 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]ex pand[][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2384--2386 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]fo ld[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] [77] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2406--2408 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]space[][][]dimension(+[]Dimension[][][][]Type, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2413--2415 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]constraints(+[]Constraint[][][][]System, -[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2416--2418 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]congruences(+[]Congruence[][][][]System, -[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2419--2421 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][]generators(+[]Generator[][][][]System, -[] Underfull \hbox (badness 10000) in paragraph at lines 2427--2428 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2433--2435 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2436--2438 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2442--2444 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Rational[][][][]Box(+[]Handle[][][]1, -[]Handle[][][] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2445--2447 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (9.12285pt too wide) in paragraph at lines 2445--2447 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpz[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] [78 Overfull \hbox (2.1917pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.75175pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (15.40186pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.80197pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity [][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (13.18161pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (16.7715pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (17.33156pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (8.3313pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.64151pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.47102pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.78123pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.00133pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]get[][][]constraints[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.41159pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpq[] Overfull \hbox (3.98143pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]contains[][][]integer[][][]point[][] ([][]ppl[][][]const[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] [131]] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2448--2450 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][]1, -[]H andle[] Overfull \hbox (10.23296pt too wide) in paragraph at lines 2448--2450 \OT1/ptm/m/it/10 Builds a new oc-tag-o-nal shape \OT1/pcr/m/sl/10 P[][][]1 \OT1 /ptm/m/it/10 from the bd[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[][][]1\OT1/ptm/m/it/10 . \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2451--2453 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class(+[]Handle[] Overfull \hbox (7.39532pt too wide) in paragraph at lines 2454--2456 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[] Overfull \hbox (22.41382pt too wide) in paragraph at lines 2457--2459 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[]Handle, Overfull \hbox (1.39532pt too wide) in paragraph at lines 2460--2462 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity(+[] Overfull \hbox (54.81381pt too wide) in paragraph at lines 2463--2465 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Grid[][][]with[][][]complexity(+[]Handle, +[]Complexity, Overfull \hbox (22.41382pt too wide) in paragraph at lines 2466--2468 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity(+[]Handle, Overfull \hbox (20.59534pt too wide) in paragraph at lines 2469--2471 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (20.59534pt too wide) in paragraph at lines 2472--2474 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complex ity(+[] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2475--2477 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]co mplexity(+[] Overfull \hbox (62.59534pt too wide) in paragraph at lines 2478--2480 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]co mplexity(+[] [79] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2518--2520 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]co ntains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[] Overfull \hbox (25.39532pt too wide) in paragraph at lines 2521--2523 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]st rictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[] Overfull \hbox (16.99533pt too wide) in paragraph at lines 2524--2526 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]is [][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2527--2529 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]eq uals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class(+[]Handle[][][] Overfull \hbox (5.6138pt too wide) in paragraph at lines 2543--2545 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]af fine[][][]dimension(+[]Handle, ?Dimension[][][][]Type) Overfull \hbox (29.6138pt too wide) in paragraph at lines 2546--2548 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re lation[][][]with[][][]constraint(+[]Handle, +[]Constraint, [80] Overfull \hbox (17.6138pt too wide) in paragraph at lines 2549--2551 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re lation[][][]with[][][]generator(+[]Handle, +[]Generator, Overfull \hbox (29.6138pt too wide) in paragraph at lines 2552--2554 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re lation[][][]with[][][]congruence(+[]Handle, +[]Congruence, Overfull \hbox (17.6138pt too wide) in paragraph at lines 2555--2557 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]constraints(+[]Handle, ?Constraint[][][][]System) Overfull \hbox (17.6138pt too wide) in paragraph at lines 2558--2560 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]congruences(+[]Handle, ?Congruence[][][][]System) Overfull \hbox (38.5953pt too wide) in paragraph at lines 2561--2563 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]minimized[][][]constraints(+[]Handle, ?Constraint[] Overfull \hbox (38.5953pt too wide) in paragraph at lines 2564--2566 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge t[][][]minimized[][][]congruences(+[]Handle, ?Congruence[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2567--2569 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ma ximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2572--2574 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]mi nimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[][][]1, ?Coeff[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2577--2579 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ma ximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (36.19531pt too wide) in paragraph at lines 2582--2584 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]mi nimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] [81 Overfull \hbox (7.47116pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][][]const[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.2513pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 97--99 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (7.02023pt too wide) in paragraph at lines 99--101 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (24.68086pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]strictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class [][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (23.291pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]is[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (13.56143pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]equals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][ ][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.33154pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (13.3314pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (1.11198pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] x, [][]ppl[] [132]] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2587--2589 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ex ternal[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2612--2614 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]constraints( +[]Handle, +[]Constraint[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2615--2617 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]congruences( +[]Handle, +[]Congruence[][][][]System) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2618--2620 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]constraint( +[]Handle, +[]Constraint) Overfull \hbox (23.6138pt too wide) in paragraph at lines 2621--2623 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]congruence( +[]Handle, +[]Congruence) Overfull \hbox (32.5953pt too wide) in paragraph at lines 2624--2626 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (32.5953pt too wide) in paragraph at lines 2627--2629 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re fine[][][]with[][][]congruences( +[]Handle, +[]Congruence[] [82] Overfull \hbox (2.5953pt too wide) in paragraph at lines 2637--2639 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]un constrain[][][]space[][][]dimension(+[]Handle, +[]P[]P[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 2640--2642 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]un constrain[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2643--2645 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]af fine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][][]Expr, Overfull \hbox (14.61084pt too wide) in paragraph at lines 2643--2645 \OT1/ptm/m/it/10 Transforms the oc-tag-o-nal shape ref-er-enced by \OT1/pcr/m/s l/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/m /sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (0.19531pt too wide) in paragraph at lines 2646--2648 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]af fine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[][][] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2649--2651 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]bo unded[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.2138pt too wide) in paragraph at lines 2652--2654 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]bo unded[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (9.2138pt too wide) in paragraph at lines 2655--2657 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (2.5953pt too wide) in paragraph at lines 2658--2660 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]preimage(+[]Handle, +[]P[]P[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2661--2663 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, +[] Overfull \hbox (12.81381pt too wide) in paragraph at lines 2664--2666 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ge neralized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[]Handle, Overfull \hbox (24.81381pt too wide) in paragraph at lines 2667--2669 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]wr ap[][][]assign(+[]Handle, +[]List[][][]of[][][][]P[]P[]L[][][][]Var, +[]Width, [83] Overfull \hbox (31.39532pt too wide) in paragraph at lines 2686--2688 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]up per[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2689--2691 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]si mplify[][][]using[][][]context[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2692--2694 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li near[][][]partition(+[]Handle[][][]1, +[]Handle[][][]2, -[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 2699--2701 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2702--2704 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][] B[]H[]M[]Z05[][][]widening[][][]assign(+[]Handle[][][]1, +[]Handle[] [84 Overfull \hbox (4.79182pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.66122pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.96138pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]constrains[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.30138pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]unconstrain[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.19127pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (21.97142pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][ ][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (14.74185pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.75192pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 dimension[][][]type[][] var, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Ex pression[][][]t[][] ub, [][]ppl[][][]const[] Overfull \hbox (2.60994pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]t[][] ph, Overfull \hbox (3.58142pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 159--161 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (11.6315pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][] [][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.23186pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]O ctagonal[][][][]Shape[][][]mpq[] Overfull \hbox (6.3417pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (1.33191pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpq[] Overfull \hbox (2.17026pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]O]ctagonal[][][][]Shape[][][]mpq[][][]clas s[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] ph, Overfull \hbox (11.47173pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[] [133 Overfull \hbox (33.79532pt too wide) in paragraph at lines 2705--2707 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]wi dening[][][]assign[][][]with[][][]tokens(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (1.24307pt too wide) in paragraph at lines 2705--2707 \OT1/ptm/m/it/10 Same as pred-i-cate \OT1/pcr/m/sl/10 ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[][][][]H79[][][]widening[][][]assign[][][]with[][] []tokens\OT1/ptm/m/it/10 /4 Overfull \hbox (1.39532pt too wide) in paragraph at lines 2711--2713 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][] Overfull \hbox (19.9953pt too wide) in paragraph at lines 2711--2713 \OT1/pcr/m/n/10 tokens(+[]Handle[][][]1, +[]Handle[][][]2, +[]Constraint[][][][ ]System, +[]C[][][]unsigned[][][]1, ?C[][][]unsigned[] Overfull \hbox (37.39532pt too wide) in paragraph at lines 2714--2716 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2717--2719 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2720--2722 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]li mited[][][][]C[]C76[][][]extrapolation[][][]assign(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2723--2725 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][] C[]C76[][][]narrowing[][][]assign(+[]Handle[][][]1, +[]Handle[] [85]] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2739--2741 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, +[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2742--2744 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ad d[][][]space[][][]dimensions[][][]and[][][]project(+[]Handle, +[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2745--2747 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re move[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2748--2750 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]re move[][][]higher[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 2751--2753 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]ex pand[][][]space[][][]dimension(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2754--2756 []\OT1/pcr/m/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]fo ld[][][]space[][][]dimensions(+[]Handle, +[]List[][][]of[][][][]P[] Overfull \hbox (39.79532pt too wide) in paragraph at lines 2776--2778 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension(+[]Dimension[] [86] Overfull \hbox (24.19531pt too wide) in paragraph at lines 2783--2785 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][]constraints(+[]Constraint[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 2786--2788 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][]congruences(+[]Congruence[] Underfull \hbox (badness 10000) in paragraph at lines 2794--2795 Overfull \hbox (3.79532pt too wide) in paragraph at lines 2800--2802 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 2803--2805 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 2806--2808 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Grid(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 2809--2811 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box(+[]Handle[] Overfull \hbox (34.99533pt too wide) in paragraph at lines 2812--2814 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class (+[]Handle[] Overfull \hbox (34.99533pt too wide) in paragraph at lines 2815--2817 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class (+[]Handle[] Overfull \hbox (40.99533pt too wide) in paragraph at lines 2818--2820 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class(+[] Overfull \hbox (40.99533pt too wide) in paragraph at lines 2821--2823 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class(+[] Overfull \hbox (0.86227pt too wide) in paragraph at lines 2821--2823 \OT1/ptm/m/it/10 Builds a new con-straints prod-uct \OT1/pcr/m/sl/10 P[][][]1 \ OT1/ptm/m/it/10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[] [87] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2824--2826 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][] Overfull \hbox (58.99533pt too wide) in paragraph at lines 2827--2829 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]co mplexity(+[] Overfull \hbox (70.99533pt too wide) in paragraph at lines 2830--2832 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[] [][]complexity(+[] Overfull \hbox (13.39532pt too wide) in paragraph at lines 2833--2835 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexity(+[] Overfull \hbox (58.99533pt too wide) in paragraph at lines 2836--2838 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]co mplexity(+[] Overfull \hbox (14.59534pt too wide) in paragraph at lines 2839--2841 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]with[] Overfull \hbox (14.59534pt too wide) in paragraph at lines 2842--2844 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]with[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2845--2847 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[] Overfull \hbox (28.99533pt too wide) in paragraph at lines 2848--2850 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[] Overfull \hbox (0.86227pt too wide) in paragraph at lines 2848--2850 \OT1/ptm/m/it/10 Builds a new con-straints prod-uct \OT1/pcr/m/sl/10 P[][][]1 \ OT1/ptm/m/it/10 from the octagonal[][][]shape[][][]mpq[][][]class ref-er-enced by han-dle \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2851--2853 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][] [88] Overfull \hbox (6.07129pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.44176pt too wide) in paragraph at lines 187--189 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][][]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][] ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.37144pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (24.74109pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][] []tokens[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (9.19116pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]toke ns[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (1.79141pt too wide) in paragraph at lines 199--201 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][] ([][]ppl[ ][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.62138pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.29158pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]p pl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.11128pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (20.00146pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]wrap[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][] []class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (1.22195pt too wide) in paragraph at lines 215--217 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.34146pt too wide) in paragraph at lines 219--221 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]m pq[][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.05pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]t[][] ph, [134] Overfull \hbox (15.2138pt too wide) in paragraph at lines 2876--2878 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]is[][][]topologically[][][]closed(+[]Handle) Overfull \hbox (0.19531pt too wide) in paragraph at lines 2882--2884 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounds[][][]from[][][]above(+[]Handle, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2885--2887 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounds[][][]from[][][]below(+[]Handle, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 2888--2890 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[] Overfull \hbox (6.19531pt too wide) in paragraph at lines 2891--2893 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2894--2896 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][][] Overfull \hbox (1.39532pt too wide) in paragraph at lines 2897--2899 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C[][][] Overfull \hbox (44.5953pt too wide) in paragraph at lines 2910--2912 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]space[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (50.5953pt too wide) in paragraph at lines 2913--2915 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]affine[][][]dimension(+[]Handle, ?Dimension[] [89] Overfull \hbox (21.2138pt too wide) in paragraph at lines 2916--2918 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]relation[][][]with[][][]constraint(+[]Handle, Overfull \hbox (15.2138pt too wide) in paragraph at lines 2919--2921 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]relation[][][]with[][][]generator(+[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 2922--2924 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]relation[][][]with[][][]congruence(+[]Handle, Overfull \hbox (44.5953pt too wide) in paragraph at lines 2925--2927 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]maximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (44.5953pt too wide) in paragraph at lines 2930--2932 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]minimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2935--2937 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]maximize[][][]with[][][]point(+[]Handle, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2940--2942 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]minimize[][][]with[][][]point(+[]Handle, +[] Overfull \hbox (18.81381pt too wide) in paragraph at lines 2945--2947 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes(+[]Handle, Overfull \hbox (0.81381pt too wide) in paragraph at lines 2948--2950 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes(+[]Handle, [90] Overfull \hbox (41.6138pt too wide) in paragraph at lines 2964--2966 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]constraint(+[]Handle, +[]Constraint) Overfull \hbox (41.6138pt too wide) in paragraph at lines 2967--2969 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]congruence(+[]Handle, +[]Congruence) Overfull \hbox (56.5953pt too wide) in paragraph at lines 2970--2972 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (56.5953pt too wide) in paragraph at lines 2973--2975 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 2976--2978 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]constraint( +[]Handle, Overfull \hbox (15.2138pt too wide) in paragraph at lines 2979--2981 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]congruence( +[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 2982--2984 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]constraints( +[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 2985--2987 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]refine[][][]with[][][]congruences( +[]Handle, Overfull \hbox (0.19531pt too wide) in paragraph at lines 2992--2994 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]topological[][][]closure[][][]assign(+[] [91] Overfull \hbox (0.54193pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][ ]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.52112pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Oc tagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.30115pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Oc tagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.14194pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.92197pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.59161pt too wide) in paragraph at lines 245--247 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.37164pt too wide) in paragraph at lines 247--249 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.06079pt too wide) in paragraph at lines 251--253 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]fprint[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][] (F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stre am, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (2.50148pt too wide) in paragraph at lines 253--255 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Sha pe[][][]mpq[][][]class[][] (char $\OMS/cmsy/m/n/10 ^^C$$^^C$\OT1/ptm/bc/n/10 st rp, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.58278pt too wide) in paragraph at lines 275--276 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][] Overfull \hbox (13.64336pt too wide) in paragraph at lines 281--282 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpq[][][]class[] [135 Overfull \hbox (6.19531pt too wide) in paragraph at lines 2995--2997 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension(+[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 2998--3000 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]unconstrain[][][]space[][][]dimensions(+[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 3001--3003 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3004--3006 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]affine[][][]preimage(+[]Handle, +[]P[]P[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3007--3009 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounded[][][]affine[][][]image(+[]Handle, +[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3010--3012 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]bounded[][][]affine[][][]preimage(+[]Handle, Overfull \hbox (21.2138pt too wide) in paragraph at lines 3013--3015 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]image(+[]Handle, Overfull \hbox (6.19531pt too wide) in paragraph at lines 3016--3018 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]preimage(+[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3019--3021 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3022--3024 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[] [92]] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3029--3031 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]intersection[][][]assign(+[]Handle[][][] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3032--3034 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]upper[][][]bound[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3035--3037 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]difference[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3038--3040 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]time[][][]elapse[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3041--3043 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact(+[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 3048--3050 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens(+[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3051--3053 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]widening[][][]assign(+[]Handle[][][]1, +[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3060--3062 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]concatenate[][][]assign(+[]Handle[][][]1, +[] [93] Overfull \hbox (19.39532pt too wide) in paragraph at lines 3067--3069 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embed(+[] Overfull \hbox (31.39532pt too wide) in paragraph at lines 3070--3072 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]project(+[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3073--3075 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]remove[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (21.79532pt too wide) in paragraph at lines 3076--3078 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions(+[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 3079--3081 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]expand[][][]space[][][]dimension(+[]Handle, Overfull \hbox (3.2138pt too wide) in paragraph at lines 3082--3084 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]fold[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (18.19531pt too wide) in paragraph at lines 3085--3087 []\OT1/pcr/m/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[][][][]Grid[][][]map[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3104--3106 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][]space[][][]dimension(+[]Dimension[] [94] Overfull \hbox (1.20328pt too wide) in paragraph at lines 287--288 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (9.49188pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]from[][][][]Grid Overfull \hbox (10.69327pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (1.61278pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (2.73277pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (1.85248pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (2.97247pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (15.35258pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] [136] Overfull \hbox (21.2138pt too wide) in paragraph at lines 3111--3113 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][]constraints(+[]Constraint[][][][]System, Overfull \hbox (21.2138pt too wide) in paragraph at lines 3114--3116 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][]congruences(+[]Congruence[][][][]System, Underfull \hbox (badness 10000) in paragraph at lines 3122--3123 Overfull \hbox (31.39532pt too wide) in paragraph at lines 3128--3130 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron (+[] Overfull \hbox (10.35161pt too wide) in paragraph at lines 3128--3130 \OT1/ptm/m/it/10 Builds a new pointset pow-er-set \OT1/pcr/m/sl/10 P[][][]1 \OT 1/ptm/m/it/10 from the pointset[][][]powerset[][][]c[][][]polyhedron ref-er-enc ed by han-dle \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (27.79532pt too wide) in paragraph at lines 3131--3133 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]C[][][][]Polyhedron(+[]Handle[][][]1, -[]Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 3134--3136 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron [] Overfull \hbox (10.35161pt too wide) in paragraph at lines 3134--3136 \OT1/ptm/m/it/10 Builds a new pointset pow-er-set \OT1/pcr/m/sl/10 P[][][]1 \OT 1/ptm/m/it/10 from the pointset[][][]powerset[][][]c[][][]polyhedron ref-er-enc ed by han-dle \OT1/pcr/m/sl/10 Handle[] Overfull \hbox (19.39532pt too wide) in paragraph at lines 3137--3139 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity(+[] [95] Overfull \hbox (3.2138pt too wide) in paragraph at lines 3171--3173 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounds[][][]from[][][]above(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (3.2138pt too wide) in paragraph at lines 3174--3176 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounds[][][]from[][][]below(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (33.79532pt too wide) in paragraph at lines 3177--3179 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron(+[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3180--3182 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3183--3185 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3186--3188 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3189--3191 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3192--3194 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron(+[] Overfull \hbox (4.9953pt too wide) in paragraph at lines 3205--3207 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]space[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (10.9953pt too wide) in paragraph at lines 3208--3210 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]affine[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3211--3213 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]relation[][][]with[][][]constraint(+[]Handle, +[] [96] Overfull \hbox (47.6138pt too wide) in paragraph at lines 3214--3216 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]relation[][][]with[][][]generator(+[]Handle, +[]Generator, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3217--3219 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]relation[][][]with[][][]congruence(+[]Handle, +[] Overfull \hbox (4.9953pt too wide) in paragraph at lines 3220--3222 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]maximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (4.9953pt too wide) in paragraph at lines 3225--3227 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]minimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3230--3232 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]maximize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, Overfull \hbox (15.2138pt too wide) in paragraph at lines 3235--3237 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]minimize[][][]with[][][]point(+[]Handle, +[]Lin[][][][]Expr, Overfull \hbox (33.2138pt too wide) in paragraph at lines 3240--3242 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]external[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (15.2138pt too wide) in paragraph at lines 3243--3245 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]total[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) [97 Overfull \hbox (29.79253pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (2.9026pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (12.4025pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.40201pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (2.522pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (11.24171pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (12.36171pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] [137]] Overfull \hbox (2.0138pt too wide) in paragraph at lines 3262--3264 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]constraint(+[]Handle, +[]Constraint) Overfull \hbox (2.0138pt too wide) in paragraph at lines 3265--3267 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]congruence(+[]Handle, +[]Congruence) Overfull \hbox (16.9953pt too wide) in paragraph at lines 3268--3270 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3271--3273 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (53.6138pt too wide) in paragraph at lines 3274--3276 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]constraint( +[]Handle, +[]Constraint) Overfull \hbox (53.6138pt too wide) in paragraph at lines 3277--3279 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]congruence( +[]Handle, +[]Congruence) Overfull \hbox (2.5953pt too wide) in paragraph at lines 3280--3282 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]constraints( +[]Handle, +[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3283--3285 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]refine[][][]with[][][]congruences( +[]Handle, +[] [98] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3299--3301 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]unconstrain[][][]space[][][]dimension(+[]Handle, +[] Overfull \hbox (5.6138pt too wide) in paragraph at lines 3302--3304 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]unconstrain[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (8.5953pt too wide) in paragraph at lines 3305--3307 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[]Lin[] Overfull \hbox (19.06027pt too wide) in paragraph at lines 3305--3307 \OT1/ptm/m/it/10 Transforms the pointset pow-er-set ref-er-enced by \OT1/pcr/m/ sl/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/ m/sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (8.5953pt too wide) in paragraph at lines 3308--3310 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3311--3313 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounded[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3314--3316 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]bounded[][][]affine[][][]preimage(+[]Handle, +[]P[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3317--3319 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]image(+[]Handle, +[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3320--3322 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]preimage(+[]Handle, +[] Overfull \hbox (24.81381pt too wide) in paragraph at lines 3323--3325 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs(+[]Handle, Overfull \hbox (9.79532pt too wide) in paragraph at lines 3326--3328 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3333--3335 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]intersection[][][]assign(+[]Handle[][][]1, +[]Handle[] [99] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3336--3338 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]upper[][][]bound[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3339--3341 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]difference[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3342--3344 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]time[][][]elapse[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (1.39532pt too wide) in paragraph at lines 3345--3347 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]upper[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[][][] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3348--3350 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]simplify[][][]using[][][]context[][][]assign(+[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 3355--3357 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][]a ssign(+[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 3358--3360 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign(+[]Handle[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3361--3363 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign(+[] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3364--3366 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign(+[]Handle[] [100 Overfull \hbox (7.13284pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (12.6829pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.45291pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new [][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (25.94154pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s pace[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]space[][][]dimension Overfull \hbox (31.3016pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpq[][][]class[][][]affine[][][]dimension Overfull \hbox (37.7628pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[][][]relation[] Overfull \hbox (36.08287pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]relation[] Overfull \hbox (2.03284pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] [138]] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3373--3375 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]concatenate[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (12.81381pt too wide) in paragraph at lines 3380--3382 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, Overfull \hbox (24.81381pt too wide) in paragraph at lines 3383--3385 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]add[][][]space[][][]dimensions[][][]and[][][]project(+[]Handle, Overfull \hbox (20.5953pt too wide) in paragraph at lines 3386--3388 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]remove[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3389--3391 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]remove[][][]higher[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3392--3394 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]expand[][][]space[][][]dimension(+[]Handle, +[]P[]P[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3395--3397 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]fold[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (1.7817pt too wide) in paragraph at lines 3395--3397 \OT1/ptm/m/it/10 Modifies the pointset pow-er-set ref-er-enced by \OT1/pcr/m/sl /10 Handle \OT1/ptm/m/it/10 by fold-ing the space di-men-sions con-tained in \O T1/pcr/m/sl/10 List[] Overfull \hbox (9.2138pt too wide) in paragraph at lines 3398--3400 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]map[][][]space[][][]dimensions(+[]Handle, +[]P[][][][]Func) Overfull \hbox (6.19531pt too wide) in paragraph at lines 3405--3407 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]from[][][]iterator(+[]Iterator[] [101] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3414--3416 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]iterator[][][]equals[][][]iterator(+[]Iterator[][][] Overfull \hbox (29.6138pt too wide) in paragraph at lines 3423--3425 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]iterator[][][]get[][][]disjunct(+[]Iterator, -[]Handle) Overfull \hbox (20.5953pt too wide) in paragraph at lines 3435--3437 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]drop[][][]disjuncts(+[]Handle, +[]Iterator[][][]1, +[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3454--3456 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][]space[][][]dimension(+[]Dimension[] [102] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3461--3463 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][]constraints(+[]Constraint[][][] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3464--3466 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][]congruences(+[]Congruence[][][] Underfull \hbox (badness 10000) in paragraph at lines 3472--3473 Overfull \hbox (55.39532pt too wide) in paragraph at lines 3478--3480 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] []Polyhedron(+[] Overfull \hbox (15.79532pt too wide) in paragraph at lines 3481--3483 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron(+[]Handle[][][]1, - [] Overfull \hbox (43.39532pt too wide) in paragraph at lines 3484--3486 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] []Polyhedron[] Overfull \hbox (43.39532pt too wide) in paragraph at lines 3487--3489 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]comp lexity(+[] [103] Overfull \hbox (18.70169pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]get[][][]constraints Overfull \hbox (24.25175pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]get[][][]congruences Overfull \hbox (3.3225pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (8.87256pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (27.39282pt too wide) in paragraph at lines 467--468 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]contains[] Overfull \hbox (0.92271pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]is[][][] [139] Overfull \hbox (15.2138pt too wide) in paragraph at lines 3521--3523 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounds[][][]from[][][]above(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (15.2138pt too wide) in paragraph at lines 3524--3526 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounds[][][]from[][][]below(+[]Handle, +[]Lin[][][][]Expr) Overfull \hbox (57.79532pt too wide) in paragraph at lines 3527--3529 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron(+[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3530--3532 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.79532pt too wide) in paragraph at lines 3533--3535 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 3536--3538 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 3539--3541 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[] Overfull \hbox (45.79532pt too wide) in paragraph at lines 3542--3544 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyh edron(+[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3555--3557 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]space[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (22.9953pt too wide) in paragraph at lines 3558--3560 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]affine[][][]dimension(+[]Handle, ?Dimension[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3561--3563 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]relation[][][]with[][][]constraint(+[]Handle, +[] [104] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3564--3566 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]relation[][][]with[][][]generator(+[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3567--3569 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]relation[][][]with[][][]congruence(+[]Handle, +[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3570--3572 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]maximize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (16.9953pt too wide) in paragraph at lines 3575--3577 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]minimize(+[]Handle, +[]Lin[][][][]Expr, ?Coeff[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3580--3582 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]maximize[][][]with[][][]point(+[]Handle, +[]Lin[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3585--3587 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]minimize[][][]with[][][]point(+[]Handle, +[]Lin[] Overfull \hbox (45.2138pt too wide) in paragraph at lines 3590--3592 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]external[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) Overfull \hbox (27.2138pt too wide) in paragraph at lines 3593--3595 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]total[][][]memory[][][]in[][][]bytes(+[]Handle, ?Number) [105] Overfull \hbox (14.0138pt too wide) in paragraph at lines 3612--3614 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]constraint(+[]Handle, +[]Constraint) Overfull \hbox (14.0138pt too wide) in paragraph at lines 3615--3617 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]congruence(+[]Handle, +[]Congruence) Overfull \hbox (28.9953pt too wide) in paragraph at lines 3618--3620 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]constraints( +[]Handle, +[]Constraint[] Overfull \hbox (28.9953pt too wide) in paragraph at lines 3621--3623 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]congruences( +[]Handle, +[]Congruence[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3624--3626 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]constraint( +[]Handle, +[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3627--3629 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]congruence( +[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3630--3632 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]constraints( +[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3633--3635 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]refine[][][]with[][][]congruences( +[]Handle, +[] Overfull \hbox (5.6138pt too wide) in paragraph at lines 3640--3642 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]topological[][][]closure[][][]assign(+[]Handle) [106] Overfull \hbox (1.49265pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t opological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.86339pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]bounds[] Overfull \hbox (6.96324pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]bounds[] Overfull \hbox (21.833pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m aximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[][][]maximize[] Overfull \hbox (20.17282pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m inimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[][][]minimize[] [140] Overfull \hbox (11.6138pt too wide) in paragraph at lines 3649--3651 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]unconstrain[][][]space[][][]dimension(+[]Handle, Overfull \hbox (17.6138pt too wide) in paragraph at lines 3652--3654 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]unconstrain[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3655--3657 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]affine[][][]image(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (19.06027pt too wide) in paragraph at lines 3655--3657 \OT1/ptm/m/it/10 Transforms the pointset pow-er-set ref-er-enced by \OT1/pcr/m/ sl/10 Handle \OT1/ptm/m/it/10 as-sign-ing the affine ex-pres-sion for \OT1/pcr/ m/sl/10 Lin[][][][]Expr/Coeff Overfull \hbox (20.5953pt too wide) in paragraph at lines 3658--3660 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]affine[][][]preimage(+[]Handle, +[]P[]P[]L[][][][]Var, +[] Overfull \hbox (2.5953pt too wide) in paragraph at lines 3661--3663 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounded[][][]affine[][][]image(+[]Handle, +[]P[]P[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3664--3666 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]bounded[][][]affine[][][]preimage(+[]Handle, +[] Overfull \hbox (14.5953pt too wide) in paragraph at lines 3667--3669 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]image(+[]Handle, +[] Overfull \hbox (11.6138pt too wide) in paragraph at lines 3670--3672 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]preimage(+[]Handle, Overfull \hbox (3.79532pt too wide) in paragraph at lines 3673--3675 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs(+[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3676--3678 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs(+[] [107] Overfull \hbox (32.5953pt too wide) in paragraph at lines 3683--3685 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]intersection[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 3686--3688 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]upper[][][]bound[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3689--3691 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]difference[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 3692--3694 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]time[][][]elapse[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (9.79532pt too wide) in paragraph at lines 3695--3697 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]upper[][][]bound[][][]assign[][][]if[][][]exact(+[]Handle[] Overfull \hbox (24.19531pt too wide) in paragraph at lines 3698--3700 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]simplify[][][]using[][][]context[][][]assign(+[]Handle[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3705--3707 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[ ][][]assign(+[] Overfull \hbox (21.79532pt too wide) in paragraph at lines 3708--3710 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign(+[]Han dle[] Overfull \hbox (12.19531pt too wide) in paragraph at lines 3711--3713 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign(+[] Overfull \hbox (30.19531pt too wide) in paragraph at lines 3714--3716 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign(+[]Handle[] [108] Overfull \hbox (6.39226pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (13.10172pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s trictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT 1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (10.97186pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (0.9423pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e quals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (13.36177pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class[][][]add[][][]constraint Overfull \hbox (18.91183pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class[][][]add[][][]congruence [141 Overfull \hbox (26.5953pt too wide) in paragraph at lines 3723--3725 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]concatenate[][][]assign(+[]Handle[][][]1, +[]Handle[] Overfull \hbox (24.81381pt too wide) in paragraph at lines 3730--3732 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed(+[]Handle, Overfull \hbox (3.79532pt too wide) in paragraph at lines 3733--3735 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project(+[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3736--3738 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]remove[][][]space[][][]dimensions(+[]Handle, +[] Overfull \hbox (27.2138pt too wide) in paragraph at lines 3739--3741 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]remove[][][]higher[][][]space[][][]dimensions(+[]Handle, Overfull \hbox (2.5953pt too wide) in paragraph at lines 3742--3744 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]expand[][][]space[][][]dimension(+[]Handle, +[] Overfull \hbox (20.5953pt too wide) in paragraph at lines 3745--3747 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]fold[][][]space[][][]dimensions(+[]Handle, +[]List[] Overfull \hbox (1.7817pt too wide) in paragraph at lines 3745--3747 \OT1/ptm/m/it/10 Modifies the pointset pow-er-set ref-er-enced by \OT1/pcr/m/sl /10 Handle \OT1/ptm/m/it/10 by fold-ing the space di-men-sions con-tained in \O T1/pcr/m/sl/10 List[] Overfull \hbox (0.19531pt too wide) in paragraph at lines 3748--3750 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]map[][][]space[][][]dimensions(+[]Handle, +[]P[][][] [109]] Overfull \hbox (18.19531pt too wide) in paragraph at lines 3755--3757 []\OT1/pcr/m/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]from[][][]iterator(+[]Iterator[] Overfull \hbox (2.0138pt too wide) in paragraph at lines 3758--3760 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]begin[][][]iterator(+[]Handle, -[]Iterator) Overfull \hbox (8.5953pt too wide) in paragraph at lines 3764--3766 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]iterator[][][]equals[][][]iterator(+[]Iterator[] Overfull \hbox (8.5953pt too wide) in paragraph at lines 3773--3775 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]iterator[][][]get[][][]disjunct(+[]Iterator, -[] ) Overfull \hbox (4.9953pt too wide) in paragraph at lines 3785--199 []\OT1/pcr/m/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]drop[][][]disjuncts(+[]Handle, +[]Iterator[] (./PI_Compilation.tex) (./PI_SD_Features.tex [110] [111] Overfull \hbox (30.3312pt too wide) in paragraph at lines 86--87 []\OT1/ptm/m/n/10 Notice that, for dy-namic link-ing to work, you should have c on-fig-ured the li-brary with the \OT1/pcr/m/n/10 --enable-shared [112] Overfull \hbox (22.05167pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]add[][][]constraints Overfull \hbox (27.60173pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]add[][][]congruences Overfull \hbox (16.4929pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (22.04297pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (20.3828pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (25.93286pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (31.32278pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i ntersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][][]intersection[] Overfull \hbox (4.13298pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]upper[] [142 Overfull \hbox (2.20367pt too wide) in paragraph at lines 100--101 \OT1/ptm/m/n/10 e.[]g., [][]\OT1/pcr/m/n/10 http[]://www.[]cs.[]unipr.[]it/pipe rmail/ppl-devel/2006-[]January/007780.[]html[][]\OT1/ptm/m/n/10 ). ) Overfull \hbox (0.40225pt too wide) in paragraph at lines 102--207 []\OT1/ptm/m/n/10 In or-der to dy-nam-i-cally load the li-brary from Y[]AP you should sim-ply load \OT1/pcr/m/n/10 prefix/lib/ppl/ppl[] (./modules.tex)] (./group__PPL__Prolog__interface.tex) [113] [114] (./refman.ind [115]) (./refman.aux) ) (see the transcript file for additional information){/usr/share/texlive/texmf-d ist/fonts/enc/dvips/base/8r.enc} Output written on refman.pdf (121 pages, 626993 bytes). Transcript written on refman.log. make[3]: Leaving directory '/build/ppl-1.2/doc/user-configured-prolog-interface.latex-dir' pdftops ppl-user-configured-prolog-interface-1.2.pdf ppl-user-configured-prolog-interface-1.2.ps Overfull \hbox (3.352pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][][]affine[][][]image ( Overfull \hbox (22.4119pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]affine[][][]preimage Overfull \hbox (21.49312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpq[][][]class[][][]bounded[] Overfull \hbox (2.15298pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][] Overfull \hbox (52.33287pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (10.91272pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.09232pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] [144] Overfull \hbox (10.34235pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (12.37238pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (0.72276pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.2224pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (28.36278pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xpand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]expand[] Overfull \hbox (7.9527pt too wide) in paragraph at lines 749--750 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]f old[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[][][]fold[] [145] Overfull \hbox (5.6228pt too wide) in paragraph at lines 755--756 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m ap[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpq[][][]class[][][]map[] Overfull \hbox (19.80269pt too wide) in paragraph at lines 761--762 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (1.52267pt too wide) in paragraph at lines 767--768 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (2.87297pt too wide) in paragraph at lines 773--774 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xternal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (14.35309pt too wide) in paragraph at lines 779--780 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t otal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[][][]total[] Overfull \hbox (13.52211pt too wide) in paragraph at lines 785--786 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (3.9127pt too wide) in paragraph at lines 791--792 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (13.52246pt too wide) in paragraph at lines 797--798 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[] [146] Overfull \hbox (1.03305pt too wide) in paragraph at lines 803--804 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]widening[] Overfull \hbox (38.56151pt too wide) in paragraph at lines 809--810 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens ()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (22.44177pt too wide) in paragraph at lines 815--816 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \ OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (11.67209pt too wide) in paragraph at lines 821--822 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (12.83237pt too wide) in paragraph at lines 827--828 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (15.72232pt too wide) in paragraph at lines 833--834 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.11292pt too wide) in paragraph at lines 839--840 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] [147] Overfull \hbox (1.29317pt too wide) in paragraph at lines 845--846 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][][]C[] Overfull \hbox (26.29156pt too wide) in paragraph at lines 851--852 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l inear[][][]partition()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpq[][][]class[][][]linear[][][]partition Overfull \hbox (1.61258pt too wide) in paragraph at lines 863--864 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (4.28264pt too wide) in paragraph at lines 869--870 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (14.33266pt too wide) in paragraph at lines 875--876 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][] new[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (26.27225pt too wide) in paragraph at lines 881--882 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][]assign[][][][]Octagonal[] [148] Overfull \hbox (14.31274pt too wide) in paragraph at lines 887--888 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]add[] Overfull \hbox (2.5828pt too wide) in paragraph at lines 893--894 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.95296pt too wide) in paragraph at lines 899--900 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]M[]S[][][][]Octagonal[][][] Overfull \hbox (23.28305pt too wide) in paragraph at lines 905--906 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (36.81273pt too wide) in paragraph at lines 917--918 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (42.73245pt too wide) in paragraph at lines 923--924 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (41.06253pt too wide) in paragraph at lines 929--930 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (6.67296pt too wide) in paragraph at lines 935--936 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]M[]S[][][][]Octagonal[] [149] Overfull \hbox (5.00304pt too wide) in paragraph at lines 941--942 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]P[]R[][][][]Octagonal[] Overfull \hbox (5.80263pt too wide) in paragraph at lines 947--948 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (4.1327pt too wide) in paragraph at lines 953--954 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (5.25243pt too wide) in paragraph at lines 959--960 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] Overfull \hbox (3.5825pt too wide) in paragraph at lines 965--966 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] [150]) (./interfaceppl__Octagonal__Shape__mpz__class__tag.tex Overfull \hbox (10.67032pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (3.31183pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.45007pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (1.63164pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.1917pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (14.8418pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.24191pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity [][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (12.62155pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (16.21144pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (16.7715pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] [151] Overfull \hbox (7.21118pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (13.8615pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.5214pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.3509pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.66112pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.88121pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]constraints[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.53152pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]congruences[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.29147pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpz[] Overfull \hbox (2.86131pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]contains[][][]integer[][][]point[][] ([][]ppl[][][]const[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (6.35104pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][][]const[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 97--99 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (7.02023pt too wide) in paragraph at lines 99--101 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, [152] Overfull \hbox (23.56075pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]strictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class [][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (22.17088pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]is[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (12.44131pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]equals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][ ][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.21143pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (12.21129pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (16.10118pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]refine[][][]with[][][]constraints[][] ([][]ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.6717pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.5411pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.84126pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]constrains[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.18126pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]unconstrain[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.07115pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (20.8513pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][ ][]class[][][]t[][] ph, [][]ppl[][][]dimension[] [153] Overfull \hbox (13.62173pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.75192pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 dimension[][][]type[][] var, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Ex pression[][][]t[][] ub, [][]ppl[][][]const[] Overfull \hbox (2.61021pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (1.48982pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (2.4613pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 159--161 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (10.51138pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][] [][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (4.11174pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]O ctagonal[][][][]Shape[][][]mpz[] Overfull \hbox (5.22159pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (0.21179pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[] Overfull \hbox (1.05014pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (16.10132pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (10.35161pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.95117pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.8817pt too wide) in paragraph at lines 187--189 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][][]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][] ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.25133pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.55139pt too wide) in paragraph at lines 193--195 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]widening[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz [][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (24.18103pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][] []tokens[][] ([][]ppl[][][][]Octagonal[] [154] Overfull \hbox (8.6311pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]toke ns[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (1.23135pt too wide) in paragraph at lines 199--201 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][] ([][]ppl[ ][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.50127pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (4.73152pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]p pl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.99117pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (18.88135pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]wrap[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][] []class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (0.10184pt too wide) in paragraph at lines 215--217 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (10.22134pt too wide) in paragraph at lines 219--221 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]m pz[][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.401pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Oc tagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.18103pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Oc tagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.58188pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] [155] Overfull \hbox (6.36191pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.03156pt too wide) in paragraph at lines 245--247 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.81158pt too wide) in paragraph at lines 247--249 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.94067pt too wide) in paragraph at lines 251--253 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]fprint[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][] (F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stre am, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.38136pt too wide) in paragraph at lines 253--255 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][] (char $\OMS/cmsy/m/n/10 ^^C$$^^C$\OT1/ptm/bc/n/10 st rp, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (25.67891pt too wide) in paragraph at lines 255--257 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]t[][] x, F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stream) Overfull \hbox (23.4628pt too wide) in paragraph at lines 275--276 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.52336pt too wide) in paragraph at lines 281--282 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.37189pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]from[][][][]Grid [156] Overfull \hbox (9.57327pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.49278pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (1.61278pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (0.73248pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.85248pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (14.23259pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (28.67253pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.78261pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Octagonal[][][][]Shape[] [157] Overfull \hbox (11.2825pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (0.28201pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (1.40201pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (10.12172pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (11.24171pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (6.01285pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (11.56291pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpz[] [158] Overfull \hbox (4.33292pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new [][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (24.82155pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s pace[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]space[][][]dimension Overfull \hbox (30.18161pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpz[][][]class[][][]affine[][][]dimension Overfull \hbox (36.6428pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[][][]relation[] Overfull \hbox (34.96288pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]relation[] Overfull \hbox (0.91284pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (17.5817pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]get[][][]constraints Overfull \hbox (23.13176pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]get[][][]congruences Overfull \hbox (2.2025pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] [159] Overfull \hbox (7.75256pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (26.27283pt too wide) in paragraph at lines 467--468 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]contains[] Overfull \hbox (62.20276pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]is[][][]topologically[] Overfull \hbox (0.37265pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t opological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.7434pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]bounds[] Overfull \hbox (5.84325pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]bounds[] [160] Overfull \hbox (20.713pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m aximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[][][]maximize[] Overfull \hbox (19.05283pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m inimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[][][]minimize[] Overfull \hbox (4.15227pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] [161] Overfull \hbox (10.86172pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s trictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT 1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (8.73187pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (13.10233pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e quals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (12.24178pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class[][][]add[][][]constraint Overfull \hbox (17.79184pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class[][][]add[][][]congruence Overfull \hbox (20.93167pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]add[][][]constraints Overfull \hbox (26.48174pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]add[][][]congruences Overfull \hbox (15.37291pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]refine[] [162] Overfull \hbox (20.92297pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (19.2628pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (24.81287pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (30.20279pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i ntersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][][]intersection[] Overfull \hbox (3.01299pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]upper[] Overfull \hbox (13.193pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d ifference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[ ][][]mpz[][][]class[][][]difference[] Overfull \hbox (25.95311pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c oncatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape [][][]mpz[][][]class[][][]concatenate[] Overfull \hbox (22.08292pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t ime[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]time[][][]elapse[] [163] Overfull \hbox (11.65266pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.27234pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s implify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]O ctagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.56238pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (19.45227pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.23201pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][][]affine[][][]image ( Overfull \hbox (21.2919pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]affine[][][]preimage Overfull \hbox (20.37312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpz[][][]class[][][]bounded[] [164] Overfull \hbox (1.03299pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][] Overfull \hbox (51.21288pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (9.79272pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.97232pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (1.8322pt too wide) in paragraph at lines 713--714 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (9.22235pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Octagonal[][][][]Shape[][][]mpz[] [165] Overfull \hbox (11.25238pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (2.48277pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][] Overfull \hbox (4.1024pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (27.24278pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xpand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]expand[] Overfull \hbox (6.8327pt too wide) in paragraph at lines 749--750 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]f old[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[][][]fold[] Overfull \hbox (4.5028pt too wide) in paragraph at lines 755--756 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m ap[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpz[][][]class[][][]map[] Overfull \hbox (18.6827pt too wide) in paragraph at lines 761--762 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.40268pt too wide) in paragraph at lines 767--768 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][]mpz[] [166] Overfull \hbox (1.75298pt too wide) in paragraph at lines 773--774 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xternal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (13.2331pt too wide) in paragraph at lines 779--780 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t otal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[][][]total[] Overfull \hbox (12.40211pt too wide) in paragraph at lines 785--786 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.79271pt too wide) in paragraph at lines 791--792 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.40247pt too wide) in paragraph at lines 797--798 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.79306pt too wide) in paragraph at lines 803--804 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]widening[][][] Overfull \hbox (37.44151pt too wide) in paragraph at lines 809--810 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens ()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [167] Overfull \hbox (21.32178pt too wide) in paragraph at lines 815--816 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \ OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (10.5521pt too wide) in paragraph at lines 821--822 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (11.71237pt too wide) in paragraph at lines 827--828 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (14.60233pt too wide) in paragraph at lines 833--834 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.99292pt too wide) in paragraph at lines 839--840 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.17317pt too wide) in paragraph at lines 845--846 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][][]C[] Overfull \hbox (25.17157pt too wide) in paragraph at lines 851--852 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l inear[][][]partition()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpz[][][]class[][][]linear[][][]partition [168] Overfull \hbox (0.49258pt too wide) in paragraph at lines 863--864 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (3.16264pt too wide) in paragraph at lines 869--870 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (13.21266pt too wide) in paragraph at lines 875--876 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][] new[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (24.03226pt too wide) in paragraph at lines 881--882 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][]assign[][][][]Octagonal[] Overfull \hbox (13.19275pt too wide) in paragraph at lines 887--888 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]add[] Overfull \hbox (1.4628pt too wide) in paragraph at lines 893--894 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[] Overfull \hbox (23.83298pt too wide) in paragraph at lines 899--900 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (22.16306pt too wide) in paragraph at lines 905--906 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]P[]R[][][][]Octagonal[][][][]Shape[] [169] Overfull \hbox (37.36266pt too wide) in paragraph at lines 911--912 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (35.69273pt too wide) in paragraph at lines 917--918 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (41.61246pt too wide) in paragraph at lines 923--924 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (39.94254pt too wide) in paragraph at lines 929--930 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (5.55296pt too wide) in paragraph at lines 935--936 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]M[]S[][][][]Octagonal[] Overfull \hbox (3.88304pt too wide) in paragraph at lines 941--942 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]P[]R[][][][]Octagonal[] Overfull \hbox (4.68263pt too wide) in paragraph at lines 947--948 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (3.01271pt too wide) in paragraph at lines 953--954 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] [170] Overfull \hbox (4.13243pt too wide) in paragraph at lines 959--960 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] Overfull \hbox (2.46251pt too wide) in paragraph at lines 965--966 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] ) (./interfaceppl__PIP__Decision__Node__tag.tex [171]) (./interfaceppl__PIP__Problem__tag.tex [172] Overfull \hbox (4.04826pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]P[]I[]P[][][][]Problem[][][]f rom[][][][]P[]I[]P[][][][]Problem[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem[][ ][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ppip, [][]ppl[][][]const[][][][ ]P[]I[]P[][][][]Problem[] Overfull \hbox (1.52785pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]P[]I[]P[][][][]Problem[][] []from[][][][]P[]I[]P[][][][]Problem[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem [][][]t[][] dst, [][]ppl[][][]const[][][][]P[]I[]P[][][][]Problem[] Overfull \hbox (5.47821pt too wide) in paragraph at lines 56--58 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]P[]I[]P[][][][]Problem[][][]f rom[][][]constraints[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem[][][]t[][] $\OM S/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ppip, [][]ppl[][][]dimension[][][]type[][] d , [][]ppl[] Overfull \hbox (4.99655pt too wide) in paragraph at lines 56--58 [][][]\OT1/ptm/bc/n/10 Constraint[][][][]System[][][]const[][][]iterator[][][]t [][] first, [][]ppl[][][][]Constraint[][][][]System[][][]const[][][]iterator[][ ][]t[][] last, size[][][]t n, [][]ppl[] Overfull \hbox (1.6448pt too wide) in paragraph at lines 58--58 []\OT1/ptm/m/it/9 Builds a P[]IP prob-lem hav-ing space di-men-sion \OT1/pcr/m/ sl/9 d \OT1/ptm/m/it/9 from the se-quence of con-straints in the range $\OT1/cm r/m/n/9 [[]\OML/cmm/m/it/9 ; []\OT1/cmr/m/n/9 )$\OT1/ptm/m/it/9 ; Overfull \hbox (4.54796pt too wide) in paragraph at lines 68--70 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]number[][] []of[][][]parameter[][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]P []I[]P[][][][]Problem[][][]t[][] pip, [][]ppl[] Overfull \hbox (3.73772pt too wide) in paragraph at lines 71--73 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]parameter[ ][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Proble m[][][]t[][] pip, [][]ppl[][][]dimension[] Overfull \hbox (6.23784pt too wide) in paragraph at lines 74--76 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]get[][][]b ig[][][]parameter[][][]dimension[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][] Problem[][][]t[][] pip, [][]ppl[][][]dimension[] Overfull \hbox (7.51797pt too wide) in paragraph at lines 80--82 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]constraint [][][]at[][][]index[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Problem[][][] t[][] pip, [][]ppl[][][]dimension[][][]type[][] i, [][]ppl[] [173] Overfull \hbox (8.44783pt too wide) in paragraph at lines 101--103 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]t o[][][]parameter[][][]space[][][]dimensions[][] ([][]ppl[][][][]P[]I[]P[][][][] Problem[][][]t[][] pip, [][]ppl[][][]dimension[] [174] Overfull \hbox (4.83315pt too wide) in paragraph at lines 180--181 []\OT1/ptm/b/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]d imensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]P[]I[]P[][][][] Problem[][][]add[][][]space[][][]dimensions[] Package longtable Warning: Column widths have changed (longtable) in table 13 on input line 194. Underfull \hbox (badness 10000) detected at line 205 [][][] ) (./interfaceppl__PIP__Solution__Node__tag.tex Overfull \hbox (28.95125pt too wide) in paragraph at lines 15--16 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][] get[][][]parametric[][][]values[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]S olution[][][][]Node[][][]t[][] pip[][][]sol, [][]ppl[][][]dimension[] [175] Overfull \hbox (0.65196pt too wide) in paragraph at lines 48--49 []\OT1/ptm/b/n/10 ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][]get[][][ ]parametric[][][]values()[] \OT1/pcr/m/n/8 int ppl[][][][]P[]I[]P[][][][]Soluti on[][][][]Node[][][]get[][][]parametric[][][]values Package longtable Warning: Column widths have changed (longtable) in table 14 on input line 64. Underfull \hbox (badness 10000) detected at line 65 [][][] ) (./interfaceppl__PIP__Tree__Node__tag.tex [176] Overfull \hbox (0.62167pt too wide) in paragraph at lines 18--20 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]a s[][][]decision[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[ ][][]t[][] spip[][][]tree, [][]ppl[][][]const[][][][]P[]I[]P[][][][]Decision[] Overfull \hbox (17.25174pt too wide) in paragraph at lines 30--32 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]b egin[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]t[][] pip[][][]tree, [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[] Overfull \hbox (9.62175pt too wide) in paragraph at lines 33--35 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]e nd[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]t[][] pi p[][][]tree, [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[] ) (./interfaceppl__Pointset__Powerset__C__Polyhedron__const__iterator__tag.tex [177] Overfull \hbox (12.70763pt too wide) in paragraph at lines 16--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]const[][][]iterator[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.57777pt too wide) in paragraph at lines 18--19 \OT1/ptm/bc/n/10 Powerset[][][][]C[][][][]Polyhedron[][][]const[][][]iterator[] [][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pit, [][]ppl[][][]const[][][][ ]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[][][]const[] Overfull \hbox (35.44739pt too wide) in paragraph at lines 22--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]end[][] ([][]ppl[][][]const[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.6573pt too wide) in paragraph at lines 30--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]const[][ ][][]Pointset[][][][]Powerset[] Overfull \hbox (36.28717pt too wide) in paragraph at lines 32--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (37.94722pt too wide) in paragraph at lines 34--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.17719pt too wide) in paragraph at lines 36--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]cons t[][][][]Pointset[][][][]Powerset[] Overfull \hbox (31.45328pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][ ]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.3125pt too wide) in paragraph at lines 59--60 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator[][][]from[][][]const[][][]iterator()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] [178] Overfull \hbox (20.29312pt too wide) in paragraph at lines 69--70 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (12.51323pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.74301pt too wide) in paragraph at lines 89--90 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[ ][][][]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (46.56291pt too wide) in paragraph at lines 99--100 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 105 [][][] Overfull \hbox (40.09293pt too wide) in paragraph at lines 112--113 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (41.75298pt too wide) in paragraph at lines 122--123 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (38.88287pt too wide) in paragraph at lines 132--133 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [179]) (./interfaceppl__Pointset__Powerset__C__Polyhedron__iterator__tag.tex Overfull \hbox (20.47737pt too wide) in paragraph at lines 16--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][][]Pointset[][][][]Powerset[ ][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (20.17732pt too wide) in paragraph at lines 24--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.57744pt too wide) in paragraph at lines 32--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.23749pt too wide) in paragraph at lines 34--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.44711pt too wide) in paragraph at lines 36--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [180] Overfull \hbox (5.63354pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.95306pt too wide) in paragraph at lines 59--60 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator[][][]from[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][ ][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (35.75342pt too wide) in paragraph at lines 69--70 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (27.97353pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (27.80331pt too wide) in paragraph at lines 89--90 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.74318pt too wide) in paragraph at lines 99--100 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 105 [][][] Underfull \hbox (badness 10000) detected at line 108 [][][] Overfull \hbox (14.2732pt too wide) in paragraph at lines 115--116 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] [181] Overfull \hbox (15.93324pt too wide) in paragraph at lines 125--126 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.06314pt too wide) in paragraph at lines 135--136 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] ) (./interfaceppl__Pointset__Powerset__C__Polyhedron__tag.tex Overfull \hbox (38.41113pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][]space[][][]dimension[][] ([][]ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.16135pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (27.31155pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.16983pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron[][][]with[][][]complexity[][] Overfull \hbox (20.07114pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]space[][][]dimension[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.3812pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]dimension[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] [182] Overfull \hbox (0.48979pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[][][]t[][] ph) Overfull \hbox (33.96088pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]topological[][][]closure[][][]assign[][] ([][]ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.70169pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounds[][][]from[][][]above[][] ([][]ppl[][][]const[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (32.31142pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounds[][][]from[][][]below[][] ([][]ppl[][][]const[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.85016pt too wide) in paragraph at lines 61--63 \OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] [][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][] Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 p optimum) Overfull \hbox (2.16966pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]minimize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Powerse t[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (37.57085pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 65--67 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (35.9108pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 67--69 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (21.75092pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][] ([][]ppl[][][]const[][][][]Pointset[] Overfull \hbox (15.91096pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (13.97102pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][] ([][]ppl[][][]const[][][][]Pointset[] Overfull \hbox (1.04984pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]constraints[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (15.07112pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (21.72144pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]congruence[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.96101pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]constraints[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] [183] Overfull \hbox (25.61133pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]congruences[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.14104pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]intersection[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.8517pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.68123pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]concatenate[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.85103pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.01141pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]constrains[][] ([][]ppl[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]t[][] ph, [][]ppl[] Overfull \hbox (14.02145pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][][][]Powerset[ ][][][]C[][][][]Polyhedron[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.00993pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (16.48157pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.25146pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.13107pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 123--125 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (40.90097pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Point set[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 125--127 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (12.01096pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([] []ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (5.61131pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl [][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.72116pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]p pl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (32.54123pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.71136pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][ ][]Pointset[][][][]Powerset[] [184]gzip -n --best --force ppl-user-configured-prolog-interface-1.2.ps Overfull \hbox (27.69139pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.96115pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.07114pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]map[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.85179pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]wideni ng[][][]assign[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (8.96167pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.44122pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign[ ][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.9914pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign[][] ([][] ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.42798pt too wide) in paragraph at lines 174--176 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]omega[][][]reduce[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (16.6074pt too wide) in paragraph at lines 177--178 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]size[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][ ][][]C[][][][]Polyhedron[][][]t[][] ps, size[] Overfull \hbox (23.49762pt too wide) in paragraph at lines 179--180 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (23.24736pt too wide) in paragraph at lines 181--182 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (15.89742pt too wide) in paragraph at lines 185--186 \OT1/ptm/bc/n/10 t[][] ps, [][]ppl[][][]const[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]t[][] cit, [][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] [185] Overfull \hbox (3.23778pt too wide) in paragraph at lines 189--190 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]pairwise[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 214 [][][] Overfull \hbox (25.52202pt too wide) in paragraph at lines 221--222 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (25.74188pt too wide) in paragraph at lines 231--232 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (6.22339pt too wide) in paragraph at lines 241--242 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]add[] [186] Overfull \hbox (15.2834pt too wide) in paragraph at lines 251--252 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[][][]drop[] Overfull \hbox (19.1733pt too wide) in paragraph at lines 261--262 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjuncts()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][]drop[] Overfull \hbox (3.18323pt too wide) in paragraph at lines 271--272 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]pairwise[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.6629pt too wide) in paragraph at lines 287--288 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (37.45274pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (1.60347pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]Pointset[][][][]Powerset[][][] [187] Overfull \hbox (1.06046pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity()[] Overfull \hbox (3.57407pt too wide) in paragraph at lines 305--306 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity Overfull \hbox (30.19272pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (19.09297pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (24.64304pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (5.60315pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (6.16321pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.12292pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (38.443pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (45.67299pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [188] Overfull \hbox (2.08215pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerse t[][][][]C[][][][]Polyhedron[][][]is[][][]empty Overfull \hbox (25.73187pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]C[][][][]Polyhedron[][][]is[][][]universe Overfull \hbox (22.262pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]is[][][]bounded Overfull \hbox (29.75294pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.20285pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.96188pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]C[][][][]Polyhedron[][][]is[][][]discrete Overfull \hbox (45.1328pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (21.72368pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]omega[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]omega[] Overfull \hbox (18.82352pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.92337pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] [189] Overfull \hbox (8.17215pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron[][][]maximize Overfull \hbox (6.51198pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron[][][]minimize Overfull \hbox (24.19312pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.53294pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.99251pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (6.30196pt too wide) in paragraph at lines 449--450 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] [190] Overfull \hbox (4.1721pt too wide) in paragraph at lines 455--456 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (5.66255pt too wide) in paragraph at lines 461--462 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron()[] \ OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (0.70338pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][] Overfull \hbox (3.37344pt too wide) in paragraph at lines 479--480 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.71327pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.26334pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.45303pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (34.0031pt too wide) in paragraph at lines 503--504 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [191] Overfull \hbox (32.34293pt too wide) in paragraph at lines 509--510 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (37.89299pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (14.4829pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.89311pt too wide) in paragraph at lines 527--528 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.0731pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.03322pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.08302pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.73277pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][] [192] Overfull \hbox (1.47244pt too wide) in paragraph at lines 557--558 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]simplify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.56197pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]constrains Overfull \hbox (1.76248pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[] Overfull \hbox (5.65237pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[] Overfull \hbox (19.49364pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]affine[] Overfull \hbox (2.0735pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.65324pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] [193] Overfull \hbox (42.91313pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.29298pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.67284pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (15.05244pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (29.31233pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/ n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.30247pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (24.3325pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] [194] Overfull \hbox (44.36292pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (17.18253pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (40.3229pt too wide) in paragraph at lines 653--654 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.51283pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Point set[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.98294pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.8828pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (13.4828pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/ n/8 int ppl[][][][]Pointset[][][][]Powerset[] [195] Overfull \hbox (46.51312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.11322pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.15227pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][] assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (22.31267pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign()[] \OT1/pc r/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.85257pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign()[] \OT1 /pcr/m/n/8 int ppl[][][][]Pointset[][][] Overfull \hbox (18.69278pt too wide) in paragraph at lines 713--714 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (7.80214pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]print[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron ( Overfull \hbox (6.33209pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fprint[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron Overfull \hbox (16.69203pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]asprint[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron [196] Overfull \hbox (9.15346pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]ascii[] Overfull \hbox (2.48352pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]ascii[] ) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__const__iterator__tag.tex Overfull \hbox (11.83833pt too wide) in paragraph at lines 1--1 []\OT1/ptm/b/n/12 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]const[][][]iterator[][][]tag In-ter-face Ref-er-ence Overfull \hbox (30.36118pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.3908pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][] []const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.1415pt too wide) in paragraph at lines 23--25 [][][]\OT1/ptm/bc/n/10 N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][] t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]const[][][]iterator[] Overfull \hbox (10.87091pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] [197] Overfull \hbox (4.61319pt too wide) in paragraph at lines 43--44 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (32.75244pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[][][]iterator[][][]from[][][]const[][][]iterator() [] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (44.33307pt too wide) in paragraph at lines 55--56 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.55318pt too wide) in paragraph at lines 61--62 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.44278pt too wide) in paragraph at lines 67--68 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int p pl[][][][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (3.65283pt too wide) in paragraph at lines 73--74 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (0.51288pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][] Overfull \hbox (2.44281pt too wide) in paragraph at lines 85--86 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (9.50294pt too wide) in paragraph at lines 91--92 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]d elete[][][][]Pointset[][][][]Powerset[] [198]) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__iterator__tag.tex Overfull \hbox (5.65144pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (11.31146pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]begin[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.68147pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]end[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (29.23099pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (30.89104pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.83087pt too wide) in paragraph at lines 31--32 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][]const[][][][]Point set[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (29.6735pt too wide) in paragraph at lines 43--44 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Poin tset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.393pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator[][][]from[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (18.51334pt too wide) in paragraph at lines 55--56 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [199] Overfull \hbox (10.73344pt too wide) in paragraph at lines 61--62 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.10309pt too wide) in paragraph at lines 67--68 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (38.31314pt too wide) in paragraph at lines 73--74 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (39.97319pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (44.78313pt too wide) in paragraph at lines 85--86 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][]Point set[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.96323pt too wide) in paragraph at lines 91--92 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] ) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__tag.tex Overfull \hbox (5.3514pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] [200] Overfull \hbox (26.03156pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[ ][][]complexity[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (0.11113pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]Constraint[][][][]System[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.76144pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]Congruence[][][][]System[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (4.25085pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.56107pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]con st[][][][]Pointset[][][][]Powerset[] Overfull \hbox (10.90117pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Congruence[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] Overfull \hbox (16.7413pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (25.2213pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]universe[][] ([][]ppl[][][]const[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.18152pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]bounded[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.84103pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]discrete[][] ([][]ppl[][][]const[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.89133pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]pairwise[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (13.47177pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]omega[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.91118pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]maximize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.85019pt too wide) in paragraph at lines 63--65 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum) Overfull \hbox (19.25113pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]minimize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.85019pt too wide) in paragraph at lines 65--67 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum) Overfull \hbox (1.19106pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][] [][]Pointset[][][][]Powerset[][][][]N[] [201] Overfull \hbox (14.80135pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (21.47098pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (20.08112pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerse t[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (14.15979pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset [][][][]N[]N[]C[][][][]Polyhedron[][] Overfull \hbox (6.02162pt too wide) in paragraph at lines 77--79 \OT1/ptm/bc/n/10 ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (13.90953pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset [][][][]N[]N[]C[][][][]Polyhedron[][] Overfull \hbox (6.02162pt too wide) in paragraph at lines 79--81 \OT1/ptm/bc/n/10 ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.02145pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][] [][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (14.24141pt too wide) in paragraph at lines 85--87 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]constraint[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.89172pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]congruence[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.1313pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]constraints[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (24.78162pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]congruences[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.89159pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]refine[][][]with[][][]congruence[][] ([][]ppl[][][][]Poin tset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (32.02092pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]intersection[][][]assign[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.73158pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (25.6412pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]difference[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (32.56111pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]concatenate[][][]assign[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (31.73091pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.44106pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl [][][][]Pointset[][][][]Powerset[] [202] Overfull \hbox (3.9711pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][] []Pointset[][][][]Powerset[] Overfull \hbox (7.3215pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.0914pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.7517pt too wide) in paragraph at lines 127--129 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (0.6313pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (13.681pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (26.4509pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[] [] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.05125pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([ ][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (21.1611pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (16.1513pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.19162pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Poin tset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (3.25156pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][ ]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (11.85156pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2[] [] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (12.13116pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][ ]const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.47151pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]disjunct[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (10.36153pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]disjunct[][] ([][]ppl[][][][]Pointset[][][][]Po werset[][][][]N[]N[]C[][][][]Polyhedron[] [203] Overfull \hbox (14.25142pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]disjuncts[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.29173pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][] widening[][][]assign[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (23.40161pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assi gn[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (17.43134pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (11.74142pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]print[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.18124pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (6.50212pt too wide) in paragraph at lines 195--196 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (24.10284pt too wide) in paragraph at lines 201--202 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (7.77258pt too wide) in paragraph at lines 207--208 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (27.60335pt too wide) in paragraph at lines 213--214 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] [204] Overfull \hbox (29.94034pt too wide) in paragraph at lines 219--220 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]with[][][]complexity()[] Overfull \hbox (22.77408pt too wide) in paragraph at lines 219--220 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]with[][][]complexity Overfull \hbox (0.51256pt too wide) in paragraph at lines 225--226 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]com plexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (33.53291pt too wide) in paragraph at lines 231--232 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.68295pt too wide) in paragraph at lines 237--238 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][] Overfull \hbox (29.6431pt too wide) in paragraph at lines 243--244 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (30.20316pt too wide) in paragraph at lines 249--250 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.68283pt too wide) in paragraph at lines 255--256 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (2.0029pt too wide) in paragraph at lines 261--262 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Pointset[][][][]Powerset[][][][]N[] [205] Overfull \hbox (1.55289pt too wide) in paragraph at lines 267--268 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (8.22359pt too wide) in paragraph at lines 273--274 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[][][]is[] Overfull \hbox (4.99329pt too wide) in paragraph at lines 279--280 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (6.32341pt too wide) in paragraph at lines 285--286 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.91286pt too wide) in paragraph at lines 291--292 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.36276pt too wide) in paragraph at lines 297--298 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.2233pt too wide) in paragraph at lines 303--304 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.0127pt too wide) in paragraph at lines 309--310 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (27.22318pt too wide) in paragraph at lines 315--316 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]pairwise[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.8836pt too wide) in paragraph at lines 321--322 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]omega[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [206] Overfull \hbox (42.86346pt too wide) in paragraph at lines 327--328 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (42.96332pt too wide) in paragraph at lines 333--334 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.79358pt too wide) in paragraph at lines 339--340 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][][] Overfull \hbox (1.1334pt too wide) in paragraph at lines 345--346 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][][] Overfull \hbox (0.23303pt too wide) in paragraph at lines 351--352 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][] Overfull \hbox (46.57289pt too wide) in paragraph at lines 357--358 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [207] Overfull \hbox (1.59236pt too wide) in paragraph at lines 363--364 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (7.00032pt too wide) in paragraph at lines 369--370 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int Overfull \hbox (4.87047pt too wide) in paragraph at lines 375--376 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][ ]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int Overfull \hbox (3.82037pt too wide) in paragraph at lines 381--382 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron()[] Overfull \hbox (7.41406pt too wide) in paragraph at lines 381--382 \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron Overfull \hbox (4.04024pt too wide) in paragraph at lines 387--388 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron()[] Overfull \hbox (7.41406pt too wide) in paragraph at lines 387--388 \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron Overfull \hbox (34.54243pt too wide) in paragraph at lines 393--394 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Poly hedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (21.86333pt too wide) in paragraph at lines 405--406 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (27.41339pt too wide) in paragraph at lines 411--412 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [208] Overfull \hbox (25.75322pt too wide) in paragraph at lines 417--418 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (31.30328pt too wide) in paragraph at lines 423--424 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.61295pt too wide) in paragraph at lines 429--430 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.363pt too wide) in paragraph at lines 435--436 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (0.70284pt too wide) in paragraph at lines 441--442 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (1.4529pt too wide) in paragraph at lines 447--448 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (38.52284pt too wide) in paragraph at lines 453--454 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (44.93306pt too wide) in paragraph at lines 459--460 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [209] Overfull \hbox (31.11305pt too wide) in paragraph at lines 465--466 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (39.07317pt too wide) in paragraph at lines 471--472 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.12297pt too wide) in paragraph at lines 477--478 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (12.29271pt too wide) in paragraph at lines 483--484 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (15.91238pt too wide) in paragraph at lines 489--490 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]simplify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.70338pt too wide) in paragraph at lines 495--496 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (16.20242pt too wide) in paragraph at lines 501--502 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.09232pt too wide) in paragraph at lines 507--508 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl [][][][]Pointset[][][][]Powerset[] [210] Overfull \hbox (11.85356pt too wide) in paragraph at lines 513--514 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.11345pt too wide) in paragraph at lines 519--520 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.81316pt too wide) in paragraph at lines 525--526 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (1.67303pt too wide) in paragraph at lines 531--532 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][] Overfull \hbox (3.85289pt too wide) in paragraph at lines 537--538 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (10.43277pt too wide) in paragraph at lines 543--544 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Pointset[][][][]Powerset[] [211] Overfull \hbox (29.49239pt too wide) in paragraph at lines 549--550 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr /m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.47224pt too wide) in paragraph at lines 555--556 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/ pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (36.74242pt too wide) in paragraph at lines 561--562 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m /n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.37242pt too wide) in paragraph at lines 567--568 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr /m/n/8 int ppl[][][][]Pointset[][][] Overfull \hbox (0.24281pt too wide) in paragraph at lines 573--574 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[] Overfull \hbox (31.62247pt too wide) in paragraph at lines 579--580 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.88281pt too wide) in paragraph at lines 585--586 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[] [212] Overfull \hbox (2.67274pt too wide) in paragraph at lines 591--592 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (0.34285pt too wide) in paragraph at lines 597--598 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (19.32274pt too wide) in paragraph at lines 603--604 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n /8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (27.92274pt too wide) in paragraph at lines 609--610 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/ pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.39302pt too wide) in paragraph at lines 615--616 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (4.27313pt too wide) in paragraph at lines 621--622 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (12.98332pt too wide) in paragraph at lines 633--634 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [213] Overfull \hbox (17.24333pt too wide) in paragraph at lines 639--640 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (21.13322pt too wide) in paragraph at lines 645--646 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjuncts()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.59221pt too wide) in paragraph at lines 651--652 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening [][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (36.75261pt too wide) in paragraph at lines 657--658 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign()[] \ OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (12.4125pt too wide) in paragraph at lines 663--664 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign()[ ] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (33.13272pt too wide) in paragraph at lines 669--670 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pc r/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.24208pt too wide) in paragraph at lines 675--676 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][][] []N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]print[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (30.37204pt too wide) in paragraph at lines 681--682 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fprint[][] [][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron [214] Overfull \hbox (1.71346pt too wide) in paragraph at lines 687--688 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[][] [][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]asprint[] [][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] Overfull \hbox (6.31339pt too wide) in paragraph at lines 693--694 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.52345pt too wide) in paragraph at lines 699--700 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[][][] ) (./interfaceppl__Polyhedron__tag.tex Overfull \hbox (5.63234pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Rational[][][][ ]Box[] Overfull \hbox (10.59242pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][][]Polyhedron[][][] t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]B[] D[][][][]Shape[] Overfull \hbox (11.15248pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][][]Polyhedron[][][] t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]B[] D[][][][]Shape[] Overfull \hbox (6.71233pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][][]Polyh edron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const [] Overfull \hbox (7.27238pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][][]Polyh edron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const [] [215] Overfull \hbox (3.80247pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t [][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Grid [] Overfull \hbox (3.2623pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedr on[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[] Overfull \hbox (10.18228pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][ ]ppl[] Overfull \hbox (0.8408pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, Overfull \hbox (10.74234pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][ ]ppl[] Overfull \hbox (1.40086pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, Overfull \hbox (6.25206pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity [][] ([][]ppl[][][][]Polyhedron[] Overfull \hbox (6.81212pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity [][] ([][]ppl[][][][]Polyhedron[] Overfull \hbox (25.27213pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][] Polyhedron[][][]t[][] y, [][]ppl[][][][]Polyhedron[] Overfull \hbox (5.6022pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedro n[][][]t[][] pset, [][]ppl[][][][]Generator[] [216] Overfull \hbox (3.38223pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedro n[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (20.04214pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pol yhedron[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (17.82217pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pol yhedron[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (11.182pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedr on[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (8.96204pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedr on[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (25.62195pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Po lyhedron[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (23.40198pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Po lyhedron[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (26.14159pt too wide) in paragraph at lines 111--113 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]C[ ][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (23.92162pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]C[ ][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (14.20235pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][] [][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (11.98238pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][] [][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (13.65202pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][ ][][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (11.43205pt too wide) in paragraph at lines 133--134 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][ ][][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] [217] Overfull \hbox (10.48825pt too wide) in paragraph at lines 144--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/c msy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (23.78888pt too wide) in paragraph at lines 148--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/c msy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (8.35905pt too wide) in paragraph at lines 150--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle [][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OM S/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] Overfull \hbox (25.46918pt too wide) in paragraph at lines 160--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedro n[] Overfull \hbox (24.92819pt too wide) in paragraph at lines 164--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $ \OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraint [] Overfull \hbox (9.49837pt too wide) in paragraph at lines 166--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Constraint[] Overfull \hbox (22.799pt too wide) in paragraph at lines 170--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] Overfull \hbox (25.72865pt too wide) in paragraph at lines 172--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[] [] dst, [][]ppl[][][]const[][][][]Polyhedron[] [218] Overfull \hbox (11.02924pt too wide) in paragraph at lines 178--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (6.43909pt too wide) in paragraph at lines 180--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Po lyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (11.02924pt too wide) in paragraph at lines 182--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (6.43909pt too wide) in paragraph at lines 184--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Po lyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (2.65869pt too wide) in paragraph at lines 206--207 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]congruences[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][] Congruence[][][][]System[] Overfull \hbox (2.68785pt too wide) in paragraph at lines 208--209 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]c onstraints[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][] []const[][][][]Constraint[] Overfull \hbox (15.98848pt too wide) in paragraph at lines 210--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]c ongruences[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][] []const[][][][]Congruence[] [219] Overfull \hbox (8.73904pt too wide) in paragraph at lines 226--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounds[][][]from[][][]abo ve[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (9.34877pt too wide) in paragraph at lines 228--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounds[][][]from[][][]bel ow[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (14.6082pt too wide) in paragraph at lines 230--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]maximize[][][]with[][][]p oint[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (1.86832pt too wide) in paragraph at lines 232--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]maximize[][] ([][]ppl[][] []const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][] []Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (12.94815pt too wide) in paragraph at lines 234--235 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]minimize[][][]with[][][]p oint[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (14.84818pt too wide) in paragraph at lines 236--238 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]minimize[][][]with[][] []point[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]c onst[][][][]Linear[][][][]Expression[] Overfull \hbox (11.01836pt too wide) in paragraph at lines 241--242 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]strictly[][][]contains[][ ][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][]ppl [][][]const[][][][]Polyhedron[] Overfull \hbox (9.6285pt too wide) in paragraph at lines 243--244 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]fro m[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][ ]ppl[][][]const[][][][]Polyhedron[] [220] Overfull \hbox (9.87866pt too wide) in paragraph at lines 275--276 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]refine[][][]with[][][]con gruences[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][] []Congruence[][][][]System[] Overfull \hbox (2.82346pt too wide) in paragraph at lines 291--292 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][ ][]dimensions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimens ion[][][]type[][] ds[]$ $[], Overfull \hbox (4.84868pt too wide) in paragraph at lines 293--294 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]affine[][][]image[][] ([] []ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] var , [][]ppl[][][]const[][][][]Linear[] Overfull \hbox (1.24907pt too wide) in paragraph at lines 299--300 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][] preimage[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[] [][]type[][] var, [][]ppl[] Overfull \hbox (0.58711pt too wide) in paragraph at lines 301--302 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]generalized[][][]affine[] [][]image[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[ ][][]type[][] var, enum [221] Overfull \hbox (6.12796pt too wide) in paragraph at lines 303--304 \OT1/ptm/bc/n/10 enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-s ym, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] [][]const[][][][]Coefficient[] Overfull \hbox (0.9884pt too wide) in paragraph at lines 307--308 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]generalized[][][]affine[] [][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [] []ppl[][][]const[][][][]Linear[] Overfull \hbox (12.40506pt too wide) in paragraph at lines 319--320 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]remove[][][]space[][][]di mensions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[] [][]type[][] ds[]$ $[], size[] Overfull \hbox (12.1548pt too wide) in paragraph at lines 323--324 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]map[][][]space[][][]dimen sions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[][][ ]type[][] maps[]$ $[], size[] [222] Overfull \hbox (7.10867pt too wide) in paragraph at lines 347--348 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cm sy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (21.54861pt too wide) in paragraph at lines 351--352 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\ OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (6.11879pt too wide) in paragraph at lines 353--354 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Generator[] Overfull \hbox (7.50677pt too wide) in paragraph at lines 355--356 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]generators[][] ( [][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][]G enerator[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs) Overfull \hbox (14.67685pt too wide) in paragraph at lines 369--370 [][][]\OT1/ptm/bc/n/10 Integer[][][][]Type[][][][]Overflow[][] o, const [][]ppl [][][]const[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 pcs, un-signed complexity[][][]threshold, Overfull \hbox (28.9686pt too wide) in paragraph at lines 371--372 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widen ing[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (9.51877pt too wide) in paragraph at lines 373--374 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][] assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]p pl[][][]const[][][][]Polyhedron[] [223] Overfull \hbox (1.88829pt too wide) in paragraph at lines 379--380 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Pol yhedron[][][]t[][] x, [][]ppl[] Overfull \hbox (7.1482pt too wide) in paragraph at lines 381--382 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]e xtrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[] [][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (25.31825pt too wide) in paragraph at lines 383--384 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (5.86842pt too wide) in paragraph at lines 385--386 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]e xtrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[] [][]const[][][][]Polyhedron[] Overfull \hbox (7.98883pt too wide) in paragraph at lines 387--388 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Pol yhedron[][][]t[][] x, [][]ppl[] Overfull \hbox (31.4188pt too wide) in paragraph at lines 391--392 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (11.96896pt too wide) in paragraph at lines 393--394 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]e xtrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[] [][]const[][][][]Polyhedron[] [224] Overfull \hbox (1.31215pt too wide) in paragraph at lines 412--413 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]space [][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[ ][][]from[][][]space[][][]dimension ( Overfull \hbox (0.10345pt too wide) in paragraph at lines 432--433 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]C[][][][]Polyhedron[][][]from[][][][]C[][][] Underfull \hbox (badness 10000) detected at line 438 [][][] Overfull \hbox (10.74222pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Con straint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyh edron[][][]from[][][][]Constraint[][][][]System Overfull \hbox (11.32346pt too wide) in paragraph at lines 455--456 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Po lyhedron[][][]recycle[][][][]Constraint[] [225] Underfull \hbox (badness 10000) detected at line 463 [][][] Overfull \hbox (16.29228pt too wide) in paragraph at lines 470--471 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Con gruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyh edron[][][]from[][][][]Congruence[][][][]System Overfull \hbox (16.87352pt too wide) in paragraph at lines 480--481 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Po lyhedron[][][]recycle[][][][]Congruence[] Underfull \hbox (badness 10000) detected at line 488 [][][] Overfull \hbox (15.75209pt too wide) in paragraph at lines 505--506 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][ ]Polyhedron[][][]from[][][]space[][][]dimension Overfull \hbox (14.45259pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C [][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron [226] Overfull \hbox (5.94331pt too wide) in paragraph at lines 525--526 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int p pl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 531 [][][] Overfull \hbox (12.08365pt too wide) in paragraph at lines 538--539 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Constraint[] Overfull \hbox (35.3634pt too wide) in paragraph at lines 548--549 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[ ]C[][][][]Polyhedron[][][]recycle[][][][]Constraint[] Underfull \hbox (badness 10000) detected at line 556 [][][] Overfull \hbox (17.63371pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Congruence[] Overfull \hbox (40.91347pt too wide) in paragraph at lines 573--574 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[ ]C[][][][]Polyhedron[][][]recycle[][][][]Congruence[] [227] Underfull \hbox (badness 10000) detected at line 581 [][][] Overfull \hbox (37.75237pt too wide) in paragraph at lines 588--589 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]N []N[]C[][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (3.98338pt too wide) in paragraph at lines 608--609 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]C[][][][]Polyhedron[][][]from[] Underfull \hbox (badness 10000) detected at line 614 [][][] Overfull \hbox (13.58339pt too wide) in paragraph at lines 631--632 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [228] Underfull \hbox (badness 10000) detected at line 637 [][][] [229] [230] Package longtable Warning: Column widths have changed (longtable) in table 15 on input line 844. [231] Package longtable Warning: Column widths have changed (longtable) in table 16 on input line 879. Overfull \hbox (9.58202pt too wide) in paragraph at lines 894--895 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]strictly[][][]contains[][][][]Pol yhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]strictly[][][]contain s[][][][]Polyhedron ( Overfull \hbox (0.73216pt too wide) in paragraph at lines 904--905 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][][ ]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]is[][][]disjoint[ ][][]from[][][][]Polyhedron ( [232] Underfull \hbox (badness 10000) detected at line 1000 [][][] [233] Underfull \hbox (badness 10000) detected at line 1013 [][][] Overfull \hbox (6.30173pt too wide) in paragraph at lines 1090--1091 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]context[ ][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]simplify[][][]usi ng[][][]context[][][]assign [234] Overfull \hbox (8.51176pt too wide) in paragraph at lines 1120--1121 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dimen sion()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]unconstrain[][][]space[] [][]dimension ( Overfull \hbox (7.60165pt too wide) in paragraph at lines 1130--1131 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dimen sions()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]unconstrain[][][]space[ ][][]dimensions Package longtable Warning: Column widths have changed (longtable) in table 17 on input line 1156. [235] Package longtable Warning: Column widths have changed (longtable) in table 18 on input line 1177. Package longtable Warning: Column widths have changed (longtable) in table 19 on input line 1200. Package longtable Warning: Column widths have changed (longtable) in table 20 on input line 1223. Underfull \vbox (badness 10000) has occurred while \output is active [236] Package longtable Warning: Column widths have changed (longtable) in table 21 on input line 1246. Overfull \hbox (2.74211pt too wide) in paragraph at lines 1251--1252 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]generalized[][][]affine[ ][][]preimage ( Package longtable Warning: Column widths have changed (longtable) in table 22 on input line 1269. Overfull \hbox (6.78322pt too wide) in paragraph at lines 1274--1275 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]imag e[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]generaliz ed[][][]affine[][][]image[] [237] Package longtable Warning: Column widths have changed (longtable) in table 23 on input line 1290. Overfull \hbox (35.44312pt too wide) in paragraph at lines 1295--1296 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]genera lized[][][]affine[][][]preimage[] Package longtable Warning: Column widths have changed (longtable) in table 24 on input line 1311. Overfull \hbox (12.11325pt too wide) in paragraph at lines 1326--1327 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][ ][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]add[][][]sp ace[][][]dimensions[][][]and[] Overfull \hbox (14.14328pt too wide) in paragraph at lines 1336--1337 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][ ][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]add[][][] space[][][]dimensions[][][]and[] [238] Overfull \hbox (26.81181pt too wide) in paragraph at lines 1356--1357 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[][] []dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]remove[][][]high er[][][]space[][][]dimensions Overfull \hbox (7.42976pt too wide) in paragraph at lines 1372--1373 []\OT1/ptm/bc/n/10 The par-tial func-tion is de-fined on di-men-sion \OT1/pcr/m /n/10 i \OT1/ptm/bc/n/10 if \OT1/pcr/m/n/10 i $\OML/cmm/m/it/10 <$ \OT1/pcr/m/n /10 n \OT1/ptm/bc/n/10 and \OT1/pcr/m/n/10 maps[]i[] != ppl[][][]not[][][]a[][] []dimension\OT1/ptm/bc/n/10 ; [239] Overfull \hbox (4.26228pt too wide) in paragraph at lines 1448--1449 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhe dron[][][]from[][][][]Generator[][][][]System Overfull \hbox (4.84352pt too wide) in paragraph at lines 1458--1459 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Pol yhedron[][][]recycle[][][][]Generator[] Underfull \hbox (badness 10000) detected at line 1466 [][][] Overfull \hbox (5.60371pt too wide) in paragraph at lines 1473--1474 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Generator[] Overfull \hbox (28.88347pt too wide) in paragraph at lines 1483--1484 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[] C[][][][]Polyhedron[][][]recycle[][][][]Generator[] [240] Underfull \hbox (badness 10000) detected at line 1491 [][][] Underfull \hbox (badness 10000) detected at line 1544 [][][] [241] Package longtable Warning: Column widths have changed (longtable) in table 25 on input line 1597. Overfull \hbox (22.67305pt too wide) in paragraph at lines 1602--1603 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][ ][]B[]H[]R[]Z03[][][]widening[][][]assign[] [242] Overfull \hbox (9.79324pt too wide) in paragraph at lines 1612--1613 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign[] [][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][][]H79[][ ][]widening[][][]assign[][][]with[] Overfull \hbox (6.43242pt too wide) in paragraph at lines 1642--1643 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Polyhedron[][][]limited[] Overfull \hbox (3.15262pt too wide) in paragraph at lines 1652--1653 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhe dron[][][]limited[][][][]H79[] Overfull \hbox (49.62305pt too wide) in paragraph at lines 1662--1663 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]lim ited[][][][]B[]H[]R[]Z03[][][]extrapolation[] [243] Overfull \hbox (14.66322pt too wide) in paragraph at lines 1672--1673 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]limited[][][ ][]H79[][][]extrapolation[] Overfull \hbox (13.67258pt too wide) in paragraph at lines 1682--1683 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Polyhedron[][][]bounded[] Overfull \hbox (10.39278pt too wide) in paragraph at lines 1692--1693 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhe dron[][][]bounded[][][][]H79[] Overfull \hbox (56.8632pt too wide) in paragraph at lines 1702--1703 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]bou nded[][][][]B[]H[]R[]Z03[][][]extrapolation[] Overfull \hbox (21.90338pt too wide) in paragraph at lines 1712--1713 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]bounded[][][ ][]H79[][][]extrapolation[] [244] Overfull \hbox (2.68365pt too wide) in paragraph at lines 1746--1747 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C [][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (9.44359pt too wide) in paragraph at lines 1752--1753 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]N[]N[]C[][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (3.80365pt too wide) in paragraph at lines 1758--1759 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C [][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (10.56358pt too wide) in paragraph at lines 1764--1765 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]N[]N[]C[][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[] [245] Overfull \hbox (22.12337pt too wide) in paragraph at lines 1770--1771 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]C[][][][]Polyhedron[][][]from[][][][]Octagonal[] Overfull \hbox (23.24336pt too wide) in paragraph at lines 1782--1783 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]C[][][][]Polyhedron[][][]from[][][][]Octagonal[] Overfull \hbox (1.20328pt too wide) in paragraph at lines 1788--1789 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] Overfull \hbox (36.272pt too wide) in paragraph at lines 1794--1795 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gri d[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (18.41342pt too wide) in paragraph at lines 1800--1801 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[ ]N[]C[][][][]Polyhedron[][][]from[][][][]Grid[][][]with[] Overfull \hbox (27.87338pt too wide) in paragraph at lines 1806--1807 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]C[][][][]Polyhedron[][][]from[][][][]Rational[] Overfull \hbox (10.6333pt too wide) in paragraph at lines 1812--1813 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [246] Overfull \hbox (18.7929pt too wide) in paragraph at lines 1818--1819 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[] Overfull \hbox (20.75282pt too wide) in paragraph at lines 1824--1825 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.71288pt too wide) in paragraph at lines 1830--1831 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[][][] Overfull \hbox (21.87282pt too wide) in paragraph at lines 1836--1837 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.7126pt too wide) in paragraph at lines 1842--1843 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.75252pt too wide) in paragraph at lines 1848--1849 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][] Overfull \hbox (27.8326pt too wide) in paragraph at lines 1854--1855 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[] [247] Overfull \hbox (0.99251pt too wide) in paragraph at lines 1860--1861 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[] Overfull \hbox (0.76205pt too wide) in paragraph at lines 1884--1885 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]upper[][][]bound[][][]assign[][][ ]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]upper[][][]bou nd[][][]assign[][][]if[][][]exact ( Overfull \hbox (2.99208pt too wide) in paragraph at lines 1902--1903 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]inte ger[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]drop[][][]som e[][][]non[][][]integer[][][]points [248] Overfull \hbox (20.5736pt too wide) in paragraph at lines 1908--1909 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]inte ger[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]drop[] [][]some[][][]non[][][]integer[][][]points[] Overfull \hbox (3.43185pt too wide) in paragraph at lines 1914--1915 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[][ ][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]widening[][][]assig n[][][]with[][][]tokens ( [249] Overfull \hbox (1.1535pt too wide) in paragraph at lines 1962--1963 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]M[]S[][][][]C[][][] Overfull \hbox (38.5021pt too wide) in paragraph at lines 1968--1969 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]P[]R[][][][]C[][][][]Polyhedron Overfull \hbox (0.23343pt too wide) in paragraph at lines 1974--1975 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]a ffine[][][]ranking[][][]function[][][][]M[] Overfull \hbox (3.36351pt too wide) in paragraph at lines 1980--1981 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]a ffine[][][]ranking[][][]function[][][][]P[]R[] Overfull \hbox (2.5233pt too wide) in paragraph at lines 1986--1987 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]M[]S[][][][]C[] Overfull \hbox (0.85338pt too wide) in paragraph at lines 1992--1993 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]P[]R[][][][]C[] Overfull \hbox (4.48323pt too wide) in paragraph at lines 1998--1999 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][] affine[][][]ranking[][][]functions[][][][]M[] Overfull \hbox (2.81331pt too wide) in paragraph at lines 2004--2005 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][] affine[][][]ranking[][][]functions[][][][]P[] [250] Overfull \hbox (2.0735pt too wide) in paragraph at lines 2034--2035 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]M[]S[][][] Overfull \hbox (0.40358pt too wide) in paragraph at lines 2040--2041 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]P[]R[][][] Overfull \hbox (1.15343pt too wide) in paragraph at lines 2046--2047 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one [][][]affine[][][]ranking[][][]function[] Overfull \hbox (2.36351pt too wide) in paragraph at lines 2052--2053 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one [][][]affine[][][]ranking[][][]function[][][] [251] Overfull \hbox (3.4433pt too wide) in paragraph at lines 2058--2059 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]M[]S[] Overfull \hbox (1.77338pt too wide) in paragraph at lines 2064--2065 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]P[]R[] Overfull \hbox (5.40323pt too wide) in paragraph at lines 2070--2071 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]al l[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (3.7333pt too wide) in paragraph at lines 2076--2077 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]al l[][][]affine[][][]ranking[][][]functions[] ) (./interfaceppl__Rational__Box__tag.tex Overfull \hbox (5.63234pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[] [] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhe dron[] [252] Overfull \hbox (1.04219pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Ra tional[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]pp l[] Overfull \hbox (9.09174pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]ppl[][][][]Rational [][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][ ]const[] Overfull \hbox (16.01172pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Rational[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.09135pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Constraint[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constra int[] Overfull \hbox (18.39198pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Congruence[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Congrue nce[] Overfull \hbox (1.71178pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Generator[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generato r[] Overfull \hbox (12.5317pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]relation[][][]wi th[][][][]Congruence[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[ ][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (7.53172pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]congrue nces[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[ ][][]const[][][][]Congruence[][][][]System[] Overfull \hbox (7.56088pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]minimiz ed[][][]constraints[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (20.86151pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]minimiz ed[][][]congruences[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (13.61208pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounds[][][]from [][][]above[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (14.2218pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounds[][][]from [][][]below[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[] [253] Overfull \hbox (18.62187pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]upper[] [][]bound[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ps, [][]ppl[][][]d imension[][][]type[][] var, [][]ppl[][][][]Coefficient[] Overfull \hbox (18.37173pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]lower[] [][]bound[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ps, [][]ppl[][][]d imension[][][]type[][] var, [][]ppl[][][][]Coefficient[] Overfull \hbox (6.74135pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]maximize[][] ([] []ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[] [][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (5.0813pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]minimize[][] ([] []ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[] [][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (19.48123pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]maximize[][][]wi th[][][]point[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (17.82118pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]minimize[][][]wi th[][][]point[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (7.13179pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]frequency[][] ([ ][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (0.61139pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]contains[][][][] Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] x, [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (11.72083pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]strictly[][][]co ntains[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[][][] []Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (10.33096pt too wide) in paragraph at lines 111--113 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint [][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[] [][][]Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (1.45107pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]refine[][][]with [][][]constraints[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]const[][][][]Constraint[][][][]System[] Overfull \hbox (14.7517pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]refine[][][]with [][][]congruences[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]const[][][][]Congruence[][][][]System[] Overfull \hbox (4.91129pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]simplify[][][]us ing[][][]context[][][]assign[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (7.69649pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][ ]space[][][]dimensions[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]dimension[][][]type[][] ds[]$ $[], Overfull \hbox (9.72171pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]affine[][][]imag e[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]dimension [][][]type[][] var, [][]ppl[][][]const[][][][]Linear[] [254] Overfull \hbox (6.1221pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounded[][][]aff ine[][][]preimage[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]dimension[][][]type[][] var, [][]ppl[] Overfull \hbox (5.46014pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]generalized[][][ ]affine[][][]image[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]p pl[][][]dimension[][][]type[][] var, enum Overfull \hbox (5.86143pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]generalized[][][ ]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Rational[][][][]Box [][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[] Overfull \hbox (3.69801pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]fold[][][]space[ ][][]dimensions[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[ ][][]dimension[][][]type[][] ds[]$ $[], size[] Overfull \hbox (8.29143pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]wi dening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Rational[][][][]Bo x[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (1.6215pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]widening[][][]as sign[][][]with[][][]tokens[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] x , [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (4.64108pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C []C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Rational[][][][]Box[][ ][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (2.96216pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle [][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t [][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] [255] Overfull \hbox (11.43164pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[ ][][][]Box[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (9.21167pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[ ][][][]Box[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (17.01144pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational [][][][]Box[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (14.79147pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational [][][][]Box[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (19.75078pt too wide) in paragraph at lines 233--235 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Ra tional[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][] []t[][] pset[][][]before, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (17.5308pt too wide) in paragraph at lines 235--237 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Ra tional[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][] []t[][] pset[][][]before, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (5.59184pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Ra tional[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (3.37187pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Ra tional[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (5.04152pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]R ational[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (2.82155pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]R ational[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] [256] Overfull \hbox (2.61357pt too wide) in paragraph at lines 301--302 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]R ational[][][][]Box[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (0.85356pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]R ational[][][][]Box[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (19.17328pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Rational[][][][]Box[][][]from[][][][]Octagonal[] Overfull \hbox (20.29327pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Rational[][][][]Box[][][]from[][][][]Octagonal[] Overfull \hbox (45.1534pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Rational[][][][]Box[][][]from[][][][]C[][][][]Polyhedron[] [257] Overfull \hbox (1.0333pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (33.32191pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Gri d[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational [][][][]Box[][][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (24.9233pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Rational[][][][]Box[][][]from[][][][]Rational[] Overfull \hbox (15.8428pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (16.9628pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (6.4825pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Rational[] Overfull \hbox (7.6025pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Rational[] [258] Overfull \hbox (7.79213pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Con straint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][] []Box[][][]from[][][][]Constraint[][][][]System Overfull \hbox (13.3422pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Con gruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][] []Box[][][]from[][][][]Congruence[][][][]System Overfull \hbox (1.3122pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][ ]Box[][][]from[][][][]Generator[][][][]System [259] Overfull \hbox (1.10178pt too wide) in paragraph at lines 433--434 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][] constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]get[][][ ]minimized[][][]constraints ( Overfull \hbox (6.65184pt too wide) in paragraph at lines 439--440 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][] congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]get[][][ ]minimized[][][]congruences ( Overfull \hbox (4.07193pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]topological[][][]closure [][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]topolog ical[][][]closure[][][]assign ( [260] [261] Overfull \hbox (22.7833pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]strictly[][][]contains[] [][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box [][][]strictly[][][]contains[][][][]Rational[] Overfull \hbox (13.93344pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint[][][]fr om[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][ ]Box[][][]is[][][]disjoint[][][]from[][][][]Rational[] [262] [263] Overfull \hbox (6.71194pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]upper[][][]bound[][][]as sign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[] [][]upper[][][]bound[][][]assign[][][]if[][][]exact Overfull \hbox (2.03311pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][][ ]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][ ]simplify[][][]using[][][]context[][][] Overfull \hbox (14.46165pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[] [][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]uncons train[][][]space[][][]dimension Overfull \hbox (23.15155pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[] [][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]uncon strain[][][]space[][][]dimensions [264] Overfull \hbox (8.692pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (22.33311pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]generalized[][][]affine[][][]image[] Overfull \hbox (9.71298pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][ ][]Box[][][]generalized[][][]affine[] Overfull \hbox (10.38313pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Bo x[][][]add[][][]space[][][]dimensions[] [265] Overfull \hbox (12.41316pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]add[][][]space[][][]dimensions[] Overfull \hbox (0.46318pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][] space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][] []remove[][][]higher[][][]space[] Overfull \hbox (18.54198pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[ ][][]drop[][][]some[][][]non[][][]integer[][][]points Overfull \hbox (4.44347pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][ ][]Box[][][]drop[][][]some[][][]non[][][]integer[] [266] Overfull \hbox (14.72318pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[] [][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][] [][]Box[][][][]C[]C76[][][]widening[][][]assign[] Overfull \hbox (9.38174pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[][] []with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]w idening[][][]assign[][][]with[][][]tokens Overfull \hbox (8.08255pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[] [][][]Rational[][][][]Box[][][]limited[] Overfull \hbox (41.67317pt too wide) in paragraph at lines 823--824 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]limited[][][][]C[]C76[][][]extrapolation[] [267] Overfull \hbox (8.37337pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][ ][][]Box[][][]recycle[][][][]Constraint[] Overfull \hbox (13.92343pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][ ][][]Box[][][]recycle[][][][]Congruence[] Overfull \hbox (1.89343pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][] [][]Box[][][]recycle[][][][]Generator[] [268] Overfull \hbox (28.92343pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]M[]S[][][][]Rational[] Overfull \hbox (27.25351pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]P[]R[][][][]Rational[] Overfull \hbox (33.17323pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]M[]S[][][][]Rational[] Overfull \hbox (31.50331pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]P[]R[][][][]Rational[] Overfull \hbox (37.52344pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]M[]S[][][][]Rational[] [269] Overfull \hbox (35.85352pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]P[]R[][][][]Rational[] Overfull \hbox (0.49321pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]M[]S[] Overfull \hbox (1.7033pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]P[]R[][][] ) [270] No file refman.ind. Package longtable Warning: Table widths have changed. Rerun LaTeX. (./refman.aux (./group__Init.aux) (./group__Version.aux) (./group__Error.aux) (./group__Timeout.aux) (./group__Datatypes.aux)) Package rerunfilecheck Warning: File `refman.out' has changed. (rerunfilecheck) Rerun to get outlines right (rerunfilecheck) or use package `bookmark'. LaTeX Font Warning: Some font shapes were not available, defaults substituted. LaTeX Warning: There were undefined references. LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. ) (see the transcript file for additional information){/usr/share/texlive/texmf-d ist/fonts/enc/dvips/base/8r.enc} Output written on refman.pdf (276 pages, 1680694 bytes). Transcript written on refman.log. makeindex refman.idx This is makeindex, version 2.15 [TeX Live 2019/dev] (kpathsea + Thai support). Scanning input file refman.idx......done (2513 entries accepted, 66 rejected). Sorting entries........................done (31073 comparisons). Generating output file refman.ind......done (5791 lines written, 0 warnings). Output written in refman.ind. Transcript written in refman.ilg. pdflatex refman This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./refman.tex LaTeX2e <2018-12-01> (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty (/usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty)) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def))) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty) (/usr/share/texlive/texmf-dist/tex/latex/tocloft/tocloft.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/backref.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty) (./doxygen.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty) (/usr/share/texlive/texmf-dist/tex/latex/tabu/tabu.sty (/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty)) (/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty) (/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty)) (/build/ppl-1.2/doc/ppl.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty)) Writing index file refman.idx (./refman.aux (./group__Init.aux) (./group__Version.aux) (./group__Error.aux) (./group__Timeout.aux) (./group__Datatypes.aux)) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./refman.out) (./refman.out) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/Ustmry.fd) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd) [1{/var/lib/texmf/fo nts/map/pdftex/updmap/pdftex.map} ] [2] (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd) [3 ] [4] (./refman.toc [1 ]) [2] (./index.tex Underfull \hbox (badness 10000) detected at line 9 [][][] pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored \relax l.25 [1]) (./GPL.texpdfTeX warning (ext4): destination with the same identifie r (name{page.2}) has been already used, duplicate ignored \relax l.37 ` `Copyright'' also means copyright-\/like laws that apply to other kind... [2]pdfTeX warning (ext4): destination with the same identifier (name{page.3}) h as been already used, duplicate ignored \relax l.68 [3]pdfTeX warning (ext4): destination with the same identifier (name{page .4}) has been already used, duplicate ignored \relax l.104 [4] [5] [6] [7] [8] [9]) Overfull \hbox (10.35326pt too wide) in paragraph at lines 291--187 \OT1/ptm/m/n/10 stead of this Li-cense. But first, please read [][]\OT1/pcr/m/n /10 http[]://www.[]gnu.[]org/philosophy/why-not-lgpl.[] (./GFDL.tex [10] [11] [12] [13] Overfull \hbox (7.49895pt too wide) in paragraph at lines 97--98 \OT1/ptm/m/n/10 ments, form-ing one sec-tion En-ti-tled "[]History"; like-wise com-bine any sec-tions En-ti-tled "[]Acknowledgements", Underfull \vbox (badness 1377) has occurred while \output is active [14]) (./modules.tex) (./annotated.tex [15] [16] Overfull \hbox (20.64815pt too wide) in paragraph at lines 31--31 \OT1/ptm/b/n/10 Types and func-tions for it-er-at-ing on the dis-juncts of a [ ][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] ) (./group__PPL__C__interface.tex) [17] (./group__Init.tex Underfull \hbox (badness 10000) detected at line 35 [][][] Underfull \hbox (badness 10000) detected at line 48 [][][] [18]) [19] (./group__Version.tex [20]) [21] (./group__Error.tex (/usr/share/texlive/texmf-dist/tex/latex/psnfss/omsptm.fd) Overfull \hbox (1.62299pt too wide) in paragraph at lines 6--20 [][]\OT1/ptm/m/n/10 P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]O[]U[]T[][][][]O[]F[][] [][]M[]E[]M[]O[]RY[][], [][]P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]V[]A[]L[] I[]D[][][][]A[]R[]G[]U[]M[]E[]NT[][], [][]P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]D []O[]M[] Overfull \hbox (1.35289pt too wide) in paragraph at lines 6--20 [][]\OT1/ptm/m/n/10 P[]P[]L[][][][]A[]R[]I[]T[]H[]M[]E[]T[]I[]C[][][][]O[]V[]E[ ]R[]F[]L[]OW[][], [][]P[]P[]L[][][][]S[]T[]D[]I[]O[][][][]E[]R[]R[]OR[][], [][] P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]T[]E[]R[]N[]A[]L[][][][]E[]R[]R[]OR[] [], [][]P[] [22]) [23] (./group__Timeout.tex Underfull \hbox (badness 10000) detected at line 47 [][][] Overfull \hbox (4.67143pt too wide) in paragraph at lines 48--49 []\OT1/pcr/m/n/10 P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]V[]A[]L[]I[]D[][][] []A[]R[]G[]U[]M[]E[]NT \OT1/ptm/bc/n/10 if \OT1/pcr/m/n/10 unscaled[][][]weight \OT1/ptm/bc/n/10 is zero or if the com-puted weight thresh- [24] Underfull \hbox (badness 10000) detected at line 59 [][][] Underfull \hbox (badness 10000) detected at line 62 [][][] ) [25] (./group__Datatypes.tex Overfull \hbox (3.74069pt too wide) in paragraph at lines 43--45 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraint[][][][]System[] [][]const[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/ bc/n/10 ppl[][][]const[][][][]Constraint[][][][]System[][][]const[] Overfull \hbox (0.36111pt too wide) in paragraph at lines 61--63 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/b c/n/10 ppl[][][]const[][][][]Generator[][][][]System[][][]const[] [26] Overfull \hbox (1.80132pt too wide) in paragraph at lines 76--78 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/1 0 ppl[][][][]Congruence[][][][]System[][][]const[][][]iterator[] Overfull \hbox (16.4409pt too wide) in paragraph at lines 139--141 [][] \OT1/ptm/bc/n/10 type-def struct ppl[][][][]Artificial[][][][]Parameter[][ ][][]Sequence[][][]tag const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][ ][]const[][][][]Artificial[][][][]Parameter[][][][]Sequence[] [27] Overfull \hbox (27.11154pt too wide) in paragraph at lines 190--192 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[][][][]Grid[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][ ]\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[] Overfull \hbox (14.85136pt too wide) in paragraph at lines 193--195 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[][][][]Grid[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^ C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Constraints[][][][]Product[] [28] Overfull \hbox (18.00154pt too wide) in paragraph at lines 202--204 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/pt m/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[ ] Overfull \hbox (21.60114pt too wide) in paragraph at lines 208--210 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][ ]\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[] Overfull \hbox (9.34096pt too wide) in paragraph at lines 211--213 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^ C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.77115pt too wide) in paragraph at lines 226--228 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][]tag[][] $\OMS/cms y/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (8.4811pt too wide) in paragraph at lines 229--231 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][]tag[][] const $\O MS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Pointset[] [29] [30] Underfull \hbox (badness 10000) detected at line 333 [][][] Overfull \hbox (27.05392pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]io[][][]variable[][][]output[][][]function[][][]typ e[] \OT1/pcr/m/n/8 typedef const char$\OMS/cmsy/m/n/8 ^^C$ \OT1/pcr/m/n/8 ppl[] [][]io[][][]variable[][][]output[][][]function[][][]type([][]ppl[] [31] Package longtable Warning: Column widths have changed (longtable) in table 7 on input line 467. Overfull \hbox (19.9918pt too wide) in paragraph at lines 472--473 []\OT1/ptm/b/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][][ ][]Representation[] \OT1/pcr/m/n/8 enum [][]ppl[][][]enum[][][][]Bounded[][][][ ]Integer[][][][]Type[][][][]Representation[][] Underfull \hbox (badness 10000) detected at line 516 [][][] [32] Underfull \hbox (badness 10000) detected at line 541 [][][] ) [33] (./interfaceppl__Artificial__Parameter__Sequence__const__iterator__tag.tex Overfull \hbox (7.82706pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Artificial[][][][]Paramete r[][][][]Sequence[][][]const[][][]iterator[][][]from[][][][]Artificial[][][][]P arameter[][][][]Sequence[] Overfull \hbox (23.68665pt too wide) in paragraph at lines 22--24 [][]\OT1/ptm/bc/n/10 const[][][]iterator[][] ([][]ppl[][][][]Artificial[][][][] Parameter[][][][]Sequence[][][]const[][][]iterator[][][]t[][] dst, [][]ppl[][][ ]const[][][][]Artificial[][][][]Parameter[] Overfull \hbox (26.38684pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Artificial[][][][]Paramete r[][][][]Sequence[][][]const[][][]iterator[][] ([][]ppl[][][]const[][][][]Artif icial[][][][]Parameter[][][][]Sequence[] Overfull \hbox (7.21704pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Seq uence[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]const[][][][] Artificial[][][][]Parameter[] Overfull \hbox (17.78696pt too wide) in paragraph at lines 35--37 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Seq uence[][][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Artificial[][ ][][]Parameter[][][][]Sequence[] ) (./interfaceppl__Artificial__Parameter__tag.tex Overfull \hbox (4.9309pt too wide) in paragraph at lines 15--17 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][]get[] [][][]Linear[][][][]Expression[][] ([][]ppl[][][]const[][][][]Artificial[][][][ ]Parameter[][][]t[][] ap, [][]ppl[][][][]Linear[] [34] Overfull \hbox (0.85934pt too wide) in paragraph at lines 18--20 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][]coeff icient[][] ([][]ppl[][][]const[][][][]Artificial[][][][]Parameter[][][]t[][] ap , [][]ppl[][][]dimension[][][]type[][] var, ) (./interfaceppl__BD__Shape__mpq__class__tag.tex Overfull \hbox (5.86221pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (3.64197pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (10.56195pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] [35] Overfull \hbox (11.12201pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.40195pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.93196pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]B[]D[ ][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n /10 pph, [][]ppl[] Overfull \hbox (3.1817pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.77185pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (12.33191pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (17.60164pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (18.1617pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (6.14209pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, [][]ppl[] Overfull \hbox (9.18156pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []space[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (9.49162pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []affine[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (0.2818pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []relation[][][]with[][][][]Congruence[][] ([][]ppl[][][]const[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (25.56108pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (1.9613pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]minimized[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (8.61162pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] [36] Overfull \hbox (0.25233pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounds[][][]from[][][]above[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (0.86206pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounds[][][]from[][][]below[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (6.12149pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 97--99 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (4.46144pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 99--101 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (14.71156pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]const [][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (14.12123pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []is[][][]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ( [][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.93167pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []equals[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]const[] [][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (12.4822pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]congruence[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (3.07146pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (16.37209pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (28.89116pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []refine[][][]with[][][]constraint[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (12.2214pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []intersection[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.84169pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []difference[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]cl ass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.7616pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []concatenate[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]c lass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] [37] Overfull \hbox (11.9314pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []time[][][]elapse[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.66202pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (5.592pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounded[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (18.3619pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 155--157 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (17.2415pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (30.0114pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (3.06163pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 161--163 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (15.83153pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 163--165 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (9.43188pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (10.54173pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (21.65166pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (5.53194pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (16.80182pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []expand[][][]space[][][]dimension[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.07158pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (9.18156pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []map[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (3.88039pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] ph, int com- Overfull \hbox (1.2322pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][][]2[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] [38] Overfull \hbox (3.17146pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]t[][] ps, size[] Overfull \hbox (4.35188pt too wide) in paragraph at lines 189--191 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] [][]H79[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (8.24164pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (2.78186pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []widening[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.19151pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][ ] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (0.70154pt too wide) in paragraph at lines 207--209 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]H79[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (6.82141pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (9.79172pt too wide) in paragraph at lines 217--219 \OT1/ptm/bc/n/10 Shape[][][]mpq[][][]class[][][]t[][] y, [][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/1 0 p[][][]inters, [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[] Overfull \hbox (8.77168pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (15.422pt too wide) in paragraph at lines 223--225 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (7.0819pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (11.38148pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][ ][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] dst, [][]ppl[] Overfull \hbox (15.68144pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][][]Constraint[] [39] Overfull \hbox (28.98207pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]recycled[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][][]Congruence[] Overfull \hbox (8.45016pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (6.2302pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (7.89984pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (5.67987pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (9.94308pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[ ]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][]space[] Overfull \hbox (21.70216pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]C[][][][]Polyhedron [40] Overfull \hbox (3.84358pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]N[]N[]C[] Overfull \hbox (10.45357pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Rational[] Overfull \hbox (1.37308pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (2.49307pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (9.29279pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.41278pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (22.7929pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [41] Overfull \hbox (10.35281pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (5.54291pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (19.8428pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.88231pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (9.0023pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (1.40201pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (2.522pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (43.37317pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Constraint[] [42] Overfull \hbox (0.9232pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][] Overfull \hbox (36.89323pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Generator[] Overfull \hbox (38.1416pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]relation[][][]with[][][][]Constraint Overfull \hbox (31.66167pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]relation[][][]with[][][][]Generator Overfull \hbox (1.79314pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]relation[][][]with[] [43] Overfull \hbox (3.0828pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]get[][][]minimized[] Overfull \hbox (8.63286pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]get[][][]minimized[] Overfull \hbox (0.2731pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]contains[][][]integer[] Overfull \hbox (2.60301pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]is[][][]topologically[][][] Overfull \hbox (30.05296pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topolo gical[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]topological[][][]closure[] [44] Overfull \hbox (7.81178pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpq[][][]class[][][]maximize[][][]with[][][]point ( Overfull \hbox (6.15161pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpq[][][]class[][][]minimize[][][]with[][][]point ( Overfull \hbox (1.11285pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contains[][][] Overfull \hbox (31.82233pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/ 8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strictly[] [45] Overfull \hbox (0.89246pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] Overfull \hbox (19.66292pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][ ]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals[][][][]B[]D[][][][]Shape[] Overfull \hbox (16.8717pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]refine[][][]with[][][]constraint Overfull \hbox (22.42177pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]refine[][][]with[][][]congruence [46] Overfull \hbox (25.5616pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]refine[][][]with[][][]constraints Overfull \hbox (31.11166pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]refine[][][]with[][][]congruences Overfull \hbox (2.93295pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]upper[][][]bound[] Overfull \hbox (20.95264pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simpli fy[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]simplify[][][]using[] [47] Overfull \hbox (8.76266pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpq[][][]class[][][]unconstrain[] Overfull \hbox (12.65256pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][] Shape[][][]mpq[][][]class[][][]unconstrain[] Overfull \hbox (7.47191pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpq[][][]class[][][]bounded[][][]affine[][][]image Overfull \hbox (3.83328pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]bounded[][][]affine[] [48] Overfull \hbox (20.41315pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]generalized[][][]affine[] Overfull \hbox (2.99301pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (22.05263pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (36.31252pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (17.78265pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][] B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][][]space[] Overfull \hbox (19.81268pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][][]space[] Overfull \hbox (37.58159pt too wide) in paragraph at lines 739--740 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]remove[][][]space[][][]dimensions [49] Overfull \hbox (0.1827pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[ ][][][]Shape[][][]mpq[][][]class[][][]remove[] Overfull \hbox (28.74158pt too wide) in paragraph at lines 751--752 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expand [][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]expand[][][]space[][][]dimension Overfull \hbox (13.1315pt too wide) in paragraph at lines 757--758 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold[] [][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]fold[][][]space[][][]dimensions Overfull \hbox (10.8016pt too wide) in paragraph at lines 763--764 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]map[][ ][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpq[][][]class[][][]map[][][]space[][][]dimensions Overfull \hbox (0.36298pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]B[ ]D[][][][]Shape[][][]mpq[][][]class[][][]drop[][][]some[] Overfull \hbox (8.96298pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[][][]some[] Overfull \hbox (12.23328pt too wide) in paragraph at lines 781--782 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]external[][][]memory[] [50] Overfull \hbox (12.81189pt too wide) in paragraph at lines 787--788 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]total[ ][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]total[][][]memory[][][]in[][][]bytes Overfull \hbox (1.7624pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[] Overfull \hbox (29.86266pt too wide) in paragraph at lines 799--800 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[][][]widening[] Overfull \hbox (13.27301pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (8.39174pt too wide) in paragraph at lines 811--812 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][][]H79[][][]widening[][][]assign ( Overfull \hbox (22.88277pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]widening[][][]assign[] Overfull \hbox (1.84178pt too wide) in paragraph at lines 829--830 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [51] Overfull \hbox (23.22203pt too wide) in paragraph at lines 835--836 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.00206pt too wide) in paragraph at lines 841--842 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/p cr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (28.7124pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (5.93262pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (12.59267pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (3.96262pt too wide) in paragraph at lines 865--866 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[] Overfull \hbox (29.87323pt too wide) in paragraph at lines 871--872 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][][]C[]C76[][][]extrapolation[] [52] Overfull \hbox (1.05347pt too wide) in paragraph at lines 877--878 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][][]C[]C76[][][]narrowing[][][] Overfull \hbox (15.77289pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (21.32295pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (14.09296pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[] [][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (3.71283pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [53] Overfull \hbox (38.69156pt too wide) in paragraph at lines 919--920 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]add[][][]recycled[][][]constraints Overfull \hbox (0.4231pt too wide) in paragraph at lines 925--926 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]add[][][]recycled[][][] Overfull \hbox (6.13176pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class ( Overfull \hbox (4.46184pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class ( Overfull \hbox (8.48293pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (6.813pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (12.73273pt too wide) in paragraph at lines 955--956 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (11.0628pt too wide) in paragraph at lines 961--962 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (14.11327pt too wide) in paragraph at lines 967--968 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [54] Overfull \hbox (12.44334pt too wide) in paragraph at lines 973--974 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (17.08293pt too wide) in paragraph at lines 979--980 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (15.41301pt too wide) in paragraph at lines 985--986 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (21.33273pt too wide) in paragraph at lines 991--992 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (19.66281pt too wide) in paragraph at lines 997--998 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] [55]) (./interfaceppl__BD__Shape__mpz__class__tag.tex Overfull \hbox (4.7421pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (2.52185pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (9.44183pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (10.00189pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (12.8701pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\ OT1/ptm/bc/n/10 pph, Overfull \hbox (4.28183pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.81184pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]B[]D[ ][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n /10 pph, [][]ppl[] Overfull \hbox (2.06158pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.65173pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.21179pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [56] Overfull \hbox (17.04158pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (17.60164pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.02197pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, [][]ppl[] Overfull \hbox (8.06145pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []space[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.3715pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []affine[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (24.44096pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (37.7416pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (0.84119pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]minimized[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (7.4915pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (5.00137pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 97--99 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (3.34132pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 99--101 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] [57] Overfull \hbox (13.03139pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]const [][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (13.83092pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []strictly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][] ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.44106pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []is[][][]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ( [][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.2515pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []equals[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]const[] [][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (11.36208pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]congruence[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (1.95134pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (15.25197pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (27.77104pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []refine[][][]with[][][]constraint[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (11.10129pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []intersection[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.72157pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []difference[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]cl ass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.64148pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []concatenate[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]c lass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.81128pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []time[][][]elapse[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [][]class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.5419pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (10.4113pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]B[]D[][][][] Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (4.47188pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []bounded[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] [58] Overfull \hbox (17.24178pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 155--157 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (16.12138pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (28.89128pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (1.94151pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 161--163 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (14.71141pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 163--165 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (8.31177pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (9.42162pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (20.53154pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (4.41182pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.6817pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []expand[][][]space[][][]dimension[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (6.95146pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.06145pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []map[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (2.76027pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] ph, int com- Overfull \hbox (0.11208pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][][]2[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (2.05135pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]t[][] ps, size[] Overfull \hbox (3.23177pt too wide) in paragraph at lines 189--191 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] [][]H79[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (7.12152pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (1.66174pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []widening[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] [59] Overfull \hbox (3.0714pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][ ] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (5.7013pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (8.6716pt too wide) in paragraph at lines 217--219 \OT1/ptm/bc/n/10 Shape[][][]mpz[][][]class[][][]t[][] y, [][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/1 0 p[][][]inters, [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[] Overfull \hbox (7.65157pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (14.30188pt too wide) in paragraph at lines 223--225 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.96178pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (9.70131pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][ ][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] dst, [][]ppl[] Overfull \hbox (14.56133pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][][]Constraint[] Overfull \hbox (27.86195pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]recycled[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][][]Congruence[] Overfull \hbox (7.33005pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (5.11008pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (6.77972pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (4.55975pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, [60] Overfull \hbox (8.82309pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[ ]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][]space[] Overfull \hbox (20.58217pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (2.72359pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]N[]N[]C[] Overfull \hbox (9.33357pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Rational[] [61] Overfull \hbox (0.25308pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (1.37308pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (8.17279pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.29279pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (21.6729pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.23282pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (4.42291pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (18.72281pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] [62] Overfull \hbox (6.76231pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.88231pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (0.28201pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (1.40201pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (42.25317pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Constraint[] Overfull \hbox (47.80324pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Congruence[] Overfull \hbox (35.77324pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Generator[] [63] Overfull \hbox (37.0216pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]relation[][][]with[][][][]Constraint Overfull \hbox (30.54167pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]relation[][][]with[][][][]Generator Overfull \hbox (0.67314pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]relation[][][]with[] Overfull \hbox (1.9628pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]get[][][]minimized[] Overfull \hbox (7.51286pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]get[][][]minimized[] [64] Overfull \hbox (2.03311pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]contains[][][]integer[][][] Overfull \hbox (1.48302pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]is[][][]topologically[][][] Overfull \hbox (28.93297pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topolo gical[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]topological[][][]closure[] [65] Overfull \hbox (6.69179pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpz[][][]class[][][]maximize[][][]with[][][]point ( Overfull \hbox (5.03162pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpz[][][]class[][][]minimize[][][]with[][][]point ( Overfull \hbox (3.67287pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contains[][][][]B[] Overfull \hbox (29.58234pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/ 8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strictly[] Overfull \hbox (1.53247pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][][] Overfull \hbox (17.42293pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][ ]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals[][][][]B[]D[][][][]Shape[] [66] Overfull \hbox (15.75171pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]refine[][][]with[][][]constraint Overfull \hbox (21.30177pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]refine[][][]with[][][]congruence Overfull \hbox (24.4416pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]refine[][][]with[][][]constraints Overfull \hbox (29.99167pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]refine[][][]with[][][]congruences [67] Overfull \hbox (1.81296pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]upper[][][]bound[] Overfull \hbox (19.83264pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simpli fy[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]simplify[][][]using[] Overfull \hbox (7.64267pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpz[][][]class[][][]unconstrain[] [68] Overfull \hbox (11.53256pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][] Shape[][][]mpz[][][]class[][][]unconstrain[] Overfull \hbox (6.35191pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounde d[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpz[][][]class[][][]bounded[][][]affine[][][]image Overfull \hbox (2.71329pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounde d[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]bounded[][][]affine[] Overfull \hbox (19.29315pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]generalized[][][]affine[] Overfull \hbox (1.87302pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpz[][][]class[][][]generalized[] [69] Overfull \hbox (20.93263pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (35.19252pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (16.66266pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][] B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][][]space[] Overfull \hbox (18.69269pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][][]space[] Overfull \hbox (36.4616pt too wide) in paragraph at lines 739--740 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]remove[][][]space[][][]dimensions Overfull \hbox (1.9427pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[ ][][][]Shape[][][]mpz[][][]class[][][]remove[][][] Overfull \hbox (27.62158pt too wide) in paragraph at lines 751--752 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expand [][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]expand[][][]space[][][]dimension [70] Overfull \hbox (12.0115pt too wide) in paragraph at lines 757--758 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold[] [][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]fold[][][]space[][][]dimensions Overfull \hbox (9.68161pt too wide) in paragraph at lines 763--764 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]map[][ ][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpz[][][]class[][][]map[][][]space[][][]dimensions Overfull \hbox (2.12299pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]B[ ]D[][][][]Shape[][][]mpz[][][]class[][][]drop[][][]some[][][] Overfull \hbox (7.84299pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[][][]some[] Overfull \hbox (11.11328pt too wide) in paragraph at lines 781--782 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]external[][][]memory[] Overfull \hbox (11.6919pt too wide) in paragraph at lines 787--788 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]total[ ][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]total[][][]memory[][][]in[][][]bytes Overfull \hbox (0.64241pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[] [71] Overfull \hbox (28.74266pt too wide) in paragraph at lines 799--800 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[][][]widening[] Overfull \hbox (12.15302pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (7.27174pt too wide) in paragraph at lines 811--812 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][][]H79[][][]widening[][][]assign ( Overfull \hbox (21.76277pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]widening[][][]assign[] Overfull \hbox (0.72179pt too wide) in paragraph at lines 829--830 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (22.10204pt too wide) in paragraph at lines 835--836 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.88206pt too wide) in paragraph at lines 841--842 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/p cr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [72] Overfull \hbox (27.5924pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (4.81262pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (11.47267pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (2.84262pt too wide) in paragraph at lines 865--866 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[] Overfull \hbox (28.75323pt too wide) in paragraph at lines 871--872 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (19.75198pt too wide) in paragraph at lines 877--878 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][][]C[]C76[][][]narrowing[][][]assign [73] Overfull \hbox (14.6529pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (20.20296pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (12.97296pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[] [][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (1.47284pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (37.57156pt too wide) in paragraph at lines 919--920 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]add[][][]recycled[][][]constraints Overfull \hbox (43.12163pt too wide) in paragraph at lines 925--926 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]add[][][]recycled[][][]congruences Overfull \hbox (5.01176pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class ( [74] Overfull \hbox (3.34184pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class ( Overfull \hbox (7.36293pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (5.69301pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (11.61273pt too wide) in paragraph at lines 955--956 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (9.94281pt too wide) in paragraph at lines 961--962 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (12.99327pt too wide) in paragraph at lines 967--968 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.32335pt too wide) in paragraph at lines 973--974 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.96294pt too wide) in paragraph at lines 979--980 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (14.29301pt too wide) in paragraph at lines 985--986 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] [75] Overfull \hbox (20.21274pt too wide) in paragraph at lines 991--992 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (18.54282pt too wide) in paragraph at lines 997--998 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] ) (./interfaceppl__Coefficient__tag.tex [76]) (./interfaceppl__Congruence__System__const__iterator__tag.tex [77] Overfull \hbox (1.72762pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][][]from[][][][]Congruence[][][][]System[][][]const[][ ][]iterator[][] ([][]ppl[] Overfull \hbox (2.27753pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][] ([][]ppl[][][]const[][][][]Congruence[][][][]System [][][]const[][][]iterator[] Overfull \hbox (17.54732pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]const[][ ][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Congruence[][][ ][]System[][][]const[][][]iterator[] ) (./interfaceppl__Congruence__System__tag.tex [78] Overfull \hbox (7.63844pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Congruence[][][][]System[][][ ]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Congruence[][][][]Sys tem[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, [][]ppl[] Overfull \hbox (9.56808pt too wide) in paragraph at lines 28--30 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Congruence[][][][]System[] [][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Congruence[][][][] System[][][]t[][] dst, [][]ppl[] Overfull \hbox (10.67792pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]space[][ ][]dimension[][] ([][]ppl[][][]const[][][][]Congruence[][][][]System[][][]t[][] cs, [][]ppl[][][]dimension[] Overfull \hbox (4.96837pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]begin[][ ] ([][]ppl[][][]const[][][][]Congruence[][][][]System[][][]t[][] cs, [][]ppl[][ ][][]Congruence[][][][]System[] Overfull \hbox (23.98816pt too wide) in paragraph at lines 60--62 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]insert[] [][][]Congruence[][] ([][]ppl[][][][]Congruence[][][][]System[][][]t[][] cs, [] []ppl[][][]const[][][][]Congruence[] [79]) (./interfaceppl__Congruence__tag.tex Overfull \hbox (15.0983pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][]coefficient[][] ([][]p pl[][][]const[][][][]Congruence[][][]t[][] c, [][]ppl[][][]dimension[][][]type[ ][] var, [][]ppl[][][][]Coefficient[] [80]) (./interfaceppl__Constraint__System__const__iterator__tag.tex Overfull \hbox (25.10667pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][][][]System[][][ ]const[][][]iterator[][][]from[][][][]Constraint[][][][]System[][][]const[][][] iterator[][] ([][]ppl[][][][]Constraint[] Overfull \hbox (33.69638pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Constraint[][][][]System[] [][]const[][][]iterator[][][]from[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][] ([][]ppl[][][][]Constraint[] Overfull \hbox (11.7268pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][][]dereference[][] ([][]ppl[][][]const[][][][]Constraint[][][][]S ystem[][][]const[][][]iterator[] Overfull \hbox (4.24669pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Constraint[][][ ][]System[][][]const[][][]iterator[] [81]) (./interfaceppl__Constraint__System__tag.tex Overfull \hbox (24.61707pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][][][]System[][][ ]from[][][][]Constraint[][] ([][]ppl[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, [][]ppl[][][]const[][][][]Constrai nt[] Overfull \hbox (2.09717pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]end[][] ([][]ppl[][][]const[][][][]Constraint[][][][]System[][][]t[][] cs, [][]ppl[][][ ][]Constraint[][][][]System[][][]const[] [82]) (./interfaceppl__Constraint__tag.tex Overfull \hbox (1.5281pt too wide) in paragraph at lines 16--18 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][] ([][]ppl[][][] []Constraint[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pc, [][]ppl[][][ ]const[][][][]Linear[][][][]Expression[][][]t[][] le, enum [][]ppl[][][]enum[] [83] Overfull \hbox (1.79767pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][]coefficient[][] ([][]p pl[][][]const[][][][]Constraint[][][]t[][] c, [][]ppl[][][]dimension[][][]type[ ][] var, [][]ppl[][][][]Coefficient[] ) (./interfaceppl__Constraints__Product__C__Polyhedron__Grid__tag.tex Overfull \hbox (14.4614pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[][][]const[][][][]Constraints [][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (16.42136pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension[][] ([][] ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (5.32178pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][] ([][ ]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (19.76172pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][ ] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (27.2516pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][] ([][]ppl[][][][]Con straints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.10153pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][] ([][ ]ppl[][][][]Constraints[][][][]Product[] [84] Overfull \hbox (0.58157pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (27.2312pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (27.79126pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (0.26022pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid[][] Overfull \hbox (5.4219pt too wide) in paragraph at lines 35--37 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.44136pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]wit h[][][]complexity[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (5.72202pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][ ][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (2.39153pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexi ty[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (38.22112pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]wit h[][][]complexity[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (20.69154pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[] [][]class[][][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (21.2516pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (20.90985pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][][]with[][][]complexity[][] Overfull \hbox (2.55026pt too wide) in paragraph at lines 49--51 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, int Overfull \hbox (21.46991pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][][]with[][][]complexity[][] Overfull \hbox (3.11032pt too wide) in paragraph at lines 51--53 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, int Overfull \hbox (9.24173pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid[] Overfull \hbox (16.57161pt too wide) in paragraph at lines 53--55 [][]\OT1/ptm/bc/n/10 with[][][]complexity[][] ([][]ppl[][][][]Constraints[][][] []Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^ ^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (23.66107pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (26.11101pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[ ][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (25.8513pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (34.3313pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]universe[][] ([][]ppl[][][]const[][][][]C onstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.29152pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]bounded[][] ([][]ppl[][][]const[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] [85] Overfull \hbox (22.80093pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][ ][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (31.95103pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]discrete[][] ([][]ppl[][][]const[][][][]C onstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.9711pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]topological[][][]closure[][][]assign[][] ([][]ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (9.71191pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounds[][][]from[][][]above[][] ([][]ppl[][][]con st[][][][]Constraints[][][][]Product[] Overfull \hbox (10.32164pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounds[][][]from[][][]below[][] ([][]ppl[][][]con st[][][][]Constraints[][][][]Product[] Overfull \hbox (30.02118pt too wide) in paragraph at lines 85--87 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]maximize[][] ([][]ppl[][][]const[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.78001pt too wide) in paragraph at lines 85--87 [][][]\OT1/ptm/bc/n/10 Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][] [][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 poptimum) Overfull \hbox (28.36113pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]minimize[][] ([][]ppl[][][]const[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.78001pt too wide) in paragraph at lines 87--89 [][][]\OT1/ptm/bc/n/10 Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][] [][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 poptimum) Overfull \hbox (15.58107pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]c onst[][][][]Constraints[][][][]Product[] Overfull \hbox (3.36195pt too wide) in paragraph at lines 89--91 [][][]\OT1/ptm/bc/n/10 C[][][][]Polyhedron[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coeffic ient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[] Overfull \hbox (13.92102pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]c onst[][][][]Constraints[][][][]Product[] Overfull \hbox (3.36195pt too wide) in paragraph at lines 91--93 [][][]\OT1/ptm/bc/n/10 C[][][][]Polyhedron[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coeffic ient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[] Overfull \hbox (21.13144pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[][][][ ]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[] Overfull \hbox (12.5711pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[][][][] Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.18124pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][] [][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.35155pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C [][][][]Polyhedron[][][][]Grid[][] ([][]ppl[] Overfull \hbox (5.02113pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][][]OK[][] ([][]ppl[][][]const[][][][]Constraints[] [][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (23.35141pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]constraint[][] ([][]ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (30.00172pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]congruence[][] ([][]ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (27.2413pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]constraints[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (33.89162pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]congruences[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.62155pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]refine[][][]with[][][]congruences[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] [86] Overfull \hbox (34.7512pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]difference[][][]assign[][] ([][]ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.84091pt too wide) in paragraph at lines 127--129 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][] Constraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.1216pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[] [] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (6.42146pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]constrains[][] ([][]ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (23.63115pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension[][] ([][]pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (16.4315pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]affine[][][]image[][] ([][]ppl[][][][]Constraints [][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.2014pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]affine[][][]preimage[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.26169pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (6.1413pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]image[][] ([][]ppl[] [][][]Constraints[][][][]Product[] Overfull \hbox (18.9112pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][] ([][]pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (2.52121pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][] rhs[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (15.2911pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[][ ][]rhs[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (8.89146pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embe d[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (10.00131pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]proj ect[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (10.55145pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]remove[][][]space[][][]dimensions[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (4.99152pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (5.70161pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][] [][]Constraints[][][][]Product[] [87] Overfull \hbox (0.69177pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points[ ][][]2[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (0.97137pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes[][] ([][] ppl[][][]const[][][][]Constraints[] Overfull \hbox (21.40106pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl [][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (22.70122pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens[][] ([ ][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (31.69138pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]widening[][][]assign[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.85143pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]print[][][][]Constraints[][][][]Pro duct[][][][]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[][][]const[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (17.83125pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Constraints[][][][]P roduct[][][][]C[][][][]Polyhedron[][][][]Grid[][] (char $\OMS/cmsy/m/n/10 ^^C$$ ^^C$\OT1/ptm/bc/n/10 strp, [][]ppl[][][]const[][][][]Constraints[][][][]Product [] Overfull \hbox (35.29124pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (5.02145pt too wide) in paragraph at lines 187--188 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]ascii[][][]load[][] ([][]ppl[][][][]Constraints[] [][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (36.6532pt too wide) in paragraph at lines 199--200 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Constraints[][][][]Product[][][][]C[] [][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.3924pt too wide) in paragraph at lines 205--206 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/ 8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (7.45296pt too wide) in paragraph at lines 211--212 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (21.8929pt too wide) in paragraph at lines 217--218 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/p cr/m/n/8 int ppl[][][]new[][][][]Constraints[] [88] Overfull \hbox (4.60298pt too wide) in paragraph at lines 223--224 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Constraints[][][][]Product[] Overfull \hbox (4.50287pt too wide) in paragraph at lines 229--230 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (36.70241pt too wide) in paragraph at lines 235--236 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (37.8224pt too wide) in paragraph at lines 241--242 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (11.0221pt too wide) in paragraph at lines 247--248 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[] Overfull \hbox (12.14209pt too wide) in paragraph at lines 253--254 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[] Overfull \hbox (21.9302pt too wide) in paragraph at lines 259--260 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[ ][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (7.24219pt too wide) in paragraph at lines 265--266 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] [89] Overfull \hbox (21.68213pt too wide) in paragraph at lines 271--272 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[ ][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (40.87224pt too wide) in paragraph at lines 277--278 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexity()[] \ OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (4.2921pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (8.31012pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int Overfull \hbox (9.43011pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int Overfull \hbox (15.90984pt too wide) in paragraph at lines 301--302 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class[][][]with[][][]complexity()[] Overfull \hbox (11.25407pt too wide) in paragraph at lines 301--302 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class[][][]with[][][]complexity Overfull \hbox (17.02983pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class[][][]with[][][]complexity()[] Overfull \hbox (11.25407pt too wide) in paragraph at lines 307--308 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class[][][]with[][][]complexity [90] Overfull \hbox (1.85179pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[ ][][][]Polyhedron[][][][]Grid[] Overfull \hbox (9.12473pt too wide) in paragraph at lines 313--314 [][]\OT1/ptm/b/n/10 with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]Constraints[][][][]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]fro m[][][][]Constraints[][][][]Product[] Overfull \hbox (27.82246pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraint[][][][]System()[] \OT1/pc r/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (33.37253pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Congruence[][][][]System()[] \OT1/pc r/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (2.81264pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][] Overfull \hbox (0.49269pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]C onstraints[][][][]Product[][][][]C[] Overfull \hbox (26.7724pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (25.09247pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 in t ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (32.32246pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] [91] Overfull \hbox (16.91315pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.16286pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (27.49298pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.85233pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (23.39287pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.78227pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (5.47299pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (5.57285pt too wide) in paragraph at lines 403--404 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (21.08315pt too wide) in paragraph at lines 409--410 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][ ][][]Product[][][][]C[][][][]Polyhedron[] [92] Overfull \hbox (19.42297pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][ ][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.84259pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Constraints[][][][]Product[] Overfull \hbox (9.18242pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Constraints[][][][]Product[] Overfull \hbox (15.74998pt too wide) in paragraph at lines 433--434 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (5.10138pt too wide) in paragraph at lines 439--440 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[][][][]Product[ ][][][]C[][][][]Polyhedron[] Overfull \hbox (3.73514pt too wide) in paragraph at lines 439--440 [][][]\OT1/ptm/b/n/10 Grid()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]strictly[][][]contains[][] [][]Constraints[][][][]Product[] Overfull \hbox (2.97153pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][][][]Prod uct[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.69514pt too wide) in paragraph at lines 445--446 [][][]\OT1/ptm/b/n/10 Grid()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]is[][][]disjoint[][][]from [][][][]Constraints[][][][]Product[][][][]C[] [93] Overfull \hbox (7.42003pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C[][][][] Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (17.62337pt too wide) in paragraph at lines 457--458 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][][]O[]K()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][ ][]Product[][][][]C[][][][]Polyhedron[][][][]Grid[] Overfull \hbox (43.0329pt too wide) in paragraph at lines 463--464 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Con straints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.58293pt too wide) in paragraph at lines 469--470 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Con straints[][][][]Product[][][][]C[][][] Overfull \hbox (46.92279pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.59282pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[] Overfull \hbox (15.10251pt too wide) in paragraph at lines 487--488 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] Overfull \hbox (20.65257pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] [94] Overfull \hbox (18.9924pt too wide) in paragraph at lines 499--500 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (24.54247pt too wide) in paragraph at lines 505--506 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (1.13237pt too wide) in paragraph at lines 511--512 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []Constraints[][][][]Product[] Overfull \hbox (7.54259pt too wide) in paragraph at lines 517--518 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Constraints[][][][]Product[] Overfull \hbox (1.40259pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][] Constraints[][][][]Product[][][][]C[] Overfull \hbox (1.6827pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Constraints[][][][]Product[] Overfull \hbox (2.6125pt too wide) in paragraph at lines 535--536 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Constraints[][][][]Product[][][] Overfull \hbox (6.58226pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/ pcr/m/n/8 int ppl[][][][]Constraints[] [95] Overfull \hbox (23.87296pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[ ][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.49197pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (14.38187pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.02313pt too wide) in paragraph at lines 565--566 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Const raints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (47.28302pt too wide) in paragraph at lines 571--572 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.30272pt too wide) in paragraph at lines 577--578 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (29.5626pt too wide) in paragraph at lines 583--584 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] [96] Overfull \hbox (26.94246pt too wide) in paragraph at lines 589--590 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (4.72232pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (23.78194pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (38.04182pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs() [] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (31.03197pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \O T1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.062pt too wide) in paragraph at lines 619--620 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] [97] Overfull \hbox (31.01239pt too wide) in paragraph at lines 625--626 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (25.91202pt too wide) in paragraph at lines 631--632 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pc r/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (26.97238pt too wide) in paragraph at lines 637--638 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] Overfull \hbox (16.16231pt too wide) in paragraph at lines 643--644 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (18.63242pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (13.61229pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1 /pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (22.2123pt too wide) in paragraph at lines 661--662 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2() [] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.1626pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Constraints[][][][]Product[] [98] Overfull \hbox (17.7627pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (7.33206pt too wide) in paragraph at lines 679--680 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m /n/8 int ppl[][][][]Constraints[] Overfull \hbox (0.60266pt too wide) in paragraph at lines 685--686 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][] Overfull \hbox (1.51312pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[][] [][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]pri nt[][][][]Constraints[][][][]Product[][][][]C[] Overfull \hbox (1.96307pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fp rint[][][][]Constraints[][][][]Product[] Overfull \hbox (12.32301pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]a sprint[][][][]Constraints[][][][]Product[] Overfull \hbox (27.48296pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.81302pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] [99]) (./interfaceppl__Generator__System__const__iterator__tag.tex Overfull \hbox (20.03731pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] const[][][]iterator[][][]from[][][][]Generator[][][][]System[][][]const[][][]it erator[][] ([][]ppl[][][][]Generator[] Overfull \hbox (28.62701pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]from[][][][]Generator[][][][]System[][][]const[][][ ]iterator[][] ([][]ppl[][][][]Generator[] Overfull \hbox (8.34723pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]const[][] []iterator[][][]dereference[][] ([][]ppl[][][]const[][][][]Generator[][][][]Sys tem[][][]const[][][]iterator[] Overfull \hbox (0.86711pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]const[][] []iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Generator[][][][ ]System[][][]const[][][]iterator[] ) (./interfaceppl__Generator__System__tag.tex [100] Overfull \hbox (18.41797pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] from[][][][]Generator[][] ([][]ppl[][][][]Generator[][][][]System[][][]t[][] $\ OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (7.88792pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Generator[][][][]System [][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs, [][]ppl[][][]const[] Overfull \hbox (5.21785pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]begin[][] ([][]ppl[][][]const[][][][]Generator[][][][]System[][][]t[][] gs, [][]ppl[][][ ][]Generator[][][][]System[][][]const[] [101]) (./interfaceppl__Generator__tag.tex [102]) (./interfaceppl__Grid__Generator__System__const__iterator__tag.tex Overfull \hbox (20.31735pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][][]Generator[][][][] System[][][]const[][][]iterator[][][]from[][][][]Grid[][][][]Generator[][][][]S ystem[][][]const[][][]iterator[][] ([][]ppl[] Overfull \hbox (2.36742pt too wide) in paragraph at lines 19--21 [][][]\OT1/ptm/bc/n/10 Grid[][][][]Generator[][][][]System[][][]const[][][]iter ator[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgit, [][]ppl[][][]const [][][][]Grid[][][][]Generator[][][][]System[][][]const[][][]iterator[] Overfull \hbox (1.91568pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Grid[][][][]Generator[][][ ][]System[][][]const[][][]iterator[][][]from[][][][]Grid[][][][]Generator[][][] []System[][][]const[][][]iterator[][] Overfull \hbox (10.18723pt too wide) in paragraph at lines 22--24 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Grid[][][][]Generator[][][][]System[][][]const [][][]iterator[][][]t[][] dst, [][]ppl[][][]const[][][][]Grid[][][][]Generator[ ][][][]System[][][]const[][][]iterator[] Overfull \hbox (20.85709pt too wide) in paragraph at lines 35--37 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Grid[][][][]Generator [][][][]System[][][]const[][][]iterator[] Overfull \hbox (12.24728pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Grid [][][][]Generator[][][][]System[][][]const[] [103]) (./interfaceppl__Grid__Generator__System__tag.tex Overfull \hbox (4.49792pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][][]Generator[][][][] System[][][]from[][][][]Grid[][][][]Generator[][][][]System[][] ([][]ppl[][][][ ]Grid[][][][]Generator[][][][]System[] Overfull \hbox (13.08763pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Grid[][][][]Generator[][][ ][]System[][][]from[][][][]Grid[][][][]Generator[][][][]System[][] ([][]ppl[][] [][]Grid[][][][]Generator[][][][]System[] Overfull \hbox (13.24803pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]begin[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][]System[][] []t[][] gs, [][]ppl[][][][]Grid[][][][]Generator[] Overfull \hbox (5.61804pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]end[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][]System[][][] t[][] gs, [][]ppl[][][][]Grid[][][][]Generator[] [104] Overfull \hbox (2.72562pt too wide) in paragraph at lines 73--75 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][] System[][][]t[][] x, F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stream) ) (./interfaceppl__Grid__Generator__tag.tex [105]) (./interfaceppl__Grid__tag.tex [106] Overfull \hbox (3.80247pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][ ][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Grid[][][]t[][] $ \OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron [] Overfull \hbox (6.9618pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][] []Generator[][][][]System[][] ([][]ppl[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Grid[][][][]Generator[][][ ][]System[] Overfull \hbox (3.21011pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]get[][][]minimized[][][]congrue nces[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][ ][]Congruence[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 p cs) Overfull \hbox (7.22137pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]get[][][]minimized[][][]grid[][ ][]generators[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]c onst[][][][]Grid[][][][]Generator[][][][]System[] Overfull \hbox (28.41115pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]maximize[][][]with[][][]point[] [] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[] Overfull \hbox (26.7511pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]minimize[][][]with[][][]point[] [] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[] [107] Overfull \hbox (24.14204pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]bounded[][][]affine[][][]image[ ][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] va r, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (7.17998pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]im age[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum Overfull \hbox (4.87045pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]im age[][][]with[][][]congruence[][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]dimension[][][]type[][] var, enum Overfull \hbox (1.3616pt too wide) in paragraph at lines 175--177 [][]\OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][]c onst[][][][]Coefficient[][][]t[][] d, [][]ppl[] Overfull \hbox (5.27174pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]pr eimage[][][]lhs[][][]rhs[][][]with[][][]congruence[][] ([][]ppl[][][][]Grid[][] []t[][] ph, [][]ppl[][][]const[][][][]Linear[] [108] Overfull \hbox (7.88818pt too wide) in paragraph at lines 193--195 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]fold[][][]space[][][]dimensions [][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] d s[]$ $[], size[][][]t n, [][]ppl[][][]dimension[] Overfull \hbox (9.77875pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]wrap[][][]assign[][] ([][]ppl[] [][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] ds[]$ $[], size[ ][][]t n, enum [][]ppl[][][]enum[][][][]Bounded[] Overfull \hbox (8.82231pt too wide) in paragraph at lines 225--227 [][][]\OT1/ptm/bc/n/10 Bounded[][][][]Integer[][][][]Type[][][][]Overflow[][] o , const [][]ppl[][][]const[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cms y/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, un-signed complexity[] Overfull \hbox (4.96187pt too wide) in paragraph at lines 257--259 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] [109] Overfull \hbox (2.7419pt too wide) in paragraph at lines 259--261 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] Overfull \hbox (4.41154pt too wide) in paragraph at lines 261--263 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] pset[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] Overfull \hbox (2.19157pt too wide) in paragraph at lines 263--265 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] pset[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] [110] Overfull \hbox (8.37189pt too wide) in paragraph at lines 333--334 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class Overfull \hbox (9.49188pt too wide) in paragraph at lines 339--340 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class Overfull \hbox (36.272pt too wide) in paragraph at lines 345--346 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity Overfull \hbox (18.41342pt too wide) in paragraph at lines 351--352 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Pol yhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Gr id[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (33.32191pt too wide) in paragraph at lines 363--364 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][]Bo x[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity [111] Overfull \hbox (2.50291pt too wide) in paragraph at lines 369--370 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (0.7429pt too wide) in paragraph at lines 375--376 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (19.06262pt too wide) in paragraph at lines 381--382 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Grid[][][]from[][][][]Octagonal[] Overfull \hbox (20.18262pt too wide) in paragraph at lines 387--388 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Grid[][][]from[][][][]Octagonal[] [112] [113] [114] [115] [116] [117] [118] Overfull \hbox (3.7116pt too wide) in paragraph at lines 759--760 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalized[][][]a ffine[][][]preimage[][][]lhs[][][]rhs Overfull \hbox (13.20297pt too wide) in paragraph at lines 765--766 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalized[] [][]affine[][][]image[][][]with[] Overfull \hbox (19.78285pt too wide) in paragraph at lines 771--772 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalize d[][][]affine[][][]preimage[] Overfull \hbox (0.44244pt too wide) in paragraph at lines 777--778 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]lhs[][][]rhs[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[ ][][]generalized[][][]affine[][][] Overfull \hbox (11.82233pt too wide) in paragraph at lines 783--784 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Gr id[][][]generalized[][][]affine[] [119] [120] Overfull \hbox (17.18285pt too wide) in paragraph at lines 855--856 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[][ ][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]congruence[][][ ]widening[][][]assign[][][]with[] Overfull \hbox (5.15298pt too wide) in paragraph at lines 861--862 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[][] []with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generator[][][]w idening[][][]assign[][][]with[] [121] Overfull \hbox (10.54222pt too wide) in paragraph at lines 891--892 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][ ][]limited[][][]congruence[] Overfull \hbox (1.39236pt too wide) in paragraph at lines 897--898 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][] []limited[][][]generator[][][] Overfull \hbox (22.05283pt too wide) in paragraph at lines 903--904 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]limited[][][]congru ence[][][]extrapolation[] Overfull \hbox (10.02296pt too wide) in paragraph at lines 909--910 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]limited[][][]generat or[][][]extrapolation[] [122] Overfull \hbox (7.5717pt too wide) in paragraph at lines 933--934 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Grid[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]recyc le[][][][]Grid[][][][]Generator[][][][]System ( [123] [124]) (./interfaceppl__Linear__Expression__tag.tex Overfull \hbox (22.34773pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Linear[][][][]Expression[][][ ]from[][][][]Constraint[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ple, [][]ppl[][][]const[][][][]Constrai nt[] Overfull \hbox (18.96815pt too wide) in paragraph at lines 28--30 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Linear[][][][]Expression[][][ ]from[][][][]Generator[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ple, [][]ppl[][][]const[][][][]Generator [] [125] Overfull \hbox (15.40788pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]inhomoge neous[][][]term[][] ([][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[ ][] le, [][]ppl[][][][]Coefficient[] Overfull \hbox (2.65662pt too wide) in paragraph at lines 69--71 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]add[][][ ]to[][][]coefficient[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] le , [][]ppl[][][]dimension[][][]type[][] var, Overfull \hbox (22.89804pt too wide) in paragraph at lines 72--74 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]add[][][ ]to[][][]inhomogeneous[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (25.43753pt too wide) in paragraph at lines 81--83 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]multiply[][][][]Linear[][][][]Expression [][][]by[][][][]Coefficient[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t [][] le, [][]ppl[][][]const[][][][]Coefficient[] ) (./interfaceppl__MIP__Problem__tag.tex [126] Overfull \hbox (14.92802pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]M[]I[]P[][][][]Problem[][] ([ ][]ppl[][][][]M[]I[]P[][][][]Problem[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/ bc/n/10 pmip, [][]ppl[][][]dimension[][][]type[][] d, [][]ppl[][][]const[][][][ ]Constraint[] Overfull \hbox (20.14798pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]M[]I[]P[][][][]Problem[][][]f rom[][][][]M[]I[]P[][][][]Problem[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem[][ ][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pmip, [][]ppl[][][]const[][][][ ]M[]I[]P[][][][]Problem[] Overfull \hbox (14.84767pt too wide) in paragraph at lines 56--58 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]M[]I[]P[][][][]Problem[][] []from[][][][]M[]I[]P[][][][]Problem[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem [][][]t[][] dst, [][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[] Overfull \hbox (1.62802pt too wide) in paragraph at lines 69--71 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]number[][] []of[][][]integer[][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]M[] I[]P[][][][]Problem[][][]t[][] mip, [][]ppl[] Overfull \hbox (0.81778pt too wide) in paragraph at lines 72--74 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]integer[][ ][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[ ][][]t[][] mip, [][]ppl[][][]dimension[] [127] Overfull \hbox (28.59772pt too wide) in paragraph at lines 81--83 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]objective[ ][][]function[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[][][]t[][] mip, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (11.228pt too wide) in paragraph at lines 97--99 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]s pace[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]M[]I[]P[][][][]Pro blem[][][]t[][] mip, [][]ppl[][][]dimension[] Overfull \hbox (5.5279pt too wide) in paragraph at lines 100--102 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]t o[][][]integer[][][]space[][][]dimensions[][] ([][]ppl[][][][]M[]I[]P[][][][]Pr oblem[][][]t[][] mip, [][]ppl[][][]dimension[] Overfull \hbox (18.59772pt too wide) in paragraph at lines 109--111 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]set[][][]o bjective[][][]function[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem[][][]t[][] mi p, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (28.95757pt too wide) in paragraph at lines 124--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][ ]objective[][][]function[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[ ][][]t[][] mip, [][]ppl[][][]const[][][][]Generator[] [128] Underfull \hbox (badness 10000) detected at line 188 [][][] Overfull \hbox (2.87207pt too wide) in paragraph at lines 195--196 []\OT1/ptm/b/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][]objecti ve[][][]function()[] \OT1/pcr/m/n/8 int ppl[][][][]M[]I[]P[][][][]Problem[][][] evaluate[][][]objective[][][]function [129]) (./interfaceppl__Octagonal__Shape__mpq__class__tag.tex Overfull \hbox (1.09158pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.79044pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (4.43195pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.57019pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, [130] Overfull \hbox (2.1917pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.75175pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (15.40186pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.80197pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity [][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (13.18161pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (16.7715pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (17.33156pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (8.3313pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.64151pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.47102pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.78123pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.00133pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]get[][][]constraints[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.41159pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpq[] Overfull \hbox (3.98143pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]contains[][][]integer[][][]point[][] ([][]ppl[][][]const[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] [131] Overfull \hbox (7.47116pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][][]const[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.2513pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 97--99 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (7.02023pt too wide) in paragraph at lines 99--101 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (24.68086pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]strictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class [][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (23.291pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]is[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (13.56143pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]equals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][ ][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.33154pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (13.3314pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (1.11198pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] x, [][]ppl[] [132] Overfull \hbox (4.79182pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.66122pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.96138pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]constrains[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.30138pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]unconstrain[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.19127pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (21.97142pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][ ][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (14.74185pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.75192pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 dimension[][][]type[][] var, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Ex pression[][][]t[][] ub, [][]ppl[][][]const[] Overfull \hbox (2.60994pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]t[][] ph, Overfull \hbox (3.58142pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 159--161 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (11.6315pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][] [][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.23186pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]O ctagonal[][][][]Shape[][][]mpq[] Overfull \hbox (6.3417pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (1.33191pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpq[] Overfull \hbox (2.17026pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] ph, Overfull \hbox (11.47173pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[] [133] Overfull \hbox (6.07129pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.44176pt too wide) in paragraph at lines 187--189 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][][]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][] ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.37144pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (24.74109pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][] []tokens[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (9.19116pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]toke ns[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (1.79141pt too wide) in paragraph at lines 199--201 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][] ([][]ppl[ ][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.62138pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.29158pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]p pl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.11128pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (20.00146pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]wrap[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][] []class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (1.22195pt too wide) in paragraph at lines 215--217 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.34146pt too wide) in paragraph at lines 219--221 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]m pq[][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.05pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]t[][] ph, [134] Overfull \hbox (0.54193pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][ ]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.52112pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Oc tagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.30115pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Oc tagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.14194pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.92197pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.59161pt too wide) in paragraph at lines 245--247 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.37164pt too wide) in paragraph at lines 247--249 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.06079pt too wide) in paragraph at lines 251--253 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]fprint[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][] (F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stre am, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (2.50148pt too wide) in paragraph at lines 253--255 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Sha pe[][][]mpq[][][]class[][] (char $\OMS/cmsy/m/n/10 ^^C$$^^C$\OT1/ptm/bc/n/10 st rp, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.58278pt too wide) in paragraph at lines 275--276 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][] Overfull \hbox (13.64336pt too wide) in paragraph at lines 281--282 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpq[][][]class[] [135] Overfull \hbox (1.20328pt too wide) in paragraph at lines 287--288 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (9.49188pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]from[][][][]Grid Overfull \hbox (10.69327pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (1.61278pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (2.73277pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (1.85248pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (2.97247pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (15.35258pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] [136] Overfull \hbox (29.79253pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (2.9026pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (12.4025pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.40201pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (2.522pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (11.24171pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (12.36171pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] [137] Overfull \hbox (7.13284pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (12.6829pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.45291pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new [][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (25.94154pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s pace[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]space[][][]dimension Overfull \hbox (31.3016pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpq[][][]class[][][]affine[][][]dimension Overfull \hbox (37.7628pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[][][]relation[] Overfull \hbox (36.08287pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]relation[] Overfull \hbox (2.03284pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] [138] Overfull \hbox (18.70169pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]get[][][]constraints Overfull \hbox (24.25175pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]get[][][]congruences Overfull \hbox (3.3225pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (8.87256pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (27.39282pt too wide) in paragraph at lines 467--468 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]contains[] Overfull \hbox (0.92271pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]is[][][] [139] Overfull \hbox (1.49265pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t opological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.86339pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]bounds[] Overfull \hbox (6.96324pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]bounds[] Overfull \hbox (21.833pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m aximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[][][]maximize[] Overfull \hbox (20.17282pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m inimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[][][]minimize[] [140] Overfull \hbox (6.39226pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (13.10172pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s trictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT 1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (10.97186pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (0.9423pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e quals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (13.36177pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class[][][]add[][][]constraint Overfull \hbox (18.91183pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class[][][]add[][][]congruence [141] Overfull \hbox (22.05167pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]add[][][]constraints Overfull \hbox (27.60173pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]add[][][]congruences Overfull \hbox (16.4929pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (22.04297pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (20.3828pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (25.93286pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (31.32278pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i ntersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][][]intersection[] Overfull \hbox (4.13298pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]upper[] [142] Overfull \hbox (14.31299pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d ifference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[ ][][]mpq[][][]class[][][]difference[] Overfull \hbox (27.0731pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c oncatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape [][][]mpq[][][]class[][][]concatenate[] Overfull \hbox (23.20291pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t ime[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]time[][][]elapse[] Overfull \hbox (12.77266pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][] []Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (16.39233pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s implify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]O ctagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (16.68237pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (20.57227pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] [143] Overfull \hbox (3.352pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][][]affine[][][]image ( Overfull \hbox (22.4119pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]affine[][][]preimage Overfull \hbox (21.49312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpq[][][]class[][][]bounded[] Overfull \hbox (2.15298pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][] Overfull \hbox (52.33287pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (10.91272pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.09232pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] [144] Overfull \hbox (10.34235pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (12.37238pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (0.72276pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.2224pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (28.36278pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xpand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]expand[] Overfull \hbox (7.9527pt too wide) in paragraph at lines 749--750 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]f old[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[][][]fold[] [145] Overfull \hbox (5.6228pt too wide) in paragraph at lines 755--756 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m ap[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpq[][][]class[][][]map[] Overfull \hbox (19.80269pt too wide) in paragraph at lines 761--762 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (1.52267pt too wide) in paragraph at lines 767--768 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (2.87297pt too wide) in paragraph at lines 773--774 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xternal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (14.35309pt too wide) in paragraph at lines 779--780 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t otal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[][][]total[] Overfull \hbox (13.52211pt too wide) in paragraph at lines 785--786 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (3.9127pt too wide) in paragraph at lines 791--792 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (13.52246pt too wide) in paragraph at lines 797--798 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[] [146] Overfull \hbox (1.03305pt too wide) in paragraph at lines 803--804 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]widening[] Overfull \hbox (38.56151pt too wide) in paragraph at lines 809--810 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens ()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (22.44177pt too wide) in paragraph at lines 815--816 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \ OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (11.67209pt too wide) in paragraph at lines 821--822 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (12.83237pt too wide) in paragraph at lines 827--828 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (15.72232pt too wide) in paragraph at lines 833--834 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.11292pt too wide) in paragraph at lines 839--840 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] [147] Overfull \hbox (1.29317pt too wide) in paragraph at lines 845--846 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][][]C[] Overfull \hbox (26.29156pt too wide) in paragraph at lines 851--852 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l inear[][][]partition()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpq[][][]class[][][]linear[][][]partition Overfull \hbox (1.61258pt too wide) in paragraph at lines 863--864 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (4.28264pt too wide) in paragraph at lines 869--870 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (14.33266pt too wide) in paragraph at lines 875--876 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][] new[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (26.27225pt too wide) in paragraph at lines 881--882 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][]assign[][][][]Octagonal[] [148] Overfull \hbox (14.31274pt too wide) in paragraph at lines 887--888 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]add[] Overfull \hbox (2.5828pt too wide) in paragraph at lines 893--894 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.95296pt too wide) in paragraph at lines 899--900 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]M[]S[][][][]Octagonal[][][] Overfull \hbox (23.28305pt too wide) in paragraph at lines 905--906 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (36.81273pt too wide) in paragraph at lines 917--918 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (42.73245pt too wide) in paragraph at lines 923--924 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (41.06253pt too wide) in paragraph at lines 929--930 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (6.67296pt too wide) in paragraph at lines 935--936 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]M[]S[][][][]Octagonal[] [149] Overfull \hbox (5.00304pt too wide) in paragraph at lines 941--942 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]P[]R[][][][]Octagonal[] Overfull \hbox (5.80263pt too wide) in paragraph at lines 947--948 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (4.1327pt too wide) in paragraph at lines 953--954 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (5.25243pt too wide) in paragraph at lines 959--960 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] Overfull \hbox (3.5825pt too wide) in paragraph at lines 965--966 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] [150]) (./interfaceppl__Octagonal__Shape__mpz__class__tag.tex Overfull \hbox (10.67032pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (3.31183pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.45007pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (1.63164pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.1917pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (14.8418pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.24191pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity [][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (12.62155pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (16.21144pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (16.7715pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] [151] Overfull \hbox (7.21118pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (13.8615pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.5214pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.3509pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.66112pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.88121pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]constraints[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.53152pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]congruences[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.29147pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpz[] Overfull \hbox (2.86131pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]contains[][][]integer[][][]point[][] ([][]ppl[][][]const[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (6.35104pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][][]const[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 97--99 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (7.02023pt too wide) in paragraph at lines 99--101 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, [152] Overfull \hbox (23.56075pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]strictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class [][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (22.17088pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]is[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (12.44131pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]equals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][ ][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.21143pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (12.21129pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (16.10118pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]refine[][][]with[][][]constraints[][] ([][]ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.6717pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.5411pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.84126pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]constrains[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.18126pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]unconstrain[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.07115pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (20.8513pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][ ][]class[][][]t[][] ph, [][]ppl[][][]dimension[] [153] Overfull \hbox (13.62173pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.75192pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 dimension[][][]type[][] var, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Ex pression[][][]t[][] ub, [][]ppl[][][]const[] Overfull \hbox (2.61021pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (1.48982pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (2.4613pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 159--161 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (10.51138pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][] [][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (4.11174pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]O ctagonal[][][][]Shape[][][]mpz[] Overfull \hbox (5.22159pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (0.21179pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[] Overfull \hbox (1.05014pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (16.10132pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (10.35161pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.95117pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.8817pt too wide) in paragraph at lines 187--189 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][][]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][] ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.25133pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.55139pt too wide) in paragraph at lines 193--195 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]widening[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz [][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (24.18103pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][] []tokens[][] ([][]ppl[][][][]Octagonal[] [154] Overfull \hbox (8.6311pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]toke ns[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (1.23135pt too wide) in paragraph at lines 199--201 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][] ([][]ppl[ ][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.50127pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (4.73152pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]p pl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.99117pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (18.88135pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]wrap[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][] []class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (0.10184pt too wide) in paragraph at lines 215--217 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (10.22134pt too wide) in paragraph at lines 219--221 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]m pz[][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.401pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Oc tagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.18103pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Oc tagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.58188pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] [155] Overfull \hbox (6.36191pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.03156pt too wide) in paragraph at lines 245--247 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.81158pt too wide) in paragraph at lines 247--249 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.94067pt too wide) in paragraph at lines 251--253 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]fprint[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][] (F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stre am, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.38136pt too wide) in paragraph at lines 253--255 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][] (char $\OMS/cmsy/m/n/10 ^^C$$^^C$\OT1/ptm/bc/n/10 st rp, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (25.67891pt too wide) in paragraph at lines 255--257 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]t[][] x, F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stream) Overfull \hbox (23.4628pt too wide) in paragraph at lines 275--276 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.52336pt too wide) in paragraph at lines 281--282 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.37189pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]from[][][][]Grid [156] Overfull \hbox (9.57327pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.49278pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (1.61278pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (0.73248pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.85248pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (14.23259pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (28.67253pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.78261pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Octagonal[][][][]Shape[] [157] Overfull \hbox (11.2825pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (0.28201pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (1.40201pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (10.12172pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (11.24171pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (6.01285pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (11.56291pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpz[] [158] Overfull \hbox (4.33292pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new [][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (24.82155pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s pace[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]space[][][]dimension Overfull \hbox (30.18161pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpz[][][]class[][][]affine[][][]dimension Overfull \hbox (36.6428pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[][][]relation[] Overfull \hbox (34.96288pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]relation[] Overfull \hbox (0.91284pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (17.5817pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]get[][][]constraints Overfull \hbox (23.13176pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]get[][][]congruences Overfull \hbox (2.2025pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] [159] Overfull \hbox (7.75256pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (26.27283pt too wide) in paragraph at lines 467--468 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]contains[] Overfull \hbox (62.20276pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]is[][][]topologically[] Overfull \hbox (0.37265pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t opological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.7434pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]bounds[] Overfull \hbox (5.84325pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]bounds[] [160] Overfull \hbox (20.713pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m aximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[][][]maximize[] Overfull \hbox (19.05283pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m inimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[][][]minimize[] Overfull \hbox (4.15227pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] [161] Overfull \hbox (10.86172pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s trictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT 1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (8.73187pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (13.10233pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e quals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (12.24178pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class[][][]add[][][]constraint Overfull \hbox (17.79184pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class[][][]add[][][]congruence Overfull \hbox (20.93167pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]add[][][]constraints Overfull \hbox (26.48174pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]add[][][]congruences Overfull \hbox (15.37291pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]refine[] [162] Overfull \hbox (20.92297pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (19.2628pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (24.81287pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (30.20279pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i ntersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][][]intersection[] Overfull \hbox (3.01299pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]upper[] Overfull \hbox (13.193pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d ifference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[ ][][]mpz[][][]class[][][]difference[] Overfull \hbox (25.95311pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c oncatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape [][][]mpz[][][]class[][][]concatenate[] Overfull \hbox (22.08292pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t ime[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]time[][][]elapse[] [163] Overfull \hbox (11.65266pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.27234pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s implify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]O ctagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.56238pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (19.45227pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.23201pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][][]affine[][][]image ( Overfull \hbox (21.2919pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]affine[][][]preimage Overfull \hbox (20.37312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpz[][][]class[][][]bounded[] [164] Overfull \hbox (1.03299pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][] Overfull \hbox (51.21288pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (9.79272pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.97232pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (1.8322pt too wide) in paragraph at lines 713--714 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (9.22235pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Octagonal[][][][]Shape[][][]mpz[] [165] Overfull \hbox (11.25238pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (2.48277pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][] Overfull \hbox (4.1024pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (27.24278pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xpand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]expand[] Overfull \hbox (6.8327pt too wide) in paragraph at lines 749--750 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]f old[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[][][]fold[] Overfull \hbox (4.5028pt too wide) in paragraph at lines 755--756 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m ap[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpz[][][]class[][][]map[] Overfull \hbox (18.6827pt too wide) in paragraph at lines 761--762 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.40268pt too wide) in paragraph at lines 767--768 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][]mpz[] [166] Overfull \hbox (1.75298pt too wide) in paragraph at lines 773--774 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xternal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (13.2331pt too wide) in paragraph at lines 779--780 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t otal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[][][]total[] Overfull \hbox (12.40211pt too wide) in paragraph at lines 785--786 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.79271pt too wide) in paragraph at lines 791--792 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.40247pt too wide) in paragraph at lines 797--798 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.79306pt too wide) in paragraph at lines 803--804 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]widening[][][] Overfull \hbox (37.44151pt too wide) in paragraph at lines 809--810 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens ()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [167] Overfull \hbox (21.32178pt too wide) in paragraph at lines 815--816 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \ OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (10.5521pt too wide) in paragraph at lines 821--822 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (11.71237pt too wide) in paragraph at lines 827--828 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (14.60233pt too wide) in paragraph at lines 833--834 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.99292pt too wide) in paragraph at lines 839--840 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.17317pt too wide) in paragraph at lines 845--846 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][][]C[] Overfull \hbox (25.17157pt too wide) in paragraph at lines 851--852 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l inear[][][]partition()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpz[][][]class[][][]linear[][][]partition [168] Overfull \hbox (0.49258pt too wide) in paragraph at lines 863--864 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (3.16264pt too wide) in paragraph at lines 869--870 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (13.21266pt too wide) in paragraph at lines 875--876 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][] new[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (24.03226pt too wide) in paragraph at lines 881--882 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][]assign[][][][]Octagonal[] Overfull \hbox (13.19275pt too wide) in paragraph at lines 887--888 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]add[] Overfull \hbox (1.4628pt too wide) in paragraph at lines 893--894 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[] Overfull \hbox (23.83298pt too wide) in paragraph at lines 899--900 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (22.16306pt too wide) in paragraph at lines 905--906 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]P[]R[][][][]Octagonal[][][][]Shape[] [169] Overfull \hbox (37.36266pt too wide) in paragraph at lines 911--912 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (35.69273pt too wide) in paragraph at lines 917--918 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (41.61246pt too wide) in paragraph at lines 923--924 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (39.94254pt too wide) in paragraph at lines 929--930 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (5.55296pt too wide) in paragraph at lines 935--936 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]M[]S[][][][]Octagonal[] Overfull \hbox (3.88304pt too wide) in paragraph at lines 941--942 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]P[]R[][][][]Octagonal[] Overfull \hbox (4.68263pt too wide) in paragraph at lines 947--948 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (3.01271pt too wide) in paragraph at lines 953--954 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] [170] Overfull \hbox (4.13243pt too wide) in paragraph at lines 959--960 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] Overfull \hbox (2.46251pt too wide) in paragraph at lines 965--966 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] ) (./interfaceppl__PIP__Decision__Node__tag.tex [171]) (./interfaceppl__PIP__Problem__tag.tex [172] Overfull \hbox (4.04826pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]P[]I[]P[][][][]Problem[][][]f rom[][][][]P[]I[]P[][][][]Problem[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem[][ ][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ppip, [][]ppl[][][]const[][][][ ]P[]I[]P[][][][]Problem[] Overfull \hbox (1.52785pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]P[]I[]P[][][][]Problem[][] []from[][][][]P[]I[]P[][][][]Problem[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem [][][]t[][] dst, [][]ppl[][][]const[][][][]P[]I[]P[][][][]Problem[] Overfull \hbox (5.47821pt too wide) in paragraph at lines 56--58 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]P[]I[]P[][][][]Problem[][][]f rom[][][]constraints[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem[][][]t[][] $\OM S/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ppip, [][]ppl[][][]dimension[][][]type[][] d , [][]ppl[] Overfull \hbox (4.99655pt too wide) in paragraph at lines 56--58 [][][]\OT1/ptm/bc/n/10 Constraint[][][][]System[][][]const[][][]iterator[][][]t [][] first, [][]ppl[][][][]Constraint[][][][]System[][][]const[][][]iterator[][ ][]t[][] last, size[][][]t n, [][]ppl[] Overfull \hbox (1.6448pt too wide) in paragraph at lines 58--58 []\OT1/ptm/m/it/9 Builds a P[]IP prob-lem hav-ing space di-men-sion \OT1/pcr/m/ sl/9 d \OT1/ptm/m/it/9 from the se-quence of con-straints in the range $\OT1/cm r/m/n/9 [[]\OML/cmm/m/it/9 ; []\OT1/cmr/m/n/9 )$\OT1/ptm/m/it/9 ; Overfull \hbox (4.54796pt too wide) in paragraph at lines 68--70 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]number[][] []of[][][]parameter[][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]P []I[]P[][][][]Problem[][][]t[][] pip, [][]ppl[] Overfull \hbox (3.73772pt too wide) in paragraph at lines 71--73 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]parameter[ ][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Proble m[][][]t[][] pip, [][]ppl[][][]dimension[] Overfull \hbox (6.23784pt too wide) in paragraph at lines 74--76 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]get[][][]b ig[][][]parameter[][][]dimension[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][] Problem[][][]t[][] pip, [][]ppl[][][]dimension[] Overfull \hbox (7.51797pt too wide) in paragraph at lines 80--82 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]constraint [][][]at[][][]index[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Problem[][][] t[][] pip, [][]ppl[][][]dimension[][][]type[][] i, [][]ppl[] [173] Overfull \hbox (8.44783pt too wide) in paragraph at lines 101--103 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]t o[][][]parameter[][][]space[][][]dimensions[][] ([][]ppl[][][][]P[]I[]P[][][][] Problem[][][]t[][] pip, [][]ppl[][][]dimension[] [174] Overfull \hbox (4.83315pt too wide) in paragraph at lines 180--181 []\OT1/ptm/b/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]d imensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]P[]I[]P[][][][] Problem[][][]add[][][]space[][][]dimensions[] Underfull \hbox (badness 10000) detected at line 205 [][][] ) (./interfaceppl__PIP__Solution__Node__tag.tex Overfull \hbox (28.95125pt too wide) in paragraph at lines 15--16 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][] get[][][]parametric[][][]values[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]S olution[][][][]Node[][][]t[][] pip[][][]sol, [][]ppl[][][]dimension[] [175] Overfull \hbox (0.65196pt too wide) in paragraph at lines 48--49 []\OT1/ptm/b/n/10 ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][]get[][][ ]parametric[][][]values()[] \OT1/pcr/m/n/8 int ppl[][][][]P[]I[]P[][][][]Soluti on[][][][]Node[][][]get[][][]parametric[][][]values Underfull \hbox (badness 10000) detected at line 65 [][][] ) (./interfaceppl__PIP__Tree__Node__tag.tex [176] Overfull \hbox (0.62167pt too wide) in paragraph at lines 18--20 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]a s[][][]decision[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[ ][][]t[][] spip[][][]tree, [][]ppl[][][]const[][][][]P[]I[]P[][][][]Decision[] Overfull \hbox (17.25174pt too wide) in paragraph at lines 30--32 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]b egin[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]t[][] pip[][][]tree, [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[] Overfull \hbox (9.62175pt too wide) in paragraph at lines 33--35 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]e nd[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]t[][] pi p[][][]tree, [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[] ) (./interfaceppl__Pointset__Powerset__C__Polyhedron__const__iterator__tag.tex [177] Overfull \hbox (12.70763pt too wide) in paragraph at lines 16--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]const[][][]iterator[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.57777pt too wide) in paragraph at lines 18--19 \OT1/ptm/bc/n/10 Powerset[][][][]C[][][][]Polyhedron[][][]const[][][]iterator[] [][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pit, [][]ppl[][][]const[][][][ ]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[][][]const[] Overfull \hbox (35.44739pt too wide) in paragraph at lines 22--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]end[][] ([][]ppl[][][]const[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.6573pt too wide) in paragraph at lines 30--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]const[][ ][][]Pointset[][][][]Powerset[] Overfull \hbox (36.28717pt too wide) in paragraph at lines 32--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (37.94722pt too wide) in paragraph at lines 34--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.17719pt too wide) in paragraph at lines 36--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]cons t[][][][]Pointset[][][][]Powerset[] Overfull \hbox (31.45328pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][ ]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.3125pt too wide) in paragraph at lines 59--60 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator[][][]from[][][]const[][][]iterator()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] [178] Overfull \hbox (20.29312pt too wide) in paragraph at lines 69--70 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (12.51323pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.74301pt too wide) in paragraph at lines 89--90 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[ ][][][]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (46.56291pt too wide) in paragraph at lines 99--100 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 105 [][][] Overfull \hbox (40.09293pt too wide) in paragraph at lines 112--113 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (41.75298pt too wide) in paragraph at lines 122--123 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (38.88287pt too wide) in paragraph at lines 132--133 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [179]) (./interfaceppl__Pointset__Powerset__C__Polyhedron__iterator__tag.tex Overfull \hbox (20.47737pt too wide) in paragraph at lines 16--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][][]Pointset[][][][]Powerset[ ][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (20.17732pt too wide) in paragraph at lines 24--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.57744pt too wide) in paragraph at lines 32--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.23749pt too wide) in paragraph at lines 34--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.44711pt too wide) in paragraph at lines 36--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [180] Overfull \hbox (5.63354pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.95306pt too wide) in paragraph at lines 59--60 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator[][][]from[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][ ][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (35.75342pt too wide) in paragraph at lines 69--70 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (27.97353pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (27.80331pt too wide) in paragraph at lines 89--90 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.74318pt too wide) in paragraph at lines 99--100 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 105 [][][] Underfull \hbox (badness 10000) detected at line 108 [][][] Overfull \hbox (14.2732pt too wide) in paragraph at lines 115--116 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] [181] Overfull \hbox (15.93324pt too wide) in paragraph at lines 125--126 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.06314pt too wide) in paragraph at lines 135--136 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] ) (./interfaceppl__Pointset__Powerset__C__Polyhedron__tag.tex Overfull \hbox (38.41113pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][]space[][][]dimension[][] ([][]ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.16135pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (27.31155pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.16983pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron[][][]with[][][]complexity[][] Overfull \hbox (20.07114pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]space[][][]dimension[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.3812pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]dimension[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] [182] Overfull \hbox (0.48979pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[][][]t[][] ph) Overfull \hbox (33.96088pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]topological[][][]closure[][][]assign[][] ([][]ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.70169pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounds[][][]from[][][]above[][] ([][]ppl[][][]const[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (32.31142pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounds[][][]from[][][]below[][] ([][]ppl[][][]const[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.85016pt too wide) in paragraph at lines 61--63 \OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] [][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][] Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 p optimum) Overfull \hbox (2.16966pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]minimize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Powerse t[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (37.57085pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 65--67 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (35.9108pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 67--69 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (21.75092pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][] ([][]ppl[][][]const[][][][]Pointset[] Overfull \hbox (15.91096pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (13.97102pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][] ([][]ppl[][][]const[][][][]Pointset[] Overfull \hbox (1.04984pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]constraints[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (15.07112pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (21.72144pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]congruence[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.96101pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]constraints[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] [183] Overfull \hbox (25.61133pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]congruences[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.14104pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]intersection[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.8517pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.68123pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]concatenate[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.85103pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.01141pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]constrains[][] ([][]ppl[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]t[][] ph, [][]ppl[] Overfull \hbox (14.02145pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][][][]Powerset[ ][][][]C[][][][]Polyhedron[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.00993pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (16.48157pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.25146pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.13107pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 123--125 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (40.90097pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Point set[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 125--127 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (12.01096pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([] []ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (5.61131pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl [][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.72116pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]p pl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (32.54123pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.71136pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][ ][]Pointset[][][][]Powerset[] [184] Overfull \hbox (27.69139pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.96115pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.07114pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]map[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.85179pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]wideni ng[][][]assign[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (8.96167pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.44122pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign[ ][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.9914pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign[][] ([][] ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.42798pt too wide) in paragraph at lines 174--176 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]omega[][][]reduce[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (16.6074pt too wide) in paragraph at lines 177--178 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]size[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][ ][][]C[][][][]Polyhedron[][][]t[][] ps, size[] Overfull \hbox (23.49762pt too wide) in paragraph at lines 179--180 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (23.24736pt too wide) in paragraph at lines 181--182 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (15.89742pt too wide) in paragraph at lines 185--186 \OT1/ptm/bc/n/10 t[][] ps, [][]ppl[][][]const[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]t[][] cit, [][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] [185] Overfull \hbox (3.23778pt too wide) in paragraph at lines 189--190 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]pairwise[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 214 [][][] Overfull \hbox (25.52202pt too wide) in paragraph at lines 221--222 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (25.74188pt too wide) in paragraph at lines 231--232 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (6.22339pt too wide) in paragraph at lines 241--242 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]add[] [186] Overfull \hbox (15.2834pt too wide) in paragraph at lines 251--252 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[][][]drop[] Overfull \hbox (19.1733pt too wide) in paragraph at lines 261--262 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjuncts()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][]drop[] Overfull \hbox (3.18323pt too wide) in paragraph at lines 271--272 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]pairwise[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.6629pt too wide) in paragraph at lines 287--288 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (37.45274pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (1.60347pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]Pointset[][][][]Powerset[][][] [187] Overfull \hbox (1.06046pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity()[] Overfull \hbox (3.57407pt too wide) in paragraph at lines 305--306 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity Overfull \hbox (30.19272pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (19.09297pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (24.64304pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (5.60315pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (6.16321pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.12292pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (38.443pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (45.67299pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [188] Overfull \hbox (2.08215pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerse t[][][][]C[][][][]Polyhedron[][][]is[][][]empty Overfull \hbox (25.73187pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]C[][][][]Polyhedron[][][]is[][][]universe Overfull \hbox (22.262pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]is[][][]bounded Overfull \hbox (29.75294pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.20285pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.96188pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]C[][][][]Polyhedron[][][]is[][][]discrete Overfull \hbox (45.1328pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (21.72368pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]omega[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]omega[] Overfull \hbox (18.82352pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.92337pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] [189] Overfull \hbox (8.17215pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron[][][]maximize Overfull \hbox (6.51198pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron[][][]minimize Overfull \hbox (24.19312pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.53294pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.99251pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (6.30196pt too wide) in paragraph at lines 449--450 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] [190] Overfull \hbox (4.1721pt too wide) in paragraph at lines 455--456 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (5.66255pt too wide) in paragraph at lines 461--462 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron()[] \ OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (0.70338pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][] Overfull \hbox (3.37344pt too wide) in paragraph at lines 479--480 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.71327pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.26334pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.45303pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (34.0031pt too wide) in paragraph at lines 503--504 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [191] Overfull \hbox (32.34293pt too wide) in paragraph at lines 509--510 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (37.89299pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (14.4829pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.89311pt too wide) in paragraph at lines 527--528 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.0731pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.03322pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.08302pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.73277pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][] [192] Overfull \hbox (1.47244pt too wide) in paragraph at lines 557--558 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]simplify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.56197pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]constrains Overfull \hbox (1.76248pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[] Overfull \hbox (5.65237pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[] Overfull \hbox (19.49364pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]affine[] Overfull \hbox (2.0735pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.65324pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] [193] Overfull \hbox (42.91313pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.29298pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.67284pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (15.05244pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (29.31233pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/ n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.30247pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (24.3325pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] [194] Overfull \hbox (44.36292pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (17.18253pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (40.3229pt too wide) in paragraph at lines 653--654 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.51283pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Point set[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.98294pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.8828pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (13.4828pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/ n/8 int ppl[][][][]Pointset[][][][]Powerset[] [195] Overfull \hbox (46.51312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.11322pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.15227pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][] assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (22.31267pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign()[] \OT1/pc r/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.85257pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign()[] \OT1 /pcr/m/n/8 int ppl[][][][]Pointset[][][] Overfull \hbox (18.69278pt too wide) in paragraph at lines 713--714 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (7.80214pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]print[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron ( Overfull \hbox (6.33209pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fprint[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron Overfull \hbox (16.69203pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]asprint[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron [196] Overfull \hbox (9.15346pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]ascii[] Overfull \hbox (2.48352pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]ascii[] ) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__const__iterator__tag.tex Overfull \hbox (11.83833pt too wide) in paragraph at lines 1--1 []\OT1/ptm/b/n/12 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]const[][][]iterator[][][]tag In-ter-face Ref-er-ence Overfull \hbox (30.36118pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.3908pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][] []const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.1415pt too wide) in paragraph at lines 23--25 [][][]\OT1/ptm/bc/n/10 N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][] t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]const[][][]iterator[] Overfull \hbox (10.87091pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] [197] Overfull \hbox (4.61319pt too wide) in paragraph at lines 43--44 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (32.75244pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[][][]iterator[][][]from[][][]const[][][]iterator() [] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (44.33307pt too wide) in paragraph at lines 55--56 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.55318pt too wide) in paragraph at lines 61--62 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.44278pt too wide) in paragraph at lines 67--68 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int p pl[][][][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (3.65283pt too wide) in paragraph at lines 73--74 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (0.51288pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][] Overfull \hbox (2.44281pt too wide) in paragraph at lines 85--86 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (9.50294pt too wide) in paragraph at lines 91--92 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]d elete[][][][]Pointset[][][][]Powerset[] [198]) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__iterator__tag.tex Overfull \hbox (5.65144pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (11.31146pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]begin[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.68147pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]end[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (29.23099pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (30.89104pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.83087pt too wide) in paragraph at lines 31--32 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][]const[][][][]Point set[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (29.6735pt too wide) in paragraph at lines 43--44 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Poin tset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.393pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator[][][]from[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (18.51334pt too wide) in paragraph at lines 55--56 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [199] Overfull \hbox (10.73344pt too wide) in paragraph at lines 61--62 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.10309pt too wide) in paragraph at lines 67--68 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (38.31314pt too wide) in paragraph at lines 73--74 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (39.97319pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (44.78313pt too wide) in paragraph at lines 85--86 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][]Point set[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.96323pt too wide) in paragraph at lines 91--92 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] ) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__tag.tex Overfull \hbox (5.3514pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] [200] Overfull \hbox (26.03156pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[ ][][]complexity[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (0.11113pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]Constraint[][][][]System[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.76144pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]Congruence[][][][]System[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (4.25085pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.56107pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]con st[][][][]Pointset[][][][]Powerset[] Overfull \hbox (10.90117pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Congruence[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] Overfull \hbox (16.7413pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (25.2213pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]universe[][] ([][]ppl[][][]const[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.18152pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]bounded[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.84103pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]discrete[][] ([][]ppl[][][]const[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.89133pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]pairwise[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (13.47177pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]omega[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.91118pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]maximize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.85019pt too wide) in paragraph at lines 63--65 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum) Overfull \hbox (19.25113pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]minimize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.85019pt too wide) in paragraph at lines 65--67 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum) Overfull \hbox (1.19106pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][] [][]Pointset[][][][]Powerset[][][][]N[] [201] Overfull \hbox (14.80135pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (21.47098pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (20.08112pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerse t[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (14.15979pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset [][][][]N[]N[]C[][][][]Polyhedron[][] Overfull \hbox (6.02162pt too wide) in paragraph at lines 77--79 \OT1/ptm/bc/n/10 ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (13.90953pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset [][][][]N[]N[]C[][][][]Polyhedron[][] Overfull \hbox (6.02162pt too wide) in paragraph at lines 79--81 \OT1/ptm/bc/n/10 ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.02145pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][] [][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (14.24141pt too wide) in paragraph at lines 85--87 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]constraint[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.89172pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]congruence[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.1313pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]constraints[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (24.78162pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]congruences[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.89159pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]refine[][][]with[][][]congruence[][] ([][]ppl[][][][]Poin tset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (32.02092pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]intersection[][][]assign[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.73158pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (25.6412pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]difference[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (32.56111pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]concatenate[][][]assign[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (31.73091pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.44106pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl [][][][]Pointset[][][][]Powerset[] [202] Overfull \hbox (3.9711pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][] []Pointset[][][][]Powerset[] Overfull \hbox (7.3215pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.0914pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.7517pt too wide) in paragraph at lines 127--129 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (0.6313pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (13.681pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (26.4509pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[] [] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.05125pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([ ][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (21.1611pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (16.1513pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.19162pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Poin tset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (3.25156pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][ ]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (11.85156pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2[] [] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (12.13116pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][ ]const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.47151pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]disjunct[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (10.36153pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]disjunct[][] ([][]ppl[][][][]Pointset[][][][]Po werset[][][][]N[]N[]C[][][][]Polyhedron[] [203] Overfull \hbox (14.25142pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]disjuncts[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.29173pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][] widening[][][]assign[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (23.40161pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assi gn[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (17.43134pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (11.74142pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]print[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.18124pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (6.50212pt too wide) in paragraph at lines 195--196 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (24.10284pt too wide) in paragraph at lines 201--202 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (7.77258pt too wide) in paragraph at lines 207--208 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (27.60335pt too wide) in paragraph at lines 213--214 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] [204] Overfull \hbox (29.94034pt too wide) in paragraph at lines 219--220 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]with[][][]complexity()[] Overfull \hbox (22.77408pt too wide) in paragraph at lines 219--220 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]with[][][]complexity Overfull \hbox (0.51256pt too wide) in paragraph at lines 225--226 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]com plexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (33.53291pt too wide) in paragraph at lines 231--232 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.68295pt too wide) in paragraph at lines 237--238 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][] Overfull \hbox (29.6431pt too wide) in paragraph at lines 243--244 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (30.20316pt too wide) in paragraph at lines 249--250 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.68283pt too wide) in paragraph at lines 255--256 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (2.0029pt too wide) in paragraph at lines 261--262 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Pointset[][][][]Powerset[][][][]N[] [205] Overfull \hbox (1.55289pt too wide) in paragraph at lines 267--268 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (8.22359pt too wide) in paragraph at lines 273--274 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[][][]is[] Overfull \hbox (4.99329pt too wide) in paragraph at lines 279--280 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (6.32341pt too wide) in paragraph at lines 285--286 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.91286pt too wide) in paragraph at lines 291--292 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.36276pt too wide) in paragraph at lines 297--298 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.2233pt too wide) in paragraph at lines 303--304 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.0127pt too wide) in paragraph at lines 309--310 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (27.22318pt too wide) in paragraph at lines 315--316 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]pairwise[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.8836pt too wide) in paragraph at lines 321--322 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]omega[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [206] Overfull \hbox (42.86346pt too wide) in paragraph at lines 327--328 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (42.96332pt too wide) in paragraph at lines 333--334 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.79358pt too wide) in paragraph at lines 339--340 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][][] Overfull \hbox (1.1334pt too wide) in paragraph at lines 345--346 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][][] Overfull \hbox (0.23303pt too wide) in paragraph at lines 351--352 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][] Overfull \hbox (46.57289pt too wide) in paragraph at lines 357--358 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [207] Overfull \hbox (1.59236pt too wide) in paragraph at lines 363--364 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (7.00032pt too wide) in paragraph at lines 369--370 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int Overfull \hbox (4.87047pt too wide) in paragraph at lines 375--376 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][ ]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int Overfull \hbox (3.82037pt too wide) in paragraph at lines 381--382 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron()[] Overfull \hbox (7.41406pt too wide) in paragraph at lines 381--382 \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron Overfull \hbox (4.04024pt too wide) in paragraph at lines 387--388 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron()[] Overfull \hbox (7.41406pt too wide) in paragraph at lines 387--388 \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron Overfull \hbox (34.54243pt too wide) in paragraph at lines 393--394 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Poly hedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (21.86333pt too wide) in paragraph at lines 405--406 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (27.41339pt too wide) in paragraph at lines 411--412 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [208] Overfull \hbox (25.75322pt too wide) in paragraph at lines 417--418 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (31.30328pt too wide) in paragraph at lines 423--424 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.61295pt too wide) in paragraph at lines 429--430 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.363pt too wide) in paragraph at lines 435--436 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (0.70284pt too wide) in paragraph at lines 441--442 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (1.4529pt too wide) in paragraph at lines 447--448 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (38.52284pt too wide) in paragraph at lines 453--454 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (44.93306pt too wide) in paragraph at lines 459--460 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [209] Overfull \hbox (31.11305pt too wide) in paragraph at lines 465--466 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (39.07317pt too wide) in paragraph at lines 471--472 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.12297pt too wide) in paragraph at lines 477--478 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (12.29271pt too wide) in paragraph at lines 483--484 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (15.91238pt too wide) in paragraph at lines 489--490 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]simplify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.70338pt too wide) in paragraph at lines 495--496 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (16.20242pt too wide) in paragraph at lines 501--502 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.09232pt too wide) in paragraph at lines 507--508 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl [][][][]Pointset[][][][]Powerset[] [210] Overfull \hbox (11.85356pt too wide) in paragraph at lines 513--514 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.11345pt too wide) in paragraph at lines 519--520 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.81316pt too wide) in paragraph at lines 525--526 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (1.67303pt too wide) in paragraph at lines 531--532 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][] Overfull \hbox (3.85289pt too wide) in paragraph at lines 537--538 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (10.43277pt too wide) in paragraph at lines 543--544 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Pointset[][][][]Powerset[] [211] Overfull \hbox (29.49239pt too wide) in paragraph at lines 549--550 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr /m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.47224pt too wide) in paragraph at lines 555--556 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/ pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (36.74242pt too wide) in paragraph at lines 561--562 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m /n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.37242pt too wide) in paragraph at lines 567--568 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr /m/n/8 int ppl[][][][]Pointset[][][] Overfull \hbox (0.24281pt too wide) in paragraph at lines 573--574 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[] Overfull \hbox (31.62247pt too wide) in paragraph at lines 579--580 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.88281pt too wide) in paragraph at lines 585--586 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[] [212] Overfull \hbox (2.67274pt too wide) in paragraph at lines 591--592 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (0.34285pt too wide) in paragraph at lines 597--598 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (19.32274pt too wide) in paragraph at lines 603--604 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n /8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (27.92274pt too wide) in paragraph at lines 609--610 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/ pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.39302pt too wide) in paragraph at lines 615--616 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (4.27313pt too wide) in paragraph at lines 621--622 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (12.98332pt too wide) in paragraph at lines 633--634 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [213] Overfull \hbox (17.24333pt too wide) in paragraph at lines 639--640 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (21.13322pt too wide) in paragraph at lines 645--646 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjuncts()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.59221pt too wide) in paragraph at lines 651--652 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening [][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (36.75261pt too wide) in paragraph at lines 657--658 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign()[] \ OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (12.4125pt too wide) in paragraph at lines 663--664 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign()[ ] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (33.13272pt too wide) in paragraph at lines 669--670 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pc r/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.24208pt too wide) in paragraph at lines 675--676 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][][] []N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]print[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (30.37204pt too wide) in paragraph at lines 681--682 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fprint[][] [][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron [214] Overfull \hbox (1.71346pt too wide) in paragraph at lines 687--688 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[][] [][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]asprint[] [][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] Overfull \hbox (6.31339pt too wide) in paragraph at lines 693--694 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.52345pt too wide) in paragraph at lines 699--700 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[][][] ) (./interfaceppl__Polyhedron__tag.tex Overfull \hbox (5.63234pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Rational[][][][ ]Box[] Overfull \hbox (10.59242pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][][]Polyhedron[][][] t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]B[] D[][][][]Shape[] Overfull \hbox (11.15248pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][][]Polyhedron[][][] t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]B[] D[][][][]Shape[] Overfull \hbox (6.71233pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][][]Polyh edron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const [] Overfull \hbox (7.27238pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][][]Polyh edron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const [] [215] Overfull \hbox (3.80247pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t [][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Grid [] Overfull \hbox (3.2623pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedr on[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[] Overfull \hbox (10.18228pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][ ]ppl[] Overfull \hbox (0.8408pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, Overfull \hbox (10.74234pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][ ]ppl[] Overfull \hbox (1.40086pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, Overfull \hbox (6.25206pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity [][] ([][]ppl[][][][]Polyhedron[] Overfull \hbox (6.81212pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity [][] ([][]ppl[][][][]Polyhedron[] Overfull \hbox (25.27213pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][] Polyhedron[][][]t[][] y, [][]ppl[][][][]Polyhedron[] Overfull \hbox (5.6022pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedro n[][][]t[][] pset, [][]ppl[][][][]Generator[] [216] Overfull \hbox (3.38223pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedro n[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (20.04214pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pol yhedron[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (17.82217pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pol yhedron[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (11.182pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedr on[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (8.96204pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedr on[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (25.62195pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Po lyhedron[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (23.40198pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Po lyhedron[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (26.14159pt too wide) in paragraph at lines 111--113 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]C[ ][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (23.92162pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]C[ ][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (14.20235pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][] [][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (11.98238pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][] [][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (13.65202pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][ ][][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (11.43205pt too wide) in paragraph at lines 133--134 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][ ][][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] [217] Overfull \hbox (10.48825pt too wide) in paragraph at lines 144--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/c msy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (23.78888pt too wide) in paragraph at lines 148--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/c msy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (8.35905pt too wide) in paragraph at lines 150--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle [][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OM S/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] Overfull \hbox (25.46918pt too wide) in paragraph at lines 160--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedro n[] Overfull \hbox (24.92819pt too wide) in paragraph at lines 164--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $ \OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraint [] Overfull \hbox (9.49837pt too wide) in paragraph at lines 166--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Constraint[] Overfull \hbox (22.799pt too wide) in paragraph at lines 170--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] Overfull \hbox (25.72865pt too wide) in paragraph at lines 172--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[] [] dst, [][]ppl[][][]const[][][][]Polyhedron[] [218] Overfull \hbox (11.02924pt too wide) in paragraph at lines 178--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (6.43909pt too wide) in paragraph at lines 180--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Po lyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (11.02924pt too wide) in paragraph at lines 182--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (6.43909pt too wide) in paragraph at lines 184--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Po lyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (2.65869pt too wide) in paragraph at lines 206--207 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]congruences[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][] Congruence[][][][]System[] Overfull \hbox (2.68785pt too wide) in paragraph at lines 208--209 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]c onstraints[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][] []const[][][][]Constraint[] Overfull \hbox (15.98848pt too wide) in paragraph at lines 210--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]c ongruences[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][] []const[][][][]Congruence[] [219] Overfull \hbox (8.73904pt too wide) in paragraph at lines 226--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounds[][][]from[][][]abo ve[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (9.34877pt too wide) in paragraph at lines 228--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounds[][][]from[][][]bel ow[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (14.6082pt too wide) in paragraph at lines 230--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]maximize[][][]with[][][]p oint[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (1.86832pt too wide) in paragraph at lines 232--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]maximize[][] ([][]ppl[][] []const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][] []Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (12.94815pt too wide) in paragraph at lines 234--235 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]minimize[][][]with[][][]p oint[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (14.84818pt too wide) in paragraph at lines 236--238 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]minimize[][][]with[][] []point[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]c onst[][][][]Linear[][][][]Expression[] Overfull \hbox (11.01836pt too wide) in paragraph at lines 241--242 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]strictly[][][]contains[][ ][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][]ppl [][][]const[][][][]Polyhedron[] Overfull \hbox (9.6285pt too wide) in paragraph at lines 243--244 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]fro m[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][ ]ppl[][][]const[][][][]Polyhedron[] [220] Overfull \hbox (9.87866pt too wide) in paragraph at lines 275--276 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]refine[][][]with[][][]con gruences[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][] []Congruence[][][][]System[] Overfull \hbox (2.82346pt too wide) in paragraph at lines 291--292 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][ ][]dimensions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimens ion[][][]type[][] ds[]$ $[], Overfull \hbox (4.84868pt too wide) in paragraph at lines 293--294 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]affine[][][]image[][] ([] []ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] var , [][]ppl[][][]const[][][][]Linear[] Overfull \hbox (1.24907pt too wide) in paragraph at lines 299--300 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][] preimage[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[] [][]type[][] var, [][]ppl[] Overfull \hbox (0.58711pt too wide) in paragraph at lines 301--302 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]generalized[][][]affine[] [][]image[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[ ][][]type[][] var, enum [221] Overfull \hbox (6.12796pt too wide) in paragraph at lines 303--304 \OT1/ptm/bc/n/10 enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-s ym, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] [][]const[][][][]Coefficient[] Overfull \hbox (0.9884pt too wide) in paragraph at lines 307--308 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]generalized[][][]affine[] [][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [] []ppl[][][]const[][][][]Linear[] Overfull \hbox (12.40506pt too wide) in paragraph at lines 319--320 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]remove[][][]space[][][]di mensions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[] [][]type[][] ds[]$ $[], size[] Overfull \hbox (12.1548pt too wide) in paragraph at lines 323--324 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]map[][][]space[][][]dimen sions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[][][ ]type[][] maps[]$ $[], size[] [222] Overfull \hbox (7.10867pt too wide) in paragraph at lines 347--348 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cm sy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (21.54861pt too wide) in paragraph at lines 351--352 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\ OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (6.11879pt too wide) in paragraph at lines 353--354 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Generator[] Overfull \hbox (7.50677pt too wide) in paragraph at lines 355--356 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]generators[][] ( [][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][]G enerator[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs) Overfull \hbox (14.67685pt too wide) in paragraph at lines 369--370 [][][]\OT1/ptm/bc/n/10 Integer[][][][]Type[][][][]Overflow[][] o, const [][]ppl [][][]const[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 pcs, un-signed complexity[][][]threshold, Overfull \hbox (28.9686pt too wide) in paragraph at lines 371--372 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widen ing[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (9.51877pt too wide) in paragraph at lines 373--374 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][] assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]p pl[][][]const[][][][]Polyhedron[] [223] Overfull \hbox (1.88829pt too wide) in paragraph at lines 379--380 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Pol yhedron[][][]t[][] x, [][]ppl[] Overfull \hbox (7.1482pt too wide) in paragraph at lines 381--382 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]e xtrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[] [][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (25.31825pt too wide) in paragraph at lines 383--384 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (5.86842pt too wide) in paragraph at lines 385--386 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]e xtrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[] [][]const[][][][]Polyhedron[] Overfull \hbox (7.98883pt too wide) in paragraph at lines 387--388 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Pol yhedron[][][]t[][] x, [][]ppl[] Overfull \hbox (31.4188pt too wide) in paragraph at lines 391--392 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (11.96896pt too wide) in paragraph at lines 393--394 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]e xtrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[] [][]const[][][][]Polyhedron[] [224] Overfull \hbox (1.31215pt too wide) in paragraph at lines 412--413 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]space [][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[ ][][]from[][][]space[][][]dimension ( Overfull \hbox (0.10345pt too wide) in paragraph at lines 432--433 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]C[][][][]Polyhedron[][][]from[][][][]C[][][] Underfull \hbox (badness 10000) detected at line 438 [][][] Overfull \hbox (10.74222pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Con straint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyh edron[][][]from[][][][]Constraint[][][][]System Overfull \hbox (11.32346pt too wide) in paragraph at lines 455--456 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Po lyhedron[][][]recycle[][][][]Constraint[] [225] Underfull \hbox (badness 10000) detected at line 463 [][][] Overfull \hbox (16.29228pt too wide) in paragraph at lines 470--471 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Con gruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyh edron[][][]from[][][][]Congruence[][][][]System Overfull \hbox (16.87352pt too wide) in paragraph at lines 480--481 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Po lyhedron[][][]recycle[][][][]Congruence[] Underfull \hbox (badness 10000) detected at line 488 [][][] Overfull \hbox (15.75209pt too wide) in paragraph at lines 505--506 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][ ]Polyhedron[][][]from[][][]space[][][]dimension Overfull \hbox (14.45259pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C [][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron [226] Overfull \hbox (5.94331pt too wide) in paragraph at lines 525--526 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int p pl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 531 [][][] Overfull \hbox (12.08365pt too wide) in paragraph at lines 538--539 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Constraint[] Overfull \hbox (35.3634pt too wide) in paragraph at lines 548--549 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[ ]C[][][][]Polyhedron[][][]recycle[][][][]Constraint[] Underfull \hbox (badness 10000) detected at line 556 [][][] Overfull \hbox (17.63371pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Congruence[] Overfull \hbox (40.91347pt too wide) in paragraph at lines 573--574 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[ ]C[][][][]Polyhedron[][][]recycle[][][][]Congruence[] [227] Underfull \hbox (badness 10000) detected at line 581 [][][] Overfull \hbox (37.75237pt too wide) in paragraph at lines 588--589 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]N []N[]C[][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (3.98338pt too wide) in paragraph at lines 608--609 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]C[][][][]Polyhedron[][][]from[] Underfull \hbox (badness 10000) detected at line 614 [][][] Overfull \hbox (13.58339pt too wide) in paragraph at lines 631--632 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [228] Underfull \hbox (badness 10000) detected at line 637 [][][] [229] [230] [231] Overfull \hbox (9.58202pt too wide) in paragraph at lines 894--895 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]strictly[][][]contains[][][][]Pol yhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]strictly[][][]contain s[][][][]Polyhedron ( Overfull \hbox (0.73216pt too wide) in paragraph at lines 904--905 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][][ ]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]is[][][]disjoint[ ][][]from[][][][]Polyhedron ( [232] Underfull \hbox (badness 10000) detected at line 1000 [][][] [233] Underfull \hbox (badness 10000) detected at line 1013 [][][] Overfull \hbox (6.30173pt too wide) in paragraph at lines 1090--1091 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]context[ ][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]simplify[][][]usi ng[][][]context[][][]assign [234] Overfull \hbox (8.51176pt too wide) in paragraph at lines 1120--1121 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dimen sion()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]unconstrain[][][]space[] [][]dimension ( Overfull \hbox (7.60165pt too wide) in paragraph at lines 1130--1131 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dimen sions()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]unconstrain[][][]space[ ][][]dimensions [235] Underfull \vbox (badness 10000) has occurred while \output is active [236] Overfull \hbox (2.74211pt too wide) in paragraph at lines 1251--1252 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]generalized[][][]affine[ ][][]preimage ( Overfull \hbox (6.78322pt too wide) in paragraph at lines 1274--1275 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]imag e[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]generaliz ed[][][]affine[][][]image[] [237] Overfull \hbox (35.44312pt too wide) in paragraph at lines 1295--1296 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]genera lized[][][]affine[][][]preimage[] Overfull \hbox (12.11325pt too wide) in paragraph at lines 1326--1327 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][ ][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]add[][][]sp ace[][][]dimensions[][][]and[] Overfull \hbox (14.14328pt too wide) in paragraph at lines 1336--1337 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][ ][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]add[][][] space[][][]dimensions[][][]and[] [238] Overfull \hbox (26.81181pt too wide) in paragraph at lines 1356--1357 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[][] []dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]remove[][][]high er[][][]space[][][]dimensions Overfull \hbox (7.42976pt too wide) in paragraph at lines 1372--1373 []\OT1/ptm/bc/n/10 The par-tial func-tion is de-fined on di-men-sion \OT1/pcr/m /n/10 i \OT1/ptm/bc/n/10 if \OT1/pcr/m/n/10 i $\OML/cmm/m/it/10 <$ \OT1/pcr/m/n /10 n \OT1/ptm/bc/n/10 and \OT1/pcr/m/n/10 maps[]i[] != ppl[][][]not[][][]a[][] []dimension\OT1/ptm/bc/n/10 ; [239] Overfull \hbox (4.26228pt too wide) in paragraph at lines 1448--1449 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhe dron[][][]from[][][][]Generator[][][][]System Overfull \hbox (4.84352pt too wide) in paragraph at lines 1458--1459 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Pol yhedron[][][]recycle[][][][]Generator[] Underfull \hbox (badness 10000) detected at line 1466 [][][] Overfull \hbox (5.60371pt too wide) in paragraph at lines 1473--1474 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Generator[] Overfull \hbox (28.88347pt too wide) in paragraph at lines 1483--1484 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[] C[][][][]Polyhedron[][][]recycle[][][][]Generator[] [240] Underfull \hbox (badness 10000) detected at line 1491 [][][] Underfull \hbox (badness 10000) detected at line 1544 [][][] [241] Overfull \hbox (22.67305pt too wide) in paragraph at lines 1602--1603 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][ ][]B[]H[]R[]Z03[][][]widening[][][]assign[] [242] Overfull \hbox (9.79324pt too wide) in paragraph at lines 1612--1613 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign[] [][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][][]H79[][ ][]widening[][][]assign[][][]with[] Overfull \hbox (6.43242pt too wide) in paragraph at lines 1642--1643 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Polyhedron[][][]limited[] Overfull \hbox (3.15262pt too wide) in paragraph at lines 1652--1653 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhe dron[][][]limited[][][][]H79[] Overfull \hbox (49.62305pt too wide) in paragraph at lines 1662--1663 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]lim ited[][][][]B[]H[]R[]Z03[][][]extrapolation[] [243] Overfull \hbox (14.66322pt too wide) in paragraph at lines 1672--1673 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]limited[][][ ][]H79[][][]extrapolation[] Overfull \hbox (13.67258pt too wide) in paragraph at lines 1682--1683 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Polyhedron[][][]bounded[] Overfull \hbox (10.39278pt too wide) in paragraph at lines 1692--1693 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhe dron[][][]bounded[][][][]H79[] Overfull \hbox (56.8632pt too wide) in paragraph at lines 1702--1703 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]bou nded[][][][]B[]H[]R[]Z03[][][]extrapolation[] Overfull \hbox (21.90338pt too wide) in paragraph at lines 1712--1713 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]bounded[][][ ][]H79[][][]extrapolation[] [244] Overfull \hbox (2.68365pt too wide) in paragraph at lines 1746--1747 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C [][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (9.44359pt too wide) in paragraph at lines 1752--1753 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]N[]N[]C[][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (3.80365pt too wide) in paragraph at lines 1758--1759 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C [][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (10.56358pt too wide) in paragraph at lines 1764--1765 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]N[]N[]C[][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[] [245] Overfull \hbox (22.12337pt too wide) in paragraph at lines 1770--1771 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]C[][][][]Polyhedron[][][]from[][][][]Octagonal[] Overfull \hbox (23.24336pt too wide) in paragraph at lines 1782--1783 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]C[][][][]Polyhedron[][][]from[][][][]Octagonal[] Overfull \hbox (1.20328pt too wide) in paragraph at lines 1788--1789 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] Overfull \hbox (36.272pt too wide) in paragraph at lines 1794--1795 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gri d[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (18.41342pt too wide) in paragraph at lines 1800--1801 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[ ]N[]C[][][][]Polyhedron[][][]from[][][][]Grid[][][]with[] Overfull \hbox (27.87338pt too wide) in paragraph at lines 1806--1807 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]C[][][][]Polyhedron[][][]from[][][][]Rational[] Overfull \hbox (10.6333pt too wide) in paragraph at lines 1812--1813 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [246] Overfull \hbox (18.7929pt too wide) in paragraph at lines 1818--1819 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[] Overfull \hbox (20.75282pt too wide) in paragraph at lines 1824--1825 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.71288pt too wide) in paragraph at lines 1830--1831 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[][][] Overfull \hbox (21.87282pt too wide) in paragraph at lines 1836--1837 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.7126pt too wide) in paragraph at lines 1842--1843 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.75252pt too wide) in paragraph at lines 1848--1849 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][] Overfull \hbox (27.8326pt too wide) in paragraph at lines 1854--1855 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[] [247] Overfull \hbox (0.99251pt too wide) in paragraph at lines 1860--1861 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[] Overfull \hbox (0.76205pt too wide) in paragraph at lines 1884--1885 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]upper[][][]bound[][][]assign[][][ ]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]upper[][][]bou nd[][][]assign[][][]if[][][]exact ( Overfull \hbox (2.99208pt too wide) in paragraph at lines 1902--1903 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]inte ger[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]drop[][][]som e[][][]non[][][]integer[][][]points [248] Overfull \hbox (20.5736pt too wide) in paragraph at lines 1908--1909 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]inte ger[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]drop[] [][]some[][][]non[][][]integer[][][]points[] Overfull \hbox (3.43185pt too wide) in paragraph at lines 1914--1915 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[][ ][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]widening[][][]assig n[][][]with[][][]tokens ( [249] Overfull \hbox (1.1535pt too wide) in paragraph at lines 1962--1963 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]M[]S[][][][]C[][][] Overfull \hbox (38.5021pt too wide) in paragraph at lines 1968--1969 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]P[]R[][][][]C[][][][]Polyhedron Overfull \hbox (0.23343pt too wide) in paragraph at lines 1974--1975 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]a ffine[][][]ranking[][][]function[][][][]M[] Overfull \hbox (3.36351pt too wide) in paragraph at lines 1980--1981 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]a ffine[][][]ranking[][][]function[][][][]P[]R[] Overfull \hbox (2.5233pt too wide) in paragraph at lines 1986--1987 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]M[]S[][][][]C[] Overfull \hbox (0.85338pt too wide) in paragraph at lines 1992--1993 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]P[]R[][][][]C[] Overfull \hbox (4.48323pt too wide) in paragraph at lines 1998--1999 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][] affine[][][]ranking[][][]functions[][][][]M[] Overfull \hbox (2.81331pt too wide) in paragraph at lines 2004--2005 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][] affine[][][]ranking[][][]functions[][][][]P[] [250] Overfull \hbox (2.0735pt too wide) in paragraph at lines 2034--2035 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]M[]S[][][] Overfull \hbox (0.40358pt too wide) in paragraph at lines 2040--2041 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]P[]R[][][] Overfull \hbox (1.15343pt too wide) in paragraph at lines 2046--2047 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one [][][]affine[][][]ranking[][][]function[] Overfull \hbox (2.36351pt too wide) in paragraph at lines 2052--2053 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one [][][]affine[][][]ranking[][][]function[][][] [251] Overfull \hbox (3.4433pt too wide) in paragraph at lines 2058--2059 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]M[]S[] Overfull \hbox (1.77338pt too wide) in paragraph at lines 2064--2065 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]P[]R[] Overfull \hbox (5.40323pt too wide) in paragraph at lines 2070--2071 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]al l[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (3.7333pt too wide) in paragraph at lines 2076--2077 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]al l[][][]affine[][][]ranking[][][]functions[] ) (./interfaceppl__Rational__Box__tag.tex Overfull \hbox (5.63234pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[] [] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhe dron[] [252] Overfull \hbox (1.04219pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Ra tional[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]pp l[] Overfull \hbox (9.09174pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]ppl[][][][]Rational [][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][ ]const[] Overfull \hbox (16.01172pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Rational[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.09135pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Constraint[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constra int[] Overfull \hbox (18.39198pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Congruence[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Congrue nce[] Overfull \hbox (1.71178pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Generator[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generato r[] Overfull \hbox (12.5317pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]relation[][][]wi th[][][][]Congruence[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[ ][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (7.53172pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]congrue nces[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[ ][][]const[][][][]Congruence[][][][]System[] Overfull \hbox (7.56088pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]minimiz ed[][][]constraints[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (20.86151pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]minimiz ed[][][]congruences[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (13.61208pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounds[][][]from [][][]above[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (14.2218pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounds[][][]from [][][]below[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[] [253] Overfull \hbox (18.62187pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]upper[] [][]bound[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ps, [][]ppl[][][]d imension[][][]type[][] var, [][]ppl[][][][]Coefficient[] Overfull \hbox (18.37173pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]lower[] [][]bound[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ps, [][]ppl[][][]d imension[][][]type[][] var, [][]ppl[][][][]Coefficient[] Overfull \hbox (6.74135pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]maximize[][] ([] []ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[] [][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (5.0813pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]minimize[][] ([] []ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[] [][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (19.48123pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]maximize[][][]wi th[][][]point[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (17.82118pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]minimize[][][]wi th[][][]point[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (7.13179pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]frequency[][] ([ ][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (0.61139pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]contains[][][][] Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] x, [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (11.72083pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]strictly[][][]co ntains[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[][][] []Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (10.33096pt too wide) in paragraph at lines 111--113 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint [][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[] [][][]Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (1.45107pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]refine[][][]with [][][]constraints[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]const[][][][]Constraint[][][][]System[] Overfull \hbox (14.7517pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]refine[][][]with [][][]congruences[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]const[][][][]Congruence[][][][]System[] Overfull \hbox (4.91129pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]simplify[][][]us ing[][][]context[][][]assign[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (7.69649pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][ ]space[][][]dimensions[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]dimension[][][]type[][] ds[]$ $[], Overfull \hbox (9.72171pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]affine[][][]imag e[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]dimension [][][]type[][] var, [][]ppl[][][]const[][][][]Linear[] [254] Overfull \hbox (6.1221pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounded[][][]aff ine[][][]preimage[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]dimension[][][]type[][] var, [][]ppl[] Overfull \hbox (5.46014pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]generalized[][][ ]affine[][][]image[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]p pl[][][]dimension[][][]type[][] var, enum Overfull \hbox (5.86143pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]generalized[][][ ]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Rational[][][][]Box [][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[] Overfull \hbox (3.69801pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]fold[][][]space[ ][][]dimensions[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[ ][][]dimension[][][]type[][] ds[]$ $[], size[] Overfull \hbox (8.29143pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]wi dening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Rational[][][][]Bo x[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (1.6215pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]widening[][][]as sign[][][]with[][][]tokens[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] x , [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (4.64108pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C []C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Rational[][][][]Box[][ ][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (2.96216pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle [][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t [][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] [255] Overfull \hbox (11.43164pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[ ][][][]Box[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (9.21167pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[ ][][][]Box[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (17.01144pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational [][][][]Box[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (14.79147pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational [][][][]Box[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (19.75078pt too wide) in paragraph at lines 233--235 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Ra tional[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][] []t[][] pset[][][]before, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (17.5308pt too wide) in paragraph at lines 235--237 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Ra tional[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][] []t[][] pset[][][]before, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (5.59184pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Ra tional[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (3.37187pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Ra tional[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (5.04152pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]R ational[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (2.82155pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]R ational[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] [256] Overfull \hbox (2.61357pt too wide) in paragraph at lines 301--302 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]R ational[][][][]Box[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (0.85356pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]R ational[][][][]Box[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (19.17328pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Rational[][][][]Box[][][]from[][][][]Octagonal[] Overfull \hbox (20.29327pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Rational[][][][]Box[][][]from[][][][]Octagonal[] Overfull \hbox (45.1534pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Rational[][][][]Box[][][]from[][][][]C[][][][]Polyhedron[] [257] Overfull \hbox (1.0333pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (33.32191pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Gri d[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational [][][][]Box[][][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (24.9233pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Rational[][][][]Box[][][]from[][][][]Rational[] Overfull \hbox (15.8428pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (16.9628pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (6.4825pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Rational[] Overfull \hbox (7.6025pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Rational[] [258] Overfull \hbox (7.79213pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Con straint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][] []Box[][][]from[][][][]Constraint[][][][]System Overfull \hbox (13.3422pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Con gruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][] []Box[][][]from[][][][]Congruence[][][][]System Overfull \hbox (1.3122pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][ ]Box[][][]from[][][][]Generator[][][][]System [259] Overfull \hbox (1.10178pt too wide) in paragraph at lines 433--434 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][] constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]get[][][ ]minimized[][][]constraints ( Overfull \hbox (6.65184pt too wide) in paragraph at lines 439--440 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][] congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]get[][][ ]minimized[][][]congruences ( Overfull \hbox (4.07193pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]topological[][][]closure [][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]topolog ical[][][]closure[][][]assign ( [260] [261] Overfull \hbox (22.7833pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]strictly[][][]contains[] [][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box [][][]strictly[][][]contains[][][][]Rational[] Overfull \hbox (13.93344pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint[][][]fr om[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][ ]Box[][][]is[][][]disjoint[][][]from[][][][]Rational[] [262] [263] Overfull \hbox (6.71194pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]upper[][][]bound[][][]as sign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[] [][]upper[][][]bound[][][]assign[][][]if[][][]exact Overfull \hbox (2.03311pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][][ ]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][ ]simplify[][][]using[][][]context[][][] Overfull \hbox (14.46165pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[] [][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]uncons train[][][]space[][][]dimension Overfull \hbox (23.15155pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[] [][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]uncon strain[][][]space[][][]dimensions [264] Overfull \hbox (8.692pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (22.33311pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]generalized[][][]affine[][][]image[] Overfull \hbox (9.71298pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][ ][]Box[][][]generalized[][][]affine[] Overfull \hbox (10.38313pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Bo x[][][]add[][][]space[][][]dimensions[] [265] Overfull \hbox (12.41316pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]add[][][]space[][][]dimensions[] Overfull \hbox (0.46318pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][] space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][] []remove[][][]higher[][][]space[] Overfull \hbox (18.54198pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[ ][][]drop[][][]some[][][]non[][][]integer[][][]points Overfull \hbox (4.44347pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][ ][]Box[][][]drop[][][]some[][][]non[][][]integer[] [266] Overfull \hbox (14.72318pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[] [][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][] [][]Box[][][][]C[]C76[][][]widening[][][]assign[] Overfull \hbox (9.38174pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[][] []with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]w idening[][][]assign[][][]with[][][]tokens Overfull \hbox (8.08255pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[] [][][]Rational[][][][]Box[][][]limited[] Overfull \hbox (41.67317pt too wide) in paragraph at lines 823--824 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]limited[][][][]C[]C76[][][]extrapolation[] [267] Overfull \hbox (8.37337pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][ ][][]Box[][][]recycle[][][][]Constraint[] Overfull \hbox (13.92343pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][ ][][]Box[][][]recycle[][][][]Congruence[] Overfull \hbox (1.89343pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][] [][]Box[][][]recycle[][][][]Generator[] [268] Overfull \hbox (28.92343pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]M[]S[][][][]Rational[] Overfull \hbox (27.25351pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]P[]R[][][][]Rational[] Overfull \hbox (33.17323pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]M[]S[][][][]Rational[] Overfull \hbox (31.50331pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]P[]R[][][][]Rational[] Overfull \hbox (37.52344pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]M[]S[][][][]Rational[] [269] Overfull \hbox (35.85352pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]P[]R[][][][]Rational[] Overfull \hbox (0.49321pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]M[]S[] Overfull \hbox (1.7033pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]P[]R[][][] ) [270] (./refman.ind Overfull \hbox (1.62616pt too wide) in paragraph at lines 14--16 []| \OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][ ][][]Overflow, [][]32[][] Overfull \hbox (12.22548pt too wide) in paragraph at lines 16--18 []| \OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][ ][][]Representation, Overfull \hbox (0.87602pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[][][] const[][][]iterator[][][] Overfull \hbox (7.34506pt too wide) in paragraph at lines 47--48 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign Overfull \hbox (16.32657pt too wide) in paragraph at lines 50--51 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[] Overfull \hbox (7.19489pt too wide) in paragraph at lines 53--54 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign Overfull \hbox (16.17639pt too wide) in paragraph at lines 56--57 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[] Overfull \hbox (16.03653pt too wide) in paragraph at lines 65--66 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[] Overfull \hbox (4.37524pt too wide) in paragraph at lines 83--84 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]congruences Overfull \hbox (1.02655pt too wide) in paragraph at lines 89--90 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (1.02655pt too wide) in paragraph at lines 92--93 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (0.40526pt too wide) in paragraph at lines 113--114 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]preimage Overfull \hbox (8.25665pt too wide) in paragraph at lines 128--129 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (0.87689pt too wide) in paragraph at lines 137--138 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (0.87689pt too wide) in paragraph at lines 140--141 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (0.47676pt too wide) in paragraph at lines 143--144 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpq[] [271] Overfull \hbox (4.11494pt too wide) in paragraph at lines 149--150 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes Overfull \hbox (8.26637pt too wide) in paragraph at lines 161--162 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image[] Overfull \hbox (12.05476pt too wide) in paragraph at lines 164--165 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (21.03627pt too wide) in paragraph at lines 167--168 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage[] Overfull \hbox (11.21477pt too wide) in paragraph at lines 176--177 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]congruences Overfull \hbox (4.56445pt too wide) in paragraph at lines 179--180 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]constraints Overfull \hbox (16.86626pt too wide) in paragraph at lines 191--192 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (35.0661pt too wide) in paragraph at lines 203--204 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (35.0661pt too wide) in paragraph at lines 206--207 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (19.51617pt too wide) in paragraph at lines 209--210 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (19.51617pt too wide) in paragraph at lines 212--213 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (13.3963pt too wide) in paragraph at lines 215--216 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (13.3963pt too wide) in paragraph at lines 218--219 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (2.88495pt too wide) in paragraph at lines 251--252 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Congruence Overfull \hbox (32.84482pt too wide) in paragraph at lines 260--261 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions Overfull \hbox (3.69502pt too wide) in paragraph at lines 263--264 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]space[][][]dimensions Overfull \hbox (3.11646pt too wide) in paragraph at lines 266--267 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simpli fy[][][]using[][][]context[][][] Overfull \hbox (18.25612pt too wide) in paragraph at lines 272--273 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.72694pt too wide) in paragraph at lines 277--279 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.72694pt too wide) in paragraph at lines 279--281 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.57677pt too wide) in paragraph at lines 281--283 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (7.57677pt too wide) in paragraph at lines 283--285 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (17.92516pt too wide) in paragraph at lines 285--287 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[ ]C76[][][]narrowing[][][]assign, [272] Overfull \hbox (8.17526pt too wide) in paragraph at lines 287--289 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H7 9[][][]widening[][][]assign, Overfull \hbox (14.65677pt too wide) in paragraph at lines 289--291 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H7 9[][][]widening[][][]assign[] Overfull \hbox (1.57555pt too wide) in paragraph at lines 295--297 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]congruences, [][]46[][] Overfull \hbox (26.87524pt too wide) in paragraph at lines 301--303 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]recycled[][][]congruences, Overfull \hbox (20.22493pt too wide) in paragraph at lines 303--305 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]recycled[][][]constraints, Overfull \hbox (17.42654pt too wide) in paragraph at lines 305--307 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (17.42654pt too wide) in paragraph at lines 307--309 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (1.34528pt too wide) in paragraph at lines 309--311 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]affi ne[][][]dimension, [][]43[][] Overfull \hbox (10.13536pt too wide) in paragraph at lines 319--321 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ded[][][]affine[][][]image, Overfull \hbox (22.90526pt too wide) in paragraph at lines 321--323 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ded[][][]affine[][][]preimage, Overfull \hbox (0.64575pt too wide) in paragraph at lines 323--325 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ds[][][]from[][][]above, Overfull \hbox (1.25548pt too wide) in paragraph at lines 325--327 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ds[][][]from[][][]below, Overfull \hbox (9.35504pt too wide) in paragraph at lines 327--329 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]conc atenate[][][]assign, [][]47[][] Overfull \hbox (6.87675pt too wide) in paragraph at lines 331--333 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]cont ains[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.24504pt too wide) in paragraph at lines 333--335 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]cont ains[][][]integer[][][]point, Overfull \hbox (2.43513pt too wide) in paragraph at lines 335--337 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]diff erence[][][]assign, [][]47[][] Overfull \hbox (20.87689pt too wide) in paragraph at lines 337--339 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (20.87689pt too wide) in paragraph at lines 339--341 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (2.69687pt too wide) in paragraph at lines 341--343 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equa ls[][][][]B[]D[][][][]Shape[][][] Overfull \hbox (21.34518pt too wide) in paragraph at lines 343--345 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expa nd[][][]space[][][]dimension, Overfull \hbox (0.60683pt too wide) in paragraph at lines 345--347 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]exte rnal[][][]memory[][][] Overfull \hbox (12.61494pt too wide) in paragraph at lines 347--349 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold [][][]space[][][]dimensions, Overfull \hbox (0.2267pt too wide) in paragraph at lines 351--353 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (0.2267pt too wide) in paragraph at lines 353--355 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (0.2267pt too wide) in paragraph at lines 355--357 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (0.2267pt too wide) in paragraph at lines 357--359 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (33.71477pt too wide) in paragraph at lines 363--365 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[ ][][]minimized[][][]congruences, Overfull \hbox (27.06445pt too wide) in paragraph at lines 365--367 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[ ][][]minimized[][][]constraints, Overfull \hbox (8.81485pt too wide) in paragraph at lines 367--369 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]inte rsection[][][]assign, [][]47[][] Overfull \hbox (1.60646pt too wide) in paragraph at lines 373--375 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] [][]disjoint[][][]from[][][][]B[] Overfull \hbox (13.73477pt too wide) in paragraph at lines 377--379 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] [][]topologically[][][]closed, Overfull \hbox (2.44666pt too wide) in paragraph at lines 381--383 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (2.44666pt too wide) in paragraph at lines 383--385 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (39.51617pt too wide) in paragraph at lines 385--387 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (39.51617pt too wide) in paragraph at lines 387--389 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (33.3963pt too wide) in paragraph at lines 389--391 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (33.3963pt too wide) in paragraph at lines 391--393 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (13.72493pt too wide) in paragraph at lines 395--397 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]map[ ][][]space[][][]dimensions, Overfull \hbox (6.51491pt too wide) in paragraph at lines 399--401 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maxi mize[][][]with[][][]point, Overfull \hbox (4.85486pt too wide) in paragraph at lines 403--405 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]mini mize[][][]with[][][]point, Overfull \hbox (15.37523pt too wide) in paragraph at lines 405--407 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]congruence, Overfull \hbox (19.26512pt too wide) in paragraph at lines 407--409 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]congruences, Overfull \hbox (8.72491pt too wide) in paragraph at lines 409--411 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]constraint, Overfull \hbox (12.6148pt too wide) in paragraph at lines 411--413 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]constraints, Overfull \hbox (25.38495pt too wide) in paragraph at lines 413--415 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]rela tion[][][]with[][][][]Congruence, Overfull \hbox (18.73463pt too wide) in paragraph at lines 415--417 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]rela tion[][][]with[][][][]Constraint, Overfull \hbox (17.04485pt too wide) in paragraph at lines 417--419 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]rela tion[][][]with[][][][]Generator, [273] Overfull \hbox (12.66692pt too wide) in paragraph at lines 419--421 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remo ve[][][]higher[][][]space[] Overfull \hbox (26.19502pt too wide) in paragraph at lines 421--423 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remo ve[][][]space[][][]dimensions, Overfull \hbox (19.51645pt too wide) in paragraph at lines 423--425 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simp lify[][][]using[][][]context[] Overfull \hbox (1.03522pt too wide) in paragraph at lines 425--427 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]spac e[][][]dimension, [][]43[][] Overfull \hbox (2.99632pt too wide) in paragraph at lines 427--429 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]stri ctly[][][]contains[][][][]B[] Overfull \hbox (8.52484pt too wide) in paragraph at lines 429--431 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]time [][][]elapse[][][]assign, [][]47[][] Overfull \hbox (5.49655pt too wide) in paragraph at lines 431--433 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topo logical[][][]closure[] Overfull \hbox (12.3349pt too wide) in paragraph at lines 433--435 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]tota l[][][]memory[][][]in[][][]bytes, Overfull \hbox (0.48671pt too wide) in paragraph at lines 435--437 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]unco nstrain[][][]space[] Overfull \hbox (0.48671pt too wide) in paragraph at lines 437--439 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]unco nstrain[][][]space[] Overfull \hbox (1.5055pt too wide) in paragraph at lines 439--441 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uppe r[][][]bound[][][]assign, Overfull \hbox (7.987pt too wide) in paragraph at lines 441--443 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uppe r[][][]bound[][][]assign[] Overfull \hbox (15.21655pt too wide) in paragraph at lines 445--447 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wide ning[][][]assign[][][]with[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 449--451 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 451--453 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 453--455 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 455--457 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (21.58662pt too wide) in paragraph at lines 457--459 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 467--469 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 469--471 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 471--473 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 473--475 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.96535pt too wide) in paragraph at lines 475--477 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]C[][][][]Polyhedron, Overfull \hbox (27.44685pt too wide) in paragraph at lines 477--479 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (19.3869pt too wide) in paragraph at lines 479--481 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Congruence[] Overfull \hbox (12.73659pt too wide) in paragraph at lines 481--483 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Constraint[] Overfull \hbox (11.0468pt too wide) in paragraph at lines 483--485 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Generator[] Overfull \hbox (10.77678pt too wide) in paragraph at lines 487--489 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Grid[][][]with[] Overfull \hbox (35.40529pt too wide) in paragraph at lines 489--491 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (41.8868pt too wide) in paragraph at lines 491--493 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 493--495 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 495--497 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 497--499 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 499--501 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (4.95668pt too wide) in paragraph at lines 501--503 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (4.95668pt too wide) in paragraph at lines 503--505 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (32.06493pt too wide) in paragraph at lines 505--507 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][]space[][][]dimension, Overfull \hbox (28.66681pt too wide) in paragraph at lines 507--509 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]recycle[][][][]Congruence[] Overfull \hbox (22.0165pt too wide) in paragraph at lines 509--511 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]recycle[][][][]Constraint[] Overfull \hbox (20.3267pt too wide) in paragraph at lines 511--513 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]recycle[][][][]Generator[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 513--515 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 515--517 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 517--519 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 519--521 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (3.18472pt too wide) in paragraph at lines 521--523 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class, Overfull \hbox (9.66623pt too wide) in paragraph at lines 523--525 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.96475pt too wide) in paragraph at lines 525--527 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class, Overfull \hbox (7.44626pt too wide) in paragraph at lines 527--529 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.11467pt too wide) in paragraph at lines 532--533 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topolo gical[][][]closure[][][]assign [274] Overfull \hbox (16.77472pt too wide) in paragraph at lines 538--539 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimension Overfull \hbox (20.66461pt too wide) in paragraph at lines 541--542 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimensions Overfull \hbox (1.29686pt too wide) in paragraph at lines 547--548 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][] Overfull \hbox (15.84479pt too wide) in paragraph at lines 553--554 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens Overfull \hbox (6.785pt too wide) in paragraph at lines 559--560 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign Overfull \hbox (15.76651pt too wide) in paragraph at lines 562--563 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[] Overfull \hbox (6.63483pt too wide) in paragraph at lines 565--566 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign Overfull \hbox (15.61633pt too wide) in paragraph at lines 568--569 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[] Overfull \hbox (15.47647pt too wide) in paragraph at lines 577--578 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[] Overfull \hbox (3.81519pt too wide) in paragraph at lines 595--596 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]congruences Overfull \hbox (0.46649pt too wide) in paragraph at lines 601--602 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (0.46649pt too wide) in paragraph at lines 604--605 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (7.13654pt too wide) in paragraph at lines 640--641 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (0.31683pt too wide) in paragraph at lines 649--650 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (0.31683pt too wide) in paragraph at lines 652--653 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (2.95665pt too wide) in paragraph at lines 655--656 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (3.55489pt too wide) in paragraph at lines 661--662 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes Overfull \hbox (7.70631pt too wide) in paragraph at lines 673--674 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image[] Overfull \hbox (11.4947pt too wide) in paragraph at lines 676--677 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (20.47621pt too wide) in paragraph at lines 679--680 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage[] [275] Overfull \hbox (10.65471pt too wide) in paragraph at lines 688--689 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]congruences Overfull \hbox (4.0044pt too wide) in paragraph at lines 691--692 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]constraints Overfull \hbox (16.3062pt too wide) in paragraph at lines 703--704 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (34.50604pt too wide) in paragraph at lines 715--716 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (34.50604pt too wide) in paragraph at lines 718--719 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (18.95612pt too wide) in paragraph at lines 721--722 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (18.95612pt too wide) in paragraph at lines 724--725 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (12.83624pt too wide) in paragraph at lines 727--728 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (12.83624pt too wide) in paragraph at lines 730--731 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (2.32489pt too wide) in paragraph at lines 763--764 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Congruence Overfull \hbox (32.28476pt too wide) in paragraph at lines 772--773 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions Overfull \hbox (3.13496pt too wide) in paragraph at lines 775--776 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]space[][][]dimensions Overfull \hbox (2.5564pt too wide) in paragraph at lines 778--779 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simpli fy[][][]using[][][]context[][][] Overfull \hbox (17.69606pt too wide) in paragraph at lines 784--785 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.16689pt too wide) in paragraph at lines 789--791 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.16689pt too wide) in paragraph at lines 791--793 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.01671pt too wide) in paragraph at lines 793--795 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (7.01671pt too wide) in paragraph at lines 795--797 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (17.3651pt too wide) in paragraph at lines 797--799 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[ ]C76[][][]narrowing[][][]assign, Overfull \hbox (7.6152pt too wide) in paragraph at lines 799--801 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H7 9[][][]widening[][][]assign, Overfull \hbox (14.09671pt too wide) in paragraph at lines 801--803 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H7 9[][][]widening[][][]assign[] Overfull \hbox (1.01549pt too wide) in paragraph at lines 807--809 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]congruences, [][]67[][] Overfull \hbox (26.31519pt too wide) in paragraph at lines 813--815 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]recycled[][][]congruences, Overfull \hbox (19.66487pt too wide) in paragraph at lines 815--817 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]recycled[][][]constraints, Overfull \hbox (16.86649pt too wide) in paragraph at lines 817--819 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (16.86649pt too wide) in paragraph at lines 819--821 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (0.78522pt too wide) in paragraph at lines 821--823 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]affi ne[][][]dimension, [][]64[][] [276] Overfull \hbox (9.5753pt too wide) in paragraph at lines 831--833 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]boun ded[][][]affine[][][]image, Overfull \hbox (22.3452pt too wide) in paragraph at lines 833--835 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]boun ded[][][]affine[][][]preimage, Overfull \hbox (0.69542pt too wide) in paragraph at lines 837--839 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]boun ds[][][]from[][][]below, Overfull \hbox (8.79498pt too wide) in paragraph at lines 839--841 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]conc atenate[][][]assign, [][]68[][] Overfull \hbox (6.3167pt too wide) in paragraph at lines 843--845 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]cont ains[][][][]B[]D[][][][]Shape[] Overfull \hbox (9.68498pt too wide) in paragraph at lines 845--847 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]cont ains[][][]integer[][][]point, Overfull \hbox (1.87508pt too wide) in paragraph at lines 847--849 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]diff erence[][][]assign, [][]68[][] Overfull \hbox (20.31683pt too wide) in paragraph at lines 849--851 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (20.31683pt too wide) in paragraph at lines 851--853 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (2.13681pt too wide) in paragraph at lines 853--855 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equa ls[][][][]B[]D[][][][]Shape[][][] Overfull \hbox (20.78513pt too wide) in paragraph at lines 855--857 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expa nd[][][]space[][][]dimension, Overfull \hbox (12.05489pt too wide) in paragraph at lines 859--861 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold [][][]space[][][]dimensions, Overfull \hbox (3.26665pt too wide) in paragraph at lines 863--865 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (3.26665pt too wide) in paragraph at lines 865--867 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (3.26665pt too wide) in paragraph at lines 867--869 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (3.26665pt too wide) in paragraph at lines 869--871 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (33.15471pt too wide) in paragraph at lines 875--877 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[ ][][]minimized[][][]congruences, Overfull \hbox (26.5044pt too wide) in paragraph at lines 877--879 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[ ][][]minimized[][][]constraints, Overfull \hbox (8.25479pt too wide) in paragraph at lines 879--881 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]inte rsection[][][]assign, [][]68[][] Overfull \hbox (1.0464pt too wide) in paragraph at lines 885--887 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[] [][]disjoint[][][]from[][][][]B[] Overfull \hbox (13.17471pt too wide) in paragraph at lines 889--891 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[] [][]topologically[][][]closed, Overfull \hbox (1.8866pt too wide) in paragraph at lines 893--895 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (1.8866pt too wide) in paragraph at lines 895--897 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (38.95612pt too wide) in paragraph at lines 897--899 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (38.95612pt too wide) in paragraph at lines 899--901 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (32.83624pt too wide) in paragraph at lines 901--903 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (32.83624pt too wide) in paragraph at lines 903--905 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (13.16487pt too wide) in paragraph at lines 907--909 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]map[ ][][]space[][][]dimensions, Overfull \hbox (5.95485pt too wide) in paragraph at lines 911--913 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maxi mize[][][]with[][][]point, Overfull \hbox (4.2948pt too wide) in paragraph at lines 915--917 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]mini mize[][][]with[][][]point, Overfull \hbox (14.81517pt too wide) in paragraph at lines 917--919 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]congruence, Overfull \hbox (18.70506pt too wide) in paragraph at lines 919--921 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]congruences, Overfull \hbox (8.16486pt too wide) in paragraph at lines 921--923 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]constraint, Overfull \hbox (12.05475pt too wide) in paragraph at lines 923--925 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]constraints, Overfull \hbox (24.82489pt too wide) in paragraph at lines 925--927 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]rela tion[][][]with[][][][]Congruence, Overfull \hbox (18.17458pt too wide) in paragraph at lines 927--929 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]rela tion[][][]with[][][][]Constraint, Overfull \hbox (16.48479pt too wide) in paragraph at lines 929--931 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]rela tion[][][]with[][][][]Generator, Overfull \hbox (12.10686pt too wide) in paragraph at lines 931--933 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remo ve[][][]higher[][][]space[] Overfull \hbox (25.63496pt too wide) in paragraph at lines 933--935 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remo ve[][][]space[][][]dimensions, Overfull \hbox (18.95639pt too wide) in paragraph at lines 935--937 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simp lify[][][]using[][][]context[] Overfull \hbox (0.47516pt too wide) in paragraph at lines 937--939 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]spac e[][][]dimension, [][]63[][] Overfull \hbox (2.43626pt too wide) in paragraph at lines 939--941 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]stri ctly[][][]contains[][][][]B[] Overfull \hbox (7.96478pt too wide) in paragraph at lines 941--943 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]time [][][]elapse[][][]assign, [][]68[][] Overfull \hbox (4.9365pt too wide) in paragraph at lines 943--945 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topo logical[][][]closure[] Overfull \hbox (11.77484pt too wide) in paragraph at lines 945--947 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]tota l[][][]memory[][][]in[][][]bytes, Overfull \hbox (3.52666pt too wide) in paragraph at lines 947--949 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]unco nstrain[][][]space[][][] Overfull \hbox (3.52666pt too wide) in paragraph at lines 949--951 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]unco nstrain[][][]space[][][] [277] Overfull \hbox (0.94543pt too wide) in paragraph at lines 951--953 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uppe r[][][]bound[][][]assign, Overfull \hbox (7.42694pt too wide) in paragraph at lines 953--955 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uppe r[][][]bound[][][]assign[] Overfull \hbox (14.6565pt too wide) in paragraph at lines 957--959 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wide ning[][][]assign[][][]with[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 961--963 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 963--965 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 965--967 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 967--969 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (21.02657pt too wide) in paragraph at lines 969--971 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 979--981 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 981--983 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 983--985 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 985--987 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.40529pt too wide) in paragraph at lines 987--989 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]C[][][][]Polyhedron, Overfull \hbox (26.8868pt too wide) in paragraph at lines 989--991 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.82684pt too wide) in paragraph at lines 991--993 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Congruence[] Overfull \hbox (12.17653pt too wide) in paragraph at lines 993--995 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Constraint[] Overfull \hbox (10.48674pt too wide) in paragraph at lines 995--997 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Generator[] Overfull \hbox (10.21672pt too wide) in paragraph at lines 999--1001 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Grid[][][]with[] Overfull \hbox (34.84523pt too wide) in paragraph at lines 1001--1003 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (41.32674pt too wide) in paragraph at lines 1003--1005 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1005--1007 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1007--1009 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1009--1011 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1011--1013 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (4.39662pt too wide) in paragraph at lines 1013--1015 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (4.39662pt too wide) in paragraph at lines 1015--1017 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (31.50487pt too wide) in paragraph at lines 1017--1019 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][]space[][][]dimension, Overfull \hbox (28.10675pt too wide) in paragraph at lines 1019--1021 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]recycle[][][][]Congruence[] Overfull \hbox (21.45644pt too wide) in paragraph at lines 1021--1023 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]recycle[][][][]Constraint[] Overfull \hbox (19.76665pt too wide) in paragraph at lines 1023--1025 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]recycle[][][][]Generator[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 1025--1027 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 1027--1029 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 1029--1031 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 1031--1033 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (2.62466pt too wide) in paragraph at lines 1033--1035 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class, Overfull \hbox (9.10617pt too wide) in paragraph at lines 1035--1037 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.4047pt too wide) in paragraph at lines 1037--1039 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class, Overfull \hbox (6.8862pt too wide) in paragraph at lines 1039--1041 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.55461pt too wide) in paragraph at lines 1044--1045 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topolo gical[][][]closure[][][]assign Overfull \hbox (16.21466pt too wide) in paragraph at lines 1050--1051 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimension Overfull \hbox (20.10455pt too wide) in paragraph at lines 1053--1054 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimensions Overfull \hbox (0.7368pt too wide) in paragraph at lines 1059--1060 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][] Overfull \hbox (15.28473pt too wide) in paragraph at lines 1065--1066 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens [278] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1081--1083 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1083--1084 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1084--1086 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1086--1087 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1087--1089 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1089--1090 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1090--1092 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1092--1093 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1093--1095 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1095--1096 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1096--1098 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1098--1099 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1099--1101 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.36656pt too wide) in paragraph at lines 1101--1102 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1102--1104 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.36656pt too wide) in paragraph at lines 1104--1105 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1105--1107 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.36656pt too wide) in paragraph at lines 1107--1108 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1108--1110 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17635pt too wide) in paragraph at lines 1110--1111 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1111--1113 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17635pt too wide) in paragraph at lines 1113--1114 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1114--1116 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (18.28673pt too wide) in paragraph at lines 1116--1117 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1117--1119 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (18.28673pt too wide) in paragraph at lines 1119--1120 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1120--1122 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.73668pt too wide) in paragraph at lines 1122--1123 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1123--1125 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.73668pt too wide) in paragraph at lines 1125--1126 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1126--1128 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (31.04622pt too wide) in paragraph at lines 1128--1129 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]concatenate[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1129--1131 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (15.41469pt too wide) in paragraph at lines 1131--1132 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]constrains Overfull \hbox (0.24678pt too wide) in paragraph at lines 1132--1134 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (17.17635pt too wide) in paragraph at lines 1134--1135 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]contains[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1135--1137 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (24.12631pt too wide) in paragraph at lines 1137--1138 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]difference[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1138--1140 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17674pt too wide) in paragraph at lines 1140--1141 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1141--1143 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17674pt too wide) in paragraph at lines 1143--1144 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1144--1146 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (9.39645pt too wide) in paragraph at lines 1146--1147 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]equals[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1147--1149 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.57677pt too wide) in paragraph at lines 1149--1150 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]expand[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1150--1152 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (15.90645pt too wide) in paragraph at lines 1152--1153 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]external[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1153--1155 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (3.55664pt too wide) in paragraph at lines 1155--1156 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]fold[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1156--1158 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [279] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1158--1159 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1159--1161 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1161--1162 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1162--1164 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1164--1165 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1165--1167 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1167--1168 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1168--1170 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.50603pt too wide) in paragraph at lines 1170--1171 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]intersection[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1171--1173 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (19.57501pt too wide) in paragraph at lines 1173--1174 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]bounded Overfull \hbox (0.24678pt too wide) in paragraph at lines 1174--1176 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (16.23453pt too wide) in paragraph at lines 1176--1177 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]discrete Overfull \hbox (0.24678pt too wide) in paragraph at lines 1177--1179 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (24.12604pt too wide) in paragraph at lines 1179--1180 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]disjoint[] Overfull \hbox (7.9769pt too wide) in paragraph at lines 1179--1180 [][]\OT1/ptm/bc/n/10 from[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1180--1182 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (10.1348pt too wide) in paragraph at lines 1182--1183 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]empty Overfull \hbox (0.24678pt too wide) in paragraph at lines 1183--1185 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (46.89592pt too wide) in paragraph at lines 1185--1186 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]topologically[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1186--1188 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (18.61479pt too wide) in paragraph at lines 1188--1189 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]universe Overfull \hbox (0.24678pt too wide) in paragraph at lines 1189--1191 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.06662pt too wide) in paragraph at lines 1191--1192 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]map[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1192--1194 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.30467pt too wide) in paragraph at lines 1194--1195 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize Overfull \hbox (0.24678pt too wide) in paragraph at lines 1195--1197 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (23.28618pt too wide) in paragraph at lines 1197--1198 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1198--1200 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.64462pt too wide) in paragraph at lines 1200--1201 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize Overfull \hbox (0.24678pt too wide) in paragraph at lines 1201--1203 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.62613pt too wide) in paragraph at lines 1203--1204 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1204--1206 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1206--1207 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1207--1209 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1209--1210 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1210--1212 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1212--1213 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1213--1215 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1215--1216 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1216--1218 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.3963pt too wide) in paragraph at lines 1218--1219 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1219--1221 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.3963pt too wide) in paragraph at lines 1221--1222 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1222--1224 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.3963pt too wide) in paragraph at lines 1224--1225 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1225--1227 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (13.53671pt too wide) in paragraph at lines 1227--1228 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1228--1230 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (13.53671pt too wide) in paragraph at lines 1230--1231 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1231--1233 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.0565pt too wide) in paragraph at lines 1233--1234 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]space[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1234--1236 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (11.62614pt too wide) in paragraph at lines 1236--1237 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]strictly[] Overfull \hbox (21.86665pt too wide) in paragraph at lines 1236--1237 [][]\OT1/ptm/bc/n/10 contains[][][][]Constraints[][][][]Product[][][][]C[][][][ ]Polyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1237--1239 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.60513pt too wide) in paragraph at lines 1239--1241 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]tag, [][]84[][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1241--1243 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [280] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1243--1245 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1245--1247 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1247--1249 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1249--1251 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1251--1253 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1253--1255 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1255--1257 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1257--1259 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1259--1261 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1261--1263 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1263--1265 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1265--1267 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1267--1269 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1269--1271 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1271--1273 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1273--1275 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1275--1277 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1277--1279 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.86665pt too wide) in paragraph at lines 1277--1279 [][]\OT1/ptm/bc/n/10 contains[][][][]Constraints[][][][]Product[][][][]C[][][][ ]Polyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1279--1281 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1281--1283 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1283--1285 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1285--1287 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.08676pt too wide) in paragraph at lines 1285--1287 [][]\OT1/ptm/bc/n/10 equals[][][][]Constraints[][][][]Product[][][][]C[][][][]P olyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1287--1289 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1289--1291 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1291--1293 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1293--1295 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1295--1297 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1297--1299 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1299--1301 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1301--1303 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1303--1305 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1305--1307 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1307--1309 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.14642pt too wide) in paragraph at lines 1307--1309 [][]\OT1/ptm/bc/n/10 is[][][]disjoint[][][]from[][][][]Constraints[][][][]Produ ct[][][][]C[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1309--1311 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1311--1313 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1313--1315 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1315--1317 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1317--1319 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1319--1321 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1321--1323 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1323--1325 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1325--1327 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1327--1329 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1329--1331 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1331--1333 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1333--1335 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1335--1337 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1337--1339 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1339--1341 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1341--1343 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1343--1345 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1345--1347 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (3.53629pt too wide) in paragraph at lines 1345--1347 [][]\OT1/ptm/bc/n/10 strictly[][][]contains[][][][]Constraints[][][][]Product[] [][][]C[] [281] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1347--1349 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1349--1351 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1351--1353 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1353--1355 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1355--1357 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1357--1359 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1359--1361 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1361--1363 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1363--1365 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (5.79657pt too wide) in paragraph at lines 1365--1367 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Constraints[][][][]Product[][][][]C [][][][]Polyhedron[] Overfull \hbox (20.51643pt too wide) in paragraph at lines 1367--1369 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[] Overfull \hbox (15.51656pt too wide) in paragraph at lines 1369--1371 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[ ][][][]C[][][][]Polyhedron[] Overfull \hbox (12.1866pt too wide) in paragraph at lines 1371--1373 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1373--1375 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1375--1377 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (36.35501pt too wide) in paragraph at lines 1375--1377 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]with[][][]complexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1377--1379 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1379--1381 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (35.79495pt too wide) in paragraph at lines 1379--1381 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]with[][][]complexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1381--1383 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1383--1385 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (6.38548pt too wide) in paragraph at lines 1383--1385 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]com plexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1385--1387 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1387--1389 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1389--1391 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (26.9067pt too wide) in paragraph at lines 1389--1391 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1391--1393 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (26.9067pt too wide) in paragraph at lines 1391--1393 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1393--1395 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1395--1397 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1397--1399 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1399--1401 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (20.82542pt too wide) in paragraph at lines 1399--1401 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][ ][]complexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1401--1403 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (5.7554pt too wide) in paragraph at lines 1401--1403 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass, [][]89[][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1403--1405 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (0.21689pt too wide) in paragraph at lines 1403--1405 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1405--1407 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (5.19534pt too wide) in paragraph at lines 1405--1407 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass, [][]89[][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1407--1409 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (3.25684pt too wide) in paragraph at lines 1407--1409 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1409--1411 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1411--1413 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (4.16524pt too wide) in paragraph at lines 1411--1413 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]com plexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1413--1415 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.6264pt too wide) in paragraph at lines 1415--1416 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]time[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1416--1418 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (28.84624pt too wide) in paragraph at lines 1418--1419 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]topological[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1419--1421 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.6264pt too wide) in paragraph at lines 1421--1422 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]total[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1422--1424 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.5063pt too wide) in paragraph at lines 1424--1425 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1425--1427 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.5063pt too wide) in paragraph at lines 1427--1428 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1428--1430 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61668pt too wide) in paragraph at lines 1430--1431 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1431--1433 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61668pt too wide) in paragraph at lines 1433--1434 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1434--1436 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.06648pt too wide) in paragraph at lines 1436--1437 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[] [282] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1437--1439 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.06648pt too wide) in paragraph at lines 1439--1440 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1440--1442 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (33.42464pt too wide) in paragraph at lines 1525--1526 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]lhs[][][]rhs[][][]with[][][]congruence Overfull \hbox (2.33499pt too wide) in paragraph at lines 1527--1528 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]with[][][]congruence Overfull \hbox (5.48631pt too wide) in paragraph at lines 1533--1534 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs[][][]with[] Overfull \hbox (15.10489pt too wide) in paragraph at lines 1535--1536 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]with[][][]congruence [283] Overfull \hbox (2.84631pt too wide) in paragraph at lines 1569--1570 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign[] Overfull \hbox (15.89598pt too wide) in paragraph at lines 1573--1574 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign[][][]with[] Overfull \hbox (8.24542pt too wide) in paragraph at lines 1631--1633 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]a nd[][][]embed, [][]120[][] Overfull \hbox (9.35527pt too wide) in paragraph at lines 1633--1635 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]a nd[][][]project, [][]120[][] Overfull \hbox (0.48692pt too wide) in paragraph at lines 1654--1656 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[ ][][]with[][][] Overfull \hbox (1.87517pt too wide) in paragraph at lines 1677--1679 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][ ][]lhs[][][]rhs, [][]119[][] Overfull \hbox (12.71642pt too wide) in paragraph at lines 1679--1681 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][ ][]lhs[][][]rhs[][][]with[] [284] Overfull \hbox (24.83499pt too wide) in paragraph at lines 1681--1683 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][ ][]with[][][]congruence, Overfull \hbox (14.64507pt too wide) in paragraph at lines 1685--1687 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage [][][]lhs[][][]rhs, [][]119[][] Overfull \hbox (4.10655pt too wide) in paragraph at lines 1687--1689 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage [][][]lhs[][][]rhs[] Overfull \hbox (37.60489pt too wide) in paragraph at lines 1689--1691 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage [][][]with[][][]congruence, Overfull \hbox (11.68506pt too wide) in paragraph at lines 1693--1695 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[] [][]with[][][]tokens, Overfull \hbox (16.3648pt too wide) in paragraph at lines 1717--1719 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapol ation[][][]assign, Overfull \hbox (22.84631pt too wide) in paragraph at lines 1719--1721 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapol ation[][][]assign[] Overfull \hbox (8.03471pt too wide) in paragraph at lines 1721--1723 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapola tion[][][]assign, Overfull \hbox (14.51622pt too wide) in paragraph at lines 1723--1725 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapola tion[][][]assign[] Overfull \hbox (4.34547pt too wide) in paragraph at lines 1749--1751 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]remove[][][]higher[][][]space[][][]di mensions, [][]120[][] Overfull \hbox (8.27534pt too wide) in paragraph at lines 1780--1782 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Grid[][][]2, [][]124[][] Overfull \hbox (6.05537pt too wide) in paragraph at lines 1784--1786 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Grid[][][]2, [][]124[][] Overfull \hbox (10.77678pt too wide) in paragraph at lines 1794--1796 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]with[] Overfull \hbox (10.21672pt too wide) in paragraph at lines 1798--1800 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]with[] Overfull \hbox (22.7753pt too wide) in paragraph at lines 1802--1804 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhed ron[][][]with[][][]complexity, Overfull \hbox (8.54533pt too wide) in paragraph at lines 1810--1812 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][][]Gene rator[][][][]System, [][]112[][] Overfull \hbox (1.74548pt too wide) in paragraph at lines 1812--1814 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][]with[] [][]complexity, [][]111[][] Overfull \hbox (37.21524pt too wide) in paragraph at lines 1816--1818 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]P olyhedron[][][]with[][][]complexity, Overfull \hbox (10.1252pt too wide) in paragraph at lines 1818--1820 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class, Overfull \hbox (16.6067pt too wide) in paragraph at lines 1820--1822 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[] Overfull \hbox (9.56514pt too wide) in paragraph at lines 1822--1824 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class, Overfull \hbox (16.04665pt too wide) in paragraph at lines 1824--1826 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[] Overfull \hbox (20.55505pt too wide) in paragraph at lines 1828--1830 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][] Box[][][]with[][][]complexity, Overfull \hbox (4.23552pt too wide) in paragraph at lines 1832--1834 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Congruence[][ ][][]System, [][]122[][] Overfull \hbox (0.80522pt too wide) in paragraph at lines 1836--1838 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Grid[][][][]G enerator[][][][]System, Overfull \hbox (0.22566pt too wide) in paragraph at lines 1838--1840 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Grid, [][]123[][] Overfull \hbox (8.82567pt too wide) in paragraph at lines 1840--1842 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Grid[][][]2, [][]124[][] Overfull \hbox (6.6057pt too wide) in paragraph at lines 1844--1846 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Grid[][][]2, [][]124[][] [285] Overfull \hbox (14.93663pt too wide) in paragraph at lines 1891--1892 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.93663pt too wide) in paragraph at lines 1894--1895 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.78645pt too wide) in paragraph at lines 1897--1898 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (14.78645pt too wide) in paragraph at lines 1900--1901 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (3.01672pt too wide) in paragraph at lines 1903--1904 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]narrowing[] Overfull \hbox (31.58493pt too wide) in paragraph at lines 1921--1922 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]congruences Overfull \hbox (24.93462pt too wide) in paragraph at lines 1924--1925 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]constraints Overfull \hbox (24.63623pt too wide) in paragraph at lines 1927--1928 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (24.63623pt too wide) in paragraph at lines 1930--1931 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (14.84505pt too wide) in paragraph at lines 1948--1949 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]image Overfull \hbox (27.61494pt too wide) in paragraph at lines 1951--1952 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]preimage Overfull \hbox (5.35544pt too wide) in paragraph at lines 1954--1955 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]above Overfull \hbox (5.96516pt too wide) in paragraph at lines 1957--1958 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]below Overfull \hbox (2.04471pt too wide) in paragraph at lines 1960--1961 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c oncatenate[][][]assign Overfull \hbox (13.2563pt too wide) in paragraph at lines 1966--1967 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][][]Octagonal[] Overfull \hbox (3.37645pt too wide) in paragraph at lines 1969--1970 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][]integer[][][] Overfull \hbox (0.46686pt too wide) in paragraph at lines 1975--1976 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][] Overfull \hbox (0.46686pt too wide) in paragraph at lines 1978--1979 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][] Overfull \hbox (5.47641pt too wide) in paragraph at lines 1981--1982 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e quals[][][][]Octagonal[] [286] Overfull \hbox (26.05487pt too wide) in paragraph at lines 1984--1985 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xpand[][][]space[][][]dimension Overfull \hbox (4.2165pt too wide) in paragraph at lines 1987--1988 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xternal[][][]memory[] Overfull \hbox (17.32463pt too wide) in paragraph at lines 1990--1991 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]f old[][][]space[][][]dimensions Overfull \hbox (7.43639pt too wide) in paragraph at lines 1996--1997 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (7.43639pt too wide) in paragraph at lines 1999--2000 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (7.43639pt too wide) in paragraph at lines 2002--2003 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (7.43639pt too wide) in paragraph at lines 2005--2006 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (38.42445pt too wide) in paragraph at lines 2014--2015 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]congruences Overfull \hbox (31.77414pt too wide) in paragraph at lines 2017--2018 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]constraints Overfull \hbox (1.50452pt too wide) in paragraph at lines 2020--2021 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i ntersection[][][]assign Overfull \hbox (2.14622pt too wide) in paragraph at lines 2029--2030 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]disjoint[][][]from[][][] Overfull \hbox (1.8763pt too wide) in paragraph at lines 2035--2036 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]topologically[][][] Overfull \hbox (6.05634pt too wide) in paragraph at lines 2041--2042 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (6.05634pt too wide) in paragraph at lines 2044--2045 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (46.72586pt too wide) in paragraph at lines 2047--2048 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (46.72586pt too wide) in paragraph at lines 2050--2051 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (18.43462pt too wide) in paragraph at lines 2056--2057 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m ap[][][]space[][][]dimensions Overfull \hbox (11.2246pt too wide) in paragraph at lines 2062--2063 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m aximize[][][]with[][][]point Overfull \hbox (9.56454pt too wide) in paragraph at lines 2068--2069 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m inimize[][][]with[][][]point Overfull \hbox (20.08492pt too wide) in paragraph at lines 2071--2072 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruence Overfull \hbox (23.97481pt too wide) in paragraph at lines 2074--2075 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruences Overfull \hbox (13.4346pt too wide) in paragraph at lines 2077--2078 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraint Overfull \hbox (17.3245pt too wide) in paragraph at lines 2080--2081 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraints Overfull \hbox (30.09464pt too wide) in paragraph at lines 2083--2084 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Congruence Overfull \hbox (23.44432pt too wide) in paragraph at lines 2086--2087 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Constraint Overfull \hbox (21.75453pt too wide) in paragraph at lines 2089--2090 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Generator Overfull \hbox (19.8766pt too wide) in paragraph at lines 2092--2093 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]higher[][][]space[] Overfull \hbox (30.90471pt too wide) in paragraph at lines 2095--2096 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]space[][][]dimensions Overfull \hbox (26.72614pt too wide) in paragraph at lines 2098--2099 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s implify[][][]using[][][]context[] Overfull \hbox (3.53609pt too wide) in paragraph at lines 2104--2105 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s trictly[][][]contains[][][] Overfull \hbox (34.93663pt too wide) in paragraph at lines 2109--2111 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.93663pt too wide) in paragraph at lines 2111--2113 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.78645pt too wide) in paragraph at lines 2113--2115 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (34.78645pt too wide) in paragraph at lines 2115--2117 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (23.01672pt too wide) in paragraph at lines 2117--2119 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]C[]C76[][][]narrowing[] [287] Overfull \hbox (12.87532pt too wide) in paragraph at lines 2121--2123 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]congruence, Overfull \hbox (16.76521pt too wide) in paragraph at lines 2123--2125 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]congruences, Overfull \hbox (6.225pt too wide) in paragraph at lines 2125--2127 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]constraint, Overfull \hbox (10.1149pt too wide) in paragraph at lines 2127--2129 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]constraints, Overfull \hbox (6.98682pt too wide) in paragraph at lines 2129--2131 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (6.98682pt too wide) in paragraph at lines 2131--2133 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (44.63623pt too wide) in paragraph at lines 2133--2135 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (44.63623pt too wide) in paragraph at lines 2135--2137 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (16.53494pt too wide) in paragraph at lines 2137--2139 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]affine[][][]dimension, Overfull \hbox (16.32512pt too wide) in paragraph at lines 2139--2141 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]affine[][][]image, [][]144[][] Overfull \hbox (12.075pt too wide) in paragraph at lines 2141--2143 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]affine[][][]preimage, Overfull \hbox (10.47513pt too wide) in paragraph at lines 2143--2145 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]ascii[][][]dump, [][]151[][] Overfull \hbox (4.91507pt too wide) in paragraph at lines 2145--2147 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]ascii[][][]load, [][]151[][] Overfull \hbox (15.78688pt too wide) in paragraph at lines 2147--2149 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (15.78688pt too wide) in paragraph at lines 2149--2151 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (7.15686pt too wide) in paragraph at lines 2151--2153 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (7.15686pt too wide) in paragraph at lines 2153--2155 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (2.42659pt too wide) in paragraph at lines 2155--2157 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]concatenate[] Overfull \hbox (6.31508pt too wide) in paragraph at lines 2157--2159 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]constrains, [][]143[][] Overfull \hbox (33.2563pt too wide) in paragraph at lines 2159--2161 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]contains[][][][]Octagonal[] Overfull \hbox (19.77644pt too wide) in paragraph at lines 2161--2163 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]contains[][][]integer[] Overfull \hbox (17.6248pt too wide) in paragraph at lines 2163--2165 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]difference[][][]assign, Overfull \hbox (1.86685pt too wide) in paragraph at lines 2165--2167 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (1.86685pt too wide) in paragraph at lines 2167--2169 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (25.47641pt too wide) in paragraph at lines 2169--2171 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]equals[][][][]Octagonal[] Overfull \hbox (9.76686pt too wide) in paragraph at lines 2171--2173 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]expand[][][]space[] Overfull \hbox (24.2165pt too wide) in paragraph at lines 2173--2175 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]external[][][]memory[] Overfull \hbox (0.74673pt too wide) in paragraph at lines 2175--2177 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]fold[][][]space[][][] Overfull \hbox (5.5955pt too wide) in paragraph at lines 2177--2179 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]frequency, [][]141[][] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2179--2181 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2181--2183 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2183--2185 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2185--2187 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (14.5451pt too wide) in paragraph at lines 2187--2189 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]congruences, Overfull \hbox (7.89479pt too wide) in paragraph at lines 2189--2191 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]constraints, Overfull \hbox (13.82634pt too wide) in paragraph at lines 2191--2193 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (13.82634pt too wide) in paragraph at lines 2193--2195 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (1.8864pt too wide) in paragraph at lines 2195--2197 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]intersection[] Overfull \hbox (10.4754pt too wide) in paragraph at lines 2197--2199 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]bounded, [][]139[][] Overfull \hbox (7.13492pt too wide) in paragraph at lines 2199--2201 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]discrete, [][]139[][] Overfull \hbox (18.54622pt too wide) in paragraph at lines 2201--2203 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]disjoint[][][]from[] Overfull \hbox (1.03519pt too wide) in paragraph at lines 2203--2205 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]empty, [][]139[][] Overfull \hbox (18.27629pt too wide) in paragraph at lines 2205--2207 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]topologically[] Overfull \hbox (9.51518pt too wide) in paragraph at lines 2207--2209 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]universe, [][]139[][] Overfull \hbox (1.05646pt too wide) in paragraph at lines 2209--2211 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (1.05646pt too wide) in paragraph at lines 2211--2213 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (13.03535pt too wide) in paragraph at lines 2211--2213 \OT1/ptm/bc/n/10 M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens, [ ][]147[][] Overfull \hbox (10.50641pt too wide) in paragraph at lines 2213--2215 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (10.50641pt too wide) in paragraph at lines 2215--2217 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (9.00475pt too wide) in paragraph at lines 2217--2219 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]linear[][][]partition, Overfull \hbox (1.85672pt too wide) in paragraph at lines 2219--2221 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]map[][][]space[][][] Overfull \hbox (5.20506pt too wide) in paragraph at lines 2221--2223 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]maximize, [][]140[][] Overfull \hbox (16.04631pt too wide) in paragraph at lines 2223--2225 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]maximize[][][]with[] Overfull \hbox (3.54501pt too wide) in paragraph at lines 2225--2227 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]minimize, [][]140[][] Overfull \hbox (14.38626pt too wide) in paragraph at lines 2227--2229 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]minimize[][][]with[] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2229--2231 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2231--2233 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2233--2235 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2235--2237 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] [288] Overfull \hbox (7.15643pt too wide) in paragraph at lines 2237--2239 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]relation[][][]with[] Overfull \hbox (7.15643pt too wide) in paragraph at lines 2239--2241 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]relation[][][]with[] Overfull \hbox (7.15643pt too wide) in paragraph at lines 2241--2243 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]relation[][][]with[] Overfull \hbox (14.06688pt too wide) in paragraph at lines 2243--2245 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]remove[][][]higher[] Overfull \hbox (10.7268pt too wide) in paragraph at lines 2245--2247 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]remove[][][]space[] Overfull \hbox (13.83636pt too wide) in paragraph at lines 2247--2249 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]simplify[][][]using[] Overfull \hbox (16.22488pt too wide) in paragraph at lines 2249--2251 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]space[][][]dimension, Overfull \hbox (19.93608pt too wide) in paragraph at lines 2251--2253 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]strictly[][][]contains[] Overfull \hbox (1.59639pt too wide) in paragraph at lines 2253--2255 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]time[][][]elapse[] Overfull \hbox (0.22661pt too wide) in paragraph at lines 2255--2257 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]topological[] Overfull \hbox (9.93646pt too wide) in paragraph at lines 2257--2259 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]total[][][]memory[] Overfull \hbox (1.88667pt too wide) in paragraph at lines 2259--2261 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]unconstrain[] Overfull \hbox (1.88667pt too wide) in paragraph at lines 2261--2263 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]unconstrain[] Overfull \hbox (6.59706pt too wide) in paragraph at lines 2263--2265 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (6.59706pt too wide) in paragraph at lines 2265--2267 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (14.56497pt too wide) in paragraph at lines 2267--2269 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]widening[][][]assign, Overfull \hbox (21.04648pt too wide) in paragraph at lines 2269--2271 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]widening[][][]assign[] Overfull \hbox (14.35516pt too wide) in paragraph at lines 2271--2273 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]wrap[][][]assign, [][]148[][] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2273--2275 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2275--2277 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2277--2279 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2279--2281 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (3.26659pt too wide) in paragraph at lines 2281--2283 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][] []class[][][]from[] Overfull \hbox (4.36514pt too wide) in paragraph at lines 2285--2287 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class, [][]150[][] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2291--2293 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2293--2295 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.73547pt too wide) in paragraph at lines 2293--2295 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity, [][]137[][] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2295--2297 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2297--2299 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.17542pt too wide) in paragraph at lines 2297--2299 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity, [][]137[][] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2299--2301 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]C[] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2301--2303 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]C[] Overfull \hbox (46.59659pt too wide) in paragraph at lines 2303--2305 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Congruence[] Overfull \hbox (39.94627pt too wide) in paragraph at lines 2305--2307 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Constraint[] Overfull \hbox (38.25648pt too wide) in paragraph at lines 2307--2309 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Generator[] Overfull \hbox (10.1252pt too wide) in paragraph at lines 2309--2311 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Grid, Overfull \hbox (16.6067pt too wide) in paragraph at lines 2311--2313 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Grid[] Overfull \hbox (5.49686pt too wide) in paragraph at lines 2313--2315 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]N[] Overfull \hbox (5.49686pt too wide) in paragraph at lines 2315--2317 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]N[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2317--2319 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2319--2321 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2321--2323 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2323--2325 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (32.16637pt too wide) in paragraph at lines 2325--2327 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (32.16637pt too wide) in paragraph at lines 2327--2329 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (20.4866pt too wide) in paragraph at lines 2329--2331 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][]space[] Overfull \hbox (3.95679pt too wide) in paragraph at lines 2331--2333 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]recycle[] Overfull \hbox (3.95679pt too wide) in paragraph at lines 2333--2335 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]recycle[] Overfull \hbox (3.95679pt too wide) in paragraph at lines 2335--2337 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]recycle[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2337--2339 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2339--2341 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2341--2343 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2343--2345 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (13.83635pt too wide) in paragraph at lines 2345--2347 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpq[] Overfull \hbox (13.83635pt too wide) in paragraph at lines 2347--2349 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpq[] [289] Overfull \hbox (11.61638pt too wide) in paragraph at lines 2349--2351 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpq[] Overfull \hbox (11.61638pt too wide) in paragraph at lines 2351--2353 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpq[] Overfull \hbox (1.21451pt too wide) in paragraph at lines 2353--2354 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t ime[][][]elapse[][][]assign Overfull \hbox (12.70624pt too wide) in paragraph at lines 2356--2357 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t opological[][][]closure[] Overfull \hbox (1.31636pt too wide) in paragraph at lines 2359--2360 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t otal[][][]memory[][][]in[] Overfull \hbox (7.6964pt too wide) in paragraph at lines 2362--2363 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (7.6964pt too wide) in paragraph at lines 2365--2366 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (6.21518pt too wide) in paragraph at lines 2368--2369 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign Overfull \hbox (15.19669pt too wide) in paragraph at lines 2371--2372 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign[] Overfull \hbox (1.04648pt too wide) in paragraph at lines 2377--2378 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign[] Overfull \hbox (14.37657pt too wide) in paragraph at lines 2383--2384 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.37657pt too wide) in paragraph at lines 2386--2387 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.2264pt too wide) in paragraph at lines 2389--2390 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (14.2264pt too wide) in paragraph at lines 2392--2393 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (2.45667pt too wide) in paragraph at lines 2395--2396 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]narrowing[] Overfull \hbox (31.02487pt too wide) in paragraph at lines 2413--2414 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]congruences Overfull \hbox (24.37456pt too wide) in paragraph at lines 2416--2417 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]constraints Overfull \hbox (24.07617pt too wide) in paragraph at lines 2419--2420 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (24.07617pt too wide) in paragraph at lines 2422--2423 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (14.28499pt too wide) in paragraph at lines 2440--2441 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]image Overfull \hbox (27.05489pt too wide) in paragraph at lines 2443--2444 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]preimage Overfull \hbox (4.79538pt too wide) in paragraph at lines 2446--2447 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]above Overfull \hbox (5.4051pt too wide) in paragraph at lines 2449--2450 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]below Overfull \hbox (1.48465pt too wide) in paragraph at lines 2452--2453 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c oncatenate[][][]assign Overfull \hbox (12.69624pt too wide) in paragraph at lines 2458--2459 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][][]Octagonal[] Overfull \hbox (2.81639pt too wide) in paragraph at lines 2461--2462 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][]integer[][][] Overfull \hbox (27.52652pt too wide) in paragraph at lines 2467--2468 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[] Overfull \hbox (27.52652pt too wide) in paragraph at lines 2470--2471 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[] Overfull \hbox (4.91635pt too wide) in paragraph at lines 2473--2474 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e quals[][][][]Octagonal[] Overfull \hbox (25.49481pt too wide) in paragraph at lines 2476--2477 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xpand[][][]space[][][]dimension Overfull \hbox (3.65645pt too wide) in paragraph at lines 2479--2480 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xternal[][][]memory[] [290] Overfull \hbox (16.76457pt too wide) in paragraph at lines 2482--2483 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]f old[][][]space[][][]dimensions Overfull \hbox (6.87633pt too wide) in paragraph at lines 2488--2489 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (6.87633pt too wide) in paragraph at lines 2491--2492 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (6.87633pt too wide) in paragraph at lines 2494--2495 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (6.87633pt too wide) in paragraph at lines 2497--2498 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (37.8644pt too wide) in paragraph at lines 2506--2507 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]congruences Overfull \hbox (31.21408pt too wide) in paragraph at lines 2509--2510 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]constraints Overfull \hbox (0.94446pt too wide) in paragraph at lines 2512--2513 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i ntersection[][][]assign Overfull \hbox (1.58617pt too wide) in paragraph at lines 2521--2522 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]disjoint[][][]from[][][] Overfull \hbox (1.31624pt too wide) in paragraph at lines 2527--2528 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]topologically[][][] Overfull \hbox (5.49628pt too wide) in paragraph at lines 2533--2534 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (5.49628pt too wide) in paragraph at lines 2536--2537 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (46.1658pt too wide) in paragraph at lines 2539--2540 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (46.1658pt too wide) in paragraph at lines 2542--2543 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (17.87456pt too wide) in paragraph at lines 2548--2549 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m ap[][][]space[][][]dimensions Overfull \hbox (10.66454pt too wide) in paragraph at lines 2554--2555 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m aximize[][][]with[][][]point Overfull \hbox (9.00449pt too wide) in paragraph at lines 2560--2561 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m inimize[][][]with[][][]point Overfull \hbox (19.52486pt too wide) in paragraph at lines 2563--2564 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruence Overfull \hbox (23.41475pt too wide) in paragraph at lines 2566--2567 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruences Overfull \hbox (12.87454pt too wide) in paragraph at lines 2569--2570 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraint Overfull \hbox (16.76443pt too wide) in paragraph at lines 2572--2573 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraints Overfull \hbox (29.53458pt too wide) in paragraph at lines 2575--2576 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Congruence Overfull \hbox (22.88426pt too wide) in paragraph at lines 2578--2579 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Constraint Overfull \hbox (21.19447pt too wide) in paragraph at lines 2581--2582 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Generator Overfull \hbox (19.31654pt too wide) in paragraph at lines 2584--2585 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]higher[][][]space[] Overfull \hbox (30.34465pt too wide) in paragraph at lines 2587--2588 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]space[][][]dimensions Overfull \hbox (26.16608pt too wide) in paragraph at lines 2590--2591 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s implify[][][]using[][][]context[] Overfull \hbox (2.97603pt too wide) in paragraph at lines 2596--2597 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s trictly[][][]contains[][][] Overfull \hbox (34.37657pt too wide) in paragraph at lines 2601--2603 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.37657pt too wide) in paragraph at lines 2603--2605 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.2264pt too wide) in paragraph at lines 2605--2607 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (34.2264pt too wide) in paragraph at lines 2607--2609 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (22.45667pt too wide) in paragraph at lines 2609--2611 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]C[]C76[][][]narrowing[] Overfull \hbox (12.31526pt too wide) in paragraph at lines 2613--2615 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]congruence, Overfull \hbox (16.20515pt too wide) in paragraph at lines 2615--2617 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]congruences, [291] Overfull \hbox (5.66495pt too wide) in paragraph at lines 2617--2619 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]constraint, Overfull \hbox (9.55484pt too wide) in paragraph at lines 2619--2621 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]constraints, Overfull \hbox (6.42676pt too wide) in paragraph at lines 2621--2623 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (6.42676pt too wide) in paragraph at lines 2623--2625 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (44.07617pt too wide) in paragraph at lines 2625--2627 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (44.07617pt too wide) in paragraph at lines 2627--2629 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (15.97488pt too wide) in paragraph at lines 2629--2631 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]affine[][][]dimension, Overfull \hbox (15.76506pt too wide) in paragraph at lines 2631--2633 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]affine[][][]image, [][]164[][] Overfull \hbox (11.51494pt too wide) in paragraph at lines 2633--2635 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]affine[][][]preimage, Overfull \hbox (9.91507pt too wide) in paragraph at lines 2635--2637 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]ascii[][][]dump, [][]171[][] Overfull \hbox (4.35501pt too wide) in paragraph at lines 2637--2639 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]ascii[][][]load, [][]171[][] Overfull \hbox (15.22682pt too wide) in paragraph at lines 2639--2641 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (15.22682pt too wide) in paragraph at lines 2641--2643 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (6.5968pt too wide) in paragraph at lines 2643--2645 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (6.5968pt too wide) in paragraph at lines 2645--2647 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (1.86653pt too wide) in paragraph at lines 2647--2649 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]concatenate[] Overfull \hbox (5.75502pt too wide) in paragraph at lines 2649--2651 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]constrains, [][]164[][] Overfull \hbox (32.69624pt too wide) in paragraph at lines 2651--2653 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]contains[][][][]Octagonal[] Overfull \hbox (19.21638pt too wide) in paragraph at lines 2653--2655 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]contains[][][]integer[] Overfull \hbox (17.06474pt too wide) in paragraph at lines 2655--2657 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]difference[][][]assign, Overfull \hbox (1.3068pt too wide) in paragraph at lines 2657--2659 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (1.3068pt too wide) in paragraph at lines 2659--2661 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (24.91635pt too wide) in paragraph at lines 2661--2663 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]equals[][][][]Octagonal[] Overfull \hbox (9.2068pt too wide) in paragraph at lines 2663--2665 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]expand[][][]space[] Overfull \hbox (23.65645pt too wide) in paragraph at lines 2665--2667 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]external[][][]memory[] Overfull \hbox (0.18668pt too wide) in paragraph at lines 2667--2669 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]fold[][][]space[][][] Overfull \hbox (5.03545pt too wide) in paragraph at lines 2669--2671 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]frequency, [][]161[][] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2671--2673 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2673--2675 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2675--2677 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2677--2679 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (13.98505pt too wide) in paragraph at lines 2679--2681 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]congruences, Overfull \hbox (7.33473pt too wide) in paragraph at lines 2681--2683 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]constraints, Overfull \hbox (13.26628pt too wide) in paragraph at lines 2683--2685 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (13.26628pt too wide) in paragraph at lines 2685--2687 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (1.32634pt too wide) in paragraph at lines 2687--2689 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]intersection[] Overfull \hbox (9.91534pt too wide) in paragraph at lines 2689--2691 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]bounded, [][]160[][] Overfull \hbox (6.57486pt too wide) in paragraph at lines 2691--2693 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]discrete, [][]160[][] Overfull \hbox (17.98616pt too wide) in paragraph at lines 2693--2695 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]disjoint[][][]from[] Overfull \hbox (0.47513pt too wide) in paragraph at lines 2695--2697 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]empty, [][]160[][] Overfull \hbox (17.71623pt too wide) in paragraph at lines 2697--2699 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]topologically[] Overfull \hbox (8.95512pt too wide) in paragraph at lines 2699--2701 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]universe, [][]160[][] Overfull \hbox (0.4964pt too wide) in paragraph at lines 2701--2703 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (0.4964pt too wide) in paragraph at lines 2703--2705 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (13.03535pt too wide) in paragraph at lines 2703--2705 \OT1/ptm/bc/n/10 M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens, [ ][]167[][] Overfull \hbox (9.94635pt too wide) in paragraph at lines 2705--2707 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (9.94635pt too wide) in paragraph at lines 2707--2709 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (8.44469pt too wide) in paragraph at lines 2709--2711 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]linear[][][]partition, Overfull \hbox (1.29666pt too wide) in paragraph at lines 2711--2713 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]map[][][]space[][][] Overfull \hbox (4.645pt too wide) in paragraph at lines 2713--2715 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]maximize, [][]161[][] Overfull \hbox (15.48625pt too wide) in paragraph at lines 2715--2717 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]maximize[][][]with[] Overfull \hbox (2.98495pt too wide) in paragraph at lines 2717--2719 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]minimize, [][]161[][] Overfull \hbox (13.8262pt too wide) in paragraph at lines 2719--2721 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]minimize[][][]with[] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2721--2723 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2723--2725 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2725--2727 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2727--2729 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (6.59637pt too wide) in paragraph at lines 2729--2731 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]relation[][][]with[] Overfull \hbox (6.59637pt too wide) in paragraph at lines 2731--2733 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]relation[][][]with[] Overfull \hbox (6.59637pt too wide) in paragraph at lines 2733--2735 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]relation[][][]with[] [292] Overfull \hbox (13.50682pt too wide) in paragraph at lines 2735--2737 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]remove[][][]higher[] Overfull \hbox (10.16675pt too wide) in paragraph at lines 2737--2739 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]remove[][][]space[] Overfull \hbox (13.2763pt too wide) in paragraph at lines 2739--2741 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]simplify[][][]using[] Overfull \hbox (15.66483pt too wide) in paragraph at lines 2741--2743 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]space[][][]dimension, Overfull \hbox (19.37602pt too wide) in paragraph at lines 2743--2745 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]strictly[][][]contains[] Overfull \hbox (1.03633pt too wide) in paragraph at lines 2745--2747 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]time[][][]elapse[] Overfull \hbox (3.26656pt too wide) in paragraph at lines 2747--2749 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]topological[][][] Overfull \hbox (9.3764pt too wide) in paragraph at lines 2749--2751 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]total[][][]memory[] Overfull \hbox (1.32661pt too wide) in paragraph at lines 2751--2753 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]unconstrain[] Overfull \hbox (1.32661pt too wide) in paragraph at lines 2753--2755 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]unconstrain[] Overfull \hbox (6.037pt too wide) in paragraph at lines 2755--2757 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (6.037pt too wide) in paragraph at lines 2757--2759 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (14.00491pt too wide) in paragraph at lines 2759--2761 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]widening[][][]assign, Overfull \hbox (20.48642pt too wide) in paragraph at lines 2761--2763 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]widening[][][]assign[] Overfull \hbox (13.7951pt too wide) in paragraph at lines 2763--2765 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]wrap[][][]assign, [][]168[][] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2765--2767 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2767--2769 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2769--2771 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2771--2773 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (2.70653pt too wide) in paragraph at lines 2773--2775 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][] []class[][][]from[] Overfull \hbox (3.80508pt too wide) in paragraph at lines 2777--2779 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class, [][]171[][] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2783--2785 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2785--2787 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.73547pt too wide) in paragraph at lines 2785--2787 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity, [][]158[][] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2787--2789 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2789--2791 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.17542pt too wide) in paragraph at lines 2789--2791 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity, [][]158[][] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2791--2793 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]C[] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2793--2795 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]C[] Overfull \hbox (46.03653pt too wide) in paragraph at lines 2795--2797 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Congruence[] Overfull \hbox (39.38622pt too wide) in paragraph at lines 2797--2799 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Constraint[] Overfull \hbox (37.69643pt too wide) in paragraph at lines 2799--2801 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Generator[] Overfull \hbox (9.56514pt too wide) in paragraph at lines 2801--2803 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Grid, Overfull \hbox (16.04665pt too wide) in paragraph at lines 2803--2805 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Grid[] Overfull \hbox (4.9368pt too wide) in paragraph at lines 2805--2807 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]N[] Overfull \hbox (4.9368pt too wide) in paragraph at lines 2807--2809 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]N[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2809--2811 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2811--2813 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2813--2815 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2815--2817 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (31.60631pt too wide) in paragraph at lines 2817--2819 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (31.60631pt too wide) in paragraph at lines 2819--2821 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (19.92654pt too wide) in paragraph at lines 2821--2823 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][]space[] Overfull \hbox (3.39673pt too wide) in paragraph at lines 2823--2825 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]recycle[] Overfull \hbox (3.39673pt too wide) in paragraph at lines 2825--2827 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]recycle[] Overfull \hbox (3.39673pt too wide) in paragraph at lines 2827--2829 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]recycle[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2829--2831 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2831--2833 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2833--2835 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2835--2837 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (13.27629pt too wide) in paragraph at lines 2837--2839 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (13.27629pt too wide) in paragraph at lines 2839--2841 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (11.05632pt too wide) in paragraph at lines 2841--2843 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (11.05632pt too wide) in paragraph at lines 2843--2845 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (0.65445pt too wide) in paragraph at lines 2845--2846 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t ime[][][]elapse[][][]assign [293] Overfull \hbox (12.14618pt too wide) in paragraph at lines 2848--2849 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t opological[][][]closure[] Overfull \hbox (0.7563pt too wide) in paragraph at lines 2851--2852 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t otal[][][]memory[][][]in[] Overfull \hbox (7.13634pt too wide) in paragraph at lines 2854--2855 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (7.13634pt too wide) in paragraph at lines 2857--2858 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (5.65512pt too wide) in paragraph at lines 2860--2861 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign Overfull \hbox (14.63663pt too wide) in paragraph at lines 2863--2864 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign[] Overfull \hbox (0.48642pt too wide) in paragraph at lines 2869--2870 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign[] Overfull \hbox (2.33504pt too wide) in paragraph at lines 2877--2878 []\OT1/ptm/bc/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]d imensions[][][]and[][][]embed Overfull \hbox (1.05676pt too wide) in paragraph at lines 2887--2889 []| \OT1/ptm/bc/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][ ]dimensions[][][]and[] Overfull \hbox (16.89503pt too wide) in paragraph at lines 2898--2900 []| \OT1/ptm/bc/n/10 ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][]get[][ ][]parametric[][][]values, [][]176[][] Overfull \hbox (0.82666pt too wide) in paragraph at lines 2902--2903 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]B[]H[] Overfull \hbox (4.15674pt too wide) in paragraph at lines 2905--2906 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]H79[] Overfull \hbox (1.37671pt too wide) in paragraph at lines 2908--2909 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]B[]H[] Overfull \hbox (4.70679pt too wide) in paragraph at lines 2911--2912 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]H79[] Overfull \hbox (9.0351pt too wide) in paragraph at lines 2917--2918 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruence Overfull \hbox (12.92499pt too wide) in paragraph at lines 2920--2921 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruences Overfull \hbox (2.38478pt too wide) in paragraph at lines 2923--2924 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraint Overfull \hbox (6.27467pt too wide) in paragraph at lines 2926--2927 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraints Overfull \hbox (43.296pt too wide) in paragraph at lines 2932--2933 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[] Overfull \hbox (43.296pt too wide) in paragraph at lines 2935--2936 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[] Overfull \hbox (12.69472pt too wide) in paragraph at lines 2938--2939 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]dimension Overfull \hbox (8.23477pt too wide) in paragraph at lines 2944--2945 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]preimage Overfull \hbox (14.44666pt too wide) in paragraph at lines 2953--2954 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[] Overfull \hbox (14.44666pt too wide) in paragraph at lines 2956--2957 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[] Overfull \hbox (5.81664pt too wide) in paragraph at lines 2959--2960 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[] Overfull \hbox (5.81664pt too wide) in paragraph at lines 2962--2963 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[] Overfull \hbox (1.08636pt too wide) in paragraph at lines 2965--2966 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]concatenate[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2968--2969 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2969--2971 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2971--2972 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2972--2974 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2974--2975 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2975--2977 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] [294] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2977--2978 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2978--2980 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2980--2981 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2981--2983 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2983--2984 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2984--2986 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2986--2988 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2988--2990 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2990--2992 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2992--2994 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2994--2996 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2996--2998 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2998--3000 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (1.36655pt too wide) in paragraph at lines 3000--3002 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[] [][][]Polyhedron[][][] Overfull \hbox (15.00658pt too wide) in paragraph at lines 3002--3004 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]const[] Overfull \hbox (15.00658pt too wide) in paragraph at lines 3004--3006 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]const[] Overfull \hbox (23.04594pt too wide) in paragraph at lines 3009--3010 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][][]Pointset[] Overfull \hbox (18.43622pt too wide) in paragraph at lines 3012--3013 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][]integer[] Overfull \hbox (13.78458pt too wide) in paragraph at lines 3015--3016 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]difference[][][]assign Overfull \hbox (2.39479pt too wide) in paragraph at lines 3021--3022 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjuncts Overfull \hbox (0.52663pt too wide) in paragraph at lines 3024--3025 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][] Overfull \hbox (0.52663pt too wide) in paragraph at lines 3027--3028 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][] Overfull \hbox (15.26605pt too wide) in paragraph at lines 3030--3031 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]equals[][][][]Pointset[] Overfull \hbox (8.42664pt too wide) in paragraph at lines 3033--3034 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]expand[][][]space[] Overfull \hbox (22.87628pt too wide) in paragraph at lines 3036--3037 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]external[][][]memory[] Overfull \hbox (35.9844pt too wide) in paragraph at lines 3039--3040 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]fold[][][]space[][][]dimensions Overfull \hbox (3.57639pt too wide) in paragraph at lines 3042--3043 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (3.57639pt too wide) in paragraph at lines 3045--3046 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (3.57639pt too wide) in paragraph at lines 3048--3049 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (3.57639pt too wide) in paragraph at lines 3051--3052 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (8.87611pt too wide) in paragraph at lines 3054--3055 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[] Overfull \hbox (8.87611pt too wide) in paragraph at lines 3057--3058 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[] Overfull \hbox (0.54617pt too wide) in paragraph at lines 3060--3061 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]intersection[] Overfull \hbox (17.206pt too wide) in paragraph at lines 3069--3070 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]disjoint[][][]from[] Overfull \hbox (16.93607pt too wide) in paragraph at lines 3075--3076 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]topologically[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3082--3084 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (19.03441pt too wide) in paragraph at lines 3084--3085 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]decrement Overfull \hbox (2.7664pt too wide) in paragraph at lines 3085--3087 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (24.01442pt too wide) in paragraph at lines 3087--3088 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]dereference Overfull \hbox (2.7664pt too wide) in paragraph at lines 3088--3090 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] [295] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3091--3093 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (8.02618pt too wide) in paragraph at lines 3093--3094 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]equal[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3094--3096 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (17.37436pt too wide) in paragraph at lines 3096--3097 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]increment Overfull \hbox (2.7664pt too wide) in paragraph at lines 3097--3099 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (9.12476pt too wide) in paragraph at lines 3099--3101 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]tag, [][]180[][] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3101--3103 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3103--3105 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3105--3107 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3107--3109 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3109--3111 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3111--3113 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (1.36655pt too wide) in paragraph at lines 3113--3115 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[] [][][]Polyhedron[][][] Overfull \hbox (16.29482pt too wide) in paragraph at lines 3115--3117 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]iterator, Overfull \hbox (22.77632pt too wide) in paragraph at lines 3117--3119 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]iterator[] Overfull \hbox (0.5165pt too wide) in paragraph at lines 3119--3120 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]map[][][]space[][][] Overfull \hbox (14.70609pt too wide) in paragraph at lines 3125--3126 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize[][][]with[] Overfull \hbox (13.04604pt too wide) in paragraph at lines 3131--3132 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize[][][]with[] Overfull \hbox (1.61514pt too wide) in paragraph at lines 3134--3135 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]omega[][][]reduce Overfull \hbox (9.0347pt too wide) in paragraph at lines 3137--3138 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]pairwise[][][]reduce Overfull \hbox (1.63647pt too wide) in paragraph at lines 3140--3141 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (1.63647pt too wide) in paragraph at lines 3143--3144 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (1.63647pt too wide) in paragraph at lines 3146--3147 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (1.63647pt too wide) in paragraph at lines 3149--3150 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (5.81621pt too wide) in paragraph at lines 3152--3153 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[] Overfull \hbox (5.81621pt too wide) in paragraph at lines 3155--3156 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[] Overfull \hbox (5.81621pt too wide) in paragraph at lines 3158--3159 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[] Overfull \hbox (12.72665pt too wide) in paragraph at lines 3161--3162 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]higher[] Overfull \hbox (9.38658pt too wide) in paragraph at lines 3164--3165 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]space[] Overfull \hbox (12.49614pt too wide) in paragraph at lines 3167--3168 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]simplify[][][]using[] Overfull \hbox (12.38466pt too wide) in paragraph at lines 3173--3174 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]space[][][]dimension Overfull \hbox (18.59586pt too wide) in paragraph at lines 3176--3177 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]strictly[][][]contains[] Overfull \hbox (3.33676pt too wide) in paragraph at lines 3181--3183 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]G[]P99[] Overfull \hbox (3.33676pt too wide) in paragraph at lines 3183--3185 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]G[]P99[] Overfull \hbox (3.88681pt too wide) in paragraph at lines 3185--3187 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]H[]Z03[] Overfull \hbox (1.58586pt too wide) in paragraph at lines 3185--3187 [][][]\OT1/ptm/bc/n/10 B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][]assi gn, [][]196[][] Overfull \hbox (3.88681pt too wide) in paragraph at lines 3187--3189 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]H[]Z03[] Overfull \hbox (31.5351pt too wide) in paragraph at lines 3191--3193 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]congruence, Overfull \hbox (35.42499pt too wide) in paragraph at lines 3193--3195 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]congruences, Overfull \hbox (24.88478pt too wide) in paragraph at lines 3195--3197 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]constraint, Overfull \hbox (28.77467pt too wide) in paragraph at lines 3197--3199 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]constraints, Overfull \hbox (17.11488pt too wide) in paragraph at lines 3199--3201 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]disjunct, Overfull \hbox (14.1366pt too wide) in paragraph at lines 3201--3203 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]space[] Overfull \hbox (14.1366pt too wide) in paragraph at lines 3203--3205 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]space[] [296] Overfull \hbox (12.11488pt too wide) in paragraph at lines 3211--3213 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]ascii[][][]dump, Overfull \hbox (6.55482pt too wide) in paragraph at lines 3213--3215 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]ascii[][][]load, Overfull \hbox (8.32687pt too wide) in paragraph at lines 3215--3217 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounded[] Overfull \hbox (8.32687pt too wide) in paragraph at lines 3217--3219 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounded[] Overfull \hbox (2.77682pt too wide) in paragraph at lines 3219--3221 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounds[] Overfull \hbox (2.77682pt too wide) in paragraph at lines 3221--3223 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounds[] Overfull \hbox (21.08636pt too wide) in paragraph at lines 3223--3225 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]concatenate[] Overfull \hbox (7.95483pt too wide) in paragraph at lines 3225--3227 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]constrains, Overfull \hbox (7.21649pt too wide) in paragraph at lines 3227--3229 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]contains[] Overfull \hbox (7.21649pt too wide) in paragraph at lines 3229--3231 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]contains[] Overfull \hbox (14.16646pt too wide) in paragraph at lines 3231--3233 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]difference[] Overfull \hbox (21.0049pt too wide) in paragraph at lines 3233--3235 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]disjunct, Overfull \hbox (24.89479pt too wide) in paragraph at lines 3235--3237 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]disjuncts, Overfull \hbox (16.92662pt too wide) in paragraph at lines 3237--3239 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]some[] Overfull \hbox (16.92662pt too wide) in paragraph at lines 3239--3241 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]some[] Overfull \hbox (3.0366pt too wide) in paragraph at lines 3241--3243 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]equals[][][] Overfull \hbox (2.61691pt too wide) in paragraph at lines 3243--3245 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]expand[] Overfull \hbox (5.9466pt too wide) in paragraph at lines 3245--3247 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]external[] Overfull \hbox (15.8065pt too wide) in paragraph at lines 3247--3249 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]fold[][][]space[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3249--3251 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3251--3253 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3253--3255 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3255--3257 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (28.87611pt too wide) in paragraph at lines 3257--3259 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]geometrically[] Overfull \hbox (16.8455pt too wide) in paragraph at lines 3257--3259 [][]\OT1/ptm/bc/n/10 covers[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Pol yhedron, [][]186[][] Overfull \hbox (28.87611pt too wide) in paragraph at lines 3259--3261 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]geometrically[] Overfull \hbox (16.59525pt too wide) in paragraph at lines 3259--3261 [][]\OT1/ptm/bc/n/10 equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Pol yhedron, [][]186[][] Overfull \hbox (20.54617pt too wide) in paragraph at lines 3261--3263 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]intersection[] Overfull \hbox (12.11516pt too wide) in paragraph at lines 3263--3265 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]bounded, Overfull \hbox (8.77467pt too wide) in paragraph at lines 3265--3267 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]discrete, Overfull \hbox (14.16618pt too wide) in paragraph at lines 3267--3269 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]disjoint[] Overfull \hbox (10.48538pt too wide) in paragraph at lines 3267--3269 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyh edron, [][]191[][] Overfull \hbox (2.67494pt too wide) in paragraph at lines 3269--3271 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]empty, Overfull \hbox (36.93607pt too wide) in paragraph at lines 3271--3273 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]topologically[] Overfull \hbox (11.15494pt too wide) in paragraph at lines 3273--3275 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]universe, Overfull \hbox (16.91649pt too wide) in paragraph at lines 3275--3277 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]map[][][]space[] Overfull \hbox (6.84482pt too wide) in paragraph at lines 3277--3279 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]maximize, Overfull \hbox (13.32632pt too wide) in paragraph at lines 3279--3281 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]maximize[] Overfull \hbox (5.18477pt too wide) in paragraph at lines 3281--3283 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]minimize, Overfull \hbox (11.66628pt too wide) in paragraph at lines 3283--3285 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]minimize[] Overfull \hbox (0.34686pt too wide) in paragraph at lines 3285--3287 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]omega[] Overfull \hbox (7.76642pt too wide) in paragraph at lines 3287--3289 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]pairwise[] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3289--3291 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3291--3293 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3293--3295 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3295--3297 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (4.43645pt too wide) in paragraph at lines 3297--3299 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]relation[] Overfull \hbox (4.43645pt too wide) in paragraph at lines 3299--3301 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]relation[] Overfull \hbox (4.43645pt too wide) in paragraph at lines 3301--3303 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]relation[] Overfull \hbox (3.57686pt too wide) in paragraph at lines 3303--3305 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]remove[] Overfull \hbox (3.57686pt too wide) in paragraph at lines 3305--3307 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]remove[] Overfull \hbox (7.22635pt too wide) in paragraph at lines 3307--3309 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]simplify[] Overfull \hbox (34.88466pt too wide) in paragraph at lines 3311--3313 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]space[][][]dimension, [297] Overfull \hbox (1.66629pt too wide) in paragraph at lines 3313--3315 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]strictly[] Overfull \hbox (7.35512pt too wide) in paragraph at lines 3313--3315 [][]\OT1/ptm/bc/n/10 contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron, Overfull \hbox (20.25616pt too wide) in paragraph at lines 3315--3317 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]time[][][]elapse[] Overfull \hbox (18.88638pt too wide) in paragraph at lines 3317--3319 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]topological[] Overfull \hbox (28.59624pt too wide) in paragraph at lines 3319--3321 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]total[][][]memory[] Overfull \hbox (20.54645pt too wide) in paragraph at lines 3321--3323 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]unconstrain[] Overfull \hbox (20.54645pt too wide) in paragraph at lines 3323--3325 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]unconstrain[] Overfull \hbox (0.25684pt too wide) in paragraph at lines 3325--3327 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]upper[][][] Overfull \hbox (0.25684pt too wide) in paragraph at lines 3327--3329 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]upper[][][] Overfull \hbox (8.30505pt too wide) in paragraph at lines 3329--3331 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[] [][][]Polyhedron, [][]187[][] Overfull \hbox (6.0049pt too wide) in paragraph at lines 3331--3333 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron, Overfull \hbox (1.00502pt too wide) in paragraph at lines 3333--3335 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][ ][][]C[][][][]Polyhedron, Overfull \hbox (14.69508pt too wide) in paragraph at lines 3335--3337 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron, [][]196[][] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3337--3339 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3339--3341 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3341--3343 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3343--3345 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3345--3347 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3347--3349 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (1.88683pt too wide) in paragraph at lines 3347--3349 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[][][ ]with[][][] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3349--3351 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (0.25616pt too wide) in paragraph at lines 3351--3352 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]time[][][]elapse[] Overfull \hbox (2.48639pt too wide) in paragraph at lines 3354--3355 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]topological[][][] Overfull \hbox (8.59624pt too wide) in paragraph at lines 3357--3358 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]total[][][]memory[] Overfull \hbox (0.54645pt too wide) in paragraph at lines 3360--3361 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[] Overfull \hbox (0.54645pt too wide) in paragraph at lines 3363--3364 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[] Overfull \hbox (5.25684pt too wide) in paragraph at lines 3366--3367 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[] Overfull \hbox (5.25684pt too wide) in paragraph at lines 3369--3370 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[] Overfull \hbox (1.37671pt too wide) in paragraph at lines 3372--3373 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3373--3375 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (1.37671pt too wide) in paragraph at lines 3375--3376 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3376--3378 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (1.92676pt too wide) in paragraph at lines 3378--3379 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3379--3381 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (1.92676pt too wide) in paragraph at lines 3381--3382 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3382--3384 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3385--3387 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (23.47504pt too wide) in paragraph at lines 3387--3388 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruence Overfull \hbox (11.08522pt too wide) in paragraph at lines 3388--3390 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (27.36493pt too wide) in paragraph at lines 3390--3391 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruences Overfull \hbox (11.08522pt too wide) in paragraph at lines 3391--3393 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (16.82472pt too wide) in paragraph at lines 3393--3394 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraint Overfull \hbox (11.08522pt too wide) in paragraph at lines 3394--3396 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (20.71461pt too wide) in paragraph at lines 3396--3397 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraints Overfull \hbox (11.08522pt too wide) in paragraph at lines 3397--3399 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (9.05482pt too wide) in paragraph at lines 3399--3400 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]disjunct Overfull \hbox (11.08522pt too wide) in paragraph at lines 3400--3402 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (8.57654pt too wide) in paragraph at lines 3402--3403 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3403--3405 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (8.57654pt too wide) in paragraph at lines 3405--3406 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3406--3408 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (27.13466pt too wide) in paragraph at lines 3408--3409 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]dimension Overfull \hbox (11.08522pt too wide) in paragraph at lines 3409--3411 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (9.90482pt too wide) in paragraph at lines 3411--3412 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]image Overfull \hbox (11.08522pt too wide) in paragraph at lines 3412--3414 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (22.67471pt too wide) in paragraph at lines 3414--3415 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]preimage Overfull \hbox (11.08522pt too wide) in paragraph at lines 3415--3417 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (4.05482pt too wide) in paragraph at lines 3417--3418 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]dump Overfull \hbox (11.08522pt too wide) in paragraph at lines 3418--3420 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]215[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3421--3423 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]215[][] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3423--3424 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3424--3426 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3426--3427 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3427--3429 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (0.81677pt too wide) in paragraph at lines 3429--3430 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3430--3432 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] [298] Overfull \hbox (0.81677pt too wide) in paragraph at lines 3432--3433 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3433--3435 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (15.5263pt too wide) in paragraph at lines 3435--3436 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]concatenate[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3436--3438 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3438--3439 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3439--3441 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3441--3442 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3442--3444 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3444--3445 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3445--3447 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3447--3448 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3448--3450 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3450--3451 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3451--3453 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3453--3454 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3454--3456 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3456--3458 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3458--3460 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3460--3462 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3462--3464 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3464--3466 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3466--3468 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3468--3470 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (12.20648pt too wide) in paragraph at lines 3470--3472 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3472--3474 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3474--3476 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3477--3479 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (1.65643pt too wide) in paragraph at lines 3479--3480 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3480--3482 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (1.65643pt too wide) in paragraph at lines 3482--3483 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3483--3485 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (8.6064pt too wide) in paragraph at lines 3485--3486 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]difference[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3486--3488 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (12.94484pt too wide) in paragraph at lines 3488--3489 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjunct Overfull \hbox (11.08522pt too wide) in paragraph at lines 3489--3491 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (16.83473pt too wide) in paragraph at lines 3491--3492 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjuncts Overfull \hbox (11.08522pt too wide) in paragraph at lines 3492--3494 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (11.36656pt too wide) in paragraph at lines 3494--3495 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3495--3497 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (11.36656pt too wide) in paragraph at lines 3497--3498 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3498--3500 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (29.706pt too wide) in paragraph at lines 3500--3501 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]equals[][][][]Pointset[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3501--3503 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (0.65686pt too wide) in paragraph at lines 3503--3504 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]expand[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3504--3506 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (0.38654pt too wide) in paragraph at lines 3506--3507 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]external[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3507--3509 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (10.24644pt too wide) in paragraph at lines 3509--3510 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]fold[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3510--3512 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3512--3513 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3513--3515 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3515--3516 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3516--3518 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3518--3519 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3519--3521 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3521--3522 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3522--3524 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (23.31606pt too wide) in paragraph at lines 3524--3525 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[] Overfull \hbox (11.76543pt too wide) in paragraph at lines 3524--3525 [][]\OT1/ptm/bc/n/10 covers[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron Overfull \hbox (11.08522pt too wide) in paragraph at lines 3525--3527 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (23.31606pt too wide) in paragraph at lines 3527--3528 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[] Overfull \hbox (11.51517pt too wide) in paragraph at lines 3527--3528 [][]\OT1/ptm/bc/n/10 equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron Overfull \hbox (11.08522pt too wide) in paragraph at lines 3528--3530 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (14.98611pt too wide) in paragraph at lines 3530--3531 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]intersection[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3531--3533 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (4.0551pt too wide) in paragraph at lines 3533--3534 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]bounded Overfull \hbox (11.08522pt too wide) in paragraph at lines 3534--3536 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (0.71461pt too wide) in paragraph at lines 3536--3537 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]discrete [299] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3537--3539 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (8.60612pt too wide) in paragraph at lines 3539--3540 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]disjoint[] Overfull \hbox (5.4053pt too wide) in paragraph at lines 3539--3540 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron Overfull \hbox (11.08522pt too wide) in paragraph at lines 3540--3542 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3543--3545 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (31.376pt too wide) in paragraph at lines 3545--3546 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]topologically[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3546--3548 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (3.09488pt too wide) in paragraph at lines 3548--3549 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]universe Overfull \hbox (11.08522pt too wide) in paragraph at lines 3549--3551 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3551--3552 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3552--3554 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3554--3555 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3555--3557 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3557--3558 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3558--3560 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3560--3561 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3561--3563 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3563--3564 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3564--3566 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3566--3567 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3567--3569 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3569--3571 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3571--3573 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3573--3575 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3575--3577 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3577--3579 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3579--3581 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3581--3583 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (12.20648pt too wide) in paragraph at lines 3583--3585 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3585--3587 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3587--3589 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (11.35643pt too wide) in paragraph at lines 3589--3590 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]map[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3590--3592 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3593--3595 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (7.76627pt too wide) in paragraph at lines 3595--3596 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3596--3598 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3599--3601 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (6.10622pt too wide) in paragraph at lines 3601--3602 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3602--3604 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (16.05508pt too wide) in paragraph at lines 3604--3605 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]omega[][][]reduce Overfull \hbox (11.08522pt too wide) in paragraph at lines 3605--3607 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (2.20636pt too wide) in paragraph at lines 3607--3608 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]pairwise[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3608--3610 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3610--3611 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3611--3613 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3613--3614 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3614--3616 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3616--3617 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3617--3619 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3619--3620 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3620--3622 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (2.4764pt too wide) in paragraph at lines 3622--3623 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3623--3625 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (2.4764pt too wide) in paragraph at lines 3625--3626 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3626--3628 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (2.4764pt too wide) in paragraph at lines 3628--3629 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3629--3631 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (1.6168pt too wide) in paragraph at lines 3631--3632 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3632--3634 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (1.6168pt too wide) in paragraph at lines 3634--3635 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3635--3637 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (1.66629pt too wide) in paragraph at lines 3637--3638 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]simplify[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3638--3640 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3641--3643 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (26.8246pt too wide) in paragraph at lines 3643--3644 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]space[][][]dimension Overfull \hbox (11.08522pt too wide) in paragraph at lines 3644--3646 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (33.0358pt too wide) in paragraph at lines 3646--3647 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]strictly[][][]contains[] [300] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3647--3649 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (2.21677pt too wide) in paragraph at lines 3651--3653 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]G[] Overfull \hbox (2.21677pt too wide) in paragraph at lines 3653--3655 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]G[] Overfull \hbox (2.21677pt too wide) in paragraph at lines 3655--3657 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]H[] Overfull \hbox (1.2758pt too wide) in paragraph at lines 3655--3657 \OT1/ptm/bc/n/10 Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign, Overfull \hbox (2.21677pt too wide) in paragraph at lines 3657--3659 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]H[] Overfull \hbox (13.18533pt too wide) in paragraph at lines 3659--3661 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]OK, [][]208[][] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3661--3663 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3663--3665 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3665--3667 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3667--3669 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3669--3671 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3671--3673 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3673--3675 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (10.84665pt too wide) in paragraph at lines 3675--3677 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]affine[] Overfull \hbox (10.84665pt too wide) in paragraph at lines 3677--3679 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]affine[] Overfull \hbox (10.84665pt too wide) in paragraph at lines 3679--3681 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]affine[] Overfull \hbox (6.65643pt too wide) in paragraph at lines 3681--3683 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]ascii[] Overfull \hbox (6.65643pt too wide) in paragraph at lines 3683--3685 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]ascii[] Overfull \hbox (22.76682pt too wide) in paragraph at lines 3685--3687 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounded[] Overfull \hbox (22.76682pt too wide) in paragraph at lines 3687--3689 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounded[] Overfull \hbox (17.21677pt too wide) in paragraph at lines 3689--3691 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounds[] Overfull \hbox (17.21677pt too wide) in paragraph at lines 3691--3693 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounds[] Overfull \hbox (35.5263pt too wide) in paragraph at lines 3693--3695 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]concatenate[] Overfull \hbox (22.39478pt too wide) in paragraph at lines 3695--3697 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]constrains, Overfull \hbox (21.65643pt too wide) in paragraph at lines 3697--3699 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]contains[] Overfull \hbox (1.88551pt too wide) in paragraph at lines 3697--3699 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedro n, [][]208[][] Overfull \hbox (21.65643pt too wide) in paragraph at lines 3699--3701 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]contains[] Overfull \hbox (28.6064pt too wide) in paragraph at lines 3701--3703 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]difference[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3703--3705 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3705--3707 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3707--3709 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3709--3711 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (13.87654pt too wide) in paragraph at lines 3711--3713 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]equals[] Overfull \hbox (1.88551pt too wide) in paragraph at lines 3711--3713 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedro n, [][]208[][] Overfull \hbox (17.05685pt too wide) in paragraph at lines 3713--3715 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]expand[] Overfull \hbox (20.38654pt too wide) in paragraph at lines 3715--3717 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]external[] Overfull \hbox (4.43672pt too wide) in paragraph at lines 3717--3719 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]fold[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3719--3721 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3721--3723 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3723--3725 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3725--3727 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (43.31606pt too wide) in paragraph at lines 3727--3729 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]geometrically[] Overfull \hbox (14.26543pt too wide) in paragraph at lines 3727--3729 [][]\OT1/ptm/bc/n/10 covers[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron, Overfull \hbox (43.31606pt too wide) in paragraph at lines 3729--3731 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]geometrically[] Overfull \hbox (14.01517pt too wide) in paragraph at lines 3729--3731 [][]\OT1/ptm/bc/n/10 equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron, Overfull \hbox (34.98611pt too wide) in paragraph at lines 3731--3733 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]intersection[] Overfull \hbox (26.5551pt too wide) in paragraph at lines 3733--3735 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]bounded, Overfull \hbox (23.21461pt too wide) in paragraph at lines 3735--3737 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]discrete, Overfull \hbox (28.60612pt too wide) in paragraph at lines 3737--3739 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]disjoint[] Overfull \hbox (7.9053pt too wide) in paragraph at lines 3737--3739 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron, Overfull \hbox (17.11488pt too wide) in paragraph at lines 3739--3741 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]empty, Overfull \hbox (51.376pt too wide) in paragraph at lines 3741--3743 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]topologically[] Overfull \hbox (25.59488pt too wide) in paragraph at lines 3743--3745 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]universe, Overfull \hbox (5.5467pt too wide) in paragraph at lines 3745--3747 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]map[] Overfull \hbox (21.28476pt too wide) in paragraph at lines 3747--3749 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]maximize, Overfull \hbox (27.76627pt too wide) in paragraph at lines 3749--3751 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]maximize[] Overfull \hbox (19.62471pt too wide) in paragraph at lines 3751--3753 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]minimize, [301] Overfull \hbox (26.10622pt too wide) in paragraph at lines 3753--3755 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]minimize[] Overfull \hbox (14.7868pt too wide) in paragraph at lines 3755--3757 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]omega[] Overfull \hbox (22.20636pt too wide) in paragraph at lines 3757--3759 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]pairwise[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3759--3761 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3761--3763 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3763--3765 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3765--3767 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (18.87639pt too wide) in paragraph at lines 3767--3769 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]relation[] Overfull \hbox (18.87639pt too wide) in paragraph at lines 3769--3771 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]relation[] Overfull \hbox (18.87639pt too wide) in paragraph at lines 3771--3773 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]relation[] Overfull \hbox (18.0168pt too wide) in paragraph at lines 3773--3775 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]remove[] Overfull \hbox (18.0168pt too wide) in paragraph at lines 3775--3777 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]remove[] Overfull \hbox (21.66629pt too wide) in paragraph at lines 3777--3779 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]simplify[] Overfull \hbox (14.41505pt too wide) in paragraph at lines 3779--3781 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]size, [][]213[][] Overfull \hbox (10.53659pt too wide) in paragraph at lines 3781--3783 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]space[] Overfull \hbox (16.10623pt too wide) in paragraph at lines 3783--3785 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]strictly[] Overfull \hbox (21.79506pt too wide) in paragraph at lines 3783--3785 [][]\OT1/ptm/bc/n/10 contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][ ][][]Polyhedron, Overfull \hbox (6.10649pt too wide) in paragraph at lines 3785--3787 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]time[] Overfull \hbox (33.32632pt too wide) in paragraph at lines 3787--3789 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]topological[] Overfull \hbox (6.10649pt too wide) in paragraph at lines 3789--3791 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]total[] Overfull \hbox (34.98639pt too wide) in paragraph at lines 3791--3793 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]unconstrain[] Overfull \hbox (34.98639pt too wide) in paragraph at lines 3793--3795 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]unconstrain[] Overfull \hbox (11.09677pt too wide) in paragraph at lines 3795--3797 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]upper[] Overfull \hbox (11.09677pt too wide) in paragraph at lines 3797--3799 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]upper[] Overfull \hbox (5.72498pt too wide) in paragraph at lines 3799--3801 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron, Overfull \hbox (20.44484pt too wide) in paragraph at lines 3801--3803 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (15.44496pt too wide) in paragraph at lines 3803--3805 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][ ][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (12.115pt too wide) in paragraph at lines 3805--3807 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][] [][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (4.73679pt too wide) in paragraph at lines 3807--3809 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3809--3811 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3811--3813 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3813--3815 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (1.89563pt too wide) in paragraph at lines 3813--3815 [][]\OT1/ptm/bc/n/10 from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]compl exity, Overfull \hbox (4.73679pt too wide) in paragraph at lines 3815--3817 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (7.9053pt too wide) in paragraph at lines 3815--3817 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron, Overfull \hbox (4.73679pt too wide) in paragraph at lines 3817--3819 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (14.38681pt too wide) in paragraph at lines 3817--3819 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3819--3821 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (14.6961pt too wide) in paragraph at lines 3821--3822 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]time[][][]elapse[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3822--3824 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (13.32632pt too wide) in paragraph at lines 3824--3825 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]topological[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3825--3827 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (23.03618pt too wide) in paragraph at lines 3827--3828 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]total[][][]memory[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3828--3830 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (14.98639pt too wide) in paragraph at lines 3830--3831 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3831--3833 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (14.98639pt too wide) in paragraph at lines 3833--3834 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3834--3836 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (19.69678pt too wide) in paragraph at lines 3836--3837 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3837--3839 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (19.69678pt too wide) in paragraph at lines 3839--3840 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3840--3842 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (15.87514pt too wide) in paragraph at lines 3844--3845 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign[][][]with[][][]tokens [302] Overfull \hbox (2.30722pt too wide) in paragraph at lines 3884--3885 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][] Overfull \hbox (2.30722pt too wide) in paragraph at lines 3886--3887 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][] Overfull \hbox (7.85701pt too wide) in paragraph at lines 3890--3891 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign[] Overfull \hbox (2.90495pt too wide) in paragraph at lines 3930--3931 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage[][][]lhs[][][]rhs Overfull \hbox (12.2248pt too wide) in paragraph at lines 3958--3959 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign Overfull \hbox (21.2063pt too wide) in paragraph at lines 3960--3961 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[] [303] Overfull \hbox (1.75647pt too wide) in paragraph at lines 3964--3965 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign[] Overfull \hbox (4.40565pt too wide) in paragraph at lines 4011--4013 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][ ][]assign, [][]243[][] Overfull \hbox (15.2469pt too wide) in paragraph at lines 4013--4015 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][ ][]assign[][][]with[] Overfull \hbox (18.92531pt too wide) in paragraph at lines 4017--4019 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign [][][]with[][][]tokens, Overfull \hbox (3.6558pt too wide) in paragraph at lines 4032--4034 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]add[][][]recycled[][][]congruen ces, [][]233[][] Overfull \hbox (19.00531pt too wide) in paragraph at lines 4038--4040 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[ ][][]and[][][]embed, Overfull \hbox (20.11516pt too wide) in paragraph at lines 4040--4042 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[ ][][]and[][][]project, Overfull \hbox (18.70721pt too wide) in paragraph at lines 4052--4054 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (18.70721pt too wide) in paragraph at lines 4054--4056 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (2.85739pt too wide) in paragraph at lines 4056--4058 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapo lation[][][] Overfull \hbox (2.85739pt too wide) in paragraph at lines 4058--4060 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapo lation[][][] Overfull \hbox (2.20561pt too wide) in paragraph at lines 4077--4079 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]in teger[][][]points, Overfull \hbox (8.68712pt too wide) in paragraph at lines 4079--4081 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]in teger[][][]points[] Overfull \hbox (3.39551pt too wide) in paragraph at lines 4085--4087 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]external[][][]memory[][][]in[][ ][]bytes, [][]233[][] Overfull \hbox (3.2967pt too wide) in paragraph at lines 4092--4094 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]im age[][][]lhs[] Overfull \hbox (11.33533pt too wide) in paragraph at lines 4094--4096 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]pr eimage, [][]237[][] Overfull \hbox (0.79681pt too wide) in paragraph at lines 4096--4098 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]pr eimage[] [304] Overfull \hbox (10.49533pt too wide) in paragraph at lines 4104--4106 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]congrue nces, [][]230[][] Overfull \hbox (3.84502pt too wide) in paragraph at lines 4106--4108 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]constra ints, [][]230[][] Overfull \hbox (2.16524pt too wide) in paragraph at lines 4108--4110 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]generat ors, [][]241[][] Overfull \hbox (11.34532pt too wide) in paragraph at lines 4116--4118 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][ ][]Polyhedron, [][]232[][] Overfull \hbox (12.60667pt too wide) in paragraph at lines 4124--4126 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (12.60667pt too wide) in paragraph at lines 4126--4128 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (15.27496pt too wide) in paragraph at lines 4128--4130 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapo lation[][][]assign, Overfull \hbox (21.75647pt too wide) in paragraph at lines 4130--4132 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapo lation[][][]assign[] Overfull \hbox (8.155pt too wide) in paragraph at lines 4148--4150 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]positive[][][]time[][][]elapse[ ][][]assign, [][]248[][] Overfull \hbox (2.16551pt too wide) in paragraph at lines 4158--4160 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][][]Congr uence, [][]248[][] Overfull \hbox (15.10536pt too wide) in paragraph at lines 4164--4166 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[] [][]dimensions, Overfull \hbox (2.97559pt too wide) in paragraph at lines 4166--4168 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]remove[][][]space[][][]dimensio ns, [][]238[][] Overfull \hbox (1.39511pt too wide) in paragraph at lines 4168--4170 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]contex t[][][]assign, Overfull \hbox (12.73518pt too wide) in paragraph at lines 4172--4174 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]strictly[][][]contains[][][][]P olyhedron, [][]232[][] Overfull \hbox (4.39523pt too wide) in paragraph at lines 4176--4178 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]topological[][][]closure[][][]a ssign, [][]235[][] Overfull \hbox (16.05528pt too wide) in paragraph at lines 4180--4182 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dim ension, [][]235[][] Overfull \hbox (2.92516pt too wide) in paragraph at lines 4182--4184 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dim ensions, Overfull \hbox (12.54573pt too wide) in paragraph at lines 4186--4188 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]upper[][][]bound[][][]assign[][ ][]if[][][]exact, [][]248[][] Overfull \hbox (15.12535pt too wide) in paragraph at lines 4190--4192 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[ ][][]tokens, [][]249[][] Overfull \hbox (20.70515pt too wide) in paragraph at lines 4194--4196 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]C[][][][]Polyhedron, Overfull \hbox (27.18666pt too wide) in paragraph at lines 4196--4198 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.1451pt too wide) in paragraph at lines 4198--4200 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (41.6266pt too wide) in paragraph at lines 4200--4202 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.48518pt too wide) in paragraph at lines 4202--4204 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]C[][][][]Polyhedron, Overfull \hbox (24.96669pt too wide) in paragraph at lines 4204--4206 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]C[][][][]Polyhedron[] Overfull \hbox (32.92513pt too wide) in paragraph at lines 4206--4208 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (39.40663pt too wide) in paragraph at lines 4208--4210 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (16.60555pt too wide) in paragraph at lines 4210--4212 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]C[][][][]Polyhedron[][][]from[][][] []C[][][][]Polyhedron, [][]226[][] Overfull \hbox (28.46541pt too wide) in paragraph at lines 4212--4214 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from [][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (4.40729pt too wide) in paragraph at lines 4221--4223 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (4.40729pt too wide) in paragraph at lines 4223--4225 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (3.84723pt too wide) in paragraph at lines 4225--4227 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (3.84723pt too wide) in paragraph at lines 4227--4229 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (8.01584pt too wide) in paragraph at lines 4229--4231 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C [][][][]Polyhedron, [][]225[][] Overfull \hbox (1.07733pt too wide) in paragraph at lines 4231--4233 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C [][][][]Polyhedron[][][] Overfull \hbox (15.98543pt too wide) in paragraph at lines 4233--4235 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C ongruence[][][][]System, Overfull \hbox (9.33511pt too wide) in paragraph at lines 4235--4237 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C onstraint[][][][]System, Overfull \hbox (7.64532pt too wide) in paragraph at lines 4237--4239 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]G enerator[][][][]System, Overfull \hbox (22.7753pt too wide) in paragraph at lines 4241--4243 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]G rid[][][]with[][][]complexity, Overfull \hbox (5.43576pt too wide) in paragraph at lines 4243--4245 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N []N[]C[][][][]Polyhedron, Overfull \hbox (11.91727pt too wide) in paragraph at lines 4245--4247 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N []N[]C[][][][]Polyhedron[] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4247--4249 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4249--4251 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4251--4253 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] [305] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4253--4255 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (5.7956pt too wide) in paragraph at lines 4255--4257 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]R ational[][][][]Box, [][]245[][] Overfull \hbox (16.63684pt too wide) in paragraph at lines 4257--4259 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]R ational[][][][]Box[][][]with[] Overfull \hbox (2.0954pt too wide) in paragraph at lines 4259--4261 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]spa ce[][][]dimension, Overfull \hbox (2.29729pt too wide) in paragraph at lines 4261--4263 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][] []Congruence[][][] Overfull \hbox (18.61502pt too wide) in paragraph at lines 4263--4265 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][] []Constraint[][][][]System, Overfull \hbox (16.92523pt too wide) in paragraph at lines 4265--4267 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][] []Generator[][][][]System, Overfull \hbox (1.06734pt too wide) in paragraph at lines 4267--4269 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (1.06734pt too wide) in paragraph at lines 4269--4271 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (1.06734pt too wide) in paragraph at lines 4271--4273 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (1.06734pt too wide) in paragraph at lines 4273--4275 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (5.43576pt too wide) in paragraph at lines 4275--4277 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]C[][][][]Polyhedron, Overfull \hbox (11.91727pt too wide) in paragraph at lines 4277--4279 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]C[][][][]Polyhedron[] Overfull \hbox (3.85732pt too wide) in paragraph at lines 4279--4281 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Congruence[] Overfull \hbox (0.807pt too wide) in paragraph at lines 4281--4283 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Constraint[][][] Overfull \hbox (22.08527pt too wide) in paragraph at lines 4283--4285 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Generator[][][][]System, Overfull \hbox (37.21524pt too wide) in paragraph at lines 4287--4289 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Grid[][][]with[][][]complexity, Overfull \hbox (19.8757pt too wide) in paragraph at lines 4289--4291 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (26.35721pt too wide) in paragraph at lines 4291--4293 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4293--4295 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4295--4297 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4297--4299 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4299--4301 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (3.21552pt too wide) in paragraph at lines 4301--4303 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box, Overfull \hbox (9.69702pt too wide) in paragraph at lines 4303--4305 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box[] Overfull \hbox (16.53534pt too wide) in paragraph at lines 4305--4307 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][]space[][][]dimension, Overfull \hbox (13.13722pt too wide) in paragraph at lines 4307--4309 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle [][][][]Congruence[] Overfull \hbox (6.48691pt too wide) in paragraph at lines 4309--4311 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle [][][][]Constraint[] Overfull \hbox (4.79712pt too wide) in paragraph at lines 4311--4313 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle [][][][]Generator[] Overfull \hbox (21.25548pt too wide) in paragraph at lines 4313--4315 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]C[][][][]Polyhedron, Overfull \hbox (27.73698pt too wide) in paragraph at lines 4315--4317 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.69542pt too wide) in paragraph at lines 4317--4319 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (42.17693pt too wide) in paragraph at lines 4319--4321 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (19.0355pt too wide) in paragraph at lines 4321--4323 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]C[][][][]Polyhedron, Overfull \hbox (25.51701pt too wide) in paragraph at lines 4323--4325 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]C[][][][]Polyhedron[] Overfull \hbox (33.47545pt too wide) in paragraph at lines 4325--4327 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (39.95695pt too wide) in paragraph at lines 4327--4329 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (4.67516pt too wide) in paragraph at lines 4333--4335 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]N[]N[]C[ ][][][]Polyhedron, [][]249[][] Overfull \hbox (13.27516pt too wide) in paragraph at lines 4335--4337 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]N[]N[]C[ ][][][]Polyhedron[][][]2, [][]251[][] Overfull \hbox (2.45518pt too wide) in paragraph at lines 4341--4343 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]N[]N[]C[ ][][][]Polyhedron, [][]250[][] Overfull \hbox (11.05519pt too wide) in paragraph at lines 4343--4345 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]N[]N[]C[ ][][][]Polyhedron[][][]2, [][]251[][] [306] Overfull \hbox (10.59486pt too wide) in paragraph at lines 4370--4371 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[] [][]assign[][][]with[][][]tokens Overfull \hbox (4.555pt too wide) in paragraph at lines 4386--4387 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]embed Overfull \hbox (5.66484pt too wide) in paragraph at lines 4388--4389 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]project Overfull \hbox (0.3368pt too wide) in paragraph at lines 4420--4421 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points[][][] Overfull \hbox (4.11629pt too wide) in paragraph at lines 4438--4439 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage[][][]lhs[] Overfull \hbox (6.94452pt too wide) in paragraph at lines 4466--4467 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign Overfull \hbox (15.92603pt too wide) in paragraph at lines 4468--4469 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign[] [307] Overfull \hbox (0.65504pt too wide) in paragraph at lines 4496--4497 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][] space[][][]dimensions Overfull \hbox (2.7554pt too wide) in paragraph at lines 4507--4509 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]narrowin g[][][]assign, [][]267[][] Overfull \hbox (9.96663pt too wide) in paragraph at lines 4511--4513 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening [][][]assign[][][]with[] Overfull \hbox (11.70549pt too wide) in paragraph at lines 4523--4525 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]recycled[][][ ]congruences, [][]268[][] Overfull \hbox (5.05518pt too wide) in paragraph at lines 4525--4527 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]recycled[][][ ]constraints, [][]268[][] Overfull \hbox (3.27672pt too wide) in paragraph at lines 4527--4529 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]di mensions[][][]and[] Overfull \hbox (3.27672pt too wide) in paragraph at lines 4529--4531 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]di mensions[][][]and[] Overfull \hbox (7.7355pt too wide) in paragraph at lines 4543--4545 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]bounded[][][]affine[][ ][]preimage, [][]265[][] Overfull \hbox (10.2553pt too wide) in paragraph at lines 4559--4561 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]no n[][][]integer[][][]points, Overfull \hbox (16.7368pt too wide) in paragraph at lines 4561--4563 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]no n[][][]integer[][][]points[] Overfull \hbox (6.17543pt too wide) in paragraph at lines 4565--4567 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]expand[][][]space[][][ ]dimension, [][]266[][] Overfull \hbox (11.44519pt too wide) in paragraph at lines 4567--4569 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]external[][][]memory[] [][]in[][][]bytes, [][]267[][] Overfull \hbox (6.61511pt too wide) in paragraph at lines 4573--4575 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]image, [][]265[][] Overfull \hbox (11.34639pt too wide) in paragraph at lines 4575--4577 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]image[][][]lhs[] Overfull \hbox (2.36499pt too wide) in paragraph at lines 4577--4579 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]preimage, Overfull \hbox (8.8465pt too wide) in paragraph at lines 4579--4581 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]preimage[] Overfull \hbox (1.525pt too wide) in paragraph at lines 4587--4589 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][] []congruences, Overfull \hbox (11.8947pt too wide) in paragraph at lines 4589--4591 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][] []constraints, [][]260[][] Overfull \hbox (0.23625pt too wide) in paragraph at lines 4599--4601 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint[][][] from[][][][]Rational[][][] Overfull \hbox (7.3264pt too wide) in paragraph at lines 4607--4609 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[ ][][]extrapolation[] Overfull \hbox (7.3264pt too wide) in paragraph at lines 4609--4611 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[ ][][]extrapolation[] Overfull \hbox (0.20547pt too wide) in paragraph at lines 4623--4625 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]refine[][][]with[][][] congruence, [][]263[][] Overfull \hbox (4.09537pt too wide) in paragraph at lines 4625--4627 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]refine[][][]with[][][] congruences, [][]263[][] Overfull \hbox (10.2152pt too wide) in paragraph at lines 4631--4633 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][] [][]Congruence, [][]259[][] Overfull \hbox (3.56488pt too wide) in paragraph at lines 4633--4635 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][] [][]Constraint, [][]259[][] [308] Overfull \hbox (1.87509pt too wide) in paragraph at lines 4635--4637 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][] [][]Generator, [][]259[][] Overfull \hbox (23.15504pt too wide) in paragraph at lines 4637--4639 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][] []space[][][]dimensions, Overfull \hbox (11.02527pt too wide) in paragraph at lines 4639--4641 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]space[][][ ]dimensions, [][]266[][] Overfull \hbox (9.4448pt too wide) in paragraph at lines 4641--4643 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][ ][]context[][][]assign, Overfull \hbox (1.62611pt too wide) in paragraph at lines 4645--4647 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]strictly[][][]contains [][][][]Rational[][][] Overfull \hbox (12.44492pt too wide) in paragraph at lines 4649--4651 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]topological[][][]closu re[][][]assign, [][]260[][] Overfull \hbox (7.08495pt too wide) in paragraph at lines 4653--4655 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space [][][]dimension, Overfull \hbox (10.97484pt too wide) in paragraph at lines 4655--4657 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space [][][]dimensions, Overfull \hbox (3.5754pt too wide) in paragraph at lines 4659--4661 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]upper[][][]bound[][][] assign[][][]if[][][]exact, Overfull \hbox (6.15501pt too wide) in paragraph at lines 4663--4665 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[] [][]with[][][]tokens, Overfull \hbox (4.69649pt too wide) in paragraph at lines 4667--4669 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Rational[] Overfull \hbox (4.69649pt too wide) in paragraph at lines 4669--4671 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Rational[] Overfull \hbox (2.47652pt too wide) in paragraph at lines 4671--4673 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Rational[] Overfull \hbox (2.47652pt too wide) in paragraph at lines 4673--4675 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Rational[] Overfull \hbox (12.16505pt too wide) in paragraph at lines 4675--4677 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Rational[][][][]Box[][][]from[][][] []Rational[][][][]Box, [][]268[][] Overfull \hbox (2.18704pt too wide) in paragraph at lines 4685--4687 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (2.18704pt too wide) in paragraph at lines 4687--4689 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (1.62698pt too wide) in paragraph at lines 4689--4691 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (1.62698pt too wide) in paragraph at lines 4691--4693 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (5.7956pt too wide) in paragraph at lines 4693--4695 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C [][][][]Polyhedron, [][]257[][] Overfull \hbox (16.63684pt too wide) in paragraph at lines 4695--4697 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C [][][][]Polyhedron[][][]with[] Overfull \hbox (13.76518pt too wide) in paragraph at lines 4697--4699 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C ongruence[][][][]System, Overfull \hbox (7.11487pt too wide) in paragraph at lines 4699--4701 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C onstraint[][][][]System, Overfull \hbox (5.42508pt too wide) in paragraph at lines 4701--4703 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]G enerator[][][][]System, Overfull \hbox (20.55505pt too wide) in paragraph at lines 4705--4707 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]G rid[][][]with[][][]complexity, Overfull \hbox (3.21552pt too wide) in paragraph at lines 4707--4709 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N []N[]C[][][][]Polyhedron, Overfull \hbox (9.69702pt too wide) in paragraph at lines 4709--4711 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N []N[]C[][][][]Polyhedron[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4711--4713 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4713--4715 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4715--4717 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4717--4719 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (3.57535pt too wide) in paragraph at lines 4719--4721 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]R ational[][][][]Box, [][]257[][] Overfull \hbox (14.4166pt too wide) in paragraph at lines 4721--4723 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]R ational[][][][]Box[][][]with[] Overfull \hbox (16.89517pt too wide) in paragraph at lines 4723--4725 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][]spa ce[][][]dimension, [][]256[][] Overfull \hbox (16.39478pt too wide) in paragraph at lines 4727--4729 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][] []Constraint[][][][]System, Overfull \hbox (14.70499pt too wide) in paragraph at lines 4729--4731 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][] []Generator[][][][]System, Overfull \hbox (5.24681pt too wide) in paragraph at lines 4731--4733 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Rational[] Overfull \hbox (5.24681pt too wide) in paragraph at lines 4733--4735 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Rational[] Overfull \hbox (3.02684pt too wide) in paragraph at lines 4735--4737 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Rational[] Overfull \hbox (3.02684pt too wide) in paragraph at lines 4737--4739 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Rational[] [309] Overfull \hbox (14.11662pt too wide) in paragraph at lines 4767--4768 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (14.11662pt too wide) in paragraph at lines 4770--4771 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.55656pt too wide) in paragraph at lines 4773--4774 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (13.55656pt too wide) in paragraph at lines 4776--4777 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (7.18666pt too wide) in paragraph at lines 4781--4782 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron[] Overfull \hbox (12.6451pt too wide) in paragraph at lines 4787--4788 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (21.6266pt too wide) in paragraph at lines 4789--4790 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4791--4792 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4794--4795 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4797--4798 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4800--4801 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.96642pt too wide) in paragraph at lines 4805--4806 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box[] Overfull \hbox (11.89665pt too wide) in paragraph at lines 4807--4808 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (11.89665pt too wide) in paragraph at lines 4810--4811 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (11.3366pt too wide) in paragraph at lines 4813--4814 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.3366pt too wide) in paragraph at lines 4816--4817 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (4.96669pt too wide) in paragraph at lines 4821--4822 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.42513pt too wide) in paragraph at lines 4827--4828 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (19.40663pt too wide) in paragraph at lines 4829--4830 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4831--4832 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4834--4835 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4837--4838 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4840--4841 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.74644pt too wide) in paragraph at lines 4845--4846 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box[] Overfull \hbox (1.58662pt too wide) in paragraph at lines 4847--4848 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (1.02657pt too wide) in paragraph at lines 4850--4851 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.96541pt too wide) in paragraph at lines 4857--4858 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (27.96617pt too wide) in paragraph at lines 4859--4860 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[] Overfull \hbox (27.40611pt too wide) in paragraph at lines 4862--4863 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[] [310] Overfull \hbox (0.24678pt too wide) in paragraph at lines 4876--4878 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.47627pt too wide) in paragraph at lines 4889--4890 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]const[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 4890--4892 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (1.26451pt too wide) in paragraph at lines 4892--4893 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]iterator Overfull \hbox (2.7664pt too wide) in paragraph at lines 4893--4895 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 4896--4898 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (16.91621pt too wide) in paragraph at lines 4898--4899 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 4899--4901 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (15.70445pt too wide) in paragraph at lines 4901--4902 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]iterator Overfull \hbox (17.20634pt too wide) in paragraph at lines 4902--4904 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.51643pt too wide) in paragraph at lines 4932--4933 []\OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 4933--4935 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 4947--4949 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]215[][] Overfull \hbox (8.46487pt too wide) in paragraph at lines 4959--4960 []\OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid Overfull \hbox (0.24678pt too wide) in paragraph at lines 4960--4962 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 4974--4976 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (5.13492pt too wide) in paragraph at lines 4986--4987 []\OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[][] [][]C[][][][]Polyhedron[][][][]Grid Overfull \hbox (0.24678pt too wide) in paragraph at lines 4987--4989 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [311] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5001--5003 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (14.37682pt too wide) in paragraph at lines 5011--5012 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (14.37682pt too wide) in paragraph at lines 5014--5015 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5017--5018 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5020--5021 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (7.44685pt too wide) in paragraph at lines 5026--5027 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.98691pt too wide) in paragraph at lines 5029--5030 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Congruence[][][] Overfull \hbox (16.80464pt too wide) in paragraph at lines 5032--5033 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Constraint[][][][]System Overfull \hbox (15.11485pt too wide) in paragraph at lines 5035--5036 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Generator[][][][]System Overfull \hbox (30.24483pt too wide) in paragraph at lines 5041--5042 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (12.90529pt too wide) in paragraph at lines 5044--5045 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (21.8868pt too wide) in paragraph at lines 5047--5048 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5050--5051 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5053--5054 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5056--5057 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5059--5060 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.22661pt too wide) in paragraph at lines 5065--5066 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box[] Overfull \hbox (9.56493pt too wide) in paragraph at lines 5068--5069 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][]space[][][]dimension Overfull \hbox (8.66681pt too wide) in paragraph at lines 5071--5072 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Congruence[] Overfull \hbox (2.0165pt too wide) in paragraph at lines 5074--5075 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Constraint[] Overfull \hbox (0.3267pt too wide) in paragraph at lines 5077--5078 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Generator[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5080--5081 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5083--5084 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.2567pt too wide) in paragraph at lines 5086--5087 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (13.2567pt too wide) in paragraph at lines 5089--5090 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (6.8868pt too wide) in paragraph at lines 5095--5096 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.42685pt too wide) in paragraph at lines 5098--5099 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Congruence[][][] Overfull \hbox (16.24458pt too wide) in paragraph at lines 5101--5102 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Constraint[][][][]System Overfull \hbox (14.5548pt too wide) in paragraph at lines 5104--5105 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Generator[][][][]System Overfull \hbox (29.68477pt too wide) in paragraph at lines 5110--5111 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (12.34523pt too wide) in paragraph at lines 5113--5114 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (21.32674pt too wide) in paragraph at lines 5116--5117 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[] [312] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5119--5120 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5122--5123 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5125--5126 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5128--5129 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.66655pt too wide) in paragraph at lines 5134--5135 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box[] Overfull \hbox (9.00487pt too wide) in paragraph at lines 5137--5138 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][]space[][][]dimension Overfull \hbox (8.10675pt too wide) in paragraph at lines 5140--5141 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Congruence[] Overfull \hbox (1.45644pt too wide) in paragraph at lines 5143--5144 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Constraint[] Overfull \hbox (3.36665pt too wide) in paragraph at lines 5146--5147 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Generator[][][] Overfull \hbox (7.44685pt too wide) in paragraph at lines 5151--5152 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.8868pt too wide) in paragraph at lines 5155--5156 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.45709pt too wide) in paragraph at lines 5159--5160 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][] Overfull \hbox (0.2753pt too wide) in paragraph at lines 5169--5170 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gri d[][][]with[][][]complexity Overfull \hbox (13.29703pt too wide) in paragraph at lines 5173--5174 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (11.61697pt too wide) in paragraph at lines 5175--5176 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.61697pt too wide) in paragraph at lines 5177--5178 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.05692pt too wide) in paragraph at lines 5179--5180 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (11.05692pt too wide) in paragraph at lines 5181--5182 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (0.23685pt too wide) in paragraph at lines 5185--5186 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][] Overfull \hbox (2.76534pt too wide) in paragraph at lines 5189--5190 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Congruence[][][][]System Overfull \hbox (0.2567pt too wide) in paragraph at lines 5195--5196 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5196--5198 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5198--5199 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (14.92522pt too wide) in paragraph at lines 5198--5199 [][]\OT1/ptm/bc/n/10 from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wit h[][][]complexity Overfull \hbox (0.24678pt too wide) in paragraph at lines 5199--5201 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5201--5202 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5202--5204 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5204--5205 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (14.36516pt too wide) in paragraph at lines 5204--5205 [][]\OT1/ptm/bc/n/10 from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wit h[][][]complexity Overfull \hbox (0.24678pt too wide) in paragraph at lines 5205--5207 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5207--5208 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5208--5210 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5210--5211 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5211--5213 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [313] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5213--5214 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5214--5216 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5216--5217 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5217--5219 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5219--5220 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (7.9769pt too wide) in paragraph at lines 5219--5220 [][]\OT1/ptm/bc/n/10 from[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5220--5222 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5222--5223 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (7.9769pt too wide) in paragraph at lines 5222--5223 [][]\OT1/ptm/bc/n/10 from[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5223--5225 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5225--5226 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5226--5228 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5228--5229 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5229--5231 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5231--5232 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5232--5234 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5234--5235 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5235--5237 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5237--5238 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5238--5240 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5240--5241 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (2.66685pt too wide) in paragraph at lines 5240--5241 [][]\OT1/ptm/bc/n/10 from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] []with[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5241--5243 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5243--5244 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5244--5246 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5246--5247 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (2.1068pt too wide) in paragraph at lines 5246--5247 [][]\OT1/ptm/bc/n/10 from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] []with[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5247--5249 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5249--5250 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5250--5252 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5252--5253 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5253--5255 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5255--5256 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5256--5258 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.24483pt too wide) in paragraph at lines 5260--5261 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]with[][][]complexity Overfull \hbox (29.68477pt too wide) in paragraph at lines 5264--5265 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]with[][][]complexity Overfull \hbox (0.2753pt too wide) in paragraph at lines 5268--5269 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity Overfull \hbox (14.71524pt too wide) in paragraph at lines 5282--5283 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Pol yhedron[][][]with[][][]complexity Overfull \hbox (0.20671pt too wide) in paragraph at lines 5286--5287 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][] Overfull \hbox (17.4264pt too wide) in paragraph at lines 5290--5291 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]with[] [314] Overfull \hbox (2.44724pt too wide) in paragraph at lines 5304--5305 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][] Overfull \hbox (2.44724pt too wide) in paragraph at lines 5306--5307 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][] Overfull \hbox (1.88718pt too wide) in paragraph at lines 5308--5309 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (1.88718pt too wide) in paragraph at lines 5310--5311 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (13.29703pt too wide) in paragraph at lines 5314--5315 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]C[][][][]Polyhedron[][][]with[] Overfull \hbox (7.92537pt too wide) in paragraph at lines 5316--5317 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Congruence[][][][]System Overfull \hbox (1.27505pt too wide) in paragraph at lines 5318--5319 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Constraint[][][][]System Overfull \hbox (14.71524pt too wide) in paragraph at lines 5324--5325 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Grid[][][]with[][][]complexity Overfull \hbox (6.35721pt too wide) in paragraph at lines 5328--5329 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5330--5331 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5332--5333 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5334--5335 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5336--5337 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (11.07678pt too wide) in paragraph at lines 5340--5341 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Rational[][][][]Box[][][]with[] Overfull \hbox (17.20528pt too wide) in paragraph at lines 5344--5345 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Congruence[][][][]System Overfull \hbox (10.55496pt too wide) in paragraph at lines 5346--5347 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Constraint[][][][]System Overfull \hbox (8.86517pt too wide) in paragraph at lines 5348--5349 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Generator[][][][]System Overfull \hbox (20.2066pt too wide) in paragraph at lines 5350--5351 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5353--5354 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5356--5357 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5359--5360 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (25.67503pt too wide) in paragraph at lines 5362--5363 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (34.65654pt too wide) in paragraph at lines 5365--5366 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.59659pt too wide) in paragraph at lines 5368--5369 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Congruence[] Overfull \hbox (19.94627pt too wide) in paragraph at lines 5371--5372 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Constraint[] Overfull \hbox (18.25648pt too wide) in paragraph at lines 5374--5375 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Generator[] Overfull \hbox (0.20671pt too wide) in paragraph at lines 5380--5381 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid[][][] Overfull \hbox (2.98676pt too wide) in paragraph at lines 5383--5384 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (2.98676pt too wide) in paragraph at lines 5386--5387 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5389--5390 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5392--5393 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5395--5396 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] [315] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5398--5399 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (12.16637pt too wide) in paragraph at lines 5401--5402 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (12.16637pt too wide) in paragraph at lines 5404--5405 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (0.4866pt too wide) in paragraph at lines 5407--5408 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][]space[] Overfull \hbox (35.8765pt too wide) in paragraph at lines 5410--5411 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Congruence[] Overfull \hbox (29.22618pt too wide) in paragraph at lines 5413--5414 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Constraint[] Overfull \hbox (27.53639pt too wide) in paragraph at lines 5416--5417 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Generator[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5419--5420 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5422--5423 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5425--5426 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5428--5429 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (25.11497pt too wide) in paragraph at lines 5431--5432 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (34.09648pt too wide) in paragraph at lines 5434--5435 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.03653pt too wide) in paragraph at lines 5437--5438 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Congruence[] Overfull \hbox (19.38622pt too wide) in paragraph at lines 5440--5441 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Constraint[] Overfull \hbox (17.69643pt too wide) in paragraph at lines 5443--5444 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Generator[] Overfull \hbox (17.4264pt too wide) in paragraph at lines 5449--5450 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid[][][]with[] Overfull \hbox (2.4267pt too wide) in paragraph at lines 5452--5453 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (2.4267pt too wide) in paragraph at lines 5455--5456 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5458--5459 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5461--5462 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5464--5465 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5467--5468 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (11.60631pt too wide) in paragraph at lines 5470--5471 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (11.60631pt too wide) in paragraph at lines 5473--5474 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (3.52655pt too wide) in paragraph at lines 5476--5477 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][]space[][][] Overfull \hbox (35.31644pt too wide) in paragraph at lines 5479--5480 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Congruence[] Overfull \hbox (28.66612pt too wide) in paragraph at lines 5482--5483 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Constraint[] Overfull \hbox (26.97633pt too wide) in paragraph at lines 5485--5486 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Generator[] Overfull \hbox (18.50455pt too wide) in paragraph at lines 5488--5489 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator Overfull \hbox (27.47614pt too wide) in paragraph at lines 5489--5491 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.48605pt too wide) in paragraph at lines 5491--5492 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 5492--5494 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (3.60658pt too wide) in paragraph at lines 5494--5495 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[] Overfull \hbox (3.60658pt too wide) in paragraph at lines 5497--5498 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[] Overfull \hbox (45.25636pt too wide) in paragraph at lines 5500--5501 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Congruence[] Overfull \hbox (38.60605pt too wide) in paragraph at lines 5503--5504 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Constraint[] [316] Overfull \hbox (29.1661pt too wide) in paragraph at lines 5506--5507 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[] Overfull \hbox (29.1661pt too wide) in paragraph at lines 5509--5510 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[] Overfull \hbox (1.92542pt too wide) in paragraph at lines 5509--5510 [][][]\OT1/ptm/bc/n/10 Powerset[][][][]C[][][][]Polyhedron[][][]with[][][]compl exity Overfull \hbox (19.14638pt too wide) in paragraph at lines 5512--5513 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][]space[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 5516--5518 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.77632pt too wide) in paragraph at lines 5518--5519 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 5519--5521 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (9.44652pt too wide) in paragraph at lines 5521--5522 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 5522--5524 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.44652pt too wide) in paragraph at lines 5524--5525 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 5525--5527 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5527--5528 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5528--5530 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5530--5531 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5531--5533 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5533--5534 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5534--5536 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5536--5537 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5537--5539 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5539--5540 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5540--5542 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5542--5543 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (12.72676pt too wide) in paragraph at lines 5542--5543 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedro n[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5543--5545 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5545--5546 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5546--5548 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (8.23476pt too wide) in paragraph at lines 5548--5549 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator Overfull \hbox (17.20634pt too wide) in paragraph at lines 5549--5551 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.21626pt too wide) in paragraph at lines 5551--5552 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 5552--5554 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (5.22661pt too wide) in paragraph at lines 5556--5557 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (4.66655pt too wide) in paragraph at lines 5560--5561 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.23685pt too wide) in paragraph at lines 5564--5565 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][] Overfull \hbox (11.07678pt too wide) in paragraph at lines 5578--5579 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (9.39673pt too wide) in paragraph at lines 5580--5581 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (9.39673pt too wide) in paragraph at lines 5582--5583 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (8.83667pt too wide) in paragraph at lines 5584--5585 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (8.83667pt too wide) in paragraph at lines 5586--5587 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (33.88464pt too wide) in paragraph at lines 5590--5591 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity Overfull \hbox (0.54509pt too wide) in paragraph at lines 5594--5595 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Congruence[][][][]System Overfull \hbox (14.66695pt too wide) in paragraph at lines 5600--5601 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[] [317] Overfull \hbox (14.66695pt too wide) in paragraph at lines 5603--5604 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (14.10689pt too wide) in paragraph at lines 5606--5607 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (14.10689pt too wide) in paragraph at lines 5609--5610 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (7.73698pt too wide) in paragraph at lines 5614--5615 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.19542pt too wide) in paragraph at lines 5620--5621 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (22.17693pt too wide) in paragraph at lines 5622--5623 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5624--5625 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5627--5628 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5630--5631 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5633--5634 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.51674pt too wide) in paragraph at lines 5638--5639 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box[] Overfull \hbox (12.44698pt too wide) in paragraph at lines 5640--5641 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (12.44698pt too wide) in paragraph at lines 5643--5644 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (11.88692pt too wide) in paragraph at lines 5646--5647 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.88692pt too wide) in paragraph at lines 5649--5650 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (5.51701pt too wide) in paragraph at lines 5654--5655 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.97545pt too wide) in paragraph at lines 5660--5661 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (19.95695pt too wide) in paragraph at lines 5662--5663 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5664--5665 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5667--5668 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5670--5671 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5673--5674 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (3.29677pt too wide) in paragraph at lines 5678--5679 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box[] [318] Overfull \hbox (7.89441pt too wide) in paragraph at lines 5716--5717 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class Overfull \hbox (16.87592pt too wide) in paragraph at lines 5719--5720 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.33435pt too wide) in paragraph at lines 5722--5723 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class Overfull \hbox (16.31586pt too wide) in paragraph at lines 5725--5726 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.67444pt too wide) in paragraph at lines 5756--5757 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class Overfull \hbox (14.65594pt too wide) in paragraph at lines 5759--5760 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.11438pt too wide) in paragraph at lines 5762--5763 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class Overfull \hbox (14.09589pt too wide) in paragraph at lines 5765--5766 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] [319]) Package longtable Warning: Table widths have changed. Rerun LaTeX. (./refman.aux (./group__Init.aux) (./group__Version.aux) (./group__Error.aux) (./group__Timeout.aux) (./group__Datatypes.aux)) Package rerunfilecheck Warning: File `refman.out' has changed. (rerunfilecheck) Rerun to get outlines right (rerunfilecheck) or use package `bookmark'. LaTeX Font Warning: Some font shapes were not available, defaults substituted. ) (see the transcript file for additional information){/usr/share/texlive/texmf-d ist/fonts/enc/dvips/base/8r.enc} Output written on refman.pdf (325 pages, 2050162 bytes). Transcript written on refman.log. latex_count=8 ; \ while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $latex_count -gt 0 ] ;\ do \ echo "Rerunning latex...." ;\ pdflatex refman ;\ latex_count=`expr $latex_count - 1` ;\ done Package longtable Warning: Table widths have changed. Rerun LaTeX. Rerunning latex.... This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./refman.tex LaTeX2e <2018-12-01> (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty (/usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty)) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def))) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty) (/usr/share/texlive/texmf-dist/tex/latex/tocloft/tocloft.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/backref.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty) (./doxygen.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty) (/usr/share/texlive/texmf-dist/tex/latex/tabu/tabu.sty (/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty)) (/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty) (/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty)) (/build/ppl-1.2/doc/ppl.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty)) Writing index file refman.idx (./refman.aux (./group__Init.aux) (./group__Version.aux) (./group__Error.aux) (./group__Timeout.aux) (./group__Datatypes.aux)) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./refman.out) (./refman.out) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/Ustmry.fd) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd) [1{/var/lib/texmf/fo nts/map/pdftex/updmap/pdftex.map} ] [2] (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd) [3 ] [4] (./refman.toc [1 ]) [2] (./index.tex Underfull \hbox (badness 10000) detected at line 9 [][][] pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored \relax l.25 [1]) (./GPL.texpdfTeX warning (ext4): destination with the same identifie r (name{page.2}) has been already used, duplicate ignored \relax l.37 ` `Copyright'' also means copyright-\/like laws that apply to other kind... [2]pdfTeX warning (ext4): destination with the same identifier (name{page.3}) h as been already used, duplicate ignored \relax l.68 [3]pdfTeX warning (ext4): destination with the same identifier (name{page .4}) has been already used, duplicate ignored \relax l.104 [4] [5] [6] [7] [8] [9]) Overfull \hbox (10.35326pt too wide) in paragraph at lines 291--187 \OT1/ptm/m/n/10 stead of this Li-cense. But first, please read [][]\OT1/pcr/m/n /10 http[]://www.[]gnu.[]org/philosophy/why-not-lgpl.[] (./GFDL.tex [10] [11] [12] [13] Overfull \hbox (7.49895pt too wide) in paragraph at lines 97--98 \OT1/ptm/m/n/10 ments, form-ing one sec-tion En-ti-tled "[]History"; like-wise com-bine any sec-tions En-ti-tled "[]Acknowledgements", Underfull \vbox (badness 1377) has occurred while \output is active [14]) (./modules.tex) (./annotated.tex [15] [16] Overfull \hbox (20.64815pt too wide) in paragraph at lines 31--31 \OT1/ptm/b/n/10 Types and func-tions for it-er-at-ing on the dis-juncts of a [ ][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] ) (./group__PPL__C__interface.tex) [17] (./group__Init.tex Underfull \hbox (badness 10000) detected at line 35 [][][] Underfull \hbox (badness 10000) detected at line 48 [][][] [18]) [19] (./group__Version.tex [20]) [21] (./group__Error.tex (/usr/share/texlive/texmf-dist/tex/latex/psnfss/omsptm.fd) Overfull \hbox (1.62299pt too wide) in paragraph at lines 6--20 [][]\OT1/ptm/m/n/10 P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]O[]U[]T[][][][]O[]F[][] [][]M[]E[]M[]O[]RY[][], [][]P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]V[]A[]L[] I[]D[][][][]A[]R[]G[]U[]M[]E[]NT[][], [][]P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]D []O[]M[] Overfull \hbox (1.35289pt too wide) in paragraph at lines 6--20 [][]\OT1/ptm/m/n/10 P[]P[]L[][][][]A[]R[]I[]T[]H[]M[]E[]T[]I[]C[][][][]O[]V[]E[ ]R[]F[]L[]OW[][], [][]P[]P[]L[][][][]S[]T[]D[]I[]O[][][][]E[]R[]R[]OR[][], [][] P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]T[]E[]R[]N[]A[]L[][][][]E[]R[]R[]OR[] [], [][]P[] [22]) [23] (./group__Timeout.tex Underfull \hbox (badness 10000) detected at line 47 [][][] Overfull \hbox (4.67143pt too wide) in paragraph at lines 48--49 []\OT1/pcr/m/n/10 P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]V[]A[]L[]I[]D[][][] []A[]R[]G[]U[]M[]E[]NT \OT1/ptm/bc/n/10 if \OT1/pcr/m/n/10 unscaled[][][]weight \OT1/ptm/bc/n/10 is zero or if the com-puted weight thresh- [24] Underfull \hbox (badness 10000) detected at line 59 [][][] Underfull \hbox (badness 10000) detected at line 62 [][][] ) [25] (./group__Datatypes.tex Overfull \hbox (3.74069pt too wide) in paragraph at lines 43--45 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraint[][][][]System[] [][]const[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/ bc/n/10 ppl[][][]const[][][][]Constraint[][][][]System[][][]const[] Overfull \hbox (0.36111pt too wide) in paragraph at lines 61--63 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/b c/n/10 ppl[][][]const[][][][]Generator[][][][]System[][][]const[] [26] Overfull \hbox (1.80132pt too wide) in paragraph at lines 76--78 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/1 0 ppl[][][][]Congruence[][][][]System[][][]const[][][]iterator[] Overfull \hbox (16.4409pt too wide) in paragraph at lines 139--141 [][] \OT1/ptm/bc/n/10 type-def struct ppl[][][][]Artificial[][][][]Parameter[][ ][][]Sequence[][][]tag const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][ ][]const[][][][]Artificial[][][][]Parameter[][][][]Sequence[] [27] Overfull \hbox (27.11154pt too wide) in paragraph at lines 190--192 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[][][][]Grid[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][ ]\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[] Overfull \hbox (14.85136pt too wide) in paragraph at lines 193--195 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[][][][]Grid[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^ C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Constraints[][][][]Product[] [28] Overfull \hbox (18.00154pt too wide) in paragraph at lines 202--204 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/pt m/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[ ] Overfull \hbox (21.60114pt too wide) in paragraph at lines 208--210 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][ ]\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[] Overfull \hbox (9.34096pt too wide) in paragraph at lines 211--213 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^ C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.77115pt too wide) in paragraph at lines 226--228 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][]tag[][] $\OMS/cms y/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (8.4811pt too wide) in paragraph at lines 229--231 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][]tag[][] const $\O MS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Pointset[] [29] [30] Underfull \hbox (badness 10000) detected at line 333 [][][] Overfull \hbox (27.05392pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]io[][][]variable[][][]output[][][]function[][][]typ e[] \OT1/pcr/m/n/8 typedef const char$\OMS/cmsy/m/n/8 ^^C$ \OT1/pcr/m/n/8 ppl[] [][]io[][][]variable[][][]output[][][]function[][][]type([][]ppl[] [31] Overfull \hbox (19.9918pt too wide) in paragraph at lines 472--473 []\OT1/ptm/b/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][][ ][]Representation[] \OT1/pcr/m/n/8 enum [][]ppl[][][]enum[][][][]Bounded[][][][ ]Integer[][][][]Type[][][][]Representation[][] Underfull \hbox (badness 10000) detected at line 516 [][][] [32] Underfull \hbox (badness 10000) detected at line 541 [][][] ) [33] (./interfaceppl__Artificial__Parameter__Sequence__const__iterator__tag.tex Overfull \hbox (7.82706pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Artificial[][][][]Paramete r[][][][]Sequence[][][]const[][][]iterator[][][]from[][][][]Artificial[][][][]P arameter[][][][]Sequence[] Overfull \hbox (23.68665pt too wide) in paragraph at lines 22--24 [][]\OT1/ptm/bc/n/10 const[][][]iterator[][] ([][]ppl[][][][]Artificial[][][][] Parameter[][][][]Sequence[][][]const[][][]iterator[][][]t[][] dst, [][]ppl[][][ ]const[][][][]Artificial[][][][]Parameter[] Overfull \hbox (26.38684pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Artificial[][][][]Paramete r[][][][]Sequence[][][]const[][][]iterator[][] ([][]ppl[][][]const[][][][]Artif icial[][][][]Parameter[][][][]Sequence[] Overfull \hbox (7.21704pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Seq uence[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]const[][][][] Artificial[][][][]Parameter[] Overfull \hbox (17.78696pt too wide) in paragraph at lines 35--37 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Seq uence[][][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Artificial[][ ][][]Parameter[][][][]Sequence[] ) (./interfaceppl__Artificial__Parameter__tag.tex Overfull \hbox (4.9309pt too wide) in paragraph at lines 15--17 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][]get[] [][][]Linear[][][][]Expression[][] ([][]ppl[][][]const[][][][]Artificial[][][][ ]Parameter[][][]t[][] ap, [][]ppl[][][][]Linear[] [34] Overfull \hbox (0.85934pt too wide) in paragraph at lines 18--20 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][]coeff icient[][] ([][]ppl[][][]const[][][][]Artificial[][][][]Parameter[][][]t[][] ap , [][]ppl[][][]dimension[][][]type[][] var, ) (./interfaceppl__BD__Shape__mpq__class__tag.tex Overfull \hbox (5.86221pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (3.64197pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (10.56195pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] [35] Overfull \hbox (11.12201pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.40195pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.93196pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]B[]D[ ][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n /10 pph, [][]ppl[] Overfull \hbox (3.1817pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.77185pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (12.33191pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (17.60164pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (18.1617pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (6.14209pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, [][]ppl[] Overfull \hbox (9.18156pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []space[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (9.49162pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []affine[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (0.2818pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []relation[][][]with[][][][]Congruence[][] ([][]ppl[][][]const[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (25.56108pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (1.9613pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]minimized[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (8.61162pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] [36] Overfull \hbox (0.25233pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounds[][][]from[][][]above[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (0.86206pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounds[][][]from[][][]below[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (6.12149pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 97--99 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (4.46144pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 99--101 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (14.71156pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]const [][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (14.12123pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []is[][][]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ( [][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.93167pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []equals[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]const[] [][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (12.4822pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]congruence[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (3.07146pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (16.37209pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (28.89116pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []refine[][][]with[][][]constraint[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (12.2214pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []intersection[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.84169pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []difference[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]cl ass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.7616pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []concatenate[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]c lass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] [37] Overfull \hbox (11.9314pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []time[][][]elapse[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.66202pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (5.592pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounded[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (18.3619pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 155--157 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (17.2415pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (30.0114pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (3.06163pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 161--163 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (15.83153pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 163--165 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (9.43188pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (10.54173pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (21.65166pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (5.53194pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (16.80182pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []expand[][][]space[][][]dimension[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.07158pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (9.18156pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []map[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (3.88039pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] ph, int com- Overfull \hbox (1.2322pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][][]2[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] [38] Overfull \hbox (3.17146pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]t[][] ps, size[] Overfull \hbox (4.35188pt too wide) in paragraph at lines 189--191 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] [][]H79[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (8.24164pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (2.78186pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []widening[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.19151pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][ ] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (0.70154pt too wide) in paragraph at lines 207--209 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]H79[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (6.82141pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (9.79172pt too wide) in paragraph at lines 217--219 \OT1/ptm/bc/n/10 Shape[][][]mpq[][][]class[][][]t[][] y, [][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/1 0 p[][][]inters, [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[] Overfull \hbox (8.77168pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (15.422pt too wide) in paragraph at lines 223--225 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (7.0819pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (11.38148pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][ ][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] dst, [][]ppl[] Overfull \hbox (15.68144pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][][]Constraint[] [39] Overfull \hbox (28.98207pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]recycled[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][][]Congruence[] Overfull \hbox (8.45016pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (6.2302pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (7.89984pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (5.67987pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (9.94308pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[ ]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][]space[] Overfull \hbox (21.70216pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]C[][][][]Polyhedron [40] Overfull \hbox (3.84358pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]N[]N[]C[] Overfull \hbox (10.45357pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Rational[] Overfull \hbox (1.37308pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (2.49307pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (9.29279pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.41278pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (22.7929pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [41] Overfull \hbox (10.35281pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (5.54291pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (19.8428pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.88231pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (9.0023pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (1.40201pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (2.522pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (43.37317pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Constraint[] [42] Overfull \hbox (0.9232pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][] Overfull \hbox (36.89323pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Generator[] Overfull \hbox (38.1416pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]relation[][][]with[][][][]Constraint Overfull \hbox (31.66167pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]relation[][][]with[][][][]Generator Overfull \hbox (1.79314pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]relation[][][]with[] [43] Overfull \hbox (3.0828pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]get[][][]minimized[] Overfull \hbox (8.63286pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]get[][][]minimized[] Overfull \hbox (0.2731pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]contains[][][]integer[] Overfull \hbox (2.60301pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]is[][][]topologically[][][] Overfull \hbox (30.05296pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topolo gical[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]topological[][][]closure[] [44] Overfull \hbox (7.81178pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpq[][][]class[][][]maximize[][][]with[][][]point ( Overfull \hbox (6.15161pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpq[][][]class[][][]minimize[][][]with[][][]point ( Overfull \hbox (1.11285pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contains[][][] Overfull \hbox (31.82233pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/ 8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strictly[] [45] Overfull \hbox (0.89246pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] Overfull \hbox (19.66292pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][ ]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals[][][][]B[]D[][][][]Shape[] Overfull \hbox (16.8717pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]refine[][][]with[][][]constraint Overfull \hbox (22.42177pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]refine[][][]with[][][]congruence [46] Overfull \hbox (25.5616pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]refine[][][]with[][][]constraints Overfull \hbox (31.11166pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]refine[][][]with[][][]congruences Overfull \hbox (2.93295pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]upper[][][]bound[] Overfull \hbox (20.95264pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simpli fy[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]simplify[][][]using[] [47] Overfull \hbox (8.76266pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpq[][][]class[][][]unconstrain[] Overfull \hbox (12.65256pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][] Shape[][][]mpq[][][]class[][][]unconstrain[] Overfull \hbox (7.47191pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpq[][][]class[][][]bounded[][][]affine[][][]image Overfull \hbox (3.83328pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]bounded[][][]affine[] [48] Overfull \hbox (20.41315pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]generalized[][][]affine[] Overfull \hbox (2.99301pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (22.05263pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (36.31252pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (17.78265pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][] B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][][]space[] Overfull \hbox (19.81268pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][][]space[] Overfull \hbox (37.58159pt too wide) in paragraph at lines 739--740 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]remove[][][]space[][][]dimensions [49] Overfull \hbox (0.1827pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[ ][][][]Shape[][][]mpq[][][]class[][][]remove[] Overfull \hbox (28.74158pt too wide) in paragraph at lines 751--752 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expand [][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]expand[][][]space[][][]dimension Overfull \hbox (13.1315pt too wide) in paragraph at lines 757--758 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold[] [][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]fold[][][]space[][][]dimensions Overfull \hbox (10.8016pt too wide) in paragraph at lines 763--764 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]map[][ ][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpq[][][]class[][][]map[][][]space[][][]dimensions Overfull \hbox (0.36298pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]B[ ]D[][][][]Shape[][][]mpq[][][]class[][][]drop[][][]some[] Overfull \hbox (8.96298pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[][][]some[] Overfull \hbox (12.23328pt too wide) in paragraph at lines 781--782 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]external[][][]memory[] [50] Overfull \hbox (12.81189pt too wide) in paragraph at lines 787--788 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]total[ ][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]total[][][]memory[][][]in[][][]bytes Overfull \hbox (1.7624pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[] Overfull \hbox (29.86266pt too wide) in paragraph at lines 799--800 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[][][]widening[] Overfull \hbox (13.27301pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (8.39174pt too wide) in paragraph at lines 811--812 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][][]H79[][][]widening[][][]assign ( Overfull \hbox (22.88277pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]widening[][][]assign[] Overfull \hbox (1.84178pt too wide) in paragraph at lines 829--830 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [51] Overfull \hbox (23.22203pt too wide) in paragraph at lines 835--836 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.00206pt too wide) in paragraph at lines 841--842 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/p cr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (28.7124pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (5.93262pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (12.59267pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (3.96262pt too wide) in paragraph at lines 865--866 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[] Overfull \hbox (29.87323pt too wide) in paragraph at lines 871--872 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][][]C[]C76[][][]extrapolation[] [52] Overfull \hbox (1.05347pt too wide) in paragraph at lines 877--878 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][][]C[]C76[][][]narrowing[][][] Overfull \hbox (15.77289pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (21.32295pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (14.09296pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[] [][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (3.71283pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [53] Overfull \hbox (38.69156pt too wide) in paragraph at lines 919--920 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]add[][][]recycled[][][]constraints Overfull \hbox (0.4231pt too wide) in paragraph at lines 925--926 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]add[][][]recycled[][][] Overfull \hbox (6.13176pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class ( Overfull \hbox (4.46184pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class ( Overfull \hbox (8.48293pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (6.813pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (12.73273pt too wide) in paragraph at lines 955--956 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (11.0628pt too wide) in paragraph at lines 961--962 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (14.11327pt too wide) in paragraph at lines 967--968 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [54] Overfull \hbox (12.44334pt too wide) in paragraph at lines 973--974 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (17.08293pt too wide) in paragraph at lines 979--980 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (15.41301pt too wide) in paragraph at lines 985--986 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (21.33273pt too wide) in paragraph at lines 991--992 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (19.66281pt too wide) in paragraph at lines 997--998 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] [55]) (./interfaceppl__BD__Shape__mpz__class__tag.tex Overfull \hbox (4.7421pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (2.52185pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (9.44183pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (10.00189pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (12.8701pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\ OT1/ptm/bc/n/10 pph, Overfull \hbox (4.28183pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.81184pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]B[]D[ ][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n /10 pph, [][]ppl[] Overfull \hbox (2.06158pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.65173pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.21179pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [56] Overfull \hbox (17.04158pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (17.60164pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.02197pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, [][]ppl[] Overfull \hbox (8.06145pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []space[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.3715pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []affine[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (24.44096pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (37.7416pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (0.84119pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]minimized[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (7.4915pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (5.00137pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 97--99 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (3.34132pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 99--101 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] [57] Overfull \hbox (13.03139pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]const [][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (13.83092pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []strictly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][] ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.44106pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []is[][][]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ( [][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.2515pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []equals[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]const[] [][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (11.36208pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]congruence[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (1.95134pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (15.25197pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (27.77104pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []refine[][][]with[][][]constraint[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (11.10129pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []intersection[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.72157pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []difference[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]cl ass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.64148pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []concatenate[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]c lass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.81128pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []time[][][]elapse[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [][]class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.5419pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (10.4113pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]B[]D[][][][] Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (4.47188pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []bounded[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] [58] Overfull \hbox (17.24178pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 155--157 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (16.12138pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (28.89128pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (1.94151pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 161--163 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (14.71141pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 163--165 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (8.31177pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (9.42162pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (20.53154pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (4.41182pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.6817pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []expand[][][]space[][][]dimension[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (6.95146pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.06145pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []map[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (2.76027pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] ph, int com- Overfull \hbox (0.11208pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][][]2[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (2.05135pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]t[][] ps, size[] Overfull \hbox (3.23177pt too wide) in paragraph at lines 189--191 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] [][]H79[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (7.12152pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (1.66174pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []widening[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] [59] Overfull \hbox (3.0714pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][ ] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (5.7013pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (8.6716pt too wide) in paragraph at lines 217--219 \OT1/ptm/bc/n/10 Shape[][][]mpz[][][]class[][][]t[][] y, [][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/1 0 p[][][]inters, [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[] Overfull \hbox (7.65157pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (14.30188pt too wide) in paragraph at lines 223--225 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.96178pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (9.70131pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][ ][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] dst, [][]ppl[] Overfull \hbox (14.56133pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][][]Constraint[] Overfull \hbox (27.86195pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]recycled[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][][]Congruence[] Overfull \hbox (7.33005pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (5.11008pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (6.77972pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (4.55975pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, [60] Overfull \hbox (8.82309pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[ ]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][]space[] Overfull \hbox (20.58217pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (2.72359pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]N[]N[]C[] Overfull \hbox (9.33357pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Rational[] [61] Overfull \hbox (0.25308pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (1.37308pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (8.17279pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.29279pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (21.6729pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.23282pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (4.42291pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (18.72281pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] [62] Overfull \hbox (6.76231pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.88231pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (0.28201pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (1.40201pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (42.25317pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Constraint[] Overfull \hbox (47.80324pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Congruence[] Overfull \hbox (35.77324pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Generator[] [63] Overfull \hbox (37.0216pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]relation[][][]with[][][][]Constraint Overfull \hbox (30.54167pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]relation[][][]with[][][][]Generator Overfull \hbox (0.67314pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]relation[][][]with[] Overfull \hbox (1.9628pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]get[][][]minimized[] Overfull \hbox (7.51286pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]get[][][]minimized[] [64] Overfull \hbox (2.03311pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]contains[][][]integer[][][] Overfull \hbox (1.48302pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]is[][][]topologically[][][] Overfull \hbox (28.93297pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topolo gical[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]topological[][][]closure[] [65] Overfull \hbox (6.69179pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpz[][][]class[][][]maximize[][][]with[][][]point ( Overfull \hbox (5.03162pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpz[][][]class[][][]minimize[][][]with[][][]point ( Overfull \hbox (3.67287pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contains[][][][]B[] Overfull \hbox (29.58234pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/ 8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strictly[] Overfull \hbox (1.53247pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][][] Overfull \hbox (17.42293pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][ ]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals[][][][]B[]D[][][][]Shape[] [66] Overfull \hbox (15.75171pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]refine[][][]with[][][]constraint Overfull \hbox (21.30177pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]refine[][][]with[][][]congruence Overfull \hbox (24.4416pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]refine[][][]with[][][]constraints Overfull \hbox (29.99167pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]refine[][][]with[][][]congruences [67] Overfull \hbox (1.81296pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]upper[][][]bound[] Overfull \hbox (19.83264pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simpli fy[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]simplify[][][]using[] Overfull \hbox (7.64267pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpz[][][]class[][][]unconstrain[] [68] Overfull \hbox (11.53256pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][] Shape[][][]mpz[][][]class[][][]unconstrain[] Overfull \hbox (6.35191pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounde d[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpz[][][]class[][][]bounded[][][]affine[][][]image Overfull \hbox (2.71329pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounde d[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]bounded[][][]affine[] Overfull \hbox (19.29315pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]generalized[][][]affine[] Overfull \hbox (1.87302pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpz[][][]class[][][]generalized[] [69] Overfull \hbox (20.93263pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (35.19252pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (16.66266pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][] B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][][]space[] Overfull \hbox (18.69269pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][][]space[] Overfull \hbox (36.4616pt too wide) in paragraph at lines 739--740 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]remove[][][]space[][][]dimensions Overfull \hbox (1.9427pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[ ][][][]Shape[][][]mpz[][][]class[][][]remove[][][] Overfull \hbox (27.62158pt too wide) in paragraph at lines 751--752 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expand [][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]expand[][][]space[][][]dimension [70] Overfull \hbox (12.0115pt too wide) in paragraph at lines 757--758 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold[] [][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]fold[][][]space[][][]dimensions Overfull \hbox (9.68161pt too wide) in paragraph at lines 763--764 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]map[][ ][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpz[][][]class[][][]map[][][]space[][][]dimensions Overfull \hbox (2.12299pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]B[ ]D[][][][]Shape[][][]mpz[][][]class[][][]drop[][][]some[][][] Overfull \hbox (7.84299pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[][][]some[] Overfull \hbox (11.11328pt too wide) in paragraph at lines 781--782 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]external[][][]memory[] Overfull \hbox (11.6919pt too wide) in paragraph at lines 787--788 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]total[ ][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]total[][][]memory[][][]in[][][]bytes Overfull \hbox (0.64241pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[] [71] Overfull \hbox (28.74266pt too wide) in paragraph at lines 799--800 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[][][]widening[] Overfull \hbox (12.15302pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (7.27174pt too wide) in paragraph at lines 811--812 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][][]H79[][][]widening[][][]assign ( Overfull \hbox (21.76277pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]widening[][][]assign[] Overfull \hbox (0.72179pt too wide) in paragraph at lines 829--830 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (22.10204pt too wide) in paragraph at lines 835--836 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.88206pt too wide) in paragraph at lines 841--842 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/p cr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [72] Overfull \hbox (27.5924pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (4.81262pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (11.47267pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (2.84262pt too wide) in paragraph at lines 865--866 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[] Overfull \hbox (28.75323pt too wide) in paragraph at lines 871--872 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (19.75198pt too wide) in paragraph at lines 877--878 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][][]C[]C76[][][]narrowing[][][]assign [73] Overfull \hbox (14.6529pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (20.20296pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (12.97296pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[] [][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (1.47284pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (37.57156pt too wide) in paragraph at lines 919--920 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]add[][][]recycled[][][]constraints Overfull \hbox (43.12163pt too wide) in paragraph at lines 925--926 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]add[][][]recycled[][][]congruences Overfull \hbox (5.01176pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class ( [74] Overfull \hbox (3.34184pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class ( Overfull \hbox (7.36293pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (5.69301pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (11.61273pt too wide) in paragraph at lines 955--956 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (9.94281pt too wide) in paragraph at lines 961--962 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (12.99327pt too wide) in paragraph at lines 967--968 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.32335pt too wide) in paragraph at lines 973--974 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.96294pt too wide) in paragraph at lines 979--980 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (14.29301pt too wide) in paragraph at lines 985--986 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] [75] Overfull \hbox (20.21274pt too wide) in paragraph at lines 991--992 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (18.54282pt too wide) in paragraph at lines 997--998 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] ) (./interfaceppl__Coefficient__tag.tex [76]) (./interfaceppl__Congruence__System__const__iterator__tag.tex [77] Overfull \hbox (1.72762pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][][]from[][][][]Congruence[][][][]System[][][]const[][ ][]iterator[][] ([][]ppl[] Overfull \hbox (2.27753pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][] ([][]ppl[][][]const[][][][]Congruence[][][][]System [][][]const[][][]iterator[] Overfull \hbox (17.54732pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]const[][ ][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Congruence[][][ ][]System[][][]const[][][]iterator[] ) (./interfaceppl__Congruence__System__tag.tex [78] Overfull \hbox (7.63844pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Congruence[][][][]System[][][ ]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Congruence[][][][]Sys tem[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, [][]ppl[] Overfull \hbox (9.56808pt too wide) in paragraph at lines 28--30 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Congruence[][][][]System[] [][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Congruence[][][][] System[][][]t[][] dst, [][]ppl[] Overfull \hbox (10.67792pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]space[][ ][]dimension[][] ([][]ppl[][][]const[][][][]Congruence[][][][]System[][][]t[][] cs, [][]ppl[][][]dimension[] Overfull \hbox (4.96837pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]begin[][ ] ([][]ppl[][][]const[][][][]Congruence[][][][]System[][][]t[][] cs, [][]ppl[][ ][][]Congruence[][][][]System[] Overfull \hbox (23.98816pt too wide) in paragraph at lines 60--62 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]insert[] [][][]Congruence[][] ([][]ppl[][][][]Congruence[][][][]System[][][]t[][] cs, [] []ppl[][][]const[][][][]Congruence[] [79]) (./interfaceppl__Congruence__tag.tex Overfull \hbox (15.0983pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][]coefficient[][] ([][]p pl[][][]const[][][][]Congruence[][][]t[][] c, [][]ppl[][][]dimension[][][]type[ ][] var, [][]ppl[][][][]Coefficient[] [80]) (./interfaceppl__Constraint__System__const__iterator__tag.tex Overfull \hbox (25.10667pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][][][]System[][][ ]const[][][]iterator[][][]from[][][][]Constraint[][][][]System[][][]const[][][] iterator[][] ([][]ppl[][][][]Constraint[] Overfull \hbox (33.69638pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Constraint[][][][]System[] [][]const[][][]iterator[][][]from[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][] ([][]ppl[][][][]Constraint[] Overfull \hbox (11.7268pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][][]dereference[][] ([][]ppl[][][]const[][][][]Constraint[][][][]S ystem[][][]const[][][]iterator[] Overfull \hbox (4.24669pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Constraint[][][ ][]System[][][]const[][][]iterator[] [81]) (./interfaceppl__Constraint__System__tag.tex Overfull \hbox (24.61707pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][][][]System[][][ ]from[][][][]Constraint[][] ([][]ppl[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, [][]ppl[][][]const[][][][]Constrai nt[] Overfull \hbox (2.09717pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]end[][] ([][]ppl[][][]const[][][][]Constraint[][][][]System[][][]t[][] cs, [][]ppl[][][ ][]Constraint[][][][]System[][][]const[] [82]) (./interfaceppl__Constraint__tag.tex Overfull \hbox (1.5281pt too wide) in paragraph at lines 16--18 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][] ([][]ppl[][][] []Constraint[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pc, [][]ppl[][][ ]const[][][][]Linear[][][][]Expression[][][]t[][] le, enum [][]ppl[][][]enum[] [83] Overfull \hbox (1.79767pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][]coefficient[][] ([][]p pl[][][]const[][][][]Constraint[][][]t[][] c, [][]ppl[][][]dimension[][][]type[ ][] var, [][]ppl[][][][]Coefficient[] ) (./interfaceppl__Constraints__Product__C__Polyhedron__Grid__tag.tex Overfull \hbox (14.4614pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[][][]const[][][][]Constraints [][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (16.42136pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension[][] ([][] ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (5.32178pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][] ([][ ]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (19.76172pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][ ] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (27.2516pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][] ([][]ppl[][][][]Con straints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.10153pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][] ([][ ]ppl[][][][]Constraints[][][][]Product[] [84] Overfull \hbox (0.58157pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (27.2312pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (27.79126pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (0.26022pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid[][] Overfull \hbox (5.4219pt too wide) in paragraph at lines 35--37 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.44136pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]wit h[][][]complexity[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (5.72202pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][ ][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (2.39153pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexi ty[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (38.22112pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]wit h[][][]complexity[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (20.69154pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[] [][]class[][][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (21.2516pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (20.90985pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][][]with[][][]complexity[][] Overfull \hbox (2.55026pt too wide) in paragraph at lines 49--51 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, int Overfull \hbox (21.46991pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][][]with[][][]complexity[][] Overfull \hbox (3.11032pt too wide) in paragraph at lines 51--53 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, int Overfull \hbox (9.24173pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid[] Overfull \hbox (16.57161pt too wide) in paragraph at lines 53--55 [][]\OT1/ptm/bc/n/10 with[][][]complexity[][] ([][]ppl[][][][]Constraints[][][] []Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^ ^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (23.66107pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (26.11101pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[ ][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (25.8513pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (34.3313pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]universe[][] ([][]ppl[][][]const[][][][]C onstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.29152pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]bounded[][] ([][]ppl[][][]const[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] [85] Overfull \hbox (22.80093pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][ ][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (31.95103pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]discrete[][] ([][]ppl[][][]const[][][][]C onstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.9711pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]topological[][][]closure[][][]assign[][] ([][]ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (9.71191pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounds[][][]from[][][]above[][] ([][]ppl[][][]con st[][][][]Constraints[][][][]Product[] Overfull \hbox (10.32164pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounds[][][]from[][][]below[][] ([][]ppl[][][]con st[][][][]Constraints[][][][]Product[] Overfull \hbox (30.02118pt too wide) in paragraph at lines 85--87 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]maximize[][] ([][]ppl[][][]const[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.78001pt too wide) in paragraph at lines 85--87 [][][]\OT1/ptm/bc/n/10 Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][] [][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 poptimum) Overfull \hbox (28.36113pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]minimize[][] ([][]ppl[][][]const[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.78001pt too wide) in paragraph at lines 87--89 [][][]\OT1/ptm/bc/n/10 Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][] [][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 poptimum) Overfull \hbox (15.58107pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]c onst[][][][]Constraints[][][][]Product[] Overfull \hbox (3.36195pt too wide) in paragraph at lines 89--91 [][][]\OT1/ptm/bc/n/10 C[][][][]Polyhedron[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coeffic ient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[] Overfull \hbox (13.92102pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]c onst[][][][]Constraints[][][][]Product[] Overfull \hbox (3.36195pt too wide) in paragraph at lines 91--93 [][][]\OT1/ptm/bc/n/10 C[][][][]Polyhedron[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coeffic ient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[] Overfull \hbox (21.13144pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[][][][ ]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[] Overfull \hbox (12.5711pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[][][][] Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.18124pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][] [][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.35155pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C [][][][]Polyhedron[][][][]Grid[][] ([][]ppl[] Overfull \hbox (5.02113pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][][]OK[][] ([][]ppl[][][]const[][][][]Constraints[] [][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (23.35141pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]constraint[][] ([][]ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (30.00172pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]congruence[][] ([][]ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (27.2413pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]constraints[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (33.89162pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]congruences[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.62155pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]refine[][][]with[][][]congruences[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] [86] Overfull \hbox (34.7512pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]difference[][][]assign[][] ([][]ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.84091pt too wide) in paragraph at lines 127--129 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][] Constraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.1216pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[] [] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (6.42146pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]constrains[][] ([][]ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (23.63115pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension[][] ([][]pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (16.4315pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]affine[][][]image[][] ([][]ppl[][][][]Constraints [][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.2014pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]affine[][][]preimage[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.26169pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (6.1413pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]image[][] ([][]ppl[] [][][]Constraints[][][][]Product[] Overfull \hbox (18.9112pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][] ([][]pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (2.52121pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][] rhs[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (15.2911pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[][ ][]rhs[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (8.89146pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embe d[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (10.00131pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]proj ect[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (10.55145pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]remove[][][]space[][][]dimensions[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (4.99152pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (5.70161pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][] [][]Constraints[][][][]Product[] [87] Overfull \hbox (0.69177pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points[ ][][]2[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (0.97137pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes[][] ([][] ppl[][][]const[][][][]Constraints[] Overfull \hbox (21.40106pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl [][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (22.70122pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens[][] ([ ][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (31.69138pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]widening[][][]assign[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.85143pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]print[][][][]Constraints[][][][]Pro duct[][][][]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[][][]const[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (17.83125pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Constraints[][][][]P roduct[][][][]C[][][][]Polyhedron[][][][]Grid[][] (char $\OMS/cmsy/m/n/10 ^^C$$ ^^C$\OT1/ptm/bc/n/10 strp, [][]ppl[][][]const[][][][]Constraints[][][][]Product [] Overfull \hbox (35.29124pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (5.02145pt too wide) in paragraph at lines 187--188 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]ascii[][][]load[][] ([][]ppl[][][][]Constraints[] [][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (36.6532pt too wide) in paragraph at lines 199--200 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Constraints[][][][]Product[][][][]C[] [][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.3924pt too wide) in paragraph at lines 205--206 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/ 8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (7.45296pt too wide) in paragraph at lines 211--212 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (21.8929pt too wide) in paragraph at lines 217--218 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/p cr/m/n/8 int ppl[][][]new[][][][]Constraints[] [88] Overfull \hbox (4.60298pt too wide) in paragraph at lines 223--224 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Constraints[][][][]Product[] Overfull \hbox (4.50287pt too wide) in paragraph at lines 229--230 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (36.70241pt too wide) in paragraph at lines 235--236 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (37.8224pt too wide) in paragraph at lines 241--242 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (11.0221pt too wide) in paragraph at lines 247--248 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[] Overfull \hbox (12.14209pt too wide) in paragraph at lines 253--254 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[] Overfull \hbox (21.9302pt too wide) in paragraph at lines 259--260 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[ ][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (7.24219pt too wide) in paragraph at lines 265--266 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] [89] Overfull \hbox (21.68213pt too wide) in paragraph at lines 271--272 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[ ][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (40.87224pt too wide) in paragraph at lines 277--278 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexity()[] \ OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (4.2921pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (8.31012pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int Overfull \hbox (9.43011pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int Overfull \hbox (15.90984pt too wide) in paragraph at lines 301--302 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class[][][]with[][][]complexity()[] Overfull \hbox (11.25407pt too wide) in paragraph at lines 301--302 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class[][][]with[][][]complexity Overfull \hbox (17.02983pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class[][][]with[][][]complexity()[] Overfull \hbox (11.25407pt too wide) in paragraph at lines 307--308 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class[][][]with[][][]complexity [90] Overfull \hbox (1.85179pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[ ][][][]Polyhedron[][][][]Grid[] Overfull \hbox (9.12473pt too wide) in paragraph at lines 313--314 [][]\OT1/ptm/b/n/10 with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]Constraints[][][][]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]fro m[][][][]Constraints[][][][]Product[] Overfull \hbox (27.82246pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraint[][][][]System()[] \OT1/pc r/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (33.37253pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Congruence[][][][]System()[] \OT1/pc r/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (2.81264pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][] Overfull \hbox (0.49269pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]C onstraints[][][][]Product[][][][]C[] Overfull \hbox (26.7724pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (25.09247pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 in t ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (32.32246pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] [91] Overfull \hbox (16.91315pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.16286pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (27.49298pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.85233pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (23.39287pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.78227pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (5.47299pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (5.57285pt too wide) in paragraph at lines 403--404 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (21.08315pt too wide) in paragraph at lines 409--410 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][ ][][]Product[][][][]C[][][][]Polyhedron[] [92] Overfull \hbox (19.42297pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][ ][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.84259pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Constraints[][][][]Product[] Overfull \hbox (9.18242pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Constraints[][][][]Product[] Overfull \hbox (15.74998pt too wide) in paragraph at lines 433--434 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (5.10138pt too wide) in paragraph at lines 439--440 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[][][][]Product[ ][][][]C[][][][]Polyhedron[] Overfull \hbox (3.73514pt too wide) in paragraph at lines 439--440 [][][]\OT1/ptm/b/n/10 Grid()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]strictly[][][]contains[][] [][]Constraints[][][][]Product[] Overfull \hbox (2.97153pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][][][]Prod uct[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.69514pt too wide) in paragraph at lines 445--446 [][][]\OT1/ptm/b/n/10 Grid()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]is[][][]disjoint[][][]from [][][][]Constraints[][][][]Product[][][][]C[] [93] Overfull \hbox (7.42003pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C[][][][] Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (17.62337pt too wide) in paragraph at lines 457--458 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][][]O[]K()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][ ][]Product[][][][]C[][][][]Polyhedron[][][][]Grid[] Overfull \hbox (43.0329pt too wide) in paragraph at lines 463--464 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Con straints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.58293pt too wide) in paragraph at lines 469--470 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Con straints[][][][]Product[][][][]C[][][] Overfull \hbox (46.92279pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.59282pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[] Overfull \hbox (15.10251pt too wide) in paragraph at lines 487--488 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] Overfull \hbox (20.65257pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] [94] Overfull \hbox (18.9924pt too wide) in paragraph at lines 499--500 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (24.54247pt too wide) in paragraph at lines 505--506 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (1.13237pt too wide) in paragraph at lines 511--512 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []Constraints[][][][]Product[] Overfull \hbox (7.54259pt too wide) in paragraph at lines 517--518 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Constraints[][][][]Product[] Overfull \hbox (1.40259pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][] Constraints[][][][]Product[][][][]C[] Overfull \hbox (1.6827pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Constraints[][][][]Product[] Overfull \hbox (2.6125pt too wide) in paragraph at lines 535--536 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Constraints[][][][]Product[][][] Overfull \hbox (6.58226pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/ pcr/m/n/8 int ppl[][][][]Constraints[] [95] Overfull \hbox (23.87296pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[ ][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.49197pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (14.38187pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.02313pt too wide) in paragraph at lines 565--566 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Const raints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (47.28302pt too wide) in paragraph at lines 571--572 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.30272pt too wide) in paragraph at lines 577--578 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (29.5626pt too wide) in paragraph at lines 583--584 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] [96] Overfull \hbox (26.94246pt too wide) in paragraph at lines 589--590 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (4.72232pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (23.78194pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (38.04182pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs() [] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (31.03197pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \O T1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.062pt too wide) in paragraph at lines 619--620 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] [97] Overfull \hbox (31.01239pt too wide) in paragraph at lines 625--626 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (25.91202pt too wide) in paragraph at lines 631--632 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pc r/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (26.97238pt too wide) in paragraph at lines 637--638 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] Overfull \hbox (16.16231pt too wide) in paragraph at lines 643--644 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (18.63242pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (13.61229pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1 /pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (22.2123pt too wide) in paragraph at lines 661--662 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2() [] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.1626pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Constraints[][][][]Product[] [98] Overfull \hbox (17.7627pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (7.33206pt too wide) in paragraph at lines 679--680 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m /n/8 int ppl[][][][]Constraints[] Overfull \hbox (0.60266pt too wide) in paragraph at lines 685--686 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][] Overfull \hbox (1.51312pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[][] [][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]pri nt[][][][]Constraints[][][][]Product[][][][]C[] Overfull \hbox (1.96307pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fp rint[][][][]Constraints[][][][]Product[] Overfull \hbox (12.32301pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]a sprint[][][][]Constraints[][][][]Product[] Overfull \hbox (27.48296pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.81302pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] [99]) (./interfaceppl__Generator__System__const__iterator__tag.tex Overfull \hbox (20.03731pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] const[][][]iterator[][][]from[][][][]Generator[][][][]System[][][]const[][][]it erator[][] ([][]ppl[][][][]Generator[] Overfull \hbox (28.62701pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]from[][][][]Generator[][][][]System[][][]const[][][ ]iterator[][] ([][]ppl[][][][]Generator[] Overfull \hbox (8.34723pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]const[][] []iterator[][][]dereference[][] ([][]ppl[][][]const[][][][]Generator[][][][]Sys tem[][][]const[][][]iterator[] Overfull \hbox (0.86711pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]const[][] []iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Generator[][][][ ]System[][][]const[][][]iterator[] ) (./interfaceppl__Generator__System__tag.tex [100] Overfull \hbox (18.41797pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] from[][][][]Generator[][] ([][]ppl[][][][]Generator[][][][]System[][][]t[][] $\ OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (7.88792pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Generator[][][][]System [][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs, [][]ppl[][][]const[] Overfull \hbox (5.21785pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]begin[][] ([][]ppl[][][]const[][][][]Generator[][][][]System[][][]t[][] gs, [][]ppl[][][ ][]Generator[][][][]System[][][]const[] [101]) (./interfaceppl__Generator__tag.tex [102]) (./interfaceppl__Grid__Generator__System__const__iterator__tag.tex Overfull \hbox (20.31735pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][][]Generator[][][][] System[][][]const[][][]iterator[][][]from[][][][]Grid[][][][]Generator[][][][]S ystem[][][]const[][][]iterator[][] ([][]ppl[] Overfull \hbox (2.36742pt too wide) in paragraph at lines 19--21 [][][]\OT1/ptm/bc/n/10 Grid[][][][]Generator[][][][]System[][][]const[][][]iter ator[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgit, [][]ppl[][][]const [][][][]Grid[][][][]Generator[][][][]System[][][]const[][][]iterator[] Overfull \hbox (1.91568pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Grid[][][][]Generator[][][ ][]System[][][]const[][][]iterator[][][]from[][][][]Grid[][][][]Generator[][][] []System[][][]const[][][]iterator[][] Overfull \hbox (10.18723pt too wide) in paragraph at lines 22--24 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Grid[][][][]Generator[][][][]System[][][]const [][][]iterator[][][]t[][] dst, [][]ppl[][][]const[][][][]Grid[][][][]Generator[ ][][][]System[][][]const[][][]iterator[] Overfull \hbox (20.85709pt too wide) in paragraph at lines 35--37 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Grid[][][][]Generator [][][][]System[][][]const[][][]iterator[] Overfull \hbox (12.24728pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Grid [][][][]Generator[][][][]System[][][]const[] [103]) (./interfaceppl__Grid__Generator__System__tag.tex Overfull \hbox (4.49792pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][][]Generator[][][][] System[][][]from[][][][]Grid[][][][]Generator[][][][]System[][] ([][]ppl[][][][ ]Grid[][][][]Generator[][][][]System[] Overfull \hbox (13.08763pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Grid[][][][]Generator[][][ ][]System[][][]from[][][][]Grid[][][][]Generator[][][][]System[][] ([][]ppl[][] [][]Grid[][][][]Generator[][][][]System[] Overfull \hbox (13.24803pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]begin[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][]System[][] []t[][] gs, [][]ppl[][][][]Grid[][][][]Generator[] Overfull \hbox (5.61804pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]end[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][]System[][][] t[][] gs, [][]ppl[][][][]Grid[][][][]Generator[] [104] Overfull \hbox (2.72562pt too wide) in paragraph at lines 73--75 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][] System[][][]t[][] x, F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stream) ) (./interfaceppl__Grid__Generator__tag.tex [105]) (./interfaceppl__Grid__tag.tex [106] Overfull \hbox (3.80247pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][ ][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Grid[][][]t[][] $ \OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron [] Overfull \hbox (6.9618pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][] []Generator[][][][]System[][] ([][]ppl[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Grid[][][][]Generator[][][ ][]System[] Overfull \hbox (3.21011pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]get[][][]minimized[][][]congrue nces[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][ ][]Congruence[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 p cs) Overfull \hbox (7.22137pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]get[][][]minimized[][][]grid[][ ][]generators[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]c onst[][][][]Grid[][][][]Generator[][][][]System[] Overfull \hbox (28.41115pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]maximize[][][]with[][][]point[] [] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[] Overfull \hbox (26.7511pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]minimize[][][]with[][][]point[] [] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[] [107] Overfull \hbox (24.14204pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]bounded[][][]affine[][][]image[ ][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] va r, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (7.17998pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]im age[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum Overfull \hbox (4.87045pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]im age[][][]with[][][]congruence[][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]dimension[][][]type[][] var, enum Overfull \hbox (1.3616pt too wide) in paragraph at lines 175--177 [][]\OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][]c onst[][][][]Coefficient[][][]t[][] d, [][]ppl[] Overfull \hbox (5.27174pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]pr eimage[][][]lhs[][][]rhs[][][]with[][][]congruence[][] ([][]ppl[][][][]Grid[][] []t[][] ph, [][]ppl[][][]const[][][][]Linear[] [108] Overfull \hbox (7.88818pt too wide) in paragraph at lines 193--195 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]fold[][][]space[][][]dimensions [][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] d s[]$ $[], size[][][]t n, [][]ppl[][][]dimension[] Overfull \hbox (9.77875pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]wrap[][][]assign[][] ([][]ppl[] [][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] ds[]$ $[], size[ ][][]t n, enum [][]ppl[][][]enum[][][][]Bounded[] Overfull \hbox (8.82231pt too wide) in paragraph at lines 225--227 [][][]\OT1/ptm/bc/n/10 Bounded[][][][]Integer[][][][]Type[][][][]Overflow[][] o , const [][]ppl[][][]const[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cms y/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, un-signed complexity[] Overfull \hbox (4.96187pt too wide) in paragraph at lines 257--259 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] [109] Overfull \hbox (2.7419pt too wide) in paragraph at lines 259--261 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] Overfull \hbox (4.41154pt too wide) in paragraph at lines 261--263 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] pset[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] Overfull \hbox (2.19157pt too wide) in paragraph at lines 263--265 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] pset[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] [110] Overfull \hbox (8.37189pt too wide) in paragraph at lines 333--334 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class Overfull \hbox (9.49188pt too wide) in paragraph at lines 339--340 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class Overfull \hbox (36.272pt too wide) in paragraph at lines 345--346 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity Overfull \hbox (18.41342pt too wide) in paragraph at lines 351--352 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Pol yhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Gr id[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (33.32191pt too wide) in paragraph at lines 363--364 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][]Bo x[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity [111] Overfull \hbox (2.50291pt too wide) in paragraph at lines 369--370 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (0.7429pt too wide) in paragraph at lines 375--376 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (19.06262pt too wide) in paragraph at lines 381--382 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Grid[][][]from[][][][]Octagonal[] Overfull \hbox (20.18262pt too wide) in paragraph at lines 387--388 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Grid[][][]from[][][][]Octagonal[] [112] [113] [114] [115] [116] [117] [118] Overfull \hbox (3.7116pt too wide) in paragraph at lines 759--760 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalized[][][]a ffine[][][]preimage[][][]lhs[][][]rhs Overfull \hbox (13.20297pt too wide) in paragraph at lines 765--766 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalized[] [][]affine[][][]image[][][]with[] Overfull \hbox (19.78285pt too wide) in paragraph at lines 771--772 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalize d[][][]affine[][][]preimage[] Overfull \hbox (0.44244pt too wide) in paragraph at lines 777--778 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]lhs[][][]rhs[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[ ][][]generalized[][][]affine[][][] Overfull \hbox (11.82233pt too wide) in paragraph at lines 783--784 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Gr id[][][]generalized[][][]affine[] [119] [120] Overfull \hbox (17.18285pt too wide) in paragraph at lines 855--856 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[][ ][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]congruence[][][ ]widening[][][]assign[][][]with[] Overfull \hbox (5.15298pt too wide) in paragraph at lines 861--862 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[][] []with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generator[][][]w idening[][][]assign[][][]with[] [121] Overfull \hbox (10.54222pt too wide) in paragraph at lines 891--892 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][ ][]limited[][][]congruence[] Overfull \hbox (1.39236pt too wide) in paragraph at lines 897--898 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][] []limited[][][]generator[][][] Overfull \hbox (22.05283pt too wide) in paragraph at lines 903--904 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]limited[][][]congru ence[][][]extrapolation[] Overfull \hbox (10.02296pt too wide) in paragraph at lines 909--910 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]limited[][][]generat or[][][]extrapolation[] [122] Overfull \hbox (7.5717pt too wide) in paragraph at lines 933--934 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Grid[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]recyc le[][][][]Grid[][][][]Generator[][][][]System ( [123] [124]) (./interfaceppl__Linear__Expression__tag.tex Overfull \hbox (22.34773pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Linear[][][][]Expression[][][ ]from[][][][]Constraint[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ple, [][]ppl[][][]const[][][][]Constrai nt[] Overfull \hbox (18.96815pt too wide) in paragraph at lines 28--30 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Linear[][][][]Expression[][][ ]from[][][][]Generator[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ple, [][]ppl[][][]const[][][][]Generator [] [125] Overfull \hbox (15.40788pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]inhomoge neous[][][]term[][] ([][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[ ][] le, [][]ppl[][][][]Coefficient[] Overfull \hbox (2.65662pt too wide) in paragraph at lines 69--71 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]add[][][ ]to[][][]coefficient[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] le , [][]ppl[][][]dimension[][][]type[][] var, Overfull \hbox (22.89804pt too wide) in paragraph at lines 72--74 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]add[][][ ]to[][][]inhomogeneous[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (25.43753pt too wide) in paragraph at lines 81--83 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]multiply[][][][]Linear[][][][]Expression [][][]by[][][][]Coefficient[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t [][] le, [][]ppl[][][]const[][][][]Coefficient[] ) (./interfaceppl__MIP__Problem__tag.tex [126] Overfull \hbox (14.92802pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]M[]I[]P[][][][]Problem[][] ([ ][]ppl[][][][]M[]I[]P[][][][]Problem[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/ bc/n/10 pmip, [][]ppl[][][]dimension[][][]type[][] d, [][]ppl[][][]const[][][][ ]Constraint[] Overfull \hbox (20.14798pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]M[]I[]P[][][][]Problem[][][]f rom[][][][]M[]I[]P[][][][]Problem[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem[][ ][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pmip, [][]ppl[][][]const[][][][ ]M[]I[]P[][][][]Problem[] Overfull \hbox (14.84767pt too wide) in paragraph at lines 56--58 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]M[]I[]P[][][][]Problem[][] []from[][][][]M[]I[]P[][][][]Problem[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem [][][]t[][] dst, [][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[] Overfull \hbox (1.62802pt too wide) in paragraph at lines 69--71 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]number[][] []of[][][]integer[][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]M[] I[]P[][][][]Problem[][][]t[][] mip, [][]ppl[] Overfull \hbox (0.81778pt too wide) in paragraph at lines 72--74 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]integer[][ ][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[ ][][]t[][] mip, [][]ppl[][][]dimension[] [127] Overfull \hbox (28.59772pt too wide) in paragraph at lines 81--83 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]objective[ ][][]function[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[][][]t[][] mip, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (11.228pt too wide) in paragraph at lines 97--99 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]s pace[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]M[]I[]P[][][][]Pro blem[][][]t[][] mip, [][]ppl[][][]dimension[] Overfull \hbox (5.5279pt too wide) in paragraph at lines 100--102 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]t o[][][]integer[][][]space[][][]dimensions[][] ([][]ppl[][][][]M[]I[]P[][][][]Pr oblem[][][]t[][] mip, [][]ppl[][][]dimension[] Overfull \hbox (18.59772pt too wide) in paragraph at lines 109--111 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]set[][][]o bjective[][][]function[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem[][][]t[][] mi p, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (28.95757pt too wide) in paragraph at lines 124--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][ ]objective[][][]function[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[ ][][]t[][] mip, [][]ppl[][][]const[][][][]Generator[] [128] Underfull \hbox (badness 10000) detected at line 188 [][][] Overfull \hbox (2.87207pt too wide) in paragraph at lines 195--196 []\OT1/ptm/b/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][]objecti ve[][][]function()[] \OT1/pcr/m/n/8 int ppl[][][][]M[]I[]P[][][][]Problem[][][] evaluate[][][]objective[][][]function [129]) (./interfaceppl__Octagonal__Shape__mpq__class__tag.tex Overfull \hbox (1.09158pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.79044pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (4.43195pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.57019pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, [130] Overfull \hbox (2.1917pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.75175pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (15.40186pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.80197pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity [][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (13.18161pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (16.7715pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (17.33156pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (8.3313pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.64151pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.47102pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.78123pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.00133pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]get[][][]constraints[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.41159pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpq[] Overfull \hbox (3.98143pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]contains[][][]integer[][][]point[][] ([][]ppl[][][]const[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] [131] Overfull \hbox (7.47116pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][][]const[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.2513pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 97--99 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (7.02023pt too wide) in paragraph at lines 99--101 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (24.68086pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]strictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class [][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (23.291pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]is[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (13.56143pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]equals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][ ][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.33154pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (13.3314pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (1.11198pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] x, [][]ppl[] [132] Overfull \hbox (4.79182pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.66122pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.96138pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]constrains[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.30138pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]unconstrain[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.19127pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (21.97142pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][ ][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (14.74185pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.75192pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 dimension[][][]type[][] var, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Ex pression[][][]t[][] ub, [][]ppl[][][]const[] Overfull \hbox (2.60994pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]t[][] ph, Overfull \hbox (3.58142pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 159--161 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (11.6315pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][] [][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.23186pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]O ctagonal[][][][]Shape[][][]mpq[] Overfull \hbox (6.3417pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (1.33191pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpq[] Overfull \hbox (2.17026pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] ph, Overfull \hbox (11.47173pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[] [133] Overfull \hbox (6.07129pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.44176pt too wide) in paragraph at lines 187--189 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][][]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][] ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.37144pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (24.74109pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][] []tokens[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (9.19116pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]toke ns[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (1.79141pt too wide) in paragraph at lines 199--201 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][] ([][]ppl[ ][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.62138pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.29158pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]p pl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.11128pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (20.00146pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]wrap[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][] []class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (1.22195pt too wide) in paragraph at lines 215--217 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.34146pt too wide) in paragraph at lines 219--221 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]m pq[][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.05pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]t[][] ph, [134] Overfull \hbox (0.54193pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][ ]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.52112pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Oc tagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.30115pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Oc tagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.14194pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.92197pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.59161pt too wide) in paragraph at lines 245--247 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.37164pt too wide) in paragraph at lines 247--249 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.06079pt too wide) in paragraph at lines 251--253 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]fprint[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][] (F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stre am, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (2.50148pt too wide) in paragraph at lines 253--255 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Sha pe[][][]mpq[][][]class[][] (char $\OMS/cmsy/m/n/10 ^^C$$^^C$\OT1/ptm/bc/n/10 st rp, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.58278pt too wide) in paragraph at lines 275--276 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][] Overfull \hbox (13.64336pt too wide) in paragraph at lines 281--282 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpq[][][]class[] [135] Overfull \hbox (1.20328pt too wide) in paragraph at lines 287--288 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (9.49188pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]from[][][][]Grid Overfull \hbox (10.69327pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (1.61278pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (2.73277pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (1.85248pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (2.97247pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (15.35258pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] [136] Overfull \hbox (29.79253pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (2.9026pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (12.4025pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.40201pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (2.522pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (11.24171pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (12.36171pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] [137] Overfull \hbox (7.13284pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (12.6829pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.45291pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new [][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (25.94154pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s pace[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]space[][][]dimension Overfull \hbox (31.3016pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpq[][][]class[][][]affine[][][]dimension Overfull \hbox (37.7628pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[][][]relation[] Overfull \hbox (36.08287pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]relation[] Overfull \hbox (2.03284pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] [138] Overfull \hbox (18.70169pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]get[][][]constraints Overfull \hbox (24.25175pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]get[][][]congruences Overfull \hbox (3.3225pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (8.87256pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (27.39282pt too wide) in paragraph at lines 467--468 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]contains[] Overfull \hbox (0.92271pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]is[][][] [139] Overfull \hbox (1.49265pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t opological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.86339pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]bounds[] Overfull \hbox (6.96324pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]bounds[] Overfull \hbox (21.833pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m aximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[][][]maximize[] Overfull \hbox (20.17282pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m inimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[][][]minimize[] [140] Overfull \hbox (6.39226pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (13.10172pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s trictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT 1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (10.97186pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (0.9423pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e quals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (13.36177pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class[][][]add[][][]constraint Overfull \hbox (18.91183pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class[][][]add[][][]congruence [141] Overfull \hbox (22.05167pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]add[][][]constraints Overfull \hbox (27.60173pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]add[][][]congruences Overfull \hbox (16.4929pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (22.04297pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (20.3828pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (25.93286pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (31.32278pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i ntersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][][]intersection[] Overfull \hbox (4.13298pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]upper[] [142] Overfull \hbox (14.31299pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d ifference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[ ][][]mpq[][][]class[][][]difference[] Overfull \hbox (27.0731pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c oncatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape [][][]mpq[][][]class[][][]concatenate[] Overfull \hbox (23.20291pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t ime[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]time[][][]elapse[] Overfull \hbox (12.77266pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][] []Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (16.39233pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s implify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]O ctagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (16.68237pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (20.57227pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] [143] Overfull \hbox (3.352pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][][]affine[][][]image ( Overfull \hbox (22.4119pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]affine[][][]preimage Overfull \hbox (21.49312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpq[][][]class[][][]bounded[] Overfull \hbox (2.15298pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][] Overfull \hbox (52.33287pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (10.91272pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.09232pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] [144] Overfull \hbox (10.34235pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (12.37238pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (0.72276pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.2224pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (28.36278pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xpand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]expand[] Overfull \hbox (7.9527pt too wide) in paragraph at lines 749--750 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]f old[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[][][]fold[] [145] Overfull \hbox (5.6228pt too wide) in paragraph at lines 755--756 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m ap[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpq[][][]class[][][]map[] Overfull \hbox (19.80269pt too wide) in paragraph at lines 761--762 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (1.52267pt too wide) in paragraph at lines 767--768 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (2.87297pt too wide) in paragraph at lines 773--774 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xternal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (14.35309pt too wide) in paragraph at lines 779--780 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t otal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[][][]total[] Overfull \hbox (13.52211pt too wide) in paragraph at lines 785--786 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (3.9127pt too wide) in paragraph at lines 791--792 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (13.52246pt too wide) in paragraph at lines 797--798 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[] [146] Overfull \hbox (1.03305pt too wide) in paragraph at lines 803--804 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]widening[] Overfull \hbox (38.56151pt too wide) in paragraph at lines 809--810 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens ()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (22.44177pt too wide) in paragraph at lines 815--816 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \ OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (11.67209pt too wide) in paragraph at lines 821--822 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (12.83237pt too wide) in paragraph at lines 827--828 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (15.72232pt too wide) in paragraph at lines 833--834 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.11292pt too wide) in paragraph at lines 839--840 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] [147] Overfull \hbox (1.29317pt too wide) in paragraph at lines 845--846 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][][]C[] Overfull \hbox (26.29156pt too wide) in paragraph at lines 851--852 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l inear[][][]partition()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpq[][][]class[][][]linear[][][]partition Overfull \hbox (1.61258pt too wide) in paragraph at lines 863--864 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (4.28264pt too wide) in paragraph at lines 869--870 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (14.33266pt too wide) in paragraph at lines 875--876 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][] new[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (26.27225pt too wide) in paragraph at lines 881--882 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][]assign[][][][]Octagonal[] [148] Overfull \hbox (14.31274pt too wide) in paragraph at lines 887--888 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]add[] Overfull \hbox (2.5828pt too wide) in paragraph at lines 893--894 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.95296pt too wide) in paragraph at lines 899--900 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]M[]S[][][][]Octagonal[][][] Overfull \hbox (23.28305pt too wide) in paragraph at lines 905--906 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (36.81273pt too wide) in paragraph at lines 917--918 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (42.73245pt too wide) in paragraph at lines 923--924 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (41.06253pt too wide) in paragraph at lines 929--930 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (6.67296pt too wide) in paragraph at lines 935--936 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]M[]S[][][][]Octagonal[] [149] Overfull \hbox (5.00304pt too wide) in paragraph at lines 941--942 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]P[]R[][][][]Octagonal[] Overfull \hbox (5.80263pt too wide) in paragraph at lines 947--948 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (4.1327pt too wide) in paragraph at lines 953--954 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (5.25243pt too wide) in paragraph at lines 959--960 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] Overfull \hbox (3.5825pt too wide) in paragraph at lines 965--966 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] [150]) (./interfaceppl__Octagonal__Shape__mpz__class__tag.tex Overfull \hbox (10.67032pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (3.31183pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.45007pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (1.63164pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.1917pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (14.8418pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.24191pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity [][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (12.62155pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (16.21144pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (16.7715pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] [151] Overfull \hbox (7.21118pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (13.8615pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.5214pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.3509pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.66112pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.88121pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]constraints[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.53152pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]congruences[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.29147pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpz[] Overfull \hbox (2.86131pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]contains[][][]integer[][][]point[][] ([][]ppl[][][]const[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (6.35104pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][][]const[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 97--99 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (7.02023pt too wide) in paragraph at lines 99--101 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, [152] Overfull \hbox (23.56075pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]strictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class [][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (22.17088pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]is[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (12.44131pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]equals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][ ][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.21143pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (12.21129pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (16.10118pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]refine[][][]with[][][]constraints[][] ([][]ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.6717pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.5411pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.84126pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]constrains[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.18126pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]unconstrain[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.07115pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (20.8513pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][ ][]class[][][]t[][] ph, [][]ppl[][][]dimension[] [153] Overfull \hbox (13.62173pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.75192pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 dimension[][][]type[][] var, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Ex pression[][][]t[][] ub, [][]ppl[][][]const[] Overfull \hbox (2.61021pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (1.48982pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (2.4613pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 159--161 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (10.51138pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][] [][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (4.11174pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]O ctagonal[][][][]Shape[][][]mpz[] Overfull \hbox (5.22159pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (0.21179pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[] Overfull \hbox (1.05014pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (16.10132pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (10.35161pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.95117pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.8817pt too wide) in paragraph at lines 187--189 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][][]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][] ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.25133pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.55139pt too wide) in paragraph at lines 193--195 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]widening[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz [][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (24.18103pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][] []tokens[][] ([][]ppl[][][][]Octagonal[] [154] Overfull \hbox (8.6311pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]toke ns[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (1.23135pt too wide) in paragraph at lines 199--201 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][] ([][]ppl[ ][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.50127pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (4.73152pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]p pl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.99117pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (18.88135pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]wrap[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][] []class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (0.10184pt too wide) in paragraph at lines 215--217 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (10.22134pt too wide) in paragraph at lines 219--221 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]m pz[][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.401pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Oc tagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.18103pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Oc tagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.58188pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] [155] Overfull \hbox (6.36191pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.03156pt too wide) in paragraph at lines 245--247 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.81158pt too wide) in paragraph at lines 247--249 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.94067pt too wide) in paragraph at lines 251--253 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]fprint[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][] (F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stre am, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.38136pt too wide) in paragraph at lines 253--255 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][] (char $\OMS/cmsy/m/n/10 ^^C$$^^C$\OT1/ptm/bc/n/10 st rp, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (25.67891pt too wide) in paragraph at lines 255--257 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]t[][] x, F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stream) Overfull \hbox (23.4628pt too wide) in paragraph at lines 275--276 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.52336pt too wide) in paragraph at lines 281--282 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.37189pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]from[][][][]Grid [156] Overfull \hbox (9.57327pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.49278pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (1.61278pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (0.73248pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.85248pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (14.23259pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (28.67253pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.78261pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Octagonal[][][][]Shape[] [157] Overfull \hbox (11.2825pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (0.28201pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (1.40201pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (10.12172pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (11.24171pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (6.01285pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (11.56291pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpz[] [158] Overfull \hbox (4.33292pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new [][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (24.82155pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s pace[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]space[][][]dimension Overfull \hbox (30.18161pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpz[][][]class[][][]affine[][][]dimension Overfull \hbox (36.6428pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[][][]relation[] Overfull \hbox (34.96288pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]relation[] Overfull \hbox (0.91284pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (17.5817pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]get[][][]constraints Overfull \hbox (23.13176pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]get[][][]congruences Overfull \hbox (2.2025pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] [159] Overfull \hbox (7.75256pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (26.27283pt too wide) in paragraph at lines 467--468 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]contains[] Overfull \hbox (62.20276pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]is[][][]topologically[] Overfull \hbox (0.37265pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t opological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.7434pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]bounds[] Overfull \hbox (5.84325pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]bounds[] [160] Overfull \hbox (20.713pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m aximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[][][]maximize[] Overfull \hbox (19.05283pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m inimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[][][]minimize[] Overfull \hbox (4.15227pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] [161] Overfull \hbox (10.86172pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s trictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT 1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (8.73187pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (13.10233pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e quals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (12.24178pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class[][][]add[][][]constraint Overfull \hbox (17.79184pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class[][][]add[][][]congruence Overfull \hbox (20.93167pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]add[][][]constraints Overfull \hbox (26.48174pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]add[][][]congruences Overfull \hbox (15.37291pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]refine[] [162] Overfull \hbox (20.92297pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (19.2628pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (24.81287pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (30.20279pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i ntersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][][]intersection[] Overfull \hbox (3.01299pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]upper[] Overfull \hbox (13.193pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d ifference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[ ][][]mpz[][][]class[][][]difference[] Overfull \hbox (25.95311pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c oncatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape [][][]mpz[][][]class[][][]concatenate[] Overfull \hbox (22.08292pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t ime[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]time[][][]elapse[] [163] Overfull \hbox (11.65266pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.27234pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s implify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]O ctagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.56238pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (19.45227pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.23201pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][][]affine[][][]image ( Overfull \hbox (21.2919pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]affine[][][]preimage Overfull \hbox (20.37312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpz[][][]class[][][]bounded[] [164] Overfull \hbox (1.03299pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][] Overfull \hbox (51.21288pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (9.79272pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.97232pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (1.8322pt too wide) in paragraph at lines 713--714 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (9.22235pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Octagonal[][][][]Shape[][][]mpz[] [165] Overfull \hbox (11.25238pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (2.48277pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][] Overfull \hbox (4.1024pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (27.24278pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xpand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]expand[] Overfull \hbox (6.8327pt too wide) in paragraph at lines 749--750 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]f old[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[][][]fold[] Overfull \hbox (4.5028pt too wide) in paragraph at lines 755--756 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m ap[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpz[][][]class[][][]map[] Overfull \hbox (18.6827pt too wide) in paragraph at lines 761--762 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.40268pt too wide) in paragraph at lines 767--768 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][]mpz[] [166] Overfull \hbox (1.75298pt too wide) in paragraph at lines 773--774 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xternal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (13.2331pt too wide) in paragraph at lines 779--780 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t otal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[][][]total[] Overfull \hbox (12.40211pt too wide) in paragraph at lines 785--786 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.79271pt too wide) in paragraph at lines 791--792 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.40247pt too wide) in paragraph at lines 797--798 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.79306pt too wide) in paragraph at lines 803--804 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]widening[][][] Overfull \hbox (37.44151pt too wide) in paragraph at lines 809--810 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens ()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [167] Overfull \hbox (21.32178pt too wide) in paragraph at lines 815--816 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \ OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (10.5521pt too wide) in paragraph at lines 821--822 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (11.71237pt too wide) in paragraph at lines 827--828 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (14.60233pt too wide) in paragraph at lines 833--834 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.99292pt too wide) in paragraph at lines 839--840 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.17317pt too wide) in paragraph at lines 845--846 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][][]C[] Overfull \hbox (25.17157pt too wide) in paragraph at lines 851--852 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l inear[][][]partition()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpz[][][]class[][][]linear[][][]partition [168] Overfull \hbox (0.49258pt too wide) in paragraph at lines 863--864 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (3.16264pt too wide) in paragraph at lines 869--870 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (13.21266pt too wide) in paragraph at lines 875--876 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][] new[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (24.03226pt too wide) in paragraph at lines 881--882 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][]assign[][][][]Octagonal[] Overfull \hbox (13.19275pt too wide) in paragraph at lines 887--888 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]add[] Overfull \hbox (1.4628pt too wide) in paragraph at lines 893--894 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[] Overfull \hbox (23.83298pt too wide) in paragraph at lines 899--900 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (22.16306pt too wide) in paragraph at lines 905--906 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]P[]R[][][][]Octagonal[][][][]Shape[] [169] Overfull \hbox (37.36266pt too wide) in paragraph at lines 911--912 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (35.69273pt too wide) in paragraph at lines 917--918 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (41.61246pt too wide) in paragraph at lines 923--924 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (39.94254pt too wide) in paragraph at lines 929--930 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (5.55296pt too wide) in paragraph at lines 935--936 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]M[]S[][][][]Octagonal[] Overfull \hbox (3.88304pt too wide) in paragraph at lines 941--942 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]P[]R[][][][]Octagonal[] Overfull \hbox (4.68263pt too wide) in paragraph at lines 947--948 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (3.01271pt too wide) in paragraph at lines 953--954 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] [170] Overfull \hbox (4.13243pt too wide) in paragraph at lines 959--960 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] Overfull \hbox (2.46251pt too wide) in paragraph at lines 965--966 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] ) (./interfaceppl__PIP__Decision__Node__tag.tex [171]) (./interfaceppl__PIP__Problem__tag.tex [172] Overfull \hbox (4.04826pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]P[]I[]P[][][][]Problem[][][]f rom[][][][]P[]I[]P[][][][]Problem[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem[][ ][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ppip, [][]ppl[][][]const[][][][ ]P[]I[]P[][][][]Problem[] Overfull \hbox (1.52785pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]P[]I[]P[][][][]Problem[][] []from[][][][]P[]I[]P[][][][]Problem[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem [][][]t[][] dst, [][]ppl[][][]const[][][][]P[]I[]P[][][][]Problem[] Overfull \hbox (5.47821pt too wide) in paragraph at lines 56--58 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]P[]I[]P[][][][]Problem[][][]f rom[][][]constraints[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem[][][]t[][] $\OM S/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ppip, [][]ppl[][][]dimension[][][]type[][] d , [][]ppl[] Overfull \hbox (4.99655pt too wide) in paragraph at lines 56--58 [][][]\OT1/ptm/bc/n/10 Constraint[][][][]System[][][]const[][][]iterator[][][]t [][] first, [][]ppl[][][][]Constraint[][][][]System[][][]const[][][]iterator[][ ][]t[][] last, size[][][]t n, [][]ppl[] Overfull \hbox (1.6448pt too wide) in paragraph at lines 58--58 []\OT1/ptm/m/it/9 Builds a P[]IP prob-lem hav-ing space di-men-sion \OT1/pcr/m/ sl/9 d \OT1/ptm/m/it/9 from the se-quence of con-straints in the range $\OT1/cm r/m/n/9 [[]\OML/cmm/m/it/9 ; []\OT1/cmr/m/n/9 )$\OT1/ptm/m/it/9 ; Overfull \hbox (4.54796pt too wide) in paragraph at lines 68--70 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]number[][] []of[][][]parameter[][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]P []I[]P[][][][]Problem[][][]t[][] pip, [][]ppl[] Overfull \hbox (3.73772pt too wide) in paragraph at lines 71--73 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]parameter[ ][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Proble m[][][]t[][] pip, [][]ppl[][][]dimension[] Overfull \hbox (6.23784pt too wide) in paragraph at lines 74--76 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]get[][][]b ig[][][]parameter[][][]dimension[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][] Problem[][][]t[][] pip, [][]ppl[][][]dimension[] Overfull \hbox (7.51797pt too wide) in paragraph at lines 80--82 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]constraint [][][]at[][][]index[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Problem[][][] t[][] pip, [][]ppl[][][]dimension[][][]type[][] i, [][]ppl[] [173] Overfull \hbox (8.44783pt too wide) in paragraph at lines 101--103 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]t o[][][]parameter[][][]space[][][]dimensions[][] ([][]ppl[][][][]P[]I[]P[][][][] Problem[][][]t[][] pip, [][]ppl[][][]dimension[] [174] Overfull \hbox (4.83315pt too wide) in paragraph at lines 180--181 []\OT1/ptm/b/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]d imensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]P[]I[]P[][][][] Problem[][][]add[][][]space[][][]dimensions[] Underfull \hbox (badness 10000) detected at line 205 [][][] ) (./interfaceppl__PIP__Solution__Node__tag.tex Overfull \hbox (28.95125pt too wide) in paragraph at lines 15--16 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][] get[][][]parametric[][][]values[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]S olution[][][][]Node[][][]t[][] pip[][][]sol, [][]ppl[][][]dimension[] [175] Overfull \hbox (0.65196pt too wide) in paragraph at lines 48--49 []\OT1/ptm/b/n/10 ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][]get[][][ ]parametric[][][]values()[] \OT1/pcr/m/n/8 int ppl[][][][]P[]I[]P[][][][]Soluti on[][][][]Node[][][]get[][][]parametric[][][]values Underfull \hbox (badness 10000) detected at line 65 [][][] ) (./interfaceppl__PIP__Tree__Node__tag.tex [176] Overfull \hbox (0.62167pt too wide) in paragraph at lines 18--20 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]a s[][][]decision[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[ ][][]t[][] spip[][][]tree, [][]ppl[][][]const[][][][]P[]I[]P[][][][]Decision[] Overfull \hbox (17.25174pt too wide) in paragraph at lines 30--32 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]b egin[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]t[][] pip[][][]tree, [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[] Overfull \hbox (9.62175pt too wide) in paragraph at lines 33--35 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]e nd[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]t[][] pi p[][][]tree, [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[] ) (./interfaceppl__Pointset__Powerset__C__Polyhedron__const__iterator__tag.tex [177] Overfull \hbox (12.70763pt too wide) in paragraph at lines 16--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]const[][][]iterator[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.57777pt too wide) in paragraph at lines 18--19 \OT1/ptm/bc/n/10 Powerset[][][][]C[][][][]Polyhedron[][][]const[][][]iterator[] [][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pit, [][]ppl[][][]const[][][][ ]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[][][]const[] Overfull \hbox (35.44739pt too wide) in paragraph at lines 22--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]end[][] ([][]ppl[][][]const[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.6573pt too wide) in paragraph at lines 30--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]const[][ ][][]Pointset[][][][]Powerset[] Overfull \hbox (36.28717pt too wide) in paragraph at lines 32--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (37.94722pt too wide) in paragraph at lines 34--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.17719pt too wide) in paragraph at lines 36--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]cons t[][][][]Pointset[][][][]Powerset[] Overfull \hbox (31.45328pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][ ]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.3125pt too wide) in paragraph at lines 59--60 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator[][][]from[][][]const[][][]iterator()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] [178] Overfull \hbox (20.29312pt too wide) in paragraph at lines 69--70 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (12.51323pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.74301pt too wide) in paragraph at lines 89--90 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[ ][][][]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (46.56291pt too wide) in paragraph at lines 99--100 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 105 [][][] Overfull \hbox (40.09293pt too wide) in paragraph at lines 112--113 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (41.75298pt too wide) in paragraph at lines 122--123 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (38.88287pt too wide) in paragraph at lines 132--133 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [179]) (./interfaceppl__Pointset__Powerset__C__Polyhedron__iterator__tag.tex Overfull \hbox (20.47737pt too wide) in paragraph at lines 16--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][][]Pointset[][][][]Powerset[ ][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (20.17732pt too wide) in paragraph at lines 24--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.57744pt too wide) in paragraph at lines 32--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.23749pt too wide) in paragraph at lines 34--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.44711pt too wide) in paragraph at lines 36--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [180] Overfull \hbox (5.63354pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.95306pt too wide) in paragraph at lines 59--60 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator[][][]from[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][ ][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (35.75342pt too wide) in paragraph at lines 69--70 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (27.97353pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (27.80331pt too wide) in paragraph at lines 89--90 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.74318pt too wide) in paragraph at lines 99--100 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 105 [][][] Underfull \hbox (badness 10000) detected at line 108 [][][] Overfull \hbox (14.2732pt too wide) in paragraph at lines 115--116 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] [181] Overfull \hbox (15.93324pt too wide) in paragraph at lines 125--126 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.06314pt too wide) in paragraph at lines 135--136 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] ) (./interfaceppl__Pointset__Powerset__C__Polyhedron__tag.tex Overfull \hbox (38.41113pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][]space[][][]dimension[][] ([][]ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.16135pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (27.31155pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.16983pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron[][][]with[][][]complexity[][] Overfull \hbox (20.07114pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]space[][][]dimension[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.3812pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]dimension[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] [182] Overfull \hbox (0.48979pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[][][]t[][] ph) Overfull \hbox (33.96088pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]topological[][][]closure[][][]assign[][] ([][]ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.70169pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounds[][][]from[][][]above[][] ([][]ppl[][][]const[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (32.31142pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounds[][][]from[][][]below[][] ([][]ppl[][][]const[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.85016pt too wide) in paragraph at lines 61--63 \OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] [][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][] Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 p optimum) Overfull \hbox (2.16966pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]minimize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Powerse t[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (37.57085pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 65--67 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (35.9108pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 67--69 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (21.75092pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][] ([][]ppl[][][]const[][][][]Pointset[] Overfull \hbox (15.91096pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (13.97102pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][] ([][]ppl[][][]const[][][][]Pointset[] Overfull \hbox (1.04984pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]constraints[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (15.07112pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (21.72144pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]congruence[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.96101pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]constraints[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] [183] Overfull \hbox (25.61133pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]congruences[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.14104pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]intersection[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.8517pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.68123pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]concatenate[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.85103pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.01141pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]constrains[][] ([][]ppl[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]t[][] ph, [][]ppl[] Overfull \hbox (14.02145pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][][][]Powerset[ ][][][]C[][][][]Polyhedron[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.00993pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (16.48157pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.25146pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.13107pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 123--125 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (40.90097pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Point set[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 125--127 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (12.01096pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([] []ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (5.61131pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl [][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.72116pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]p pl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (32.54123pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.71136pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][ ][]Pointset[][][][]Powerset[] [184] Overfull \hbox (27.69139pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.96115pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.07114pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]map[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.85179pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]wideni ng[][][]assign[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (8.96167pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.44122pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign[ ][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.9914pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign[][] ([][] ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.42798pt too wide) in paragraph at lines 174--176 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]omega[][][]reduce[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (16.6074pt too wide) in paragraph at lines 177--178 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]size[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][ ][][]C[][][][]Polyhedron[][][]t[][] ps, size[] Overfull \hbox (23.49762pt too wide) in paragraph at lines 179--180 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (23.24736pt too wide) in paragraph at lines 181--182 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (15.89742pt too wide) in paragraph at lines 185--186 \OT1/ptm/bc/n/10 t[][] ps, [][]ppl[][][]const[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]t[][] cit, [][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] [185] Overfull \hbox (3.23778pt too wide) in paragraph at lines 189--190 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]pairwise[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 214 [][][] Overfull \hbox (25.52202pt too wide) in paragraph at lines 221--222 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (25.74188pt too wide) in paragraph at lines 231--232 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (6.22339pt too wide) in paragraph at lines 241--242 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]add[] [186] Overfull \hbox (15.2834pt too wide) in paragraph at lines 251--252 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[][][]drop[] Overfull \hbox (19.1733pt too wide) in paragraph at lines 261--262 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjuncts()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][]drop[] Overfull \hbox (3.18323pt too wide) in paragraph at lines 271--272 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]pairwise[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.6629pt too wide) in paragraph at lines 287--288 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (37.45274pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (1.60347pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]Pointset[][][][]Powerset[][][] [187] Overfull \hbox (1.06046pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity()[] Overfull \hbox (3.57407pt too wide) in paragraph at lines 305--306 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity Overfull \hbox (30.19272pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (19.09297pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (24.64304pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (5.60315pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (6.16321pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.12292pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (38.443pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (45.67299pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [188] Overfull \hbox (2.08215pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerse t[][][][]C[][][][]Polyhedron[][][]is[][][]empty Overfull \hbox (25.73187pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]C[][][][]Polyhedron[][][]is[][][]universe Overfull \hbox (22.262pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]is[][][]bounded Overfull \hbox (29.75294pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.20285pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.96188pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]C[][][][]Polyhedron[][][]is[][][]discrete Overfull \hbox (45.1328pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (21.72368pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]omega[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]omega[] Overfull \hbox (18.82352pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.92337pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] [189] Overfull \hbox (8.17215pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron[][][]maximize Overfull \hbox (6.51198pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron[][][]minimize Overfull \hbox (24.19312pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.53294pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.99251pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (6.30196pt too wide) in paragraph at lines 449--450 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] [190] Overfull \hbox (4.1721pt too wide) in paragraph at lines 455--456 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (5.66255pt too wide) in paragraph at lines 461--462 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron()[] \ OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (0.70338pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][] Overfull \hbox (3.37344pt too wide) in paragraph at lines 479--480 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.71327pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.26334pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.45303pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (34.0031pt too wide) in paragraph at lines 503--504 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [191] Overfull \hbox (32.34293pt too wide) in paragraph at lines 509--510 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (37.89299pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (14.4829pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.89311pt too wide) in paragraph at lines 527--528 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.0731pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.03322pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.08302pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.73277pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][] [192] Overfull \hbox (1.47244pt too wide) in paragraph at lines 557--558 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]simplify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.56197pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]constrains Overfull \hbox (1.76248pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[] Overfull \hbox (5.65237pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[] Overfull \hbox (19.49364pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]affine[] Overfull \hbox (2.0735pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.65324pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] [193] Overfull \hbox (42.91313pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.29298pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.67284pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (15.05244pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (29.31233pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/ n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.30247pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (24.3325pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] [194] Overfull \hbox (44.36292pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (17.18253pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (40.3229pt too wide) in paragraph at lines 653--654 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.51283pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Point set[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.98294pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.8828pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (13.4828pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/ n/8 int ppl[][][][]Pointset[][][][]Powerset[] [195] Overfull \hbox (46.51312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.11322pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.15227pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][] assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (22.31267pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign()[] \OT1/pc r/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.85257pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign()[] \OT1 /pcr/m/n/8 int ppl[][][][]Pointset[][][] Overfull \hbox (18.69278pt too wide) in paragraph at lines 713--714 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (7.80214pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]print[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron ( Overfull \hbox (6.33209pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fprint[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron Overfull \hbox (16.69203pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]asprint[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron [196] Overfull \hbox (9.15346pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]ascii[] Overfull \hbox (2.48352pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]ascii[] ) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__const__iterator__tag.tex Overfull \hbox (11.83833pt too wide) in paragraph at lines 1--1 []\OT1/ptm/b/n/12 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]const[][][]iterator[][][]tag In-ter-face Ref-er-ence Overfull \hbox (30.36118pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.3908pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][] []const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.1415pt too wide) in paragraph at lines 23--25 [][][]\OT1/ptm/bc/n/10 N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][] t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]const[][][]iterator[] Overfull \hbox (10.87091pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] [197] Overfull \hbox (4.61319pt too wide) in paragraph at lines 43--44 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (32.75244pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[][][]iterator[][][]from[][][]const[][][]iterator() [] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (44.33307pt too wide) in paragraph at lines 55--56 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.55318pt too wide) in paragraph at lines 61--62 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.44278pt too wide) in paragraph at lines 67--68 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int p pl[][][][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (3.65283pt too wide) in paragraph at lines 73--74 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (0.51288pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][] Overfull \hbox (2.44281pt too wide) in paragraph at lines 85--86 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (9.50294pt too wide) in paragraph at lines 91--92 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]d elete[][][][]Pointset[][][][]Powerset[] [198]) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__iterator__tag.tex Overfull \hbox (5.65144pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (11.31146pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]begin[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.68147pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]end[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (29.23099pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (30.89104pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.83087pt too wide) in paragraph at lines 31--32 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][]const[][][][]Point set[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (29.6735pt too wide) in paragraph at lines 43--44 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Poin tset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.393pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator[][][]from[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (18.51334pt too wide) in paragraph at lines 55--56 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [199] Overfull \hbox (10.73344pt too wide) in paragraph at lines 61--62 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.10309pt too wide) in paragraph at lines 67--68 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (38.31314pt too wide) in paragraph at lines 73--74 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (39.97319pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (44.78313pt too wide) in paragraph at lines 85--86 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][]Point set[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.96323pt too wide) in paragraph at lines 91--92 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] ) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__tag.tex Overfull \hbox (5.3514pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] [200] Overfull \hbox (26.03156pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[ ][][]complexity[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (0.11113pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]Constraint[][][][]System[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.76144pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]Congruence[][][][]System[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (4.25085pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.56107pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]con st[][][][]Pointset[][][][]Powerset[] Overfull \hbox (10.90117pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Congruence[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] Overfull \hbox (16.7413pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (25.2213pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]universe[][] ([][]ppl[][][]const[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.18152pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]bounded[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.84103pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]discrete[][] ([][]ppl[][][]const[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.89133pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]pairwise[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (13.47177pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]omega[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.91118pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]maximize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.85019pt too wide) in paragraph at lines 63--65 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum) Overfull \hbox (19.25113pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]minimize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.85019pt too wide) in paragraph at lines 65--67 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum) Overfull \hbox (1.19106pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][] [][]Pointset[][][][]Powerset[][][][]N[] [201] Overfull \hbox (14.80135pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (21.47098pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (20.08112pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerse t[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (14.15979pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset [][][][]N[]N[]C[][][][]Polyhedron[][] Overfull \hbox (6.02162pt too wide) in paragraph at lines 77--79 \OT1/ptm/bc/n/10 ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (13.90953pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset [][][][]N[]N[]C[][][][]Polyhedron[][] Overfull \hbox (6.02162pt too wide) in paragraph at lines 79--81 \OT1/ptm/bc/n/10 ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.02145pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][] [][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (14.24141pt too wide) in paragraph at lines 85--87 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]constraint[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.89172pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]congruence[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.1313pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]constraints[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (24.78162pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]congruences[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.89159pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]refine[][][]with[][][]congruence[][] ([][]ppl[][][][]Poin tset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (32.02092pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]intersection[][][]assign[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.73158pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (25.6412pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]difference[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (32.56111pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]concatenate[][][]assign[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (31.73091pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.44106pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl [][][][]Pointset[][][][]Powerset[] [202] Overfull \hbox (3.9711pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][] []Pointset[][][][]Powerset[] Overfull \hbox (7.3215pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.0914pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.7517pt too wide) in paragraph at lines 127--129 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (0.6313pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (13.681pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (26.4509pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[] [] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.05125pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([ ][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (21.1611pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (16.1513pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.19162pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Poin tset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (3.25156pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][ ]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (11.85156pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2[] [] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (12.13116pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][ ]const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.47151pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]disjunct[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (10.36153pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]disjunct[][] ([][]ppl[][][][]Pointset[][][][]Po werset[][][][]N[]N[]C[][][][]Polyhedron[] [203] Overfull \hbox (14.25142pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]disjuncts[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.29173pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][] widening[][][]assign[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (23.40161pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assi gn[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (17.43134pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (11.74142pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]print[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.18124pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (6.50212pt too wide) in paragraph at lines 195--196 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (24.10284pt too wide) in paragraph at lines 201--202 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (7.77258pt too wide) in paragraph at lines 207--208 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (27.60335pt too wide) in paragraph at lines 213--214 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] [204] Overfull \hbox (29.94034pt too wide) in paragraph at lines 219--220 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]with[][][]complexity()[] Overfull \hbox (22.77408pt too wide) in paragraph at lines 219--220 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]with[][][]complexity Overfull \hbox (0.51256pt too wide) in paragraph at lines 225--226 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]com plexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (33.53291pt too wide) in paragraph at lines 231--232 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.68295pt too wide) in paragraph at lines 237--238 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][] Overfull \hbox (29.6431pt too wide) in paragraph at lines 243--244 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (30.20316pt too wide) in paragraph at lines 249--250 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.68283pt too wide) in paragraph at lines 255--256 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (2.0029pt too wide) in paragraph at lines 261--262 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Pointset[][][][]Powerset[][][][]N[] [205] Overfull \hbox (1.55289pt too wide) in paragraph at lines 267--268 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (8.22359pt too wide) in paragraph at lines 273--274 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[][][]is[] Overfull \hbox (4.99329pt too wide) in paragraph at lines 279--280 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (6.32341pt too wide) in paragraph at lines 285--286 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.91286pt too wide) in paragraph at lines 291--292 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.36276pt too wide) in paragraph at lines 297--298 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.2233pt too wide) in paragraph at lines 303--304 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.0127pt too wide) in paragraph at lines 309--310 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (27.22318pt too wide) in paragraph at lines 315--316 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]pairwise[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.8836pt too wide) in paragraph at lines 321--322 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]omega[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [206] Overfull \hbox (42.86346pt too wide) in paragraph at lines 327--328 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (42.96332pt too wide) in paragraph at lines 333--334 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.79358pt too wide) in paragraph at lines 339--340 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][][] Overfull \hbox (1.1334pt too wide) in paragraph at lines 345--346 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][][] Overfull \hbox (0.23303pt too wide) in paragraph at lines 351--352 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][] Overfull \hbox (46.57289pt too wide) in paragraph at lines 357--358 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [207] Overfull \hbox (1.59236pt too wide) in paragraph at lines 363--364 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (7.00032pt too wide) in paragraph at lines 369--370 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int Overfull \hbox (4.87047pt too wide) in paragraph at lines 375--376 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][ ]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int Overfull \hbox (3.82037pt too wide) in paragraph at lines 381--382 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron()[] Overfull \hbox (7.41406pt too wide) in paragraph at lines 381--382 \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron Overfull \hbox (4.04024pt too wide) in paragraph at lines 387--388 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron()[] Overfull \hbox (7.41406pt too wide) in paragraph at lines 387--388 \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron Overfull \hbox (34.54243pt too wide) in paragraph at lines 393--394 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Poly hedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (21.86333pt too wide) in paragraph at lines 405--406 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (27.41339pt too wide) in paragraph at lines 411--412 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [208] Overfull \hbox (25.75322pt too wide) in paragraph at lines 417--418 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (31.30328pt too wide) in paragraph at lines 423--424 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.61295pt too wide) in paragraph at lines 429--430 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.363pt too wide) in paragraph at lines 435--436 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (0.70284pt too wide) in paragraph at lines 441--442 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (1.4529pt too wide) in paragraph at lines 447--448 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (38.52284pt too wide) in paragraph at lines 453--454 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (44.93306pt too wide) in paragraph at lines 459--460 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [209] Overfull \hbox (31.11305pt too wide) in paragraph at lines 465--466 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (39.07317pt too wide) in paragraph at lines 471--472 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.12297pt too wide) in paragraph at lines 477--478 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (12.29271pt too wide) in paragraph at lines 483--484 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (15.91238pt too wide) in paragraph at lines 489--490 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]simplify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.70338pt too wide) in paragraph at lines 495--496 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (16.20242pt too wide) in paragraph at lines 501--502 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.09232pt too wide) in paragraph at lines 507--508 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl [][][][]Pointset[][][][]Powerset[] [210] Overfull \hbox (11.85356pt too wide) in paragraph at lines 513--514 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.11345pt too wide) in paragraph at lines 519--520 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.81316pt too wide) in paragraph at lines 525--526 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (1.67303pt too wide) in paragraph at lines 531--532 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][] Overfull \hbox (3.85289pt too wide) in paragraph at lines 537--538 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (10.43277pt too wide) in paragraph at lines 543--544 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Pointset[][][][]Powerset[] [211] Overfull \hbox (29.49239pt too wide) in paragraph at lines 549--550 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr /m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.47224pt too wide) in paragraph at lines 555--556 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/ pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (36.74242pt too wide) in paragraph at lines 561--562 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m /n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.37242pt too wide) in paragraph at lines 567--568 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr /m/n/8 int ppl[][][][]Pointset[][][] Overfull \hbox (0.24281pt too wide) in paragraph at lines 573--574 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[] Overfull \hbox (31.62247pt too wide) in paragraph at lines 579--580 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.88281pt too wide) in paragraph at lines 585--586 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[] [212] Overfull \hbox (2.67274pt too wide) in paragraph at lines 591--592 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (0.34285pt too wide) in paragraph at lines 597--598 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (19.32274pt too wide) in paragraph at lines 603--604 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n /8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (27.92274pt too wide) in paragraph at lines 609--610 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/ pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.39302pt too wide) in paragraph at lines 615--616 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (4.27313pt too wide) in paragraph at lines 621--622 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (12.98332pt too wide) in paragraph at lines 633--634 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [213] Overfull \hbox (17.24333pt too wide) in paragraph at lines 639--640 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (21.13322pt too wide) in paragraph at lines 645--646 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjuncts()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.59221pt too wide) in paragraph at lines 651--652 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening [][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (36.75261pt too wide) in paragraph at lines 657--658 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign()[] \ OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (12.4125pt too wide) in paragraph at lines 663--664 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign()[ ] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (33.13272pt too wide) in paragraph at lines 669--670 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pc r/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.24208pt too wide) in paragraph at lines 675--676 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][][] []N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]print[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (30.37204pt too wide) in paragraph at lines 681--682 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fprint[][] [][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron [214] Overfull \hbox (1.71346pt too wide) in paragraph at lines 687--688 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[][] [][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]asprint[] [][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] Overfull \hbox (6.31339pt too wide) in paragraph at lines 693--694 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.52345pt too wide) in paragraph at lines 699--700 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[][][] ) (./interfaceppl__Polyhedron__tag.tex Overfull \hbox (5.63234pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Rational[][][][ ]Box[] Overfull \hbox (10.59242pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][][]Polyhedron[][][] t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]B[] D[][][][]Shape[] Overfull \hbox (11.15248pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][][]Polyhedron[][][] t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]B[] D[][][][]Shape[] Overfull \hbox (6.71233pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][][]Polyh edron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const [] Overfull \hbox (7.27238pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][][]Polyh edron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const [] [215] Overfull \hbox (3.80247pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t [][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Grid [] Overfull \hbox (3.2623pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedr on[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[] Overfull \hbox (10.18228pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][ ]ppl[] Overfull \hbox (0.8408pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, Overfull \hbox (10.74234pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][ ]ppl[] Overfull \hbox (1.40086pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, Overfull \hbox (6.25206pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity [][] ([][]ppl[][][][]Polyhedron[] Overfull \hbox (6.81212pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity [][] ([][]ppl[][][][]Polyhedron[] Overfull \hbox (25.27213pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][] Polyhedron[][][]t[][] y, [][]ppl[][][][]Polyhedron[] Overfull \hbox (5.6022pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedro n[][][]t[][] pset, [][]ppl[][][][]Generator[] [216] Overfull \hbox (3.38223pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedro n[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (20.04214pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pol yhedron[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (17.82217pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pol yhedron[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (11.182pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedr on[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (8.96204pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedr on[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (25.62195pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Po lyhedron[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (23.40198pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Po lyhedron[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (26.14159pt too wide) in paragraph at lines 111--113 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]C[ ][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (23.92162pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]C[ ][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (14.20235pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][] [][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (11.98238pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][] [][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (13.65202pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][ ][][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (11.43205pt too wide) in paragraph at lines 133--134 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][ ][][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] [217] Overfull \hbox (10.48825pt too wide) in paragraph at lines 144--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/c msy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (23.78888pt too wide) in paragraph at lines 148--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/c msy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (8.35905pt too wide) in paragraph at lines 150--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle [][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OM S/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] Overfull \hbox (25.46918pt too wide) in paragraph at lines 160--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedro n[] Overfull \hbox (24.92819pt too wide) in paragraph at lines 164--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $ \OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraint [] Overfull \hbox (9.49837pt too wide) in paragraph at lines 166--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Constraint[] Overfull \hbox (22.799pt too wide) in paragraph at lines 170--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] Overfull \hbox (25.72865pt too wide) in paragraph at lines 172--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[] [] dst, [][]ppl[][][]const[][][][]Polyhedron[] [218] Overfull \hbox (11.02924pt too wide) in paragraph at lines 178--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (6.43909pt too wide) in paragraph at lines 180--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Po lyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (11.02924pt too wide) in paragraph at lines 182--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (6.43909pt too wide) in paragraph at lines 184--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Po lyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (2.65869pt too wide) in paragraph at lines 206--207 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]congruences[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][] Congruence[][][][]System[] Overfull \hbox (2.68785pt too wide) in paragraph at lines 208--209 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]c onstraints[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][] []const[][][][]Constraint[] Overfull \hbox (15.98848pt too wide) in paragraph at lines 210--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]c ongruences[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][] []const[][][][]Congruence[] [219] Overfull \hbox (8.73904pt too wide) in paragraph at lines 226--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounds[][][]from[][][]abo ve[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (9.34877pt too wide) in paragraph at lines 228--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounds[][][]from[][][]bel ow[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (14.6082pt too wide) in paragraph at lines 230--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]maximize[][][]with[][][]p oint[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (1.86832pt too wide) in paragraph at lines 232--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]maximize[][] ([][]ppl[][] []const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][] []Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (12.94815pt too wide) in paragraph at lines 234--235 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]minimize[][][]with[][][]p oint[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (14.84818pt too wide) in paragraph at lines 236--238 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]minimize[][][]with[][] []point[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]c onst[][][][]Linear[][][][]Expression[] Overfull \hbox (11.01836pt too wide) in paragraph at lines 241--242 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]strictly[][][]contains[][ ][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][]ppl [][][]const[][][][]Polyhedron[] Overfull \hbox (9.6285pt too wide) in paragraph at lines 243--244 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]fro m[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][ ]ppl[][][]const[][][][]Polyhedron[] [220] Overfull \hbox (9.87866pt too wide) in paragraph at lines 275--276 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]refine[][][]with[][][]con gruences[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][] []Congruence[][][][]System[] Overfull \hbox (2.82346pt too wide) in paragraph at lines 291--292 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][ ][]dimensions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimens ion[][][]type[][] ds[]$ $[], Overfull \hbox (4.84868pt too wide) in paragraph at lines 293--294 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]affine[][][]image[][] ([] []ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] var , [][]ppl[][][]const[][][][]Linear[] Overfull \hbox (1.24907pt too wide) in paragraph at lines 299--300 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][] preimage[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[] [][]type[][] var, [][]ppl[] Overfull \hbox (0.58711pt too wide) in paragraph at lines 301--302 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]generalized[][][]affine[] [][]image[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[ ][][]type[][] var, enum [221] Overfull \hbox (6.12796pt too wide) in paragraph at lines 303--304 \OT1/ptm/bc/n/10 enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-s ym, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] [][]const[][][][]Coefficient[] Overfull \hbox (0.9884pt too wide) in paragraph at lines 307--308 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]generalized[][][]affine[] [][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [] []ppl[][][]const[][][][]Linear[] Overfull \hbox (12.40506pt too wide) in paragraph at lines 319--320 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]remove[][][]space[][][]di mensions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[] [][]type[][] ds[]$ $[], size[] Overfull \hbox (12.1548pt too wide) in paragraph at lines 323--324 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]map[][][]space[][][]dimen sions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[][][ ]type[][] maps[]$ $[], size[] [222] Overfull \hbox (7.10867pt too wide) in paragraph at lines 347--348 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cm sy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (21.54861pt too wide) in paragraph at lines 351--352 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\ OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (6.11879pt too wide) in paragraph at lines 353--354 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Generator[] Overfull \hbox (7.50677pt too wide) in paragraph at lines 355--356 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]generators[][] ( [][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][]G enerator[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs) Overfull \hbox (14.67685pt too wide) in paragraph at lines 369--370 [][][]\OT1/ptm/bc/n/10 Integer[][][][]Type[][][][]Overflow[][] o, const [][]ppl [][][]const[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 pcs, un-signed complexity[][][]threshold, Overfull \hbox (28.9686pt too wide) in paragraph at lines 371--372 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widen ing[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (9.51877pt too wide) in paragraph at lines 373--374 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][] assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]p pl[][][]const[][][][]Polyhedron[] [223] Overfull \hbox (1.88829pt too wide) in paragraph at lines 379--380 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Pol yhedron[][][]t[][] x, [][]ppl[] Overfull \hbox (7.1482pt too wide) in paragraph at lines 381--382 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]e xtrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[] [][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (25.31825pt too wide) in paragraph at lines 383--384 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (5.86842pt too wide) in paragraph at lines 385--386 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]e xtrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[] [][]const[][][][]Polyhedron[] Overfull \hbox (7.98883pt too wide) in paragraph at lines 387--388 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Pol yhedron[][][]t[][] x, [][]ppl[] Overfull \hbox (31.4188pt too wide) in paragraph at lines 391--392 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (11.96896pt too wide) in paragraph at lines 393--394 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]e xtrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[] [][]const[][][][]Polyhedron[] [224] Overfull \hbox (1.31215pt too wide) in paragraph at lines 412--413 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]space [][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[ ][][]from[][][]space[][][]dimension ( Overfull \hbox (0.10345pt too wide) in paragraph at lines 432--433 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]C[][][][]Polyhedron[][][]from[][][][]C[][][] Underfull \hbox (badness 10000) detected at line 438 [][][] Overfull \hbox (10.74222pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Con straint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyh edron[][][]from[][][][]Constraint[][][][]System Overfull \hbox (11.32346pt too wide) in paragraph at lines 455--456 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Po lyhedron[][][]recycle[][][][]Constraint[] [225] Underfull \hbox (badness 10000) detected at line 463 [][][] Overfull \hbox (16.29228pt too wide) in paragraph at lines 470--471 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Con gruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyh edron[][][]from[][][][]Congruence[][][][]System Overfull \hbox (16.87352pt too wide) in paragraph at lines 480--481 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Po lyhedron[][][]recycle[][][][]Congruence[] Underfull \hbox (badness 10000) detected at line 488 [][][] Overfull \hbox (15.75209pt too wide) in paragraph at lines 505--506 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][ ]Polyhedron[][][]from[][][]space[][][]dimension Overfull \hbox (14.45259pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C [][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron [226] Overfull \hbox (5.94331pt too wide) in paragraph at lines 525--526 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int p pl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 531 [][][] Overfull \hbox (12.08365pt too wide) in paragraph at lines 538--539 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Constraint[] Overfull \hbox (35.3634pt too wide) in paragraph at lines 548--549 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[ ]C[][][][]Polyhedron[][][]recycle[][][][]Constraint[] Underfull \hbox (badness 10000) detected at line 556 [][][] Overfull \hbox (17.63371pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Congruence[] Overfull \hbox (40.91347pt too wide) in paragraph at lines 573--574 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[ ]C[][][][]Polyhedron[][][]recycle[][][][]Congruence[] [227] Underfull \hbox (badness 10000) detected at line 581 [][][] Overfull \hbox (37.75237pt too wide) in paragraph at lines 588--589 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]N []N[]C[][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (3.98338pt too wide) in paragraph at lines 608--609 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]C[][][][]Polyhedron[][][]from[] Underfull \hbox (badness 10000) detected at line 614 [][][] Overfull \hbox (13.58339pt too wide) in paragraph at lines 631--632 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [228] Underfull \hbox (badness 10000) detected at line 637 [][][] [229] [230] [231] Overfull \hbox (9.58202pt too wide) in paragraph at lines 894--895 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]strictly[][][]contains[][][][]Pol yhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]strictly[][][]contain s[][][][]Polyhedron ( Overfull \hbox (0.73216pt too wide) in paragraph at lines 904--905 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][][ ]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]is[][][]disjoint[ ][][]from[][][][]Polyhedron ( [232] Underfull \hbox (badness 10000) detected at line 1000 [][][] [233] Underfull \hbox (badness 10000) detected at line 1013 [][][] Overfull \hbox (6.30173pt too wide) in paragraph at lines 1090--1091 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]context[ ][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]simplify[][][]usi ng[][][]context[][][]assign [234] Overfull \hbox (8.51176pt too wide) in paragraph at lines 1120--1121 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dimen sion()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]unconstrain[][][]space[] [][]dimension ( Overfull \hbox (7.60165pt too wide) in paragraph at lines 1130--1131 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dimen sions()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]unconstrain[][][]space[ ][][]dimensions [235] Underfull \vbox (badness 10000) has occurred while \output is active [236] Overfull \hbox (2.74211pt too wide) in paragraph at lines 1251--1252 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]generalized[][][]affine[ ][][]preimage ( Overfull \hbox (6.78322pt too wide) in paragraph at lines 1274--1275 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]imag e[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]generaliz ed[][][]affine[][][]image[] [237] Overfull \hbox (35.44312pt too wide) in paragraph at lines 1295--1296 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]genera lized[][][]affine[][][]preimage[] Overfull \hbox (12.11325pt too wide) in paragraph at lines 1326--1327 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][ ][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]add[][][]sp ace[][][]dimensions[][][]and[] Overfull \hbox (14.14328pt too wide) in paragraph at lines 1336--1337 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][ ][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]add[][][] space[][][]dimensions[][][]and[] [238] Overfull \hbox (26.81181pt too wide) in paragraph at lines 1356--1357 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[][] []dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]remove[][][]high er[][][]space[][][]dimensions Overfull \hbox (7.42976pt too wide) in paragraph at lines 1372--1373 []\OT1/ptm/bc/n/10 The par-tial func-tion is de-fined on di-men-sion \OT1/pcr/m /n/10 i \OT1/ptm/bc/n/10 if \OT1/pcr/m/n/10 i $\OML/cmm/m/it/10 <$ \OT1/pcr/m/n /10 n \OT1/ptm/bc/n/10 and \OT1/pcr/m/n/10 maps[]i[] != ppl[][][]not[][][]a[][] []dimension\OT1/ptm/bc/n/10 ; [239] Overfull \hbox (4.26228pt too wide) in paragraph at lines 1448--1449 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhe dron[][][]from[][][][]Generator[][][][]System Overfull \hbox (4.84352pt too wide) in paragraph at lines 1458--1459 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Pol yhedron[][][]recycle[][][][]Generator[] Underfull \hbox (badness 10000) detected at line 1466 [][][] Overfull \hbox (5.60371pt too wide) in paragraph at lines 1473--1474 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Generator[] Overfull \hbox (28.88347pt too wide) in paragraph at lines 1483--1484 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[] C[][][][]Polyhedron[][][]recycle[][][][]Generator[] [240] Underfull \hbox (badness 10000) detected at line 1491 [][][] Underfull \hbox (badness 10000) detected at line 1544 [][][] [241] Overfull \hbox (22.67305pt too wide) in paragraph at lines 1602--1603 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][ ][]B[]H[]R[]Z03[][][]widening[][][]assign[] [242] Overfull \hbox (9.79324pt too wide) in paragraph at lines 1612--1613 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign[] [][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][][]H79[][ ][]widening[][][]assign[][][]with[] Overfull \hbox (6.43242pt too wide) in paragraph at lines 1642--1643 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Polyhedron[][][]limited[] Overfull \hbox (3.15262pt too wide) in paragraph at lines 1652--1653 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhe dron[][][]limited[][][][]H79[] Overfull \hbox (49.62305pt too wide) in paragraph at lines 1662--1663 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]lim ited[][][][]B[]H[]R[]Z03[][][]extrapolation[] [243] Overfull \hbox (14.66322pt too wide) in paragraph at lines 1672--1673 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]limited[][][ ][]H79[][][]extrapolation[] Overfull \hbox (13.67258pt too wide) in paragraph at lines 1682--1683 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Polyhedron[][][]bounded[] Overfull \hbox (10.39278pt too wide) in paragraph at lines 1692--1693 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhe dron[][][]bounded[][][][]H79[] Overfull \hbox (56.8632pt too wide) in paragraph at lines 1702--1703 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]bou nded[][][][]B[]H[]R[]Z03[][][]extrapolation[] Overfull \hbox (21.90338pt too wide) in paragraph at lines 1712--1713 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]bounded[][][ ][]H79[][][]extrapolation[] [244] Overfull \hbox (2.68365pt too wide) in paragraph at lines 1746--1747 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C [][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (9.44359pt too wide) in paragraph at lines 1752--1753 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]N[]N[]C[][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (3.80365pt too wide) in paragraph at lines 1758--1759 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C [][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (10.56358pt too wide) in paragraph at lines 1764--1765 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]N[]N[]C[][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[] [245] Overfull \hbox (22.12337pt too wide) in paragraph at lines 1770--1771 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]C[][][][]Polyhedron[][][]from[][][][]Octagonal[] Overfull \hbox (23.24336pt too wide) in paragraph at lines 1782--1783 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]C[][][][]Polyhedron[][][]from[][][][]Octagonal[] Overfull \hbox (1.20328pt too wide) in paragraph at lines 1788--1789 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] Overfull \hbox (36.272pt too wide) in paragraph at lines 1794--1795 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gri d[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (18.41342pt too wide) in paragraph at lines 1800--1801 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[ ]N[]C[][][][]Polyhedron[][][]from[][][][]Grid[][][]with[] Overfull \hbox (27.87338pt too wide) in paragraph at lines 1806--1807 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]C[][][][]Polyhedron[][][]from[][][][]Rational[] Overfull \hbox (10.6333pt too wide) in paragraph at lines 1812--1813 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [246] Overfull \hbox (18.7929pt too wide) in paragraph at lines 1818--1819 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[] Overfull \hbox (20.75282pt too wide) in paragraph at lines 1824--1825 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.71288pt too wide) in paragraph at lines 1830--1831 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[][][] Overfull \hbox (21.87282pt too wide) in paragraph at lines 1836--1837 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.7126pt too wide) in paragraph at lines 1842--1843 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.75252pt too wide) in paragraph at lines 1848--1849 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][] Overfull \hbox (27.8326pt too wide) in paragraph at lines 1854--1855 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[] [247] Overfull \hbox (0.99251pt too wide) in paragraph at lines 1860--1861 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[] Overfull \hbox (0.76205pt too wide) in paragraph at lines 1884--1885 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]upper[][][]bound[][][]assign[][][ ]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]upper[][][]bou nd[][][]assign[][][]if[][][]exact ( Overfull \hbox (2.99208pt too wide) in paragraph at lines 1902--1903 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]inte ger[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]drop[][][]som e[][][]non[][][]integer[][][]points [248] Overfull \hbox (20.5736pt too wide) in paragraph at lines 1908--1909 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]inte ger[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]drop[] [][]some[][][]non[][][]integer[][][]points[] Overfull \hbox (3.43185pt too wide) in paragraph at lines 1914--1915 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[][ ][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]widening[][][]assig n[][][]with[][][]tokens ( [249] Overfull \hbox (1.1535pt too wide) in paragraph at lines 1962--1963 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]M[]S[][][][]C[][][] Overfull \hbox (38.5021pt too wide) in paragraph at lines 1968--1969 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]P[]R[][][][]C[][][][]Polyhedron Overfull \hbox (0.23343pt too wide) in paragraph at lines 1974--1975 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]a ffine[][][]ranking[][][]function[][][][]M[] Overfull \hbox (3.36351pt too wide) in paragraph at lines 1980--1981 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]a ffine[][][]ranking[][][]function[][][][]P[]R[] Overfull \hbox (2.5233pt too wide) in paragraph at lines 1986--1987 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]M[]S[][][][]C[] Overfull \hbox (0.85338pt too wide) in paragraph at lines 1992--1993 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]P[]R[][][][]C[] Overfull \hbox (4.48323pt too wide) in paragraph at lines 1998--1999 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][] affine[][][]ranking[][][]functions[][][][]M[] Overfull \hbox (2.81331pt too wide) in paragraph at lines 2004--2005 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][] affine[][][]ranking[][][]functions[][][][]P[] [250] Overfull \hbox (2.0735pt too wide) in paragraph at lines 2034--2035 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]M[]S[][][] Overfull \hbox (0.40358pt too wide) in paragraph at lines 2040--2041 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]P[]R[][][] Overfull \hbox (1.15343pt too wide) in paragraph at lines 2046--2047 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one [][][]affine[][][]ranking[][][]function[] Overfull \hbox (2.36351pt too wide) in paragraph at lines 2052--2053 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one [][][]affine[][][]ranking[][][]function[][][] [251] Overfull \hbox (3.4433pt too wide) in paragraph at lines 2058--2059 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]M[]S[] Overfull \hbox (1.77338pt too wide) in paragraph at lines 2064--2065 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]P[]R[] Overfull \hbox (5.40323pt too wide) in paragraph at lines 2070--2071 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]al l[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (3.7333pt too wide) in paragraph at lines 2076--2077 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]al l[][][]affine[][][]ranking[][][]functions[] ) (./interfaceppl__Rational__Box__tag.tex Overfull \hbox (5.63234pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[] [] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhe dron[] [252] Overfull \hbox (1.04219pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Ra tional[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]pp l[] Overfull \hbox (9.09174pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]ppl[][][][]Rational [][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][ ]const[] Overfull \hbox (16.01172pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Rational[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.09135pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Constraint[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constra int[] Overfull \hbox (18.39198pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Congruence[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Congrue nce[] Overfull \hbox (1.71178pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Generator[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generato r[] Overfull \hbox (12.5317pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]relation[][][]wi th[][][][]Congruence[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[ ][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (7.53172pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]congrue nces[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[ ][][]const[][][][]Congruence[][][][]System[] Overfull \hbox (7.56088pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]minimiz ed[][][]constraints[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (20.86151pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]minimiz ed[][][]congruences[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (13.61208pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounds[][][]from [][][]above[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (14.2218pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounds[][][]from [][][]below[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[] [253] Overfull \hbox (18.62187pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]upper[] [][]bound[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ps, [][]ppl[][][]d imension[][][]type[][] var, [][]ppl[][][][]Coefficient[] Overfull \hbox (18.37173pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]lower[] [][]bound[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ps, [][]ppl[][][]d imension[][][]type[][] var, [][]ppl[][][][]Coefficient[] Overfull \hbox (6.74135pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]maximize[][] ([] []ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[] [][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (5.0813pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]minimize[][] ([] []ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[] [][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (19.48123pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]maximize[][][]wi th[][][]point[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (17.82118pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]minimize[][][]wi th[][][]point[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (7.13179pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]frequency[][] ([ ][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (0.61139pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]contains[][][][] Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] x, [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (11.72083pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]strictly[][][]co ntains[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[][][] []Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (10.33096pt too wide) in paragraph at lines 111--113 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint [][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[] [][][]Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (1.45107pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]refine[][][]with [][][]constraints[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]const[][][][]Constraint[][][][]System[] Overfull \hbox (14.7517pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]refine[][][]with [][][]congruences[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]const[][][][]Congruence[][][][]System[] Overfull \hbox (4.91129pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]simplify[][][]us ing[][][]context[][][]assign[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (7.69649pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][ ]space[][][]dimensions[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]dimension[][][]type[][] ds[]$ $[], Overfull \hbox (9.72171pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]affine[][][]imag e[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]dimension [][][]type[][] var, [][]ppl[][][]const[][][][]Linear[] [254] Overfull \hbox (6.1221pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounded[][][]aff ine[][][]preimage[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]dimension[][][]type[][] var, [][]ppl[] Overfull \hbox (5.46014pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]generalized[][][ ]affine[][][]image[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]p pl[][][]dimension[][][]type[][] var, enum Overfull \hbox (5.86143pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]generalized[][][ ]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Rational[][][][]Box [][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[] Overfull \hbox (3.69801pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]fold[][][]space[ ][][]dimensions[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[ ][][]dimension[][][]type[][] ds[]$ $[], size[] Overfull \hbox (8.29143pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]wi dening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Rational[][][][]Bo x[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (1.6215pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]widening[][][]as sign[][][]with[][][]tokens[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] x , [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (4.64108pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C []C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Rational[][][][]Box[][ ][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (2.96216pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle [][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t [][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] [255] Overfull \hbox (11.43164pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[ ][][][]Box[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (9.21167pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[ ][][][]Box[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (17.01144pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational [][][][]Box[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (14.79147pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational [][][][]Box[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (19.75078pt too wide) in paragraph at lines 233--235 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Ra tional[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][] []t[][] pset[][][]before, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (17.5308pt too wide) in paragraph at lines 235--237 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Ra tional[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][] []t[][] pset[][][]before, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (5.59184pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Ra tional[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (3.37187pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Ra tional[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (5.04152pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]R ational[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (2.82155pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]R ational[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] [256] Overfull \hbox (2.61357pt too wide) in paragraph at lines 301--302 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]R ational[][][][]Box[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (0.85356pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]R ational[][][][]Box[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (19.17328pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Rational[][][][]Box[][][]from[][][][]Octagonal[] Overfull \hbox (20.29327pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Rational[][][][]Box[][][]from[][][][]Octagonal[] Overfull \hbox (45.1534pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Rational[][][][]Box[][][]from[][][][]C[][][][]Polyhedron[] [257] Overfull \hbox (1.0333pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (33.32191pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Gri d[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational [][][][]Box[][][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (24.9233pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Rational[][][][]Box[][][]from[][][][]Rational[] Overfull \hbox (15.8428pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (16.9628pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (6.4825pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Rational[] Overfull \hbox (7.6025pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Rational[] [258] Overfull \hbox (7.79213pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Con straint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][] []Box[][][]from[][][][]Constraint[][][][]System Overfull \hbox (13.3422pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Con gruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][] []Box[][][]from[][][][]Congruence[][][][]System Overfull \hbox (1.3122pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][ ]Box[][][]from[][][][]Generator[][][][]System [259] Overfull \hbox (1.10178pt too wide) in paragraph at lines 433--434 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][] constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]get[][][ ]minimized[][][]constraints ( Overfull \hbox (6.65184pt too wide) in paragraph at lines 439--440 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][] congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]get[][][ ]minimized[][][]congruences ( Overfull \hbox (4.07193pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]topological[][][]closure [][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]topolog ical[][][]closure[][][]assign ( [260] [261] Overfull \hbox (22.7833pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]strictly[][][]contains[] [][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box [][][]strictly[][][]contains[][][][]Rational[] Overfull \hbox (13.93344pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint[][][]fr om[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][ ]Box[][][]is[][][]disjoint[][][]from[][][][]Rational[] [262] [263] Overfull \hbox (6.71194pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]upper[][][]bound[][][]as sign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[] [][]upper[][][]bound[][][]assign[][][]if[][][]exact Overfull \hbox (2.03311pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][][ ]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][ ]simplify[][][]using[][][]context[][][] Overfull \hbox (14.46165pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[] [][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]uncons train[][][]space[][][]dimension Overfull \hbox (23.15155pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[] [][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]uncon strain[][][]space[][][]dimensions [264] Overfull \hbox (8.692pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (22.33311pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]generalized[][][]affine[][][]image[] Overfull \hbox (9.71298pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][ ][]Box[][][]generalized[][][]affine[] Overfull \hbox (10.38313pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Bo x[][][]add[][][]space[][][]dimensions[] [265] Overfull \hbox (12.41316pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]add[][][]space[][][]dimensions[] Overfull \hbox (0.46318pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][] space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][] []remove[][][]higher[][][]space[] Overfull \hbox (18.54198pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[ ][][]drop[][][]some[][][]non[][][]integer[][][]points Overfull \hbox (4.44347pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][ ][]Box[][][]drop[][][]some[][][]non[][][]integer[] [266] Overfull \hbox (14.72318pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[] [][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][] [][]Box[][][][]C[]C76[][][]widening[][][]assign[] Overfull \hbox (9.38174pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[][] []with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]w idening[][][]assign[][][]with[][][]tokens Overfull \hbox (8.08255pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[] [][][]Rational[][][][]Box[][][]limited[] Overfull \hbox (41.67317pt too wide) in paragraph at lines 823--824 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]limited[][][][]C[]C76[][][]extrapolation[] [267] Overfull \hbox (8.37337pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][ ][][]Box[][][]recycle[][][][]Constraint[] Overfull \hbox (13.92343pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][ ][][]Box[][][]recycle[][][][]Congruence[] Overfull \hbox (1.89343pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][] [][]Box[][][]recycle[][][][]Generator[] [268] Overfull \hbox (28.92343pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]M[]S[][][][]Rational[] Overfull \hbox (27.25351pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]P[]R[][][][]Rational[] Overfull \hbox (33.17323pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]M[]S[][][][]Rational[] Overfull \hbox (31.50331pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]P[]R[][][][]Rational[] Overfull \hbox (37.52344pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]M[]S[][][][]Rational[] [269] Overfull \hbox (35.85352pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]P[]R[][][][]Rational[] Overfull \hbox (0.49321pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]M[]S[] Overfull \hbox (1.7033pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]P[]R[][][] ) [270] (./refman.ind Overfull \hbox (1.62616pt too wide) in paragraph at lines 14--16 []| \OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][ ][][]Overflow, [][]32[][] Overfull \hbox (12.22548pt too wide) in paragraph at lines 16--18 []| \OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][ ][][]Representation, Overfull \hbox (0.87602pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[][][] const[][][]iterator[][][] Overfull \hbox (7.34506pt too wide) in paragraph at lines 47--48 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign Overfull \hbox (16.32657pt too wide) in paragraph at lines 50--51 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[] Overfull \hbox (7.19489pt too wide) in paragraph at lines 53--54 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign Overfull \hbox (16.17639pt too wide) in paragraph at lines 56--57 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[] Overfull \hbox (16.03653pt too wide) in paragraph at lines 65--66 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[] Overfull \hbox (4.37524pt too wide) in paragraph at lines 83--84 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]congruences Overfull \hbox (1.02655pt too wide) in paragraph at lines 89--90 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (1.02655pt too wide) in paragraph at lines 92--93 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (0.40526pt too wide) in paragraph at lines 113--114 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]preimage Overfull \hbox (8.25665pt too wide) in paragraph at lines 128--129 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (0.87689pt too wide) in paragraph at lines 137--138 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (0.87689pt too wide) in paragraph at lines 140--141 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (0.47676pt too wide) in paragraph at lines 143--144 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpq[] [271] Overfull \hbox (4.11494pt too wide) in paragraph at lines 149--150 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes Overfull \hbox (8.26637pt too wide) in paragraph at lines 161--162 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image[] Overfull \hbox (12.05476pt too wide) in paragraph at lines 164--165 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (21.03627pt too wide) in paragraph at lines 167--168 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage[] Overfull \hbox (11.21477pt too wide) in paragraph at lines 176--177 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]congruences Overfull \hbox (4.56445pt too wide) in paragraph at lines 179--180 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]constraints Overfull \hbox (16.86626pt too wide) in paragraph at lines 191--192 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (35.0661pt too wide) in paragraph at lines 203--204 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (35.0661pt too wide) in paragraph at lines 206--207 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (19.51617pt too wide) in paragraph at lines 209--210 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (19.51617pt too wide) in paragraph at lines 212--213 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (13.3963pt too wide) in paragraph at lines 215--216 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (13.3963pt too wide) in paragraph at lines 218--219 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (2.88495pt too wide) in paragraph at lines 251--252 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Congruence Overfull \hbox (32.84482pt too wide) in paragraph at lines 260--261 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions Overfull \hbox (3.69502pt too wide) in paragraph at lines 263--264 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]space[][][]dimensions Overfull \hbox (3.11646pt too wide) in paragraph at lines 266--267 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simpli fy[][][]using[][][]context[][][] Overfull \hbox (18.25612pt too wide) in paragraph at lines 272--273 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.72694pt too wide) in paragraph at lines 277--279 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.72694pt too wide) in paragraph at lines 279--281 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.57677pt too wide) in paragraph at lines 281--283 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (7.57677pt too wide) in paragraph at lines 283--285 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (17.92516pt too wide) in paragraph at lines 285--287 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[ ]C76[][][]narrowing[][][]assign, [272] Overfull \hbox (8.17526pt too wide) in paragraph at lines 287--289 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H7 9[][][]widening[][][]assign, Overfull \hbox (14.65677pt too wide) in paragraph at lines 289--291 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H7 9[][][]widening[][][]assign[] Overfull \hbox (1.57555pt too wide) in paragraph at lines 295--297 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]congruences, [][]46[][] Overfull \hbox (26.87524pt too wide) in paragraph at lines 301--303 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]recycled[][][]congruences, Overfull \hbox (20.22493pt too wide) in paragraph at lines 303--305 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]recycled[][][]constraints, Overfull \hbox (17.42654pt too wide) in paragraph at lines 305--307 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (17.42654pt too wide) in paragraph at lines 307--309 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (1.34528pt too wide) in paragraph at lines 309--311 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]affi ne[][][]dimension, [][]43[][] Overfull \hbox (10.13536pt too wide) in paragraph at lines 319--321 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ded[][][]affine[][][]image, Overfull \hbox (22.90526pt too wide) in paragraph at lines 321--323 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ded[][][]affine[][][]preimage, Overfull \hbox (0.64575pt too wide) in paragraph at lines 323--325 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ds[][][]from[][][]above, Overfull \hbox (1.25548pt too wide) in paragraph at lines 325--327 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ds[][][]from[][][]below, Overfull \hbox (9.35504pt too wide) in paragraph at lines 327--329 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]conc atenate[][][]assign, [][]47[][] Overfull \hbox (6.87675pt too wide) in paragraph at lines 331--333 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]cont ains[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.24504pt too wide) in paragraph at lines 333--335 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]cont ains[][][]integer[][][]point, Overfull \hbox (2.43513pt too wide) in paragraph at lines 335--337 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]diff erence[][][]assign, [][]47[][] Overfull \hbox (20.87689pt too wide) in paragraph at lines 337--339 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (20.87689pt too wide) in paragraph at lines 339--341 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (2.69687pt too wide) in paragraph at lines 341--343 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equa ls[][][][]B[]D[][][][]Shape[][][] Overfull \hbox (21.34518pt too wide) in paragraph at lines 343--345 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expa nd[][][]space[][][]dimension, Overfull \hbox (0.60683pt too wide) in paragraph at lines 345--347 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]exte rnal[][][]memory[][][] Overfull \hbox (12.61494pt too wide) in paragraph at lines 347--349 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold [][][]space[][][]dimensions, Overfull \hbox (0.2267pt too wide) in paragraph at lines 351--353 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (0.2267pt too wide) in paragraph at lines 353--355 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (0.2267pt too wide) in paragraph at lines 355--357 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (0.2267pt too wide) in paragraph at lines 357--359 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (33.71477pt too wide) in paragraph at lines 363--365 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[ ][][]minimized[][][]congruences, Overfull \hbox (27.06445pt too wide) in paragraph at lines 365--367 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[ ][][]minimized[][][]constraints, Overfull \hbox (8.81485pt too wide) in paragraph at lines 367--369 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]inte rsection[][][]assign, [][]47[][] Overfull \hbox (1.60646pt too wide) in paragraph at lines 373--375 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] [][]disjoint[][][]from[][][][]B[] Overfull \hbox (13.73477pt too wide) in paragraph at lines 377--379 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] [][]topologically[][][]closed, Overfull \hbox (2.44666pt too wide) in paragraph at lines 381--383 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (2.44666pt too wide) in paragraph at lines 383--385 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (39.51617pt too wide) in paragraph at lines 385--387 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (39.51617pt too wide) in paragraph at lines 387--389 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (33.3963pt too wide) in paragraph at lines 389--391 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (33.3963pt too wide) in paragraph at lines 391--393 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (13.72493pt too wide) in paragraph at lines 395--397 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]map[ ][][]space[][][]dimensions, Overfull \hbox (6.51491pt too wide) in paragraph at lines 399--401 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maxi mize[][][]with[][][]point, Overfull \hbox (4.85486pt too wide) in paragraph at lines 403--405 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]mini mize[][][]with[][][]point, Overfull \hbox (15.37523pt too wide) in paragraph at lines 405--407 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]congruence, Overfull \hbox (19.26512pt too wide) in paragraph at lines 407--409 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]congruences, Overfull \hbox (8.72491pt too wide) in paragraph at lines 409--411 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]constraint, Overfull \hbox (12.6148pt too wide) in paragraph at lines 411--413 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]constraints, Overfull \hbox (25.38495pt too wide) in paragraph at lines 413--415 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]rela tion[][][]with[][][][]Congruence, Overfull \hbox (18.73463pt too wide) in paragraph at lines 415--417 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]rela tion[][][]with[][][][]Constraint, Overfull \hbox (17.04485pt too wide) in paragraph at lines 417--419 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]rela tion[][][]with[][][][]Generator, [273] Overfull \hbox (12.66692pt too wide) in paragraph at lines 419--421 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remo ve[][][]higher[][][]space[] Overfull \hbox (26.19502pt too wide) in paragraph at lines 421--423 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remo ve[][][]space[][][]dimensions, Overfull \hbox (19.51645pt too wide) in paragraph at lines 423--425 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simp lify[][][]using[][][]context[] Overfull \hbox (1.03522pt too wide) in paragraph at lines 425--427 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]spac e[][][]dimension, [][]43[][] Overfull \hbox (2.99632pt too wide) in paragraph at lines 427--429 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]stri ctly[][][]contains[][][][]B[] Overfull \hbox (8.52484pt too wide) in paragraph at lines 429--431 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]time [][][]elapse[][][]assign, [][]47[][] Overfull \hbox (5.49655pt too wide) in paragraph at lines 431--433 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topo logical[][][]closure[] Overfull \hbox (12.3349pt too wide) in paragraph at lines 433--435 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]tota l[][][]memory[][][]in[][][]bytes, Overfull \hbox (0.48671pt too wide) in paragraph at lines 435--437 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]unco nstrain[][][]space[] Overfull \hbox (0.48671pt too wide) in paragraph at lines 437--439 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]unco nstrain[][][]space[] Overfull \hbox (1.5055pt too wide) in paragraph at lines 439--441 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uppe r[][][]bound[][][]assign, Overfull \hbox (7.987pt too wide) in paragraph at lines 441--443 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uppe r[][][]bound[][][]assign[] Overfull \hbox (15.21655pt too wide) in paragraph at lines 445--447 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wide ning[][][]assign[][][]with[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 449--451 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 451--453 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 453--455 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 455--457 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (21.58662pt too wide) in paragraph at lines 457--459 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 467--469 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 469--471 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 471--473 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 473--475 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.96535pt too wide) in paragraph at lines 475--477 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]C[][][][]Polyhedron, Overfull \hbox (27.44685pt too wide) in paragraph at lines 477--479 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (19.3869pt too wide) in paragraph at lines 479--481 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Congruence[] Overfull \hbox (12.73659pt too wide) in paragraph at lines 481--483 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Constraint[] Overfull \hbox (11.0468pt too wide) in paragraph at lines 483--485 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Generator[] Overfull \hbox (10.77678pt too wide) in paragraph at lines 487--489 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Grid[][][]with[] Overfull \hbox (35.40529pt too wide) in paragraph at lines 489--491 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (41.8868pt too wide) in paragraph at lines 491--493 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 493--495 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 495--497 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 497--499 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 499--501 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (4.95668pt too wide) in paragraph at lines 501--503 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (4.95668pt too wide) in paragraph at lines 503--505 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (32.06493pt too wide) in paragraph at lines 505--507 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][]space[][][]dimension, Overfull \hbox (28.66681pt too wide) in paragraph at lines 507--509 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]recycle[][][][]Congruence[] Overfull \hbox (22.0165pt too wide) in paragraph at lines 509--511 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]recycle[][][][]Constraint[] Overfull \hbox (20.3267pt too wide) in paragraph at lines 511--513 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]recycle[][][][]Generator[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 513--515 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 515--517 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 517--519 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 519--521 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (3.18472pt too wide) in paragraph at lines 521--523 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class, Overfull \hbox (9.66623pt too wide) in paragraph at lines 523--525 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.96475pt too wide) in paragraph at lines 525--527 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class, Overfull \hbox (7.44626pt too wide) in paragraph at lines 527--529 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.11467pt too wide) in paragraph at lines 532--533 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topolo gical[][][]closure[][][]assign [274] Overfull \hbox (16.77472pt too wide) in paragraph at lines 538--539 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimension Overfull \hbox (20.66461pt too wide) in paragraph at lines 541--542 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimensions Overfull \hbox (1.29686pt too wide) in paragraph at lines 547--548 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][] Overfull \hbox (15.84479pt too wide) in paragraph at lines 553--554 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens Overfull \hbox (6.785pt too wide) in paragraph at lines 559--560 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign Overfull \hbox (15.76651pt too wide) in paragraph at lines 562--563 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[] Overfull \hbox (6.63483pt too wide) in paragraph at lines 565--566 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign Overfull \hbox (15.61633pt too wide) in paragraph at lines 568--569 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[] Overfull \hbox (15.47647pt too wide) in paragraph at lines 577--578 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[] Overfull \hbox (3.81519pt too wide) in paragraph at lines 595--596 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]congruences Overfull \hbox (0.46649pt too wide) in paragraph at lines 601--602 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (0.46649pt too wide) in paragraph at lines 604--605 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (7.13654pt too wide) in paragraph at lines 640--641 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (0.31683pt too wide) in paragraph at lines 649--650 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (0.31683pt too wide) in paragraph at lines 652--653 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (2.95665pt too wide) in paragraph at lines 655--656 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (3.55489pt too wide) in paragraph at lines 661--662 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes Overfull \hbox (7.70631pt too wide) in paragraph at lines 673--674 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image[] Overfull \hbox (11.4947pt too wide) in paragraph at lines 676--677 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (20.47621pt too wide) in paragraph at lines 679--680 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage[] [275] Overfull \hbox (10.65471pt too wide) in paragraph at lines 688--689 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]congruences Overfull \hbox (4.0044pt too wide) in paragraph at lines 691--692 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]constraints Overfull \hbox (16.3062pt too wide) in paragraph at lines 703--704 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (34.50604pt too wide) in paragraph at lines 715--716 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (34.50604pt too wide) in paragraph at lines 718--719 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (18.95612pt too wide) in paragraph at lines 721--722 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (18.95612pt too wide) in paragraph at lines 724--725 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (12.83624pt too wide) in paragraph at lines 727--728 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (12.83624pt too wide) in paragraph at lines 730--731 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (2.32489pt too wide) in paragraph at lines 763--764 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Congruence Overfull \hbox (32.28476pt too wide) in paragraph at lines 772--773 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions Overfull \hbox (3.13496pt too wide) in paragraph at lines 775--776 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]space[][][]dimensions Overfull \hbox (2.5564pt too wide) in paragraph at lines 778--779 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simpli fy[][][]using[][][]context[][][] Overfull \hbox (17.69606pt too wide) in paragraph at lines 784--785 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.16689pt too wide) in paragraph at lines 789--791 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.16689pt too wide) in paragraph at lines 791--793 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.01671pt too wide) in paragraph at lines 793--795 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (7.01671pt too wide) in paragraph at lines 795--797 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (17.3651pt too wide) in paragraph at lines 797--799 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[ ]C76[][][]narrowing[][][]assign, Overfull \hbox (7.6152pt too wide) in paragraph at lines 799--801 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H7 9[][][]widening[][][]assign, Overfull \hbox (14.09671pt too wide) in paragraph at lines 801--803 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H7 9[][][]widening[][][]assign[] Overfull \hbox (1.01549pt too wide) in paragraph at lines 807--809 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]congruences, [][]67[][] Overfull \hbox (26.31519pt too wide) in paragraph at lines 813--815 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]recycled[][][]congruences, Overfull \hbox (19.66487pt too wide) in paragraph at lines 815--817 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]recycled[][][]constraints, Overfull \hbox (16.86649pt too wide) in paragraph at lines 817--819 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (16.86649pt too wide) in paragraph at lines 819--821 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (0.78522pt too wide) in paragraph at lines 821--823 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]affi ne[][][]dimension, [][]64[][] [276] Overfull \hbox (9.5753pt too wide) in paragraph at lines 831--833 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]boun ded[][][]affine[][][]image, Overfull \hbox (22.3452pt too wide) in paragraph at lines 833--835 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]boun ded[][][]affine[][][]preimage, Overfull \hbox (0.69542pt too wide) in paragraph at lines 837--839 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]boun ds[][][]from[][][]below, Overfull \hbox (8.79498pt too wide) in paragraph at lines 839--841 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]conc atenate[][][]assign, [][]68[][] Overfull \hbox (6.3167pt too wide) in paragraph at lines 843--845 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]cont ains[][][][]B[]D[][][][]Shape[] Overfull \hbox (9.68498pt too wide) in paragraph at lines 845--847 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]cont ains[][][]integer[][][]point, Overfull \hbox (1.87508pt too wide) in paragraph at lines 847--849 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]diff erence[][][]assign, [][]68[][] Overfull \hbox (20.31683pt too wide) in paragraph at lines 849--851 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (20.31683pt too wide) in paragraph at lines 851--853 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (2.13681pt too wide) in paragraph at lines 853--855 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equa ls[][][][]B[]D[][][][]Shape[][][] Overfull \hbox (20.78513pt too wide) in paragraph at lines 855--857 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expa nd[][][]space[][][]dimension, Overfull \hbox (12.05489pt too wide) in paragraph at lines 859--861 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold [][][]space[][][]dimensions, Overfull \hbox (3.26665pt too wide) in paragraph at lines 863--865 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (3.26665pt too wide) in paragraph at lines 865--867 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (3.26665pt too wide) in paragraph at lines 867--869 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (3.26665pt too wide) in paragraph at lines 869--871 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (33.15471pt too wide) in paragraph at lines 875--877 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[ ][][]minimized[][][]congruences, Overfull \hbox (26.5044pt too wide) in paragraph at lines 877--879 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[ ][][]minimized[][][]constraints, Overfull \hbox (8.25479pt too wide) in paragraph at lines 879--881 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]inte rsection[][][]assign, [][]68[][] Overfull \hbox (1.0464pt too wide) in paragraph at lines 885--887 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[] [][]disjoint[][][]from[][][][]B[] Overfull \hbox (13.17471pt too wide) in paragraph at lines 889--891 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[] [][]topologically[][][]closed, Overfull \hbox (1.8866pt too wide) in paragraph at lines 893--895 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (1.8866pt too wide) in paragraph at lines 895--897 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (38.95612pt too wide) in paragraph at lines 897--899 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (38.95612pt too wide) in paragraph at lines 899--901 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (32.83624pt too wide) in paragraph at lines 901--903 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (32.83624pt too wide) in paragraph at lines 903--905 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (13.16487pt too wide) in paragraph at lines 907--909 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]map[ ][][]space[][][]dimensions, Overfull \hbox (5.95485pt too wide) in paragraph at lines 911--913 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maxi mize[][][]with[][][]point, Overfull \hbox (4.2948pt too wide) in paragraph at lines 915--917 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]mini mize[][][]with[][][]point, Overfull \hbox (14.81517pt too wide) in paragraph at lines 917--919 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]congruence, Overfull \hbox (18.70506pt too wide) in paragraph at lines 919--921 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]congruences, Overfull \hbox (8.16486pt too wide) in paragraph at lines 921--923 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]constraint, Overfull \hbox (12.05475pt too wide) in paragraph at lines 923--925 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]constraints, Overfull \hbox (24.82489pt too wide) in paragraph at lines 925--927 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]rela tion[][][]with[][][][]Congruence, Overfull \hbox (18.17458pt too wide) in paragraph at lines 927--929 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]rela tion[][][]with[][][][]Constraint, Overfull \hbox (16.48479pt too wide) in paragraph at lines 929--931 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]rela tion[][][]with[][][][]Generator, Overfull \hbox (12.10686pt too wide) in paragraph at lines 931--933 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remo ve[][][]higher[][][]space[] Overfull \hbox (25.63496pt too wide) in paragraph at lines 933--935 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remo ve[][][]space[][][]dimensions, Overfull \hbox (18.95639pt too wide) in paragraph at lines 935--937 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simp lify[][][]using[][][]context[] Overfull \hbox (0.47516pt too wide) in paragraph at lines 937--939 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]spac e[][][]dimension, [][]63[][] Overfull \hbox (2.43626pt too wide) in paragraph at lines 939--941 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]stri ctly[][][]contains[][][][]B[] Overfull \hbox (7.96478pt too wide) in paragraph at lines 941--943 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]time [][][]elapse[][][]assign, [][]68[][] Overfull \hbox (4.9365pt too wide) in paragraph at lines 943--945 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topo logical[][][]closure[] Overfull \hbox (11.77484pt too wide) in paragraph at lines 945--947 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]tota l[][][]memory[][][]in[][][]bytes, Overfull \hbox (3.52666pt too wide) in paragraph at lines 947--949 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]unco nstrain[][][]space[][][] Overfull \hbox (3.52666pt too wide) in paragraph at lines 949--951 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]unco nstrain[][][]space[][][] [277] Overfull \hbox (0.94543pt too wide) in paragraph at lines 951--953 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uppe r[][][]bound[][][]assign, Overfull \hbox (7.42694pt too wide) in paragraph at lines 953--955 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uppe r[][][]bound[][][]assign[] Overfull \hbox (14.6565pt too wide) in paragraph at lines 957--959 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wide ning[][][]assign[][][]with[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 961--963 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 963--965 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 965--967 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 967--969 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (21.02657pt too wide) in paragraph at lines 969--971 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 979--981 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 981--983 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 983--985 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 985--987 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.40529pt too wide) in paragraph at lines 987--989 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]C[][][][]Polyhedron, Overfull \hbox (26.8868pt too wide) in paragraph at lines 989--991 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.82684pt too wide) in paragraph at lines 991--993 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Congruence[] Overfull \hbox (12.17653pt too wide) in paragraph at lines 993--995 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Constraint[] Overfull \hbox (10.48674pt too wide) in paragraph at lines 995--997 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Generator[] Overfull \hbox (10.21672pt too wide) in paragraph at lines 999--1001 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Grid[][][]with[] Overfull \hbox (34.84523pt too wide) in paragraph at lines 1001--1003 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (41.32674pt too wide) in paragraph at lines 1003--1005 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1005--1007 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1007--1009 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1009--1011 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1011--1013 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (4.39662pt too wide) in paragraph at lines 1013--1015 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (4.39662pt too wide) in paragraph at lines 1015--1017 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (31.50487pt too wide) in paragraph at lines 1017--1019 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][]space[][][]dimension, Overfull \hbox (28.10675pt too wide) in paragraph at lines 1019--1021 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]recycle[][][][]Congruence[] Overfull \hbox (21.45644pt too wide) in paragraph at lines 1021--1023 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]recycle[][][][]Constraint[] Overfull \hbox (19.76665pt too wide) in paragraph at lines 1023--1025 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]recycle[][][][]Generator[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 1025--1027 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 1027--1029 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 1029--1031 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 1031--1033 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (2.62466pt too wide) in paragraph at lines 1033--1035 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class, Overfull \hbox (9.10617pt too wide) in paragraph at lines 1035--1037 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.4047pt too wide) in paragraph at lines 1037--1039 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class, Overfull \hbox (6.8862pt too wide) in paragraph at lines 1039--1041 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.55461pt too wide) in paragraph at lines 1044--1045 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topolo gical[][][]closure[][][]assign Overfull \hbox (16.21466pt too wide) in paragraph at lines 1050--1051 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimension Overfull \hbox (20.10455pt too wide) in paragraph at lines 1053--1054 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimensions Overfull \hbox (0.7368pt too wide) in paragraph at lines 1059--1060 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][] Overfull \hbox (15.28473pt too wide) in paragraph at lines 1065--1066 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens [278] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1081--1083 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1083--1084 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1084--1086 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1086--1087 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1087--1089 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1089--1090 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1090--1092 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1092--1093 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1093--1095 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1095--1096 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1096--1098 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1098--1099 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1099--1101 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.36656pt too wide) in paragraph at lines 1101--1102 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1102--1104 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.36656pt too wide) in paragraph at lines 1104--1105 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1105--1107 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.36656pt too wide) in paragraph at lines 1107--1108 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1108--1110 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17635pt too wide) in paragraph at lines 1110--1111 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1111--1113 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17635pt too wide) in paragraph at lines 1113--1114 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1114--1116 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (18.28673pt too wide) in paragraph at lines 1116--1117 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1117--1119 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (18.28673pt too wide) in paragraph at lines 1119--1120 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1120--1122 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.73668pt too wide) in paragraph at lines 1122--1123 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1123--1125 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.73668pt too wide) in paragraph at lines 1125--1126 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1126--1128 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (31.04622pt too wide) in paragraph at lines 1128--1129 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]concatenate[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1129--1131 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (15.41469pt too wide) in paragraph at lines 1131--1132 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]constrains Overfull \hbox (0.24678pt too wide) in paragraph at lines 1132--1134 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (17.17635pt too wide) in paragraph at lines 1134--1135 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]contains[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1135--1137 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (24.12631pt too wide) in paragraph at lines 1137--1138 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]difference[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1138--1140 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17674pt too wide) in paragraph at lines 1140--1141 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1141--1143 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17674pt too wide) in paragraph at lines 1143--1144 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1144--1146 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (9.39645pt too wide) in paragraph at lines 1146--1147 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]equals[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1147--1149 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.57677pt too wide) in paragraph at lines 1149--1150 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]expand[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1150--1152 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (15.90645pt too wide) in paragraph at lines 1152--1153 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]external[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1153--1155 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (3.55664pt too wide) in paragraph at lines 1155--1156 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]fold[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1156--1158 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [279] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1158--1159 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1159--1161 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1161--1162 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1162--1164 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1164--1165 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1165--1167 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1167--1168 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1168--1170 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.50603pt too wide) in paragraph at lines 1170--1171 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]intersection[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1171--1173 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (19.57501pt too wide) in paragraph at lines 1173--1174 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]bounded Overfull \hbox (0.24678pt too wide) in paragraph at lines 1174--1176 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (16.23453pt too wide) in paragraph at lines 1176--1177 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]discrete Overfull \hbox (0.24678pt too wide) in paragraph at lines 1177--1179 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (24.12604pt too wide) in paragraph at lines 1179--1180 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]disjoint[] Overfull \hbox (7.9769pt too wide) in paragraph at lines 1179--1180 [][]\OT1/ptm/bc/n/10 from[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1180--1182 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (10.1348pt too wide) in paragraph at lines 1182--1183 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]empty Overfull \hbox (0.24678pt too wide) in paragraph at lines 1183--1185 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (46.89592pt too wide) in paragraph at lines 1185--1186 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]topologically[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1186--1188 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (18.61479pt too wide) in paragraph at lines 1188--1189 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]universe Overfull \hbox (0.24678pt too wide) in paragraph at lines 1189--1191 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.06662pt too wide) in paragraph at lines 1191--1192 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]map[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1192--1194 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.30467pt too wide) in paragraph at lines 1194--1195 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize Overfull \hbox (0.24678pt too wide) in paragraph at lines 1195--1197 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (23.28618pt too wide) in paragraph at lines 1197--1198 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1198--1200 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.64462pt too wide) in paragraph at lines 1200--1201 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize Overfull \hbox (0.24678pt too wide) in paragraph at lines 1201--1203 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.62613pt too wide) in paragraph at lines 1203--1204 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1204--1206 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1206--1207 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1207--1209 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1209--1210 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1210--1212 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1212--1213 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1213--1215 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1215--1216 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1216--1218 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.3963pt too wide) in paragraph at lines 1218--1219 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1219--1221 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.3963pt too wide) in paragraph at lines 1221--1222 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1222--1224 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.3963pt too wide) in paragraph at lines 1224--1225 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1225--1227 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (13.53671pt too wide) in paragraph at lines 1227--1228 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1228--1230 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (13.53671pt too wide) in paragraph at lines 1230--1231 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1231--1233 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.0565pt too wide) in paragraph at lines 1233--1234 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]space[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1234--1236 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (11.62614pt too wide) in paragraph at lines 1236--1237 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]strictly[] Overfull \hbox (21.86665pt too wide) in paragraph at lines 1236--1237 [][]\OT1/ptm/bc/n/10 contains[][][][]Constraints[][][][]Product[][][][]C[][][][ ]Polyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1237--1239 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.60513pt too wide) in paragraph at lines 1239--1241 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]tag, [][]84[][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1241--1243 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [280] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1243--1245 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1245--1247 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1247--1249 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1249--1251 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1251--1253 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1253--1255 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1255--1257 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1257--1259 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1259--1261 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1261--1263 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1263--1265 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1265--1267 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1267--1269 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1269--1271 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1271--1273 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1273--1275 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1275--1277 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1277--1279 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.86665pt too wide) in paragraph at lines 1277--1279 [][]\OT1/ptm/bc/n/10 contains[][][][]Constraints[][][][]Product[][][][]C[][][][ ]Polyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1279--1281 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1281--1283 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1283--1285 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1285--1287 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.08676pt too wide) in paragraph at lines 1285--1287 [][]\OT1/ptm/bc/n/10 equals[][][][]Constraints[][][][]Product[][][][]C[][][][]P olyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1287--1289 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1289--1291 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1291--1293 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1293--1295 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1295--1297 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1297--1299 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1299--1301 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1301--1303 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1303--1305 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1305--1307 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1307--1309 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.14642pt too wide) in paragraph at lines 1307--1309 [][]\OT1/ptm/bc/n/10 is[][][]disjoint[][][]from[][][][]Constraints[][][][]Produ ct[][][][]C[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1309--1311 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1311--1313 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1313--1315 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1315--1317 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1317--1319 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1319--1321 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1321--1323 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1323--1325 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1325--1327 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1327--1329 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1329--1331 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1331--1333 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1333--1335 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1335--1337 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1337--1339 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1339--1341 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1341--1343 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1343--1345 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1345--1347 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (3.53629pt too wide) in paragraph at lines 1345--1347 [][]\OT1/ptm/bc/n/10 strictly[][][]contains[][][][]Constraints[][][][]Product[] [][][]C[] [281] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1347--1349 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1349--1351 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1351--1353 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1353--1355 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1355--1357 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1357--1359 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1359--1361 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1361--1363 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1363--1365 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (5.79657pt too wide) in paragraph at lines 1365--1367 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Constraints[][][][]Product[][][][]C [][][][]Polyhedron[] Overfull \hbox (20.51643pt too wide) in paragraph at lines 1367--1369 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[] Overfull \hbox (15.51656pt too wide) in paragraph at lines 1369--1371 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[ ][][][]C[][][][]Polyhedron[] Overfull \hbox (12.1866pt too wide) in paragraph at lines 1371--1373 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1373--1375 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1375--1377 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (36.35501pt too wide) in paragraph at lines 1375--1377 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]with[][][]complexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1377--1379 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1379--1381 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (35.79495pt too wide) in paragraph at lines 1379--1381 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]with[][][]complexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1381--1383 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1383--1385 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (6.38548pt too wide) in paragraph at lines 1383--1385 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]com plexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1385--1387 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1387--1389 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1389--1391 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (26.9067pt too wide) in paragraph at lines 1389--1391 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1391--1393 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (26.9067pt too wide) in paragraph at lines 1391--1393 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1393--1395 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1395--1397 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1397--1399 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1399--1401 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (20.82542pt too wide) in paragraph at lines 1399--1401 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][ ][]complexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1401--1403 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (5.7554pt too wide) in paragraph at lines 1401--1403 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass, [][]89[][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1403--1405 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (0.21689pt too wide) in paragraph at lines 1403--1405 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1405--1407 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (5.19534pt too wide) in paragraph at lines 1405--1407 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass, [][]89[][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1407--1409 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (3.25684pt too wide) in paragraph at lines 1407--1409 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1409--1411 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1411--1413 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (4.16524pt too wide) in paragraph at lines 1411--1413 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]com plexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1413--1415 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.6264pt too wide) in paragraph at lines 1415--1416 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]time[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1416--1418 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (28.84624pt too wide) in paragraph at lines 1418--1419 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]topological[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1419--1421 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.6264pt too wide) in paragraph at lines 1421--1422 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]total[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1422--1424 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.5063pt too wide) in paragraph at lines 1424--1425 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1425--1427 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.5063pt too wide) in paragraph at lines 1427--1428 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1428--1430 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61668pt too wide) in paragraph at lines 1430--1431 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1431--1433 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61668pt too wide) in paragraph at lines 1433--1434 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1434--1436 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.06648pt too wide) in paragraph at lines 1436--1437 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[] [282] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1437--1439 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.06648pt too wide) in paragraph at lines 1439--1440 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1440--1442 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (33.42464pt too wide) in paragraph at lines 1525--1526 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]lhs[][][]rhs[][][]with[][][]congruence Overfull \hbox (2.33499pt too wide) in paragraph at lines 1527--1528 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]with[][][]congruence Overfull \hbox (5.48631pt too wide) in paragraph at lines 1533--1534 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs[][][]with[] Overfull \hbox (15.10489pt too wide) in paragraph at lines 1535--1536 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]with[][][]congruence [283] Overfull \hbox (2.84631pt too wide) in paragraph at lines 1569--1570 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign[] Overfull \hbox (15.89598pt too wide) in paragraph at lines 1573--1574 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign[][][]with[] Overfull \hbox (8.24542pt too wide) in paragraph at lines 1631--1633 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]a nd[][][]embed, [][]120[][] Overfull \hbox (9.35527pt too wide) in paragraph at lines 1633--1635 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]a nd[][][]project, [][]120[][] Overfull \hbox (0.48692pt too wide) in paragraph at lines 1654--1656 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[ ][][]with[][][] Overfull \hbox (1.87517pt too wide) in paragraph at lines 1677--1679 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][ ][]lhs[][][]rhs, [][]119[][] Overfull \hbox (12.71642pt too wide) in paragraph at lines 1679--1681 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][ ][]lhs[][][]rhs[][][]with[] [284] Overfull \hbox (24.83499pt too wide) in paragraph at lines 1681--1683 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][ ][]with[][][]congruence, Overfull \hbox (14.64507pt too wide) in paragraph at lines 1685--1687 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage [][][]lhs[][][]rhs, [][]119[][] Overfull \hbox (4.10655pt too wide) in paragraph at lines 1687--1689 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage [][][]lhs[][][]rhs[] Overfull \hbox (37.60489pt too wide) in paragraph at lines 1689--1691 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage [][][]with[][][]congruence, Overfull \hbox (11.68506pt too wide) in paragraph at lines 1693--1695 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[] [][]with[][][]tokens, Overfull \hbox (16.3648pt too wide) in paragraph at lines 1717--1719 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapol ation[][][]assign, Overfull \hbox (22.84631pt too wide) in paragraph at lines 1719--1721 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapol ation[][][]assign[] Overfull \hbox (8.03471pt too wide) in paragraph at lines 1721--1723 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapola tion[][][]assign, Overfull \hbox (14.51622pt too wide) in paragraph at lines 1723--1725 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapola tion[][][]assign[] Overfull \hbox (4.34547pt too wide) in paragraph at lines 1749--1751 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]remove[][][]higher[][][]space[][][]di mensions, [][]120[][] Overfull \hbox (8.27534pt too wide) in paragraph at lines 1780--1782 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Grid[][][]2, [][]124[][] Overfull \hbox (6.05537pt too wide) in paragraph at lines 1784--1786 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Grid[][][]2, [][]124[][] Overfull \hbox (10.77678pt too wide) in paragraph at lines 1794--1796 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]with[] Overfull \hbox (10.21672pt too wide) in paragraph at lines 1798--1800 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]with[] Overfull \hbox (22.7753pt too wide) in paragraph at lines 1802--1804 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhed ron[][][]with[][][]complexity, Overfull \hbox (8.54533pt too wide) in paragraph at lines 1810--1812 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][][]Gene rator[][][][]System, [][]112[][] Overfull \hbox (1.74548pt too wide) in paragraph at lines 1812--1814 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][]with[] [][]complexity, [][]111[][] Overfull \hbox (37.21524pt too wide) in paragraph at lines 1816--1818 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]P olyhedron[][][]with[][][]complexity, Overfull \hbox (10.1252pt too wide) in paragraph at lines 1818--1820 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class, Overfull \hbox (16.6067pt too wide) in paragraph at lines 1820--1822 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[] Overfull \hbox (9.56514pt too wide) in paragraph at lines 1822--1824 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class, Overfull \hbox (16.04665pt too wide) in paragraph at lines 1824--1826 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[] Overfull \hbox (20.55505pt too wide) in paragraph at lines 1828--1830 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][] Box[][][]with[][][]complexity, Overfull \hbox (4.23552pt too wide) in paragraph at lines 1832--1834 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Congruence[][ ][][]System, [][]122[][] Overfull \hbox (0.80522pt too wide) in paragraph at lines 1836--1838 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Grid[][][][]G enerator[][][][]System, Overfull \hbox (0.22566pt too wide) in paragraph at lines 1838--1840 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Grid, [][]123[][] Overfull \hbox (8.82567pt too wide) in paragraph at lines 1840--1842 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Grid[][][]2, [][]124[][] Overfull \hbox (6.6057pt too wide) in paragraph at lines 1844--1846 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Grid[][][]2, [][]124[][] [285] Overfull \hbox (14.93663pt too wide) in paragraph at lines 1891--1892 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.93663pt too wide) in paragraph at lines 1894--1895 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.78645pt too wide) in paragraph at lines 1897--1898 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (14.78645pt too wide) in paragraph at lines 1900--1901 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (3.01672pt too wide) in paragraph at lines 1903--1904 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]narrowing[] Overfull \hbox (31.58493pt too wide) in paragraph at lines 1921--1922 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]congruences Overfull \hbox (24.93462pt too wide) in paragraph at lines 1924--1925 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]constraints Overfull \hbox (24.63623pt too wide) in paragraph at lines 1927--1928 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (24.63623pt too wide) in paragraph at lines 1930--1931 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (14.84505pt too wide) in paragraph at lines 1948--1949 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]image Overfull \hbox (27.61494pt too wide) in paragraph at lines 1951--1952 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]preimage Overfull \hbox (5.35544pt too wide) in paragraph at lines 1954--1955 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]above Overfull \hbox (5.96516pt too wide) in paragraph at lines 1957--1958 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]below Overfull \hbox (2.04471pt too wide) in paragraph at lines 1960--1961 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c oncatenate[][][]assign Overfull \hbox (13.2563pt too wide) in paragraph at lines 1966--1967 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][][]Octagonal[] Overfull \hbox (3.37645pt too wide) in paragraph at lines 1969--1970 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][]integer[][][] Overfull \hbox (0.46686pt too wide) in paragraph at lines 1975--1976 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][] Overfull \hbox (0.46686pt too wide) in paragraph at lines 1978--1979 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][] Overfull \hbox (5.47641pt too wide) in paragraph at lines 1981--1982 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e quals[][][][]Octagonal[] [286] Overfull \hbox (26.05487pt too wide) in paragraph at lines 1984--1985 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xpand[][][]space[][][]dimension Overfull \hbox (4.2165pt too wide) in paragraph at lines 1987--1988 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xternal[][][]memory[] Overfull \hbox (17.32463pt too wide) in paragraph at lines 1990--1991 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]f old[][][]space[][][]dimensions Overfull \hbox (7.43639pt too wide) in paragraph at lines 1996--1997 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (7.43639pt too wide) in paragraph at lines 1999--2000 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (7.43639pt too wide) in paragraph at lines 2002--2003 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (7.43639pt too wide) in paragraph at lines 2005--2006 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (38.42445pt too wide) in paragraph at lines 2014--2015 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]congruences Overfull \hbox (31.77414pt too wide) in paragraph at lines 2017--2018 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]constraints Overfull \hbox (1.50452pt too wide) in paragraph at lines 2020--2021 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i ntersection[][][]assign Overfull \hbox (2.14622pt too wide) in paragraph at lines 2029--2030 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]disjoint[][][]from[][][] Overfull \hbox (1.8763pt too wide) in paragraph at lines 2035--2036 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]topologically[][][] Overfull \hbox (6.05634pt too wide) in paragraph at lines 2041--2042 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (6.05634pt too wide) in paragraph at lines 2044--2045 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (46.72586pt too wide) in paragraph at lines 2047--2048 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (46.72586pt too wide) in paragraph at lines 2050--2051 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (18.43462pt too wide) in paragraph at lines 2056--2057 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m ap[][][]space[][][]dimensions Overfull \hbox (11.2246pt too wide) in paragraph at lines 2062--2063 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m aximize[][][]with[][][]point Overfull \hbox (9.56454pt too wide) in paragraph at lines 2068--2069 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m inimize[][][]with[][][]point Overfull \hbox (20.08492pt too wide) in paragraph at lines 2071--2072 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruence Overfull \hbox (23.97481pt too wide) in paragraph at lines 2074--2075 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruences Overfull \hbox (13.4346pt too wide) in paragraph at lines 2077--2078 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraint Overfull \hbox (17.3245pt too wide) in paragraph at lines 2080--2081 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraints Overfull \hbox (30.09464pt too wide) in paragraph at lines 2083--2084 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Congruence Overfull \hbox (23.44432pt too wide) in paragraph at lines 2086--2087 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Constraint Overfull \hbox (21.75453pt too wide) in paragraph at lines 2089--2090 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Generator Overfull \hbox (19.8766pt too wide) in paragraph at lines 2092--2093 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]higher[][][]space[] Overfull \hbox (30.90471pt too wide) in paragraph at lines 2095--2096 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]space[][][]dimensions Overfull \hbox (26.72614pt too wide) in paragraph at lines 2098--2099 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s implify[][][]using[][][]context[] Overfull \hbox (3.53609pt too wide) in paragraph at lines 2104--2105 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s trictly[][][]contains[][][] Overfull \hbox (34.93663pt too wide) in paragraph at lines 2109--2111 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.93663pt too wide) in paragraph at lines 2111--2113 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.78645pt too wide) in paragraph at lines 2113--2115 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (34.78645pt too wide) in paragraph at lines 2115--2117 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (23.01672pt too wide) in paragraph at lines 2117--2119 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]C[]C76[][][]narrowing[] [287] Overfull \hbox (12.87532pt too wide) in paragraph at lines 2121--2123 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]congruence, Overfull \hbox (16.76521pt too wide) in paragraph at lines 2123--2125 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]congruences, Overfull \hbox (6.225pt too wide) in paragraph at lines 2125--2127 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]constraint, Overfull \hbox (10.1149pt too wide) in paragraph at lines 2127--2129 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]constraints, Overfull \hbox (6.98682pt too wide) in paragraph at lines 2129--2131 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (6.98682pt too wide) in paragraph at lines 2131--2133 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (44.63623pt too wide) in paragraph at lines 2133--2135 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (44.63623pt too wide) in paragraph at lines 2135--2137 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (16.53494pt too wide) in paragraph at lines 2137--2139 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]affine[][][]dimension, Overfull \hbox (16.32512pt too wide) in paragraph at lines 2139--2141 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]affine[][][]image, [][]144[][] Overfull \hbox (12.075pt too wide) in paragraph at lines 2141--2143 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]affine[][][]preimage, Overfull \hbox (10.47513pt too wide) in paragraph at lines 2143--2145 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]ascii[][][]dump, [][]151[][] Overfull \hbox (4.91507pt too wide) in paragraph at lines 2145--2147 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]ascii[][][]load, [][]151[][] Overfull \hbox (15.78688pt too wide) in paragraph at lines 2147--2149 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (15.78688pt too wide) in paragraph at lines 2149--2151 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (7.15686pt too wide) in paragraph at lines 2151--2153 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (7.15686pt too wide) in paragraph at lines 2153--2155 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (2.42659pt too wide) in paragraph at lines 2155--2157 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]concatenate[] Overfull \hbox (6.31508pt too wide) in paragraph at lines 2157--2159 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]constrains, [][]143[][] Overfull \hbox (33.2563pt too wide) in paragraph at lines 2159--2161 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]contains[][][][]Octagonal[] Overfull \hbox (19.77644pt too wide) in paragraph at lines 2161--2163 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]contains[][][]integer[] Overfull \hbox (17.6248pt too wide) in paragraph at lines 2163--2165 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]difference[][][]assign, Overfull \hbox (1.86685pt too wide) in paragraph at lines 2165--2167 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (1.86685pt too wide) in paragraph at lines 2167--2169 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (25.47641pt too wide) in paragraph at lines 2169--2171 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]equals[][][][]Octagonal[] Overfull \hbox (9.76686pt too wide) in paragraph at lines 2171--2173 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]expand[][][]space[] Overfull \hbox (24.2165pt too wide) in paragraph at lines 2173--2175 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]external[][][]memory[] Overfull \hbox (0.74673pt too wide) in paragraph at lines 2175--2177 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]fold[][][]space[][][] Overfull \hbox (5.5955pt too wide) in paragraph at lines 2177--2179 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]frequency, [][]141[][] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2179--2181 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2181--2183 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2183--2185 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2185--2187 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (14.5451pt too wide) in paragraph at lines 2187--2189 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]congruences, Overfull \hbox (7.89479pt too wide) in paragraph at lines 2189--2191 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]constraints, Overfull \hbox (13.82634pt too wide) in paragraph at lines 2191--2193 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (13.82634pt too wide) in paragraph at lines 2193--2195 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (1.8864pt too wide) in paragraph at lines 2195--2197 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]intersection[] Overfull \hbox (10.4754pt too wide) in paragraph at lines 2197--2199 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]bounded, [][]139[][] Overfull \hbox (7.13492pt too wide) in paragraph at lines 2199--2201 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]discrete, [][]139[][] Overfull \hbox (18.54622pt too wide) in paragraph at lines 2201--2203 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]disjoint[][][]from[] Overfull \hbox (1.03519pt too wide) in paragraph at lines 2203--2205 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]empty, [][]139[][] Overfull \hbox (18.27629pt too wide) in paragraph at lines 2205--2207 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]topologically[] Overfull \hbox (9.51518pt too wide) in paragraph at lines 2207--2209 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]universe, [][]139[][] Overfull \hbox (1.05646pt too wide) in paragraph at lines 2209--2211 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (1.05646pt too wide) in paragraph at lines 2211--2213 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (13.03535pt too wide) in paragraph at lines 2211--2213 \OT1/ptm/bc/n/10 M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens, [ ][]147[][] Overfull \hbox (10.50641pt too wide) in paragraph at lines 2213--2215 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (10.50641pt too wide) in paragraph at lines 2215--2217 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (9.00475pt too wide) in paragraph at lines 2217--2219 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]linear[][][]partition, Overfull \hbox (1.85672pt too wide) in paragraph at lines 2219--2221 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]map[][][]space[][][] Overfull \hbox (5.20506pt too wide) in paragraph at lines 2221--2223 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]maximize, [][]140[][] Overfull \hbox (16.04631pt too wide) in paragraph at lines 2223--2225 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]maximize[][][]with[] Overfull \hbox (3.54501pt too wide) in paragraph at lines 2225--2227 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]minimize, [][]140[][] Overfull \hbox (14.38626pt too wide) in paragraph at lines 2227--2229 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]minimize[][][]with[] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2229--2231 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2231--2233 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2233--2235 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2235--2237 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] [288] Overfull \hbox (7.15643pt too wide) in paragraph at lines 2237--2239 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]relation[][][]with[] Overfull \hbox (7.15643pt too wide) in paragraph at lines 2239--2241 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]relation[][][]with[] Overfull \hbox (7.15643pt too wide) in paragraph at lines 2241--2243 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]relation[][][]with[] Overfull \hbox (14.06688pt too wide) in paragraph at lines 2243--2245 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]remove[][][]higher[] Overfull \hbox (10.7268pt too wide) in paragraph at lines 2245--2247 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]remove[][][]space[] Overfull \hbox (13.83636pt too wide) in paragraph at lines 2247--2249 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]simplify[][][]using[] Overfull \hbox (16.22488pt too wide) in paragraph at lines 2249--2251 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]space[][][]dimension, Overfull \hbox (19.93608pt too wide) in paragraph at lines 2251--2253 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]strictly[][][]contains[] Overfull \hbox (1.59639pt too wide) in paragraph at lines 2253--2255 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]time[][][]elapse[] Overfull \hbox (0.22661pt too wide) in paragraph at lines 2255--2257 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]topological[] Overfull \hbox (9.93646pt too wide) in paragraph at lines 2257--2259 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]total[][][]memory[] Overfull \hbox (1.88667pt too wide) in paragraph at lines 2259--2261 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]unconstrain[] Overfull \hbox (1.88667pt too wide) in paragraph at lines 2261--2263 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]unconstrain[] Overfull \hbox (6.59706pt too wide) in paragraph at lines 2263--2265 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (6.59706pt too wide) in paragraph at lines 2265--2267 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (14.56497pt too wide) in paragraph at lines 2267--2269 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]widening[][][]assign, Overfull \hbox (21.04648pt too wide) in paragraph at lines 2269--2271 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]widening[][][]assign[] Overfull \hbox (14.35516pt too wide) in paragraph at lines 2271--2273 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]wrap[][][]assign, [][]148[][] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2273--2275 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2275--2277 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2277--2279 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2279--2281 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (3.26659pt too wide) in paragraph at lines 2281--2283 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][] []class[][][]from[] Overfull \hbox (4.36514pt too wide) in paragraph at lines 2285--2287 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class, [][]150[][] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2291--2293 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2293--2295 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.73547pt too wide) in paragraph at lines 2293--2295 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity, [][]137[][] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2295--2297 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2297--2299 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.17542pt too wide) in paragraph at lines 2297--2299 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity, [][]137[][] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2299--2301 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]C[] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2301--2303 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]C[] Overfull \hbox (46.59659pt too wide) in paragraph at lines 2303--2305 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Congruence[] Overfull \hbox (39.94627pt too wide) in paragraph at lines 2305--2307 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Constraint[] Overfull \hbox (38.25648pt too wide) in paragraph at lines 2307--2309 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Generator[] Overfull \hbox (10.1252pt too wide) in paragraph at lines 2309--2311 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Grid, Overfull \hbox (16.6067pt too wide) in paragraph at lines 2311--2313 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Grid[] Overfull \hbox (5.49686pt too wide) in paragraph at lines 2313--2315 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]N[] Overfull \hbox (5.49686pt too wide) in paragraph at lines 2315--2317 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]N[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2317--2319 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2319--2321 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2321--2323 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2323--2325 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (32.16637pt too wide) in paragraph at lines 2325--2327 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (32.16637pt too wide) in paragraph at lines 2327--2329 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (20.4866pt too wide) in paragraph at lines 2329--2331 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][]space[] Overfull \hbox (3.95679pt too wide) in paragraph at lines 2331--2333 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]recycle[] Overfull \hbox (3.95679pt too wide) in paragraph at lines 2333--2335 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]recycle[] Overfull \hbox (3.95679pt too wide) in paragraph at lines 2335--2337 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]recycle[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2337--2339 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2339--2341 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2341--2343 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2343--2345 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (13.83635pt too wide) in paragraph at lines 2345--2347 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpq[] Overfull \hbox (13.83635pt too wide) in paragraph at lines 2347--2349 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpq[] [289] Overfull \hbox (11.61638pt too wide) in paragraph at lines 2349--2351 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpq[] Overfull \hbox (11.61638pt too wide) in paragraph at lines 2351--2353 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpq[] Overfull \hbox (1.21451pt too wide) in paragraph at lines 2353--2354 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t ime[][][]elapse[][][]assign Overfull \hbox (12.70624pt too wide) in paragraph at lines 2356--2357 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t opological[][][]closure[] Overfull \hbox (1.31636pt too wide) in paragraph at lines 2359--2360 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t otal[][][]memory[][][]in[] Overfull \hbox (7.6964pt too wide) in paragraph at lines 2362--2363 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (7.6964pt too wide) in paragraph at lines 2365--2366 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (6.21518pt too wide) in paragraph at lines 2368--2369 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign Overfull \hbox (15.19669pt too wide) in paragraph at lines 2371--2372 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign[] Overfull \hbox (1.04648pt too wide) in paragraph at lines 2377--2378 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign[] Overfull \hbox (14.37657pt too wide) in paragraph at lines 2383--2384 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.37657pt too wide) in paragraph at lines 2386--2387 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.2264pt too wide) in paragraph at lines 2389--2390 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (14.2264pt too wide) in paragraph at lines 2392--2393 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (2.45667pt too wide) in paragraph at lines 2395--2396 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]narrowing[] Overfull \hbox (31.02487pt too wide) in paragraph at lines 2413--2414 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]congruences Overfull \hbox (24.37456pt too wide) in paragraph at lines 2416--2417 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]constraints Overfull \hbox (24.07617pt too wide) in paragraph at lines 2419--2420 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (24.07617pt too wide) in paragraph at lines 2422--2423 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (14.28499pt too wide) in paragraph at lines 2440--2441 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]image Overfull \hbox (27.05489pt too wide) in paragraph at lines 2443--2444 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]preimage Overfull \hbox (4.79538pt too wide) in paragraph at lines 2446--2447 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]above Overfull \hbox (5.4051pt too wide) in paragraph at lines 2449--2450 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]below Overfull \hbox (1.48465pt too wide) in paragraph at lines 2452--2453 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c oncatenate[][][]assign Overfull \hbox (12.69624pt too wide) in paragraph at lines 2458--2459 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][][]Octagonal[] Overfull \hbox (2.81639pt too wide) in paragraph at lines 2461--2462 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][]integer[][][] Overfull \hbox (27.52652pt too wide) in paragraph at lines 2467--2468 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[] Overfull \hbox (27.52652pt too wide) in paragraph at lines 2470--2471 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[] Overfull \hbox (4.91635pt too wide) in paragraph at lines 2473--2474 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e quals[][][][]Octagonal[] Overfull \hbox (25.49481pt too wide) in paragraph at lines 2476--2477 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xpand[][][]space[][][]dimension Overfull \hbox (3.65645pt too wide) in paragraph at lines 2479--2480 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xternal[][][]memory[] [290] Overfull \hbox (16.76457pt too wide) in paragraph at lines 2482--2483 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]f old[][][]space[][][]dimensions Overfull \hbox (6.87633pt too wide) in paragraph at lines 2488--2489 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (6.87633pt too wide) in paragraph at lines 2491--2492 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (6.87633pt too wide) in paragraph at lines 2494--2495 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (6.87633pt too wide) in paragraph at lines 2497--2498 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (37.8644pt too wide) in paragraph at lines 2506--2507 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]congruences Overfull \hbox (31.21408pt too wide) in paragraph at lines 2509--2510 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]constraints Overfull \hbox (0.94446pt too wide) in paragraph at lines 2512--2513 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i ntersection[][][]assign Overfull \hbox (1.58617pt too wide) in paragraph at lines 2521--2522 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]disjoint[][][]from[][][] Overfull \hbox (1.31624pt too wide) in paragraph at lines 2527--2528 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]topologically[][][] Overfull \hbox (5.49628pt too wide) in paragraph at lines 2533--2534 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (5.49628pt too wide) in paragraph at lines 2536--2537 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (46.1658pt too wide) in paragraph at lines 2539--2540 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (46.1658pt too wide) in paragraph at lines 2542--2543 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (17.87456pt too wide) in paragraph at lines 2548--2549 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m ap[][][]space[][][]dimensions Overfull \hbox (10.66454pt too wide) in paragraph at lines 2554--2555 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m aximize[][][]with[][][]point Overfull \hbox (9.00449pt too wide) in paragraph at lines 2560--2561 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m inimize[][][]with[][][]point Overfull \hbox (19.52486pt too wide) in paragraph at lines 2563--2564 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruence Overfull \hbox (23.41475pt too wide) in paragraph at lines 2566--2567 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruences Overfull \hbox (12.87454pt too wide) in paragraph at lines 2569--2570 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraint Overfull \hbox (16.76443pt too wide) in paragraph at lines 2572--2573 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraints Overfull \hbox (29.53458pt too wide) in paragraph at lines 2575--2576 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Congruence Overfull \hbox (22.88426pt too wide) in paragraph at lines 2578--2579 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Constraint Overfull \hbox (21.19447pt too wide) in paragraph at lines 2581--2582 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Generator Overfull \hbox (19.31654pt too wide) in paragraph at lines 2584--2585 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]higher[][][]space[] Overfull \hbox (30.34465pt too wide) in paragraph at lines 2587--2588 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]space[][][]dimensions Overfull \hbox (26.16608pt too wide) in paragraph at lines 2590--2591 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s implify[][][]using[][][]context[] Overfull \hbox (2.97603pt too wide) in paragraph at lines 2596--2597 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s trictly[][][]contains[][][] Overfull \hbox (34.37657pt too wide) in paragraph at lines 2601--2603 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.37657pt too wide) in paragraph at lines 2603--2605 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.2264pt too wide) in paragraph at lines 2605--2607 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (34.2264pt too wide) in paragraph at lines 2607--2609 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (22.45667pt too wide) in paragraph at lines 2609--2611 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]C[]C76[][][]narrowing[] Overfull \hbox (12.31526pt too wide) in paragraph at lines 2613--2615 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]congruence, Overfull \hbox (16.20515pt too wide) in paragraph at lines 2615--2617 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]congruences, [291] Overfull \hbox (5.66495pt too wide) in paragraph at lines 2617--2619 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]constraint, Overfull \hbox (9.55484pt too wide) in paragraph at lines 2619--2621 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]constraints, Overfull \hbox (6.42676pt too wide) in paragraph at lines 2621--2623 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (6.42676pt too wide) in paragraph at lines 2623--2625 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (44.07617pt too wide) in paragraph at lines 2625--2627 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (44.07617pt too wide) in paragraph at lines 2627--2629 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (15.97488pt too wide) in paragraph at lines 2629--2631 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]affine[][][]dimension, Overfull \hbox (15.76506pt too wide) in paragraph at lines 2631--2633 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]affine[][][]image, [][]164[][] Overfull \hbox (11.51494pt too wide) in paragraph at lines 2633--2635 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]affine[][][]preimage, Overfull \hbox (9.91507pt too wide) in paragraph at lines 2635--2637 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]ascii[][][]dump, [][]171[][] Overfull \hbox (4.35501pt too wide) in paragraph at lines 2637--2639 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]ascii[][][]load, [][]171[][] Overfull \hbox (15.22682pt too wide) in paragraph at lines 2639--2641 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (15.22682pt too wide) in paragraph at lines 2641--2643 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (6.5968pt too wide) in paragraph at lines 2643--2645 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (6.5968pt too wide) in paragraph at lines 2645--2647 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (1.86653pt too wide) in paragraph at lines 2647--2649 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]concatenate[] Overfull \hbox (5.75502pt too wide) in paragraph at lines 2649--2651 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]constrains, [][]164[][] Overfull \hbox (32.69624pt too wide) in paragraph at lines 2651--2653 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]contains[][][][]Octagonal[] Overfull \hbox (19.21638pt too wide) in paragraph at lines 2653--2655 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]contains[][][]integer[] Overfull \hbox (17.06474pt too wide) in paragraph at lines 2655--2657 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]difference[][][]assign, Overfull \hbox (1.3068pt too wide) in paragraph at lines 2657--2659 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (1.3068pt too wide) in paragraph at lines 2659--2661 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (24.91635pt too wide) in paragraph at lines 2661--2663 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]equals[][][][]Octagonal[] Overfull \hbox (9.2068pt too wide) in paragraph at lines 2663--2665 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]expand[][][]space[] Overfull \hbox (23.65645pt too wide) in paragraph at lines 2665--2667 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]external[][][]memory[] Overfull \hbox (0.18668pt too wide) in paragraph at lines 2667--2669 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]fold[][][]space[][][] Overfull \hbox (5.03545pt too wide) in paragraph at lines 2669--2671 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]frequency, [][]161[][] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2671--2673 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2673--2675 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2675--2677 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2677--2679 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (13.98505pt too wide) in paragraph at lines 2679--2681 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]congruences, Overfull \hbox (7.33473pt too wide) in paragraph at lines 2681--2683 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]constraints, Overfull \hbox (13.26628pt too wide) in paragraph at lines 2683--2685 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (13.26628pt too wide) in paragraph at lines 2685--2687 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (1.32634pt too wide) in paragraph at lines 2687--2689 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]intersection[] Overfull \hbox (9.91534pt too wide) in paragraph at lines 2689--2691 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]bounded, [][]160[][] Overfull \hbox (6.57486pt too wide) in paragraph at lines 2691--2693 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]discrete, [][]160[][] Overfull \hbox (17.98616pt too wide) in paragraph at lines 2693--2695 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]disjoint[][][]from[] Overfull \hbox (0.47513pt too wide) in paragraph at lines 2695--2697 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]empty, [][]160[][] Overfull \hbox (17.71623pt too wide) in paragraph at lines 2697--2699 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]topologically[] Overfull \hbox (8.95512pt too wide) in paragraph at lines 2699--2701 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]universe, [][]160[][] Overfull \hbox (0.4964pt too wide) in paragraph at lines 2701--2703 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (0.4964pt too wide) in paragraph at lines 2703--2705 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (13.03535pt too wide) in paragraph at lines 2703--2705 \OT1/ptm/bc/n/10 M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens, [ ][]167[][] Overfull \hbox (9.94635pt too wide) in paragraph at lines 2705--2707 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (9.94635pt too wide) in paragraph at lines 2707--2709 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (8.44469pt too wide) in paragraph at lines 2709--2711 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]linear[][][]partition, Overfull \hbox (1.29666pt too wide) in paragraph at lines 2711--2713 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]map[][][]space[][][] Overfull \hbox (4.645pt too wide) in paragraph at lines 2713--2715 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]maximize, [][]161[][] Overfull \hbox (15.48625pt too wide) in paragraph at lines 2715--2717 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]maximize[][][]with[] Overfull \hbox (2.98495pt too wide) in paragraph at lines 2717--2719 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]minimize, [][]161[][] Overfull \hbox (13.8262pt too wide) in paragraph at lines 2719--2721 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]minimize[][][]with[] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2721--2723 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2723--2725 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2725--2727 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2727--2729 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (6.59637pt too wide) in paragraph at lines 2729--2731 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]relation[][][]with[] Overfull \hbox (6.59637pt too wide) in paragraph at lines 2731--2733 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]relation[][][]with[] Overfull \hbox (6.59637pt too wide) in paragraph at lines 2733--2735 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]relation[][][]with[] [292] Overfull \hbox (13.50682pt too wide) in paragraph at lines 2735--2737 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]remove[][][]higher[] Overfull \hbox (10.16675pt too wide) in paragraph at lines 2737--2739 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]remove[][][]space[] Overfull \hbox (13.2763pt too wide) in paragraph at lines 2739--2741 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]simplify[][][]using[] Overfull \hbox (15.66483pt too wide) in paragraph at lines 2741--2743 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]space[][][]dimension, Overfull \hbox (19.37602pt too wide) in paragraph at lines 2743--2745 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]strictly[][][]contains[] Overfull \hbox (1.03633pt too wide) in paragraph at lines 2745--2747 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]time[][][]elapse[] Overfull \hbox (3.26656pt too wide) in paragraph at lines 2747--2749 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]topological[][][] Overfull \hbox (9.3764pt too wide) in paragraph at lines 2749--2751 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]total[][][]memory[] Overfull \hbox (1.32661pt too wide) in paragraph at lines 2751--2753 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]unconstrain[] Overfull \hbox (1.32661pt too wide) in paragraph at lines 2753--2755 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]unconstrain[] Overfull \hbox (6.037pt too wide) in paragraph at lines 2755--2757 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (6.037pt too wide) in paragraph at lines 2757--2759 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (14.00491pt too wide) in paragraph at lines 2759--2761 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]widening[][][]assign, Overfull \hbox (20.48642pt too wide) in paragraph at lines 2761--2763 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]widening[][][]assign[] Overfull \hbox (13.7951pt too wide) in paragraph at lines 2763--2765 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]wrap[][][]assign, [][]168[][] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2765--2767 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2767--2769 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2769--2771 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2771--2773 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (2.70653pt too wide) in paragraph at lines 2773--2775 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][] []class[][][]from[] Overfull \hbox (3.80508pt too wide) in paragraph at lines 2777--2779 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class, [][]171[][] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2783--2785 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2785--2787 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.73547pt too wide) in paragraph at lines 2785--2787 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity, [][]158[][] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2787--2789 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2789--2791 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.17542pt too wide) in paragraph at lines 2789--2791 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity, [][]158[][] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2791--2793 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]C[] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2793--2795 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]C[] Overfull \hbox (46.03653pt too wide) in paragraph at lines 2795--2797 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Congruence[] Overfull \hbox (39.38622pt too wide) in paragraph at lines 2797--2799 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Constraint[] Overfull \hbox (37.69643pt too wide) in paragraph at lines 2799--2801 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Generator[] Overfull \hbox (9.56514pt too wide) in paragraph at lines 2801--2803 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Grid, Overfull \hbox (16.04665pt too wide) in paragraph at lines 2803--2805 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Grid[] Overfull \hbox (4.9368pt too wide) in paragraph at lines 2805--2807 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]N[] Overfull \hbox (4.9368pt too wide) in paragraph at lines 2807--2809 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]N[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2809--2811 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2811--2813 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2813--2815 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2815--2817 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (31.60631pt too wide) in paragraph at lines 2817--2819 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (31.60631pt too wide) in paragraph at lines 2819--2821 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (19.92654pt too wide) in paragraph at lines 2821--2823 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][]space[] Overfull \hbox (3.39673pt too wide) in paragraph at lines 2823--2825 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]recycle[] Overfull \hbox (3.39673pt too wide) in paragraph at lines 2825--2827 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]recycle[] Overfull \hbox (3.39673pt too wide) in paragraph at lines 2827--2829 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]recycle[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2829--2831 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2831--2833 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2833--2835 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2835--2837 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (13.27629pt too wide) in paragraph at lines 2837--2839 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (13.27629pt too wide) in paragraph at lines 2839--2841 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (11.05632pt too wide) in paragraph at lines 2841--2843 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (11.05632pt too wide) in paragraph at lines 2843--2845 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (0.65445pt too wide) in paragraph at lines 2845--2846 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t ime[][][]elapse[][][]assign [293] Overfull \hbox (12.14618pt too wide) in paragraph at lines 2848--2849 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t opological[][][]closure[] Overfull \hbox (0.7563pt too wide) in paragraph at lines 2851--2852 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t otal[][][]memory[][][]in[] Overfull \hbox (7.13634pt too wide) in paragraph at lines 2854--2855 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (7.13634pt too wide) in paragraph at lines 2857--2858 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (5.65512pt too wide) in paragraph at lines 2860--2861 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign Overfull \hbox (14.63663pt too wide) in paragraph at lines 2863--2864 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign[] Overfull \hbox (0.48642pt too wide) in paragraph at lines 2869--2870 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign[] Overfull \hbox (2.33504pt too wide) in paragraph at lines 2877--2878 []\OT1/ptm/bc/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]d imensions[][][]and[][][]embed Overfull \hbox (1.05676pt too wide) in paragraph at lines 2887--2889 []| \OT1/ptm/bc/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][ ]dimensions[][][]and[] Overfull \hbox (16.89503pt too wide) in paragraph at lines 2898--2900 []| \OT1/ptm/bc/n/10 ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][]get[][ ][]parametric[][][]values, [][]176[][] Overfull \hbox (0.82666pt too wide) in paragraph at lines 2902--2903 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]B[]H[] Overfull \hbox (4.15674pt too wide) in paragraph at lines 2905--2906 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]H79[] Overfull \hbox (1.37671pt too wide) in paragraph at lines 2908--2909 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]B[]H[] Overfull \hbox (4.70679pt too wide) in paragraph at lines 2911--2912 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]H79[] Overfull \hbox (9.0351pt too wide) in paragraph at lines 2917--2918 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruence Overfull \hbox (12.92499pt too wide) in paragraph at lines 2920--2921 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruences Overfull \hbox (2.38478pt too wide) in paragraph at lines 2923--2924 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraint Overfull \hbox (6.27467pt too wide) in paragraph at lines 2926--2927 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraints Overfull \hbox (43.296pt too wide) in paragraph at lines 2932--2933 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[] Overfull \hbox (43.296pt too wide) in paragraph at lines 2935--2936 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[] Overfull \hbox (12.69472pt too wide) in paragraph at lines 2938--2939 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]dimension Overfull \hbox (8.23477pt too wide) in paragraph at lines 2944--2945 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]preimage Overfull \hbox (14.44666pt too wide) in paragraph at lines 2953--2954 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[] Overfull \hbox (14.44666pt too wide) in paragraph at lines 2956--2957 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[] Overfull \hbox (5.81664pt too wide) in paragraph at lines 2959--2960 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[] Overfull \hbox (5.81664pt too wide) in paragraph at lines 2962--2963 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[] Overfull \hbox (1.08636pt too wide) in paragraph at lines 2965--2966 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]concatenate[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2968--2969 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2969--2971 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2971--2972 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2972--2974 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2974--2975 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2975--2977 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] [294] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2977--2978 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2978--2980 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2980--2981 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2981--2983 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2983--2984 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2984--2986 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2986--2988 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2988--2990 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2990--2992 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2992--2994 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2994--2996 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2996--2998 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2998--3000 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (1.36655pt too wide) in paragraph at lines 3000--3002 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[] [][][]Polyhedron[][][] Overfull \hbox (15.00658pt too wide) in paragraph at lines 3002--3004 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]const[] Overfull \hbox (15.00658pt too wide) in paragraph at lines 3004--3006 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]const[] Overfull \hbox (23.04594pt too wide) in paragraph at lines 3009--3010 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][][]Pointset[] Overfull \hbox (18.43622pt too wide) in paragraph at lines 3012--3013 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][]integer[] Overfull \hbox (13.78458pt too wide) in paragraph at lines 3015--3016 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]difference[][][]assign Overfull \hbox (2.39479pt too wide) in paragraph at lines 3021--3022 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjuncts Overfull \hbox (0.52663pt too wide) in paragraph at lines 3024--3025 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][] Overfull \hbox (0.52663pt too wide) in paragraph at lines 3027--3028 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][] Overfull \hbox (15.26605pt too wide) in paragraph at lines 3030--3031 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]equals[][][][]Pointset[] Overfull \hbox (8.42664pt too wide) in paragraph at lines 3033--3034 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]expand[][][]space[] Overfull \hbox (22.87628pt too wide) in paragraph at lines 3036--3037 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]external[][][]memory[] Overfull \hbox (35.9844pt too wide) in paragraph at lines 3039--3040 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]fold[][][]space[][][]dimensions Overfull \hbox (3.57639pt too wide) in paragraph at lines 3042--3043 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (3.57639pt too wide) in paragraph at lines 3045--3046 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (3.57639pt too wide) in paragraph at lines 3048--3049 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (3.57639pt too wide) in paragraph at lines 3051--3052 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (8.87611pt too wide) in paragraph at lines 3054--3055 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[] Overfull \hbox (8.87611pt too wide) in paragraph at lines 3057--3058 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[] Overfull \hbox (0.54617pt too wide) in paragraph at lines 3060--3061 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]intersection[] Overfull \hbox (17.206pt too wide) in paragraph at lines 3069--3070 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]disjoint[][][]from[] Overfull \hbox (16.93607pt too wide) in paragraph at lines 3075--3076 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]topologically[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3082--3084 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (19.03441pt too wide) in paragraph at lines 3084--3085 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]decrement Overfull \hbox (2.7664pt too wide) in paragraph at lines 3085--3087 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (24.01442pt too wide) in paragraph at lines 3087--3088 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]dereference Overfull \hbox (2.7664pt too wide) in paragraph at lines 3088--3090 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] [295] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3091--3093 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (8.02618pt too wide) in paragraph at lines 3093--3094 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]equal[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3094--3096 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (17.37436pt too wide) in paragraph at lines 3096--3097 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]increment Overfull \hbox (2.7664pt too wide) in paragraph at lines 3097--3099 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (9.12476pt too wide) in paragraph at lines 3099--3101 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]tag, [][]180[][] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3101--3103 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3103--3105 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3105--3107 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3107--3109 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3109--3111 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3111--3113 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (1.36655pt too wide) in paragraph at lines 3113--3115 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[] [][][]Polyhedron[][][] Overfull \hbox (16.29482pt too wide) in paragraph at lines 3115--3117 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]iterator, Overfull \hbox (22.77632pt too wide) in paragraph at lines 3117--3119 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]iterator[] Overfull \hbox (0.5165pt too wide) in paragraph at lines 3119--3120 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]map[][][]space[][][] Overfull \hbox (14.70609pt too wide) in paragraph at lines 3125--3126 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize[][][]with[] Overfull \hbox (13.04604pt too wide) in paragraph at lines 3131--3132 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize[][][]with[] Overfull \hbox (1.61514pt too wide) in paragraph at lines 3134--3135 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]omega[][][]reduce Overfull \hbox (9.0347pt too wide) in paragraph at lines 3137--3138 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]pairwise[][][]reduce Overfull \hbox (1.63647pt too wide) in paragraph at lines 3140--3141 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (1.63647pt too wide) in paragraph at lines 3143--3144 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (1.63647pt too wide) in paragraph at lines 3146--3147 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (1.63647pt too wide) in paragraph at lines 3149--3150 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (5.81621pt too wide) in paragraph at lines 3152--3153 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[] Overfull \hbox (5.81621pt too wide) in paragraph at lines 3155--3156 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[] Overfull \hbox (5.81621pt too wide) in paragraph at lines 3158--3159 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[] Overfull \hbox (12.72665pt too wide) in paragraph at lines 3161--3162 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]higher[] Overfull \hbox (9.38658pt too wide) in paragraph at lines 3164--3165 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]space[] Overfull \hbox (12.49614pt too wide) in paragraph at lines 3167--3168 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]simplify[][][]using[] Overfull \hbox (12.38466pt too wide) in paragraph at lines 3173--3174 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]space[][][]dimension Overfull \hbox (18.59586pt too wide) in paragraph at lines 3176--3177 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]strictly[][][]contains[] Overfull \hbox (3.33676pt too wide) in paragraph at lines 3181--3183 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]G[]P99[] Overfull \hbox (3.33676pt too wide) in paragraph at lines 3183--3185 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]G[]P99[] Overfull \hbox (3.88681pt too wide) in paragraph at lines 3185--3187 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]H[]Z03[] Overfull \hbox (1.58586pt too wide) in paragraph at lines 3185--3187 [][][]\OT1/ptm/bc/n/10 B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][]assi gn, [][]196[][] Overfull \hbox (3.88681pt too wide) in paragraph at lines 3187--3189 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]H[]Z03[] Overfull \hbox (31.5351pt too wide) in paragraph at lines 3191--3193 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]congruence, Overfull \hbox (35.42499pt too wide) in paragraph at lines 3193--3195 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]congruences, Overfull \hbox (24.88478pt too wide) in paragraph at lines 3195--3197 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]constraint, Overfull \hbox (28.77467pt too wide) in paragraph at lines 3197--3199 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]constraints, Overfull \hbox (17.11488pt too wide) in paragraph at lines 3199--3201 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]disjunct, Overfull \hbox (14.1366pt too wide) in paragraph at lines 3201--3203 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]space[] Overfull \hbox (14.1366pt too wide) in paragraph at lines 3203--3205 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]space[] [296] Overfull \hbox (12.11488pt too wide) in paragraph at lines 3211--3213 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]ascii[][][]dump, Overfull \hbox (6.55482pt too wide) in paragraph at lines 3213--3215 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]ascii[][][]load, Overfull \hbox (8.32687pt too wide) in paragraph at lines 3215--3217 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounded[] Overfull \hbox (8.32687pt too wide) in paragraph at lines 3217--3219 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounded[] Overfull \hbox (2.77682pt too wide) in paragraph at lines 3219--3221 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounds[] Overfull \hbox (2.77682pt too wide) in paragraph at lines 3221--3223 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounds[] Overfull \hbox (21.08636pt too wide) in paragraph at lines 3223--3225 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]concatenate[] Overfull \hbox (7.95483pt too wide) in paragraph at lines 3225--3227 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]constrains, Overfull \hbox (7.21649pt too wide) in paragraph at lines 3227--3229 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]contains[] Overfull \hbox (7.21649pt too wide) in paragraph at lines 3229--3231 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]contains[] Overfull \hbox (14.16646pt too wide) in paragraph at lines 3231--3233 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]difference[] Overfull \hbox (21.0049pt too wide) in paragraph at lines 3233--3235 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]disjunct, Overfull \hbox (24.89479pt too wide) in paragraph at lines 3235--3237 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]disjuncts, Overfull \hbox (16.92662pt too wide) in paragraph at lines 3237--3239 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]some[] Overfull \hbox (16.92662pt too wide) in paragraph at lines 3239--3241 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]some[] Overfull \hbox (3.0366pt too wide) in paragraph at lines 3241--3243 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]equals[][][] Overfull \hbox (2.61691pt too wide) in paragraph at lines 3243--3245 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]expand[] Overfull \hbox (5.9466pt too wide) in paragraph at lines 3245--3247 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]external[] Overfull \hbox (15.8065pt too wide) in paragraph at lines 3247--3249 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]fold[][][]space[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3249--3251 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3251--3253 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3253--3255 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3255--3257 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (28.87611pt too wide) in paragraph at lines 3257--3259 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]geometrically[] Overfull \hbox (16.8455pt too wide) in paragraph at lines 3257--3259 [][]\OT1/ptm/bc/n/10 covers[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Pol yhedron, [][]186[][] Overfull \hbox (28.87611pt too wide) in paragraph at lines 3259--3261 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]geometrically[] Overfull \hbox (16.59525pt too wide) in paragraph at lines 3259--3261 [][]\OT1/ptm/bc/n/10 equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Pol yhedron, [][]186[][] Overfull \hbox (20.54617pt too wide) in paragraph at lines 3261--3263 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]intersection[] Overfull \hbox (12.11516pt too wide) in paragraph at lines 3263--3265 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]bounded, Overfull \hbox (8.77467pt too wide) in paragraph at lines 3265--3267 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]discrete, Overfull \hbox (14.16618pt too wide) in paragraph at lines 3267--3269 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]disjoint[] Overfull \hbox (10.48538pt too wide) in paragraph at lines 3267--3269 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyh edron, [][]191[][] Overfull \hbox (2.67494pt too wide) in paragraph at lines 3269--3271 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]empty, Overfull \hbox (36.93607pt too wide) in paragraph at lines 3271--3273 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]topologically[] Overfull \hbox (11.15494pt too wide) in paragraph at lines 3273--3275 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]universe, Overfull \hbox (16.91649pt too wide) in paragraph at lines 3275--3277 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]map[][][]space[] Overfull \hbox (6.84482pt too wide) in paragraph at lines 3277--3279 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]maximize, Overfull \hbox (13.32632pt too wide) in paragraph at lines 3279--3281 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]maximize[] Overfull \hbox (5.18477pt too wide) in paragraph at lines 3281--3283 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]minimize, Overfull \hbox (11.66628pt too wide) in paragraph at lines 3283--3285 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]minimize[] Overfull \hbox (0.34686pt too wide) in paragraph at lines 3285--3287 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]omega[] Overfull \hbox (7.76642pt too wide) in paragraph at lines 3287--3289 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]pairwise[] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3289--3291 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3291--3293 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3293--3295 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3295--3297 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (4.43645pt too wide) in paragraph at lines 3297--3299 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]relation[] Overfull \hbox (4.43645pt too wide) in paragraph at lines 3299--3301 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]relation[] Overfull \hbox (4.43645pt too wide) in paragraph at lines 3301--3303 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]relation[] Overfull \hbox (3.57686pt too wide) in paragraph at lines 3303--3305 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]remove[] Overfull \hbox (3.57686pt too wide) in paragraph at lines 3305--3307 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]remove[] Overfull \hbox (7.22635pt too wide) in paragraph at lines 3307--3309 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]simplify[] Overfull \hbox (34.88466pt too wide) in paragraph at lines 3311--3313 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]space[][][]dimension, [297] Overfull \hbox (1.66629pt too wide) in paragraph at lines 3313--3315 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]strictly[] Overfull \hbox (7.35512pt too wide) in paragraph at lines 3313--3315 [][]\OT1/ptm/bc/n/10 contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron, Overfull \hbox (20.25616pt too wide) in paragraph at lines 3315--3317 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]time[][][]elapse[] Overfull \hbox (18.88638pt too wide) in paragraph at lines 3317--3319 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]topological[] Overfull \hbox (28.59624pt too wide) in paragraph at lines 3319--3321 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]total[][][]memory[] Overfull \hbox (20.54645pt too wide) in paragraph at lines 3321--3323 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]unconstrain[] Overfull \hbox (20.54645pt too wide) in paragraph at lines 3323--3325 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]unconstrain[] Overfull \hbox (0.25684pt too wide) in paragraph at lines 3325--3327 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]upper[][][] Overfull \hbox (0.25684pt too wide) in paragraph at lines 3327--3329 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]upper[][][] Overfull \hbox (8.30505pt too wide) in paragraph at lines 3329--3331 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[] [][][]Polyhedron, [][]187[][] Overfull \hbox (6.0049pt too wide) in paragraph at lines 3331--3333 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron, Overfull \hbox (1.00502pt too wide) in paragraph at lines 3333--3335 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][ ][][]C[][][][]Polyhedron, Overfull \hbox (14.69508pt too wide) in paragraph at lines 3335--3337 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron, [][]196[][] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3337--3339 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3339--3341 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3341--3343 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3343--3345 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3345--3347 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3347--3349 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (1.88683pt too wide) in paragraph at lines 3347--3349 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[][][ ]with[][][] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3349--3351 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (0.25616pt too wide) in paragraph at lines 3351--3352 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]time[][][]elapse[] Overfull \hbox (2.48639pt too wide) in paragraph at lines 3354--3355 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]topological[][][] Overfull \hbox (8.59624pt too wide) in paragraph at lines 3357--3358 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]total[][][]memory[] Overfull \hbox (0.54645pt too wide) in paragraph at lines 3360--3361 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[] Overfull \hbox (0.54645pt too wide) in paragraph at lines 3363--3364 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[] Overfull \hbox (5.25684pt too wide) in paragraph at lines 3366--3367 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[] Overfull \hbox (5.25684pt too wide) in paragraph at lines 3369--3370 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[] Overfull \hbox (1.37671pt too wide) in paragraph at lines 3372--3373 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3373--3375 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (1.37671pt too wide) in paragraph at lines 3375--3376 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3376--3378 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (1.92676pt too wide) in paragraph at lines 3378--3379 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3379--3381 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (1.92676pt too wide) in paragraph at lines 3381--3382 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3382--3384 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3385--3387 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (23.47504pt too wide) in paragraph at lines 3387--3388 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruence Overfull \hbox (11.08522pt too wide) in paragraph at lines 3388--3390 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (27.36493pt too wide) in paragraph at lines 3390--3391 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruences Overfull \hbox (11.08522pt too wide) in paragraph at lines 3391--3393 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (16.82472pt too wide) in paragraph at lines 3393--3394 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraint Overfull \hbox (11.08522pt too wide) in paragraph at lines 3394--3396 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (20.71461pt too wide) in paragraph at lines 3396--3397 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraints Overfull \hbox (11.08522pt too wide) in paragraph at lines 3397--3399 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (9.05482pt too wide) in paragraph at lines 3399--3400 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]disjunct Overfull \hbox (11.08522pt too wide) in paragraph at lines 3400--3402 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (8.57654pt too wide) in paragraph at lines 3402--3403 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3403--3405 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (8.57654pt too wide) in paragraph at lines 3405--3406 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3406--3408 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (27.13466pt too wide) in paragraph at lines 3408--3409 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]dimension Overfull \hbox (11.08522pt too wide) in paragraph at lines 3409--3411 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (9.90482pt too wide) in paragraph at lines 3411--3412 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]image Overfull \hbox (11.08522pt too wide) in paragraph at lines 3412--3414 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (22.67471pt too wide) in paragraph at lines 3414--3415 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]preimage Overfull \hbox (11.08522pt too wide) in paragraph at lines 3415--3417 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (4.05482pt too wide) in paragraph at lines 3417--3418 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]dump Overfull \hbox (11.08522pt too wide) in paragraph at lines 3418--3420 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]215[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3421--3423 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]215[][] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3423--3424 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3424--3426 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3426--3427 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3427--3429 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (0.81677pt too wide) in paragraph at lines 3429--3430 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3430--3432 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] [298] Overfull \hbox (0.81677pt too wide) in paragraph at lines 3432--3433 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3433--3435 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (15.5263pt too wide) in paragraph at lines 3435--3436 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]concatenate[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3436--3438 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3438--3439 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3439--3441 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3441--3442 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3442--3444 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3444--3445 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3445--3447 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3447--3448 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3448--3450 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3450--3451 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3451--3453 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3453--3454 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3454--3456 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3456--3458 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3458--3460 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3460--3462 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3462--3464 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3464--3466 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3466--3468 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3468--3470 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (12.20648pt too wide) in paragraph at lines 3470--3472 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3472--3474 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3474--3476 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3477--3479 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (1.65643pt too wide) in paragraph at lines 3479--3480 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3480--3482 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (1.65643pt too wide) in paragraph at lines 3482--3483 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3483--3485 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (8.6064pt too wide) in paragraph at lines 3485--3486 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]difference[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3486--3488 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (12.94484pt too wide) in paragraph at lines 3488--3489 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjunct Overfull \hbox (11.08522pt too wide) in paragraph at lines 3489--3491 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (16.83473pt too wide) in paragraph at lines 3491--3492 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjuncts Overfull \hbox (11.08522pt too wide) in paragraph at lines 3492--3494 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (11.36656pt too wide) in paragraph at lines 3494--3495 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3495--3497 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (11.36656pt too wide) in paragraph at lines 3497--3498 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3498--3500 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (29.706pt too wide) in paragraph at lines 3500--3501 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]equals[][][][]Pointset[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3501--3503 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (0.65686pt too wide) in paragraph at lines 3503--3504 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]expand[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3504--3506 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (0.38654pt too wide) in paragraph at lines 3506--3507 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]external[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3507--3509 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (10.24644pt too wide) in paragraph at lines 3509--3510 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]fold[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3510--3512 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3512--3513 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3513--3515 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3515--3516 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3516--3518 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3518--3519 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3519--3521 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3521--3522 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3522--3524 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (23.31606pt too wide) in paragraph at lines 3524--3525 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[] Overfull \hbox (11.76543pt too wide) in paragraph at lines 3524--3525 [][]\OT1/ptm/bc/n/10 covers[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron Overfull \hbox (11.08522pt too wide) in paragraph at lines 3525--3527 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (23.31606pt too wide) in paragraph at lines 3527--3528 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[] Overfull \hbox (11.51517pt too wide) in paragraph at lines 3527--3528 [][]\OT1/ptm/bc/n/10 equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron Overfull \hbox (11.08522pt too wide) in paragraph at lines 3528--3530 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (14.98611pt too wide) in paragraph at lines 3530--3531 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]intersection[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3531--3533 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (4.0551pt too wide) in paragraph at lines 3533--3534 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]bounded Overfull \hbox (11.08522pt too wide) in paragraph at lines 3534--3536 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (0.71461pt too wide) in paragraph at lines 3536--3537 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]discrete [299] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3537--3539 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (8.60612pt too wide) in paragraph at lines 3539--3540 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]disjoint[] Overfull \hbox (5.4053pt too wide) in paragraph at lines 3539--3540 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron Overfull \hbox (11.08522pt too wide) in paragraph at lines 3540--3542 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3543--3545 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (31.376pt too wide) in paragraph at lines 3545--3546 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]topologically[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3546--3548 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (3.09488pt too wide) in paragraph at lines 3548--3549 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]universe Overfull \hbox (11.08522pt too wide) in paragraph at lines 3549--3551 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3551--3552 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3552--3554 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3554--3555 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3555--3557 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3557--3558 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3558--3560 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3560--3561 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3561--3563 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3563--3564 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3564--3566 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3566--3567 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3567--3569 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3569--3571 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3571--3573 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3573--3575 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3575--3577 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3577--3579 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3579--3581 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3581--3583 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (12.20648pt too wide) in paragraph at lines 3583--3585 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3585--3587 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3587--3589 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (11.35643pt too wide) in paragraph at lines 3589--3590 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]map[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3590--3592 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3593--3595 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (7.76627pt too wide) in paragraph at lines 3595--3596 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3596--3598 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3599--3601 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (6.10622pt too wide) in paragraph at lines 3601--3602 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3602--3604 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (16.05508pt too wide) in paragraph at lines 3604--3605 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]omega[][][]reduce Overfull \hbox (11.08522pt too wide) in paragraph at lines 3605--3607 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (2.20636pt too wide) in paragraph at lines 3607--3608 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]pairwise[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3608--3610 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3610--3611 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3611--3613 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3613--3614 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3614--3616 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3616--3617 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3617--3619 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3619--3620 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3620--3622 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (2.4764pt too wide) in paragraph at lines 3622--3623 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3623--3625 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (2.4764pt too wide) in paragraph at lines 3625--3626 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3626--3628 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (2.4764pt too wide) in paragraph at lines 3628--3629 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3629--3631 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (1.6168pt too wide) in paragraph at lines 3631--3632 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3632--3634 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (1.6168pt too wide) in paragraph at lines 3634--3635 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3635--3637 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (1.66629pt too wide) in paragraph at lines 3637--3638 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]simplify[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3638--3640 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3641--3643 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (26.8246pt too wide) in paragraph at lines 3643--3644 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]space[][][]dimension Overfull \hbox (11.08522pt too wide) in paragraph at lines 3644--3646 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (33.0358pt too wide) in paragraph at lines 3646--3647 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]strictly[][][]contains[] [300] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3647--3649 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (2.21677pt too wide) in paragraph at lines 3651--3653 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]G[] Overfull \hbox (2.21677pt too wide) in paragraph at lines 3653--3655 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]G[] Overfull \hbox (2.21677pt too wide) in paragraph at lines 3655--3657 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]H[] Overfull \hbox (1.2758pt too wide) in paragraph at lines 3655--3657 \OT1/ptm/bc/n/10 Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign, Overfull \hbox (2.21677pt too wide) in paragraph at lines 3657--3659 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]H[] Overfull \hbox (13.18533pt too wide) in paragraph at lines 3659--3661 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]OK, [][]208[][] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3661--3663 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3663--3665 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3665--3667 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3667--3669 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3669--3671 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3671--3673 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3673--3675 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (10.84665pt too wide) in paragraph at lines 3675--3677 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]affine[] Overfull \hbox (10.84665pt too wide) in paragraph at lines 3677--3679 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]affine[] Overfull \hbox (10.84665pt too wide) in paragraph at lines 3679--3681 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]affine[] Overfull \hbox (6.65643pt too wide) in paragraph at lines 3681--3683 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]ascii[] Overfull \hbox (6.65643pt too wide) in paragraph at lines 3683--3685 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]ascii[] Overfull \hbox (22.76682pt too wide) in paragraph at lines 3685--3687 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounded[] Overfull \hbox (22.76682pt too wide) in paragraph at lines 3687--3689 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounded[] Overfull \hbox (17.21677pt too wide) in paragraph at lines 3689--3691 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounds[] Overfull \hbox (17.21677pt too wide) in paragraph at lines 3691--3693 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounds[] Overfull \hbox (35.5263pt too wide) in paragraph at lines 3693--3695 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]concatenate[] Overfull \hbox (22.39478pt too wide) in paragraph at lines 3695--3697 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]constrains, Overfull \hbox (21.65643pt too wide) in paragraph at lines 3697--3699 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]contains[] Overfull \hbox (1.88551pt too wide) in paragraph at lines 3697--3699 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedro n, [][]208[][] Overfull \hbox (21.65643pt too wide) in paragraph at lines 3699--3701 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]contains[] Overfull \hbox (28.6064pt too wide) in paragraph at lines 3701--3703 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]difference[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3703--3705 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3705--3707 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3707--3709 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3709--3711 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (13.87654pt too wide) in paragraph at lines 3711--3713 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]equals[] Overfull \hbox (1.88551pt too wide) in paragraph at lines 3711--3713 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedro n, [][]208[][] Overfull \hbox (17.05685pt too wide) in paragraph at lines 3713--3715 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]expand[] Overfull \hbox (20.38654pt too wide) in paragraph at lines 3715--3717 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]external[] Overfull \hbox (4.43672pt too wide) in paragraph at lines 3717--3719 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]fold[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3719--3721 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3721--3723 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3723--3725 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3725--3727 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (43.31606pt too wide) in paragraph at lines 3727--3729 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]geometrically[] Overfull \hbox (14.26543pt too wide) in paragraph at lines 3727--3729 [][]\OT1/ptm/bc/n/10 covers[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron, Overfull \hbox (43.31606pt too wide) in paragraph at lines 3729--3731 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]geometrically[] Overfull \hbox (14.01517pt too wide) in paragraph at lines 3729--3731 [][]\OT1/ptm/bc/n/10 equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron, Overfull \hbox (34.98611pt too wide) in paragraph at lines 3731--3733 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]intersection[] Overfull \hbox (26.5551pt too wide) in paragraph at lines 3733--3735 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]bounded, Overfull \hbox (23.21461pt too wide) in paragraph at lines 3735--3737 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]discrete, Overfull \hbox (28.60612pt too wide) in paragraph at lines 3737--3739 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]disjoint[] Overfull \hbox (7.9053pt too wide) in paragraph at lines 3737--3739 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron, Overfull \hbox (17.11488pt too wide) in paragraph at lines 3739--3741 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]empty, Overfull \hbox (51.376pt too wide) in paragraph at lines 3741--3743 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]topologically[] Overfull \hbox (25.59488pt too wide) in paragraph at lines 3743--3745 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]universe, Overfull \hbox (5.5467pt too wide) in paragraph at lines 3745--3747 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]map[] Overfull \hbox (21.28476pt too wide) in paragraph at lines 3747--3749 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]maximize, Overfull \hbox (27.76627pt too wide) in paragraph at lines 3749--3751 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]maximize[] Overfull \hbox (19.62471pt too wide) in paragraph at lines 3751--3753 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]minimize, [301] Overfull \hbox (26.10622pt too wide) in paragraph at lines 3753--3755 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]minimize[] Overfull \hbox (14.7868pt too wide) in paragraph at lines 3755--3757 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]omega[] Overfull \hbox (22.20636pt too wide) in paragraph at lines 3757--3759 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]pairwise[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3759--3761 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3761--3763 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3763--3765 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3765--3767 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (18.87639pt too wide) in paragraph at lines 3767--3769 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]relation[] Overfull \hbox (18.87639pt too wide) in paragraph at lines 3769--3771 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]relation[] Overfull \hbox (18.87639pt too wide) in paragraph at lines 3771--3773 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]relation[] Overfull \hbox (18.0168pt too wide) in paragraph at lines 3773--3775 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]remove[] Overfull \hbox (18.0168pt too wide) in paragraph at lines 3775--3777 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]remove[] Overfull \hbox (21.66629pt too wide) in paragraph at lines 3777--3779 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]simplify[] Overfull \hbox (14.41505pt too wide) in paragraph at lines 3779--3781 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]size, [][]213[][] Overfull \hbox (10.53659pt too wide) in paragraph at lines 3781--3783 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]space[] Overfull \hbox (16.10623pt too wide) in paragraph at lines 3783--3785 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]strictly[] Overfull \hbox (21.79506pt too wide) in paragraph at lines 3783--3785 [][]\OT1/ptm/bc/n/10 contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][ ][][]Polyhedron, Overfull \hbox (6.10649pt too wide) in paragraph at lines 3785--3787 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]time[] Overfull \hbox (33.32632pt too wide) in paragraph at lines 3787--3789 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]topological[] Overfull \hbox (6.10649pt too wide) in paragraph at lines 3789--3791 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]total[] Overfull \hbox (34.98639pt too wide) in paragraph at lines 3791--3793 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]unconstrain[] Overfull \hbox (34.98639pt too wide) in paragraph at lines 3793--3795 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]unconstrain[] Overfull \hbox (11.09677pt too wide) in paragraph at lines 3795--3797 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]upper[] Overfull \hbox (11.09677pt too wide) in paragraph at lines 3797--3799 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]upper[] Overfull \hbox (5.72498pt too wide) in paragraph at lines 3799--3801 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron, Overfull \hbox (20.44484pt too wide) in paragraph at lines 3801--3803 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (15.44496pt too wide) in paragraph at lines 3803--3805 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][ ][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (12.115pt too wide) in paragraph at lines 3805--3807 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][] [][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (4.73679pt too wide) in paragraph at lines 3807--3809 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3809--3811 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3811--3813 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3813--3815 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (1.89563pt too wide) in paragraph at lines 3813--3815 [][]\OT1/ptm/bc/n/10 from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]compl exity, Overfull \hbox (4.73679pt too wide) in paragraph at lines 3815--3817 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (7.9053pt too wide) in paragraph at lines 3815--3817 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron, Overfull \hbox (4.73679pt too wide) in paragraph at lines 3817--3819 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (14.38681pt too wide) in paragraph at lines 3817--3819 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3819--3821 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (14.6961pt too wide) in paragraph at lines 3821--3822 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]time[][][]elapse[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3822--3824 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (13.32632pt too wide) in paragraph at lines 3824--3825 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]topological[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3825--3827 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (23.03618pt too wide) in paragraph at lines 3827--3828 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]total[][][]memory[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3828--3830 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (14.98639pt too wide) in paragraph at lines 3830--3831 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3831--3833 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (14.98639pt too wide) in paragraph at lines 3833--3834 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3834--3836 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (19.69678pt too wide) in paragraph at lines 3836--3837 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3837--3839 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (19.69678pt too wide) in paragraph at lines 3839--3840 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3840--3842 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (15.87514pt too wide) in paragraph at lines 3844--3845 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign[][][]with[][][]tokens [302] Overfull \hbox (2.30722pt too wide) in paragraph at lines 3884--3885 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][] Overfull \hbox (2.30722pt too wide) in paragraph at lines 3886--3887 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][] Overfull \hbox (7.85701pt too wide) in paragraph at lines 3890--3891 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign[] Overfull \hbox (2.90495pt too wide) in paragraph at lines 3930--3931 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage[][][]lhs[][][]rhs Overfull \hbox (12.2248pt too wide) in paragraph at lines 3958--3959 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign Overfull \hbox (21.2063pt too wide) in paragraph at lines 3960--3961 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[] [303] Overfull \hbox (1.75647pt too wide) in paragraph at lines 3964--3965 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign[] Overfull \hbox (4.40565pt too wide) in paragraph at lines 4011--4013 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][ ][]assign, [][]243[][] Overfull \hbox (15.2469pt too wide) in paragraph at lines 4013--4015 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][ ][]assign[][][]with[] Overfull \hbox (18.92531pt too wide) in paragraph at lines 4017--4019 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign [][][]with[][][]tokens, Overfull \hbox (3.6558pt too wide) in paragraph at lines 4032--4034 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]add[][][]recycled[][][]congruen ces, [][]233[][] Overfull \hbox (19.00531pt too wide) in paragraph at lines 4038--4040 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[ ][][]and[][][]embed, Overfull \hbox (20.11516pt too wide) in paragraph at lines 4040--4042 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[ ][][]and[][][]project, Overfull \hbox (18.70721pt too wide) in paragraph at lines 4052--4054 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (18.70721pt too wide) in paragraph at lines 4054--4056 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (2.85739pt too wide) in paragraph at lines 4056--4058 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapo lation[][][] Overfull \hbox (2.85739pt too wide) in paragraph at lines 4058--4060 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapo lation[][][] Overfull \hbox (2.20561pt too wide) in paragraph at lines 4077--4079 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]in teger[][][]points, Overfull \hbox (8.68712pt too wide) in paragraph at lines 4079--4081 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]in teger[][][]points[] Overfull \hbox (3.39551pt too wide) in paragraph at lines 4085--4087 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]external[][][]memory[][][]in[][ ][]bytes, [][]233[][] Overfull \hbox (3.2967pt too wide) in paragraph at lines 4092--4094 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]im age[][][]lhs[] Overfull \hbox (11.33533pt too wide) in paragraph at lines 4094--4096 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]pr eimage, [][]237[][] Overfull \hbox (0.79681pt too wide) in paragraph at lines 4096--4098 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]pr eimage[] [304] Overfull \hbox (10.49533pt too wide) in paragraph at lines 4104--4106 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]congrue nces, [][]230[][] Overfull \hbox (3.84502pt too wide) in paragraph at lines 4106--4108 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]constra ints, [][]230[][] Overfull \hbox (2.16524pt too wide) in paragraph at lines 4108--4110 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]generat ors, [][]241[][] Overfull \hbox (11.34532pt too wide) in paragraph at lines 4116--4118 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][ ][]Polyhedron, [][]232[][] Overfull \hbox (12.60667pt too wide) in paragraph at lines 4124--4126 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (12.60667pt too wide) in paragraph at lines 4126--4128 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (15.27496pt too wide) in paragraph at lines 4128--4130 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapo lation[][][]assign, Overfull \hbox (21.75647pt too wide) in paragraph at lines 4130--4132 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapo lation[][][]assign[] Overfull \hbox (8.155pt too wide) in paragraph at lines 4148--4150 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]positive[][][]time[][][]elapse[ ][][]assign, [][]248[][] Overfull \hbox (2.16551pt too wide) in paragraph at lines 4158--4160 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][][]Congr uence, [][]248[][] Overfull \hbox (15.10536pt too wide) in paragraph at lines 4164--4166 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[] [][]dimensions, Overfull \hbox (2.97559pt too wide) in paragraph at lines 4166--4168 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]remove[][][]space[][][]dimensio ns, [][]238[][] Overfull \hbox (1.39511pt too wide) in paragraph at lines 4168--4170 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]contex t[][][]assign, Overfull \hbox (12.73518pt too wide) in paragraph at lines 4172--4174 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]strictly[][][]contains[][][][]P olyhedron, [][]232[][] Overfull \hbox (4.39523pt too wide) in paragraph at lines 4176--4178 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]topological[][][]closure[][][]a ssign, [][]235[][] Overfull \hbox (16.05528pt too wide) in paragraph at lines 4180--4182 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dim ension, [][]235[][] Overfull \hbox (2.92516pt too wide) in paragraph at lines 4182--4184 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dim ensions, Overfull \hbox (12.54573pt too wide) in paragraph at lines 4186--4188 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]upper[][][]bound[][][]assign[][ ][]if[][][]exact, [][]248[][] Overfull \hbox (15.12535pt too wide) in paragraph at lines 4190--4192 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[ ][][]tokens, [][]249[][] Overfull \hbox (20.70515pt too wide) in paragraph at lines 4194--4196 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]C[][][][]Polyhedron, Overfull \hbox (27.18666pt too wide) in paragraph at lines 4196--4198 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.1451pt too wide) in paragraph at lines 4198--4200 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (41.6266pt too wide) in paragraph at lines 4200--4202 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.48518pt too wide) in paragraph at lines 4202--4204 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]C[][][][]Polyhedron, Overfull \hbox (24.96669pt too wide) in paragraph at lines 4204--4206 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]C[][][][]Polyhedron[] Overfull \hbox (32.92513pt too wide) in paragraph at lines 4206--4208 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (39.40663pt too wide) in paragraph at lines 4208--4210 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (16.60555pt too wide) in paragraph at lines 4210--4212 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]C[][][][]Polyhedron[][][]from[][][] []C[][][][]Polyhedron, [][]226[][] Overfull \hbox (28.46541pt too wide) in paragraph at lines 4212--4214 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from [][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (4.40729pt too wide) in paragraph at lines 4221--4223 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (4.40729pt too wide) in paragraph at lines 4223--4225 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (3.84723pt too wide) in paragraph at lines 4225--4227 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (3.84723pt too wide) in paragraph at lines 4227--4229 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (8.01584pt too wide) in paragraph at lines 4229--4231 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C [][][][]Polyhedron, [][]225[][] Overfull \hbox (1.07733pt too wide) in paragraph at lines 4231--4233 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C [][][][]Polyhedron[][][] Overfull \hbox (15.98543pt too wide) in paragraph at lines 4233--4235 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C ongruence[][][][]System, Overfull \hbox (9.33511pt too wide) in paragraph at lines 4235--4237 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C onstraint[][][][]System, Overfull \hbox (7.64532pt too wide) in paragraph at lines 4237--4239 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]G enerator[][][][]System, Overfull \hbox (22.7753pt too wide) in paragraph at lines 4241--4243 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]G rid[][][]with[][][]complexity, Overfull \hbox (5.43576pt too wide) in paragraph at lines 4243--4245 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N []N[]C[][][][]Polyhedron, Overfull \hbox (11.91727pt too wide) in paragraph at lines 4245--4247 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N []N[]C[][][][]Polyhedron[] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4247--4249 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4249--4251 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4251--4253 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] [305] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4253--4255 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (5.7956pt too wide) in paragraph at lines 4255--4257 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]R ational[][][][]Box, [][]245[][] Overfull \hbox (16.63684pt too wide) in paragraph at lines 4257--4259 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]R ational[][][][]Box[][][]with[] Overfull \hbox (2.0954pt too wide) in paragraph at lines 4259--4261 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]spa ce[][][]dimension, Overfull \hbox (2.29729pt too wide) in paragraph at lines 4261--4263 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][] []Congruence[][][] Overfull \hbox (18.61502pt too wide) in paragraph at lines 4263--4265 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][] []Constraint[][][][]System, Overfull \hbox (16.92523pt too wide) in paragraph at lines 4265--4267 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][] []Generator[][][][]System, Overfull \hbox (1.06734pt too wide) in paragraph at lines 4267--4269 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (1.06734pt too wide) in paragraph at lines 4269--4271 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (1.06734pt too wide) in paragraph at lines 4271--4273 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (1.06734pt too wide) in paragraph at lines 4273--4275 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (5.43576pt too wide) in paragraph at lines 4275--4277 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]C[][][][]Polyhedron, Overfull \hbox (11.91727pt too wide) in paragraph at lines 4277--4279 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]C[][][][]Polyhedron[] Overfull \hbox (3.85732pt too wide) in paragraph at lines 4279--4281 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Congruence[] Overfull \hbox (0.807pt too wide) in paragraph at lines 4281--4283 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Constraint[][][] Overfull \hbox (22.08527pt too wide) in paragraph at lines 4283--4285 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Generator[][][][]System, Overfull \hbox (37.21524pt too wide) in paragraph at lines 4287--4289 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Grid[][][]with[][][]complexity, Overfull \hbox (19.8757pt too wide) in paragraph at lines 4289--4291 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (26.35721pt too wide) in paragraph at lines 4291--4293 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4293--4295 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4295--4297 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4297--4299 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4299--4301 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (3.21552pt too wide) in paragraph at lines 4301--4303 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box, Overfull \hbox (9.69702pt too wide) in paragraph at lines 4303--4305 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box[] Overfull \hbox (16.53534pt too wide) in paragraph at lines 4305--4307 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][]space[][][]dimension, Overfull \hbox (13.13722pt too wide) in paragraph at lines 4307--4309 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle [][][][]Congruence[] Overfull \hbox (6.48691pt too wide) in paragraph at lines 4309--4311 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle [][][][]Constraint[] Overfull \hbox (4.79712pt too wide) in paragraph at lines 4311--4313 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle [][][][]Generator[] Overfull \hbox (21.25548pt too wide) in paragraph at lines 4313--4315 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]C[][][][]Polyhedron, Overfull \hbox (27.73698pt too wide) in paragraph at lines 4315--4317 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.69542pt too wide) in paragraph at lines 4317--4319 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (42.17693pt too wide) in paragraph at lines 4319--4321 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (19.0355pt too wide) in paragraph at lines 4321--4323 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]C[][][][]Polyhedron, Overfull \hbox (25.51701pt too wide) in paragraph at lines 4323--4325 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]C[][][][]Polyhedron[] Overfull \hbox (33.47545pt too wide) in paragraph at lines 4325--4327 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (39.95695pt too wide) in paragraph at lines 4327--4329 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (4.67516pt too wide) in paragraph at lines 4333--4335 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]N[]N[]C[ ][][][]Polyhedron, [][]249[][] Overfull \hbox (13.27516pt too wide) in paragraph at lines 4335--4337 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]N[]N[]C[ ][][][]Polyhedron[][][]2, [][]251[][] Overfull \hbox (2.45518pt too wide) in paragraph at lines 4341--4343 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]N[]N[]C[ ][][][]Polyhedron, [][]250[][] Overfull \hbox (11.05519pt too wide) in paragraph at lines 4343--4345 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]N[]N[]C[ ][][][]Polyhedron[][][]2, [][]251[][] [306] Overfull \hbox (10.59486pt too wide) in paragraph at lines 4370--4371 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[] [][]assign[][][]with[][][]tokens Overfull \hbox (4.555pt too wide) in paragraph at lines 4386--4387 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]embed Overfull \hbox (5.66484pt too wide) in paragraph at lines 4388--4389 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]project Overfull \hbox (0.3368pt too wide) in paragraph at lines 4420--4421 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points[][][] Overfull \hbox (4.11629pt too wide) in paragraph at lines 4438--4439 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage[][][]lhs[] Overfull \hbox (6.94452pt too wide) in paragraph at lines 4466--4467 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign Overfull \hbox (15.92603pt too wide) in paragraph at lines 4468--4469 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign[] [307] Overfull \hbox (0.65504pt too wide) in paragraph at lines 4496--4497 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][] space[][][]dimensions Overfull \hbox (2.7554pt too wide) in paragraph at lines 4507--4509 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]narrowin g[][][]assign, [][]267[][] Overfull \hbox (9.96663pt too wide) in paragraph at lines 4511--4513 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening [][][]assign[][][]with[] Overfull \hbox (11.70549pt too wide) in paragraph at lines 4523--4525 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]recycled[][][ ]congruences, [][]268[][] Overfull \hbox (5.05518pt too wide) in paragraph at lines 4525--4527 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]recycled[][][ ]constraints, [][]268[][] Overfull \hbox (3.27672pt too wide) in paragraph at lines 4527--4529 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]di mensions[][][]and[] Overfull \hbox (3.27672pt too wide) in paragraph at lines 4529--4531 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]di mensions[][][]and[] Overfull \hbox (7.7355pt too wide) in paragraph at lines 4543--4545 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]bounded[][][]affine[][ ][]preimage, [][]265[][] Overfull \hbox (10.2553pt too wide) in paragraph at lines 4559--4561 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]no n[][][]integer[][][]points, Overfull \hbox (16.7368pt too wide) in paragraph at lines 4561--4563 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]no n[][][]integer[][][]points[] Overfull \hbox (6.17543pt too wide) in paragraph at lines 4565--4567 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]expand[][][]space[][][ ]dimension, [][]266[][] Overfull \hbox (11.44519pt too wide) in paragraph at lines 4567--4569 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]external[][][]memory[] [][]in[][][]bytes, [][]267[][] Overfull \hbox (6.61511pt too wide) in paragraph at lines 4573--4575 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]image, [][]265[][] Overfull \hbox (11.34639pt too wide) in paragraph at lines 4575--4577 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]image[][][]lhs[] Overfull \hbox (2.36499pt too wide) in paragraph at lines 4577--4579 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]preimage, Overfull \hbox (8.8465pt too wide) in paragraph at lines 4579--4581 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]preimage[] Overfull \hbox (1.525pt too wide) in paragraph at lines 4587--4589 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][] []congruences, Overfull \hbox (11.8947pt too wide) in paragraph at lines 4589--4591 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][] []constraints, [][]260[][] Overfull \hbox (0.23625pt too wide) in paragraph at lines 4599--4601 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint[][][] from[][][][]Rational[][][] Overfull \hbox (7.3264pt too wide) in paragraph at lines 4607--4609 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[ ][][]extrapolation[] Overfull \hbox (7.3264pt too wide) in paragraph at lines 4609--4611 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[ ][][]extrapolation[] Overfull \hbox (0.20547pt too wide) in paragraph at lines 4623--4625 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]refine[][][]with[][][] congruence, [][]263[][] Overfull \hbox (4.09537pt too wide) in paragraph at lines 4625--4627 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]refine[][][]with[][][] congruences, [][]263[][] Overfull \hbox (10.2152pt too wide) in paragraph at lines 4631--4633 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][] [][]Congruence, [][]259[][] Overfull \hbox (3.56488pt too wide) in paragraph at lines 4633--4635 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][] [][]Constraint, [][]259[][] [308] Overfull \hbox (1.87509pt too wide) in paragraph at lines 4635--4637 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][] [][]Generator, [][]259[][] Overfull \hbox (23.15504pt too wide) in paragraph at lines 4637--4639 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][] []space[][][]dimensions, Overfull \hbox (11.02527pt too wide) in paragraph at lines 4639--4641 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]space[][][ ]dimensions, [][]266[][] Overfull \hbox (9.4448pt too wide) in paragraph at lines 4641--4643 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][ ][]context[][][]assign, Overfull \hbox (1.62611pt too wide) in paragraph at lines 4645--4647 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]strictly[][][]contains [][][][]Rational[][][] Overfull \hbox (12.44492pt too wide) in paragraph at lines 4649--4651 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]topological[][][]closu re[][][]assign, [][]260[][] Overfull \hbox (7.08495pt too wide) in paragraph at lines 4653--4655 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space [][][]dimension, Overfull \hbox (10.97484pt too wide) in paragraph at lines 4655--4657 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space [][][]dimensions, Overfull \hbox (3.5754pt too wide) in paragraph at lines 4659--4661 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]upper[][][]bound[][][] assign[][][]if[][][]exact, Overfull \hbox (6.15501pt too wide) in paragraph at lines 4663--4665 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[] [][]with[][][]tokens, Overfull \hbox (4.69649pt too wide) in paragraph at lines 4667--4669 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Rational[] Overfull \hbox (4.69649pt too wide) in paragraph at lines 4669--4671 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Rational[] Overfull \hbox (2.47652pt too wide) in paragraph at lines 4671--4673 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Rational[] Overfull \hbox (2.47652pt too wide) in paragraph at lines 4673--4675 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Rational[] Overfull \hbox (12.16505pt too wide) in paragraph at lines 4675--4677 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Rational[][][][]Box[][][]from[][][] []Rational[][][][]Box, [][]268[][] Overfull \hbox (2.18704pt too wide) in paragraph at lines 4685--4687 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (2.18704pt too wide) in paragraph at lines 4687--4689 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (1.62698pt too wide) in paragraph at lines 4689--4691 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (1.62698pt too wide) in paragraph at lines 4691--4693 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (5.7956pt too wide) in paragraph at lines 4693--4695 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C [][][][]Polyhedron, [][]257[][] Overfull \hbox (16.63684pt too wide) in paragraph at lines 4695--4697 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C [][][][]Polyhedron[][][]with[] Overfull \hbox (13.76518pt too wide) in paragraph at lines 4697--4699 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C ongruence[][][][]System, Overfull \hbox (7.11487pt too wide) in paragraph at lines 4699--4701 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C onstraint[][][][]System, Overfull \hbox (5.42508pt too wide) in paragraph at lines 4701--4703 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]G enerator[][][][]System, Overfull \hbox (20.55505pt too wide) in paragraph at lines 4705--4707 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]G rid[][][]with[][][]complexity, Overfull \hbox (3.21552pt too wide) in paragraph at lines 4707--4709 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N []N[]C[][][][]Polyhedron, Overfull \hbox (9.69702pt too wide) in paragraph at lines 4709--4711 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N []N[]C[][][][]Polyhedron[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4711--4713 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4713--4715 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4715--4717 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4717--4719 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (3.57535pt too wide) in paragraph at lines 4719--4721 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]R ational[][][][]Box, [][]257[][] Overfull \hbox (14.4166pt too wide) in paragraph at lines 4721--4723 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]R ational[][][][]Box[][][]with[] Overfull \hbox (16.89517pt too wide) in paragraph at lines 4723--4725 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][]spa ce[][][]dimension, [][]256[][] Overfull \hbox (16.39478pt too wide) in paragraph at lines 4727--4729 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][] []Constraint[][][][]System, Overfull \hbox (14.70499pt too wide) in paragraph at lines 4729--4731 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][] []Generator[][][][]System, Overfull \hbox (5.24681pt too wide) in paragraph at lines 4731--4733 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Rational[] Overfull \hbox (5.24681pt too wide) in paragraph at lines 4733--4735 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Rational[] Overfull \hbox (3.02684pt too wide) in paragraph at lines 4735--4737 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Rational[] Overfull \hbox (3.02684pt too wide) in paragraph at lines 4737--4739 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Rational[] [309] Overfull \hbox (14.11662pt too wide) in paragraph at lines 4767--4768 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (14.11662pt too wide) in paragraph at lines 4770--4771 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.55656pt too wide) in paragraph at lines 4773--4774 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (13.55656pt too wide) in paragraph at lines 4776--4777 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (7.18666pt too wide) in paragraph at lines 4781--4782 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron[] Overfull \hbox (12.6451pt too wide) in paragraph at lines 4787--4788 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (21.6266pt too wide) in paragraph at lines 4789--4790 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4791--4792 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4794--4795 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4797--4798 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4800--4801 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.96642pt too wide) in paragraph at lines 4805--4806 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box[] Overfull \hbox (11.89665pt too wide) in paragraph at lines 4807--4808 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (11.89665pt too wide) in paragraph at lines 4810--4811 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (11.3366pt too wide) in paragraph at lines 4813--4814 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.3366pt too wide) in paragraph at lines 4816--4817 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (4.96669pt too wide) in paragraph at lines 4821--4822 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.42513pt too wide) in paragraph at lines 4827--4828 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (19.40663pt too wide) in paragraph at lines 4829--4830 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4831--4832 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4834--4835 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4837--4838 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4840--4841 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.74644pt too wide) in paragraph at lines 4845--4846 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box[] Overfull \hbox (1.58662pt too wide) in paragraph at lines 4847--4848 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (1.02657pt too wide) in paragraph at lines 4850--4851 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.96541pt too wide) in paragraph at lines 4857--4858 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (27.96617pt too wide) in paragraph at lines 4859--4860 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[] Overfull \hbox (27.40611pt too wide) in paragraph at lines 4862--4863 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[] [310] Overfull \hbox (0.24678pt too wide) in paragraph at lines 4876--4878 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.47627pt too wide) in paragraph at lines 4889--4890 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]const[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 4890--4892 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (1.26451pt too wide) in paragraph at lines 4892--4893 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]iterator Overfull \hbox (2.7664pt too wide) in paragraph at lines 4893--4895 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 4896--4898 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (16.91621pt too wide) in paragraph at lines 4898--4899 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 4899--4901 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (15.70445pt too wide) in paragraph at lines 4901--4902 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]iterator Overfull \hbox (17.20634pt too wide) in paragraph at lines 4902--4904 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.51643pt too wide) in paragraph at lines 4932--4933 []\OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 4933--4935 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 4947--4949 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]215[][] Overfull \hbox (8.46487pt too wide) in paragraph at lines 4959--4960 []\OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid Overfull \hbox (0.24678pt too wide) in paragraph at lines 4960--4962 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 4974--4976 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (5.13492pt too wide) in paragraph at lines 4986--4987 []\OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[][] [][]C[][][][]Polyhedron[][][][]Grid Overfull \hbox (0.24678pt too wide) in paragraph at lines 4987--4989 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [311] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5001--5003 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (14.37682pt too wide) in paragraph at lines 5011--5012 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (14.37682pt too wide) in paragraph at lines 5014--5015 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5017--5018 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5020--5021 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (7.44685pt too wide) in paragraph at lines 5026--5027 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.98691pt too wide) in paragraph at lines 5029--5030 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Congruence[][][] Overfull \hbox (16.80464pt too wide) in paragraph at lines 5032--5033 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Constraint[][][][]System Overfull \hbox (15.11485pt too wide) in paragraph at lines 5035--5036 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Generator[][][][]System Overfull \hbox (30.24483pt too wide) in paragraph at lines 5041--5042 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (12.90529pt too wide) in paragraph at lines 5044--5045 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (21.8868pt too wide) in paragraph at lines 5047--5048 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5050--5051 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5053--5054 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5056--5057 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5059--5060 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.22661pt too wide) in paragraph at lines 5065--5066 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box[] Overfull \hbox (9.56493pt too wide) in paragraph at lines 5068--5069 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][]space[][][]dimension Overfull \hbox (8.66681pt too wide) in paragraph at lines 5071--5072 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Congruence[] Overfull \hbox (2.0165pt too wide) in paragraph at lines 5074--5075 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Constraint[] Overfull \hbox (0.3267pt too wide) in paragraph at lines 5077--5078 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Generator[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5080--5081 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5083--5084 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.2567pt too wide) in paragraph at lines 5086--5087 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (13.2567pt too wide) in paragraph at lines 5089--5090 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (6.8868pt too wide) in paragraph at lines 5095--5096 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.42685pt too wide) in paragraph at lines 5098--5099 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Congruence[][][] Overfull \hbox (16.24458pt too wide) in paragraph at lines 5101--5102 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Constraint[][][][]System Overfull \hbox (14.5548pt too wide) in paragraph at lines 5104--5105 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Generator[][][][]System Overfull \hbox (29.68477pt too wide) in paragraph at lines 5110--5111 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (12.34523pt too wide) in paragraph at lines 5113--5114 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (21.32674pt too wide) in paragraph at lines 5116--5117 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[] [312] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5119--5120 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5122--5123 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5125--5126 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5128--5129 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.66655pt too wide) in paragraph at lines 5134--5135 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box[] Overfull \hbox (9.00487pt too wide) in paragraph at lines 5137--5138 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][]space[][][]dimension Overfull \hbox (8.10675pt too wide) in paragraph at lines 5140--5141 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Congruence[] Overfull \hbox (1.45644pt too wide) in paragraph at lines 5143--5144 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Constraint[] Overfull \hbox (3.36665pt too wide) in paragraph at lines 5146--5147 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Generator[][][] Overfull \hbox (7.44685pt too wide) in paragraph at lines 5151--5152 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.8868pt too wide) in paragraph at lines 5155--5156 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.45709pt too wide) in paragraph at lines 5159--5160 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][] Overfull \hbox (0.2753pt too wide) in paragraph at lines 5169--5170 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gri d[][][]with[][][]complexity Overfull \hbox (13.29703pt too wide) in paragraph at lines 5173--5174 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (11.61697pt too wide) in paragraph at lines 5175--5176 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.61697pt too wide) in paragraph at lines 5177--5178 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.05692pt too wide) in paragraph at lines 5179--5180 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (11.05692pt too wide) in paragraph at lines 5181--5182 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (0.23685pt too wide) in paragraph at lines 5185--5186 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][] Overfull \hbox (2.76534pt too wide) in paragraph at lines 5189--5190 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Congruence[][][][]System Overfull \hbox (0.2567pt too wide) in paragraph at lines 5195--5196 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5196--5198 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5198--5199 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (14.92522pt too wide) in paragraph at lines 5198--5199 [][]\OT1/ptm/bc/n/10 from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wit h[][][]complexity Overfull \hbox (0.24678pt too wide) in paragraph at lines 5199--5201 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5201--5202 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5202--5204 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5204--5205 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (14.36516pt too wide) in paragraph at lines 5204--5205 [][]\OT1/ptm/bc/n/10 from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wit h[][][]complexity Overfull \hbox (0.24678pt too wide) in paragraph at lines 5205--5207 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5207--5208 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5208--5210 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5210--5211 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5211--5213 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [313] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5213--5214 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5214--5216 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5216--5217 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5217--5219 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5219--5220 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (7.9769pt too wide) in paragraph at lines 5219--5220 [][]\OT1/ptm/bc/n/10 from[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5220--5222 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5222--5223 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (7.9769pt too wide) in paragraph at lines 5222--5223 [][]\OT1/ptm/bc/n/10 from[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5223--5225 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5225--5226 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5226--5228 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5228--5229 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5229--5231 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5231--5232 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5232--5234 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5234--5235 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5235--5237 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5237--5238 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5238--5240 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5240--5241 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (2.66685pt too wide) in paragraph at lines 5240--5241 [][]\OT1/ptm/bc/n/10 from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] []with[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5241--5243 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5243--5244 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5244--5246 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5246--5247 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (2.1068pt too wide) in paragraph at lines 5246--5247 [][]\OT1/ptm/bc/n/10 from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] []with[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5247--5249 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5249--5250 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5250--5252 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5252--5253 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5253--5255 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5255--5256 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5256--5258 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.24483pt too wide) in paragraph at lines 5260--5261 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]with[][][]complexity Overfull \hbox (29.68477pt too wide) in paragraph at lines 5264--5265 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]with[][][]complexity Overfull \hbox (0.2753pt too wide) in paragraph at lines 5268--5269 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity Overfull \hbox (14.71524pt too wide) in paragraph at lines 5282--5283 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Pol yhedron[][][]with[][][]complexity Overfull \hbox (0.20671pt too wide) in paragraph at lines 5286--5287 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][] Overfull \hbox (17.4264pt too wide) in paragraph at lines 5290--5291 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]with[] [314] Overfull \hbox (2.44724pt too wide) in paragraph at lines 5304--5305 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][] Overfull \hbox (2.44724pt too wide) in paragraph at lines 5306--5307 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][] Overfull \hbox (1.88718pt too wide) in paragraph at lines 5308--5309 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (1.88718pt too wide) in paragraph at lines 5310--5311 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (13.29703pt too wide) in paragraph at lines 5314--5315 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]C[][][][]Polyhedron[][][]with[] Overfull \hbox (7.92537pt too wide) in paragraph at lines 5316--5317 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Congruence[][][][]System Overfull \hbox (1.27505pt too wide) in paragraph at lines 5318--5319 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Constraint[][][][]System Overfull \hbox (14.71524pt too wide) in paragraph at lines 5324--5325 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Grid[][][]with[][][]complexity Overfull \hbox (6.35721pt too wide) in paragraph at lines 5328--5329 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5330--5331 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5332--5333 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5334--5335 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5336--5337 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (11.07678pt too wide) in paragraph at lines 5340--5341 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Rational[][][][]Box[][][]with[] Overfull \hbox (17.20528pt too wide) in paragraph at lines 5344--5345 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Congruence[][][][]System Overfull \hbox (10.55496pt too wide) in paragraph at lines 5346--5347 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Constraint[][][][]System Overfull \hbox (8.86517pt too wide) in paragraph at lines 5348--5349 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Generator[][][][]System Overfull \hbox (20.2066pt too wide) in paragraph at lines 5350--5351 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5353--5354 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5356--5357 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5359--5360 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (25.67503pt too wide) in paragraph at lines 5362--5363 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (34.65654pt too wide) in paragraph at lines 5365--5366 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.59659pt too wide) in paragraph at lines 5368--5369 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Congruence[] Overfull \hbox (19.94627pt too wide) in paragraph at lines 5371--5372 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Constraint[] Overfull \hbox (18.25648pt too wide) in paragraph at lines 5374--5375 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Generator[] Overfull \hbox (0.20671pt too wide) in paragraph at lines 5380--5381 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid[][][] Overfull \hbox (2.98676pt too wide) in paragraph at lines 5383--5384 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (2.98676pt too wide) in paragraph at lines 5386--5387 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5389--5390 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5392--5393 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5395--5396 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] [315] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5398--5399 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (12.16637pt too wide) in paragraph at lines 5401--5402 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (12.16637pt too wide) in paragraph at lines 5404--5405 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (0.4866pt too wide) in paragraph at lines 5407--5408 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][]space[] Overfull \hbox (35.8765pt too wide) in paragraph at lines 5410--5411 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Congruence[] Overfull \hbox (29.22618pt too wide) in paragraph at lines 5413--5414 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Constraint[] Overfull \hbox (27.53639pt too wide) in paragraph at lines 5416--5417 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Generator[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5419--5420 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5422--5423 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5425--5426 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5428--5429 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (25.11497pt too wide) in paragraph at lines 5431--5432 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (34.09648pt too wide) in paragraph at lines 5434--5435 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.03653pt too wide) in paragraph at lines 5437--5438 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Congruence[] Overfull \hbox (19.38622pt too wide) in paragraph at lines 5440--5441 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Constraint[] Overfull \hbox (17.69643pt too wide) in paragraph at lines 5443--5444 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Generator[] Overfull \hbox (17.4264pt too wide) in paragraph at lines 5449--5450 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid[][][]with[] Overfull \hbox (2.4267pt too wide) in paragraph at lines 5452--5453 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (2.4267pt too wide) in paragraph at lines 5455--5456 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5458--5459 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5461--5462 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5464--5465 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5467--5468 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (11.60631pt too wide) in paragraph at lines 5470--5471 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (11.60631pt too wide) in paragraph at lines 5473--5474 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (3.52655pt too wide) in paragraph at lines 5476--5477 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][]space[][][] Overfull \hbox (35.31644pt too wide) in paragraph at lines 5479--5480 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Congruence[] Overfull \hbox (28.66612pt too wide) in paragraph at lines 5482--5483 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Constraint[] Overfull \hbox (26.97633pt too wide) in paragraph at lines 5485--5486 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Generator[] Overfull \hbox (18.50455pt too wide) in paragraph at lines 5488--5489 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator Overfull \hbox (27.47614pt too wide) in paragraph at lines 5489--5491 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.48605pt too wide) in paragraph at lines 5491--5492 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 5492--5494 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (3.60658pt too wide) in paragraph at lines 5494--5495 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[] Overfull \hbox (3.60658pt too wide) in paragraph at lines 5497--5498 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[] Overfull \hbox (45.25636pt too wide) in paragraph at lines 5500--5501 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Congruence[] Overfull \hbox (38.60605pt too wide) in paragraph at lines 5503--5504 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Constraint[] [316] Overfull \hbox (29.1661pt too wide) in paragraph at lines 5506--5507 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[] Overfull \hbox (29.1661pt too wide) in paragraph at lines 5509--5510 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[] Overfull \hbox (1.92542pt too wide) in paragraph at lines 5509--5510 [][][]\OT1/ptm/bc/n/10 Powerset[][][][]C[][][][]Polyhedron[][][]with[][][]compl exity Overfull \hbox (19.14638pt too wide) in paragraph at lines 5512--5513 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][]space[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 5516--5518 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.77632pt too wide) in paragraph at lines 5518--5519 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 5519--5521 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (9.44652pt too wide) in paragraph at lines 5521--5522 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 5522--5524 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.44652pt too wide) in paragraph at lines 5524--5525 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 5525--5527 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5527--5528 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5528--5530 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5530--5531 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5531--5533 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5533--5534 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5534--5536 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5536--5537 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5537--5539 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5539--5540 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5540--5542 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5542--5543 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (12.72676pt too wide) in paragraph at lines 5542--5543 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedro n[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5543--5545 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5545--5546 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5546--5548 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (8.23476pt too wide) in paragraph at lines 5548--5549 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator Overfull \hbox (17.20634pt too wide) in paragraph at lines 5549--5551 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.21626pt too wide) in paragraph at lines 5551--5552 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 5552--5554 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (5.22661pt too wide) in paragraph at lines 5556--5557 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (4.66655pt too wide) in paragraph at lines 5560--5561 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.23685pt too wide) in paragraph at lines 5564--5565 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][] Overfull \hbox (11.07678pt too wide) in paragraph at lines 5578--5579 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (9.39673pt too wide) in paragraph at lines 5580--5581 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (9.39673pt too wide) in paragraph at lines 5582--5583 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (8.83667pt too wide) in paragraph at lines 5584--5585 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (8.83667pt too wide) in paragraph at lines 5586--5587 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (33.88464pt too wide) in paragraph at lines 5590--5591 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity Overfull \hbox (0.54509pt too wide) in paragraph at lines 5594--5595 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Congruence[][][][]System Overfull \hbox (14.66695pt too wide) in paragraph at lines 5600--5601 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[] [317] Overfull \hbox (14.66695pt too wide) in paragraph at lines 5603--5604 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (14.10689pt too wide) in paragraph at lines 5606--5607 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (14.10689pt too wide) in paragraph at lines 5609--5610 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (7.73698pt too wide) in paragraph at lines 5614--5615 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.19542pt too wide) in paragraph at lines 5620--5621 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (22.17693pt too wide) in paragraph at lines 5622--5623 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5624--5625 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5627--5628 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5630--5631 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5633--5634 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.51674pt too wide) in paragraph at lines 5638--5639 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box[] Overfull \hbox (12.44698pt too wide) in paragraph at lines 5640--5641 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (12.44698pt too wide) in paragraph at lines 5643--5644 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (11.88692pt too wide) in paragraph at lines 5646--5647 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.88692pt too wide) in paragraph at lines 5649--5650 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (5.51701pt too wide) in paragraph at lines 5654--5655 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.97545pt too wide) in paragraph at lines 5660--5661 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (19.95695pt too wide) in paragraph at lines 5662--5663 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5664--5665 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5667--5668 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5670--5671 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5673--5674 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (3.29677pt too wide) in paragraph at lines 5678--5679 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box[] [318] Overfull \hbox (7.89441pt too wide) in paragraph at lines 5716--5717 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class Overfull \hbox (16.87592pt too wide) in paragraph at lines 5719--5720 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.33435pt too wide) in paragraph at lines 5722--5723 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class Overfull \hbox (16.31586pt too wide) in paragraph at lines 5725--5726 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.67444pt too wide) in paragraph at lines 5756--5757 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class Overfull \hbox (14.65594pt too wide) in paragraph at lines 5759--5760 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.11438pt too wide) in paragraph at lines 5762--5763 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class Overfull \hbox (14.09589pt too wide) in paragraph at lines 5765--5766 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] [319]) (./refman.aux (./group__Init.aux) (./group__Version.aux) (./group__Error.aux) (./group__Timeout.aux) (./group__Datatypes.aux)) LaTeX Font Warning: Some font shapes were not available, defaults substituted. ) (see the transcript file for additional information){/usr/share/texlive/texmf-d ist/fonts/enc/dvips/base/8r.enc} Output written on refman.pdf (325 pages, 2050269 bytes). Transcript written on refman.log. makeindex refman.idx This is makeindex, version 2.15 [TeX Live 2019/dev] (kpathsea + Thai support). Scanning input file refman.idx......done (2513 entries accepted, 66 rejected). Sorting entries........................done (31073 comparisons). Generating output file refman.ind......done (5791 lines written, 0 warnings). Output written in refman.ind. Transcript written in refman.ilg. pdflatex refman This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode (./refman.tex LaTeX2e <2018-12-01> (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty (/usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty)) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def))) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty) (/usr/share/texlive/texmf-dist/tex/latex/tocloft/tocloft.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/backref.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty) (./doxygen.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty) (/usr/share/texlive/texmf-dist/tex/latex/tabu/tabu.sty (/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty)) (/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty) (/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty)) (/build/ppl-1.2/doc/ppl.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty)) Writing index file refman.idx (./refman.aux (./group__Init.aux) (./group__Version.aux) (./group__Error.aux) (./group__Timeout.aux) (./group__Datatypes.aux)) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./refman.out) (./refman.out) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/Ustmry.fd) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd) [1{/var/lib/texmf/fo nts/map/pdftex/updmap/pdftex.map} ] [2] (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd) [3 ] [4] (./refman.toc [1 ]) [2] (./index.tex Underfull \hbox (badness 10000) detected at line 9 [][][] pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored \relax l.25 [1]) (./GPL.texpdfTeX warning (ext4): destination with the same identifie r (name{page.2}) has been already used, duplicate ignored \relax l.37 ` `Copyright'' also means copyright-\/like laws that apply to other kind... [2]pdfTeX warning (ext4): destination with the same identifier (name{page.3}) h as been already used, duplicate ignored \relax l.68 [3]pdfTeX warning (ext4): destination with the same identifier (name{page .4}) has been already used, duplicate ignored \relax l.104 [4] [5] [6] [7] [8] [9]) Overfull \hbox (10.35326pt too wide) in paragraph at lines 291--187 \OT1/ptm/m/n/10 stead of this Li-cense. But first, please read [][]\OT1/pcr/m/n /10 http[]://www.[]gnu.[]org/philosophy/why-not-lgpl.[] (./GFDL.tex [10] [11] [12] [13] Overfull \hbox (7.49895pt too wide) in paragraph at lines 97--98 \OT1/ptm/m/n/10 ments, form-ing one sec-tion En-ti-tled "[]History"; like-wise com-bine any sec-tions En-ti-tled "[]Acknowledgements", Underfull \vbox (badness 1377) has occurred while \output is active [14]) (./modules.tex) (./annotated.tex [15] [16] Overfull \hbox (20.64815pt too wide) in paragraph at lines 31--31 \OT1/ptm/b/n/10 Types and func-tions for it-er-at-ing on the dis-juncts of a [ ][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] ) (./group__PPL__C__interface.tex) [17] (./group__Init.tex Underfull \hbox (badness 10000) detected at line 35 [][][] Underfull \hbox (badness 10000) detected at line 48 [][][] [18]) [19] (./group__Version.tex [20]) [21] (./group__Error.tex (/usr/share/texlive/texmf-dist/tex/latex/psnfss/omsptm.fd) Overfull \hbox (1.62299pt too wide) in paragraph at lines 6--20 [][]\OT1/ptm/m/n/10 P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]O[]U[]T[][][][]O[]F[][] [][]M[]E[]M[]O[]RY[][], [][]P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]V[]A[]L[] I[]D[][][][]A[]R[]G[]U[]M[]E[]NT[][], [][]P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]D []O[]M[] Overfull \hbox (1.35289pt too wide) in paragraph at lines 6--20 [][]\OT1/ptm/m/n/10 P[]P[]L[][][][]A[]R[]I[]T[]H[]M[]E[]T[]I[]C[][][][]O[]V[]E[ ]R[]F[]L[]OW[][], [][]P[]P[]L[][][][]S[]T[]D[]I[]O[][][][]E[]R[]R[]OR[][], [][] P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]T[]E[]R[]N[]A[]L[][][][]E[]R[]R[]OR[] [], [][]P[] [22]) [23] (./group__Timeout.tex Underfull \hbox (badness 10000) detected at line 47 [][][] Overfull \hbox (4.67143pt too wide) in paragraph at lines 48--49 []\OT1/pcr/m/n/10 P[]P[]L[][][][]E[]R[]R[]O[]R[][][][]I[]N[]V[]A[]L[]I[]D[][][] []A[]R[]G[]U[]M[]E[]NT \OT1/ptm/bc/n/10 if \OT1/pcr/m/n/10 unscaled[][][]weight \OT1/ptm/bc/n/10 is zero or if the com-puted weight thresh- [24] Underfull \hbox (badness 10000) detected at line 59 [][][] Underfull \hbox (badness 10000) detected at line 62 [][][] ) [25] (./group__Datatypes.tex Overfull \hbox (3.74069pt too wide) in paragraph at lines 43--45 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraint[][][][]System[] [][]const[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/ bc/n/10 ppl[][][]const[][][][]Constraint[][][][]System[][][]const[] Overfull \hbox (0.36111pt too wide) in paragraph at lines 61--63 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/b c/n/10 ppl[][][]const[][][][]Generator[][][][]System[][][]const[] [26] Overfull \hbox (1.80132pt too wide) in paragraph at lines 76--78 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/1 0 ppl[][][][]Congruence[][][][]System[][][]const[][][]iterator[] Overfull \hbox (16.4409pt too wide) in paragraph at lines 139--141 [][] \OT1/ptm/bc/n/10 type-def struct ppl[][][][]Artificial[][][][]Parameter[][ ][][]Sequence[][][]tag const $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][ ][]const[][][][]Artificial[][][][]Parameter[][][][]Sequence[] [27] Overfull \hbox (27.11154pt too wide) in paragraph at lines 190--192 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[][][][]Grid[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][ ]\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhed ron[] Overfull \hbox (14.85136pt too wide) in paragraph at lines 193--195 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[][][][]Grid[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^ C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Constraints[][][][]Product[] [28] Overfull \hbox (18.00154pt too wide) in paragraph at lines 202--204 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][]\OT1/pt m/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[ ] Overfull \hbox (21.60114pt too wide) in paragraph at lines 208--210 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]tag[][] $\OMS/cmsy/m/n/10 ^^C$ [][ ]\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[] Overfull \hbox (9.34096pt too wide) in paragraph at lines 211--213 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]tag[][] const $\OMS/cmsy/m/n/10 ^^ C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.77115pt too wide) in paragraph at lines 226--228 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][]tag[][] $\OMS/cms y/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (8.4811pt too wide) in paragraph at lines 229--231 [][] \OT1/ptm/bc/n/10 type-def struct [][]ppl[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][]tag[][] const $\O MS/cmsy/m/n/10 ^^C$ [][]\OT1/ptm/bc/n/10 ppl[][][]const[][][][]Pointset[] [29] [30] Underfull \hbox (badness 10000) detected at line 333 [][][] Overfull \hbox (27.05392pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]io[][][]variable[][][]output[][][]function[][][]typ e[] \OT1/pcr/m/n/8 typedef const char$\OMS/cmsy/m/n/8 ^^C$ \OT1/pcr/m/n/8 ppl[] [][]io[][][]variable[][][]output[][][]function[][][]type([][]ppl[] [31] Overfull \hbox (19.9918pt too wide) in paragraph at lines 472--473 []\OT1/ptm/b/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][][ ][]Representation[] \OT1/pcr/m/n/8 enum [][]ppl[][][]enum[][][][]Bounded[][][][ ]Integer[][][][]Type[][][][]Representation[][] Underfull \hbox (badness 10000) detected at line 516 [][][] [32] Underfull \hbox (badness 10000) detected at line 541 [][][] ) [33] (./interfaceppl__Artificial__Parameter__Sequence__const__iterator__tag.tex Overfull \hbox (7.82706pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Artificial[][][][]Paramete r[][][][]Sequence[][][]const[][][]iterator[][][]from[][][][]Artificial[][][][]P arameter[][][][]Sequence[] Overfull \hbox (23.68665pt too wide) in paragraph at lines 22--24 [][]\OT1/ptm/bc/n/10 const[][][]iterator[][] ([][]ppl[][][][]Artificial[][][][] Parameter[][][][]Sequence[][][]const[][][]iterator[][][]t[][] dst, [][]ppl[][][ ]const[][][][]Artificial[][][][]Parameter[] Overfull \hbox (26.38684pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Artificial[][][][]Paramete r[][][][]Sequence[][][]const[][][]iterator[][] ([][]ppl[][][]const[][][][]Artif icial[][][][]Parameter[][][][]Sequence[] Overfull \hbox (7.21704pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Seq uence[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]const[][][][] Artificial[][][][]Parameter[] Overfull \hbox (17.78696pt too wide) in paragraph at lines 35--37 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Seq uence[][][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Artificial[][ ][][]Parameter[][][][]Sequence[] ) (./interfaceppl__Artificial__Parameter__tag.tex Overfull \hbox (4.9309pt too wide) in paragraph at lines 15--17 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][]get[] [][][]Linear[][][][]Expression[][] ([][]ppl[][][]const[][][][]Artificial[][][][ ]Parameter[][][]t[][] ap, [][]ppl[][][][]Linear[] [34] Overfull \hbox (0.85934pt too wide) in paragraph at lines 18--20 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Artificial[][][][]Parameter[][][]coeff icient[][] ([][]ppl[][][]const[][][][]Artificial[][][][]Parameter[][][]t[][] ap , [][]ppl[][][]dimension[][][]type[][] var, ) (./interfaceppl__BD__Shape__mpq__class__tag.tex Overfull \hbox (5.86221pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (3.64197pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (10.56195pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] [35] Overfull \hbox (11.12201pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.40195pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.93196pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]B[]D[ ][][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n /10 pph, [][]ppl[] Overfull \hbox (3.1817pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.77185pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (12.33191pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (17.60164pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (18.1617pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (6.14209pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, [][]ppl[] Overfull \hbox (9.18156pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []space[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (9.49162pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []affine[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (0.2818pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []relation[][][]with[][][][]Congruence[][] ([][]ppl[][][]const[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (25.56108pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (1.9613pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]minimized[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (8.61162pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] [36] Overfull \hbox (0.25233pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounds[][][]from[][][]above[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (0.86206pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounds[][][]from[][][]below[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (6.12149pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 97--99 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (4.46144pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 99--101 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (14.71156pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]const [][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (14.12123pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []is[][][]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ( [][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.93167pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []equals[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]const[] [][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (12.4822pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]congruence[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (3.07146pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (16.37209pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (28.89116pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []refine[][][]with[][][]constraint[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (12.2214pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []intersection[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.84169pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []difference[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]cl ass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.7616pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []concatenate[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]c lass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] [37] Overfull \hbox (11.9314pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []time[][][]elapse[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.66202pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (5.592pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounded[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (18.3619pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 155--157 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (17.2415pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (30.0114pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (3.06163pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 161--163 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (15.83153pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 163--165 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (9.43188pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (10.54173pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (21.65166pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (5.53194pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (16.80182pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []expand[][][]space[][][]dimension[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pq[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.07158pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mp q[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (9.18156pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []map[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (3.88039pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] ph, int com- Overfull \hbox (1.2322pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][][]2[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] [38] Overfull \hbox (3.17146pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]t[][] ps, size[] Overfull \hbox (4.35188pt too wide) in paragraph at lines 189--191 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] [][]H79[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (8.24164pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (2.78186pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []widening[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.19151pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][ ] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (0.70154pt too wide) in paragraph at lines 207--209 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]H79[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (6.82141pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (9.79172pt too wide) in paragraph at lines 217--219 \OT1/ptm/bc/n/10 Shape[][][]mpq[][][]class[][][]t[][] y, [][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/1 0 p[][][]inters, [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[] Overfull \hbox (8.77168pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (15.422pt too wide) in paragraph at lines 223--225 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (7.0819pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][] class[][][]recycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (11.38148pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][ ][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] dst, [][]ppl[] Overfull \hbox (15.68144pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][][]Constraint[] [39] Overfull \hbox (28.98207pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] []add[][][]recycled[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpq[][][]class[][][]t[][] ph, [][]ppl[][][][]Congruence[] Overfull \hbox (8.45016pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (6.2302pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (7.89984pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (5.67987pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]t[][] pset, Overfull \hbox (9.94308pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[ ]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][]space[] Overfull \hbox (21.70216pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]C[][][][]Polyhedron [40] Overfull \hbox (3.84358pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]N[]N[]C[] Overfull \hbox (10.45357pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Rational[] Overfull \hbox (1.37308pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (2.49307pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (9.29279pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.41278pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (22.7929pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [41] Overfull \hbox (10.35281pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (5.54291pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[] Overfull \hbox (19.8428pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.88231pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (9.0023pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (1.40201pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (2.522pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (43.37317pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Constraint[] [42] Overfull \hbox (0.9232pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][] Overfull \hbox (36.89323pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]from[][][][]Generator[] Overfull \hbox (38.1416pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]relation[][][]with[][][][]Constraint Overfull \hbox (31.66167pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]relation[][][]with[][][][]Generator Overfull \hbox (1.79314pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]relation[][][]with[] [43] Overfull \hbox (3.0828pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]get[][][]minimized[] Overfull \hbox (8.63286pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][]get[][][]minimized[] Overfull \hbox (0.2731pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]contains[][][]integer[] Overfull \hbox (2.60301pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]is[][][]topologically[][][] Overfull \hbox (30.05296pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topolo gical[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]topological[][][]closure[] [44] Overfull \hbox (7.81178pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maximi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpq[][][]class[][][]maximize[][][]with[][][]point ( Overfull \hbox (6.15161pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]minimi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpq[][][]class[][][]minimize[][][]with[][][]point ( Overfull \hbox (1.11285pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contains[][][] Overfull \hbox (31.82233pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/ 8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strictly[] [45] Overfull \hbox (0.89246pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] Overfull \hbox (19.66292pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][ ]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals[][][][]B[]D[][][][]Shape[] Overfull \hbox (16.8717pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]refine[][][]with[][][]constraint Overfull \hbox (22.42177pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]refine[][][]with[][][]congruence [46] Overfull \hbox (25.5616pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]refine[][][]with[][][]constraints Overfull \hbox (31.11166pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refine [][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]refine[][][]with[][][]congruences Overfull \hbox (2.93295pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]upper[][][]bound[] Overfull \hbox (20.95264pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simpli fy[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[] [][][]Shape[][][]mpq[][][]class[][][]simplify[][][]using[] [47] Overfull \hbox (8.76266pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpq[][][]class[][][]unconstrain[] Overfull \hbox (12.65256pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][] Shape[][][]mpq[][][]class[][][]unconstrain[] Overfull \hbox (7.47191pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpq[][][]class[][][]bounded[][][]affine[][][]image Overfull \hbox (3.83328pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]bounded[][][]affine[] [48] Overfull \hbox (20.41315pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]generalized[][][]affine[] Overfull \hbox (2.99301pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (22.05263pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (36.31252pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (17.78265pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][] B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][][]space[] Overfull \hbox (19.81268pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][][]space[] Overfull \hbox (37.58159pt too wide) in paragraph at lines 739--740 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpq[][][]class[][][]remove[][][]space[][][]dimensions [49] Overfull \hbox (0.1827pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[ ][][][]Shape[][][]mpq[][][]class[][][]remove[] Overfull \hbox (28.74158pt too wide) in paragraph at lines 751--752 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expand [][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]expand[][][]space[][][]dimension Overfull \hbox (13.1315pt too wide) in paragraph at lines 757--758 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold[] [][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][]fold[][][]space[][][]dimensions Overfull \hbox (10.8016pt too wide) in paragraph at lines 763--764 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]map[][ ][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpq[][][]class[][][]map[][][]space[][][]dimensions Overfull \hbox (0.36298pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]B[ ]D[][][][]Shape[][][]mpq[][][]class[][][]drop[][][]some[] Overfull \hbox (8.96298pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[][][]some[] Overfull \hbox (12.23328pt too wide) in paragraph at lines 781--782 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][]external[][][]memory[] [50] Overfull \hbox (12.81189pt too wide) in paragraph at lines 787--788 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]total[ ][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpq[][][]class[][][]total[][][]memory[][][]in[][][]bytes Overfull \hbox (1.7624pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[] Overfull \hbox (29.86266pt too wide) in paragraph at lines 799--800 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[][][]widening[] Overfull \hbox (13.27301pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (8.39174pt too wide) in paragraph at lines 811--812 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpq[][][]class[][][][]H79[][][]widening[][][]assign ( Overfull \hbox (22.88277pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[][][]widening[][][]assign[] Overfull \hbox (1.84178pt too wide) in paragraph at lines 829--830 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [51] Overfull \hbox (23.22203pt too wide) in paragraph at lines 835--836 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.00206pt too wide) in paragraph at lines 841--842 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/p cr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (28.7124pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (5.93262pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B []D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (12.59267pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpq[][][]class[][][]limited[] Overfull \hbox (3.96262pt too wide) in paragraph at lines 865--866 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[] Overfull \hbox (29.87323pt too wide) in paragraph at lines 871--872 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpq[][][]class[][][][]C[]C76[][][]extrapolation[] [52] Overfull \hbox (1.05347pt too wide) in paragraph at lines 877--878 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpq[][][]class[][][][]C[]C76[][][]narrowing[][][] Overfull \hbox (15.77289pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (21.32295pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (14.09296pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[] [][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]recycle[] Overfull \hbox (3.71283pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [53] Overfull \hbox (38.69156pt too wide) in paragraph at lines 919--920 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]add[][][]recycled[][][]constraints Overfull \hbox (0.4231pt too wide) in paragraph at lines 925--926 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]add[][][]recycled[][][] Overfull \hbox (6.13176pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class ( Overfull \hbox (4.46184pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class ( Overfull \hbox (8.48293pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (6.813pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (12.73273pt too wide) in paragraph at lines 955--956 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (11.0628pt too wide) in paragraph at lines 961--962 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (14.11327pt too wide) in paragraph at lines 967--968 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] [54] Overfull \hbox (12.44334pt too wide) in paragraph at lines 973--974 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (17.08293pt too wide) in paragraph at lines 979--980 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (15.41301pt too wide) in paragraph at lines 985--986 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (21.33273pt too wide) in paragraph at lines 991--992 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (19.66281pt too wide) in paragraph at lines 997--998 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] [55]) (./interfaceppl__BD__Shape__mpz__class__tag.tex Overfull \hbox (4.7421pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (2.52185pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [] []ppl[][][]const[] Overfull \hbox (9.44183pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (10.00189pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/p tm/bc/n/10 pph, [][]ppl[] Overfull \hbox (12.8701pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\ OT1/ptm/bc/n/10 pph, Overfull \hbox (4.28183pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.81184pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]B[]D[ ][][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n /10 pph, [][]ppl[] Overfull \hbox (2.06158pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]p pl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.65173pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.21179pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]com plexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [56] Overfull \hbox (17.04158pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (17.60164pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.02197pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, [][]ppl[] Overfull \hbox (8.06145pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []space[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.3715pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []affine[][][]dimension[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (24.44096pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (37.7416pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (0.84119pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]minimized[][][]constraints[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (7.4915pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (5.00137pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 97--99 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] Overfull \hbox (3.34132pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (14.09169pt too wide) in paragraph at lines 99--101 [][][]\OT1/ptm/bc/n/10 Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]C oefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][] []d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 poptimum, [][]ppl[][][][]Genera tor[] [57] Overfull \hbox (13.03139pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]const [][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (13.83092pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []strictly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][] ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.44106pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []is[][][]disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ( [][]ppl[][][]const[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.2515pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []equals[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]const[] [][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (11.36208pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]congruence[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (1.95134pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (15.25197pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (27.77104pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []refine[][][]with[][][]constraint[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (11.10129pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []intersection[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.72157pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []difference[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]cl ass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.64148pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []concatenate[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]c lass[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.81128pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []time[][][]elapse[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [][]class[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] Overfull \hbox (4.5419pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (10.4113pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]B[]D[][][][] Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (4.47188pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []bounded[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] [58] Overfull \hbox (17.24178pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.27184pt too wide) in paragraph at lines 155--157 [][]\OT1/ptm/bc/n/10 type[][] var, [][]ppl[][][]const[][][][]Linear[][][][]Expr ession[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t [][] ub, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (16.12138pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]image[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (28.89128pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (1.94151pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 161--163 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (14.71141pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.92157pt too wide) in paragraph at lines 163--165 [][]\OT1/ptm/bc/n/10 const[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (8.31177pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (9.42162pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (20.53154pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][] mpz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (4.41182pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.6817pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []expand[][][]space[][][]dimension[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]m pz[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (6.95146pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mp z[][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.06145pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []map[][][]space[][][]dimensions[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz [][][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (2.76027pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] ph, int com- Overfull \hbox (0.11208pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []drop[][][]some[][][]non[][][]integer[][][]points[][][]2[][] ([][]ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (2.05135pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]t[][] ps, size[] Overfull \hbox (3.23177pt too wide) in paragraph at lines 189--191 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] [][]H79[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (7.12152pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (1.66174pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []widening[][][]assign[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] x, [][]ppl[][][]const[][][][]B[]D[][][][]Shape[] [59] Overfull \hbox (3.0714pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][ ] ([][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (5.7013pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]B[]D [][][][]Shape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (8.6716pt too wide) in paragraph at lines 217--219 \OT1/ptm/bc/n/10 Shape[][][]mpz[][][]class[][][]t[][] y, [][]ppl[][][][]B[]D[][ ][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/1 0 p[][][]inters, [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[] Overfull \hbox (7.65157pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (14.30188pt too wide) in paragraph at lines 223--225 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.96178pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][] class[][][]recycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]B[]D[][][ ][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (9.70131pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][ ][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] dst, [][]ppl[] Overfull \hbox (14.56133pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][][]Constraint[] Overfull \hbox (27.86195pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] []add[][][]recycled[][][]congruences[][] ([][]ppl[][][][]B[]D[][][][]Shape[][][ ]mpz[][][]class[][][]t[][] ph, [][]ppl[][][][]Congruence[] Overfull \hbox (7.33005pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (5.11008pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]cons t[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (6.77972pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, Overfull \hbox (4.55975pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][]con st[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]t[][] pset, [60] Overfull \hbox (8.82309pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[ ]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][]space[] Overfull \hbox (20.58217pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (2.72359pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]N[]N[]C[] Overfull \hbox (9.33357pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Rational[] [61] Overfull \hbox (0.25308pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (1.37308pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl [][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (8.17279pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.29279pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (21.6729pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.23282pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (4.42291pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[] Overfull \hbox (18.72281pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] [62] Overfull \hbox (6.76231pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.88231pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity( )[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]B[]D[][][][]Shape[] Overfull \hbox (0.28201pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (1.40201pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (42.25317pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Constraint[] Overfull \hbox (47.80324pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Congruence[] Overfull \hbox (35.77324pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]from[][][][]Generator[] [63] Overfull \hbox (37.0216pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]relation[][][]with[][][][]Constraint Overfull \hbox (30.54167pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]relation[][][]with[][][][]Generator Overfull \hbox (0.67314pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]relation[][][]with[] Overfull \hbox (1.9628pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]get[][][]minimized[] Overfull \hbox (7.51286pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][]get[][][]minimized[] [64] Overfull \hbox (2.03311pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]contains[][][]integer[][][] Overfull \hbox (1.48302pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]is[][][]topologically[][][] Overfull \hbox (28.93297pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topolo gical[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]topological[][][]closure[] [65] Overfull \hbox (6.69179pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maximi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpz[][][]class[][][]maximize[][][]with[][][]point ( Overfull \hbox (5.03162pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]minimi ze[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][] []mpz[][][]class[][][]minimize[][][]with[][][]point ( Overfull \hbox (3.67287pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contains[][][][]B[] Overfull \hbox (29.58234pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/ 8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strictly[] Overfull \hbox (1.53247pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][][] Overfull \hbox (17.42293pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][ ]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals[][][][]B[]D[][][][]Shape[] [66] Overfull \hbox (15.75171pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]refine[][][]with[][][]constraint Overfull \hbox (21.30177pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]refine[][][]with[][][]congruence Overfull \hbox (24.4416pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]refine[][][]with[][][]constraints Overfull \hbox (29.99167pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refine [][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]refine[][][]with[][][]congruences [67] Overfull \hbox (1.81296pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]upper[][][]bound[] Overfull \hbox (19.83264pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simpli fy[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[] [][][]Shape[][][]mpz[][][]class[][][]simplify[][][]using[] Overfull \hbox (7.64267pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpz[][][]class[][][]unconstrain[] [68] Overfull \hbox (11.53256pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][] Shape[][][]mpz[][][]class[][][]unconstrain[] Overfull \hbox (6.35191pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounde d[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpz[][][]class[][][]bounded[][][]affine[][][]image Overfull \hbox (2.71329pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]bounde d[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]bounded[][][]affine[] Overfull \hbox (19.29315pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]generalized[][][]affine[] Overfull \hbox (1.87302pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]S hape[][][]mpz[][][]class[][][]generalized[] [69] Overfull \hbox (20.93263pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (35.19252pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (16.66266pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][] B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][][]space[] Overfull \hbox (18.69269pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][][]space[] Overfull \hbox (36.4616pt too wide) in paragraph at lines 739--740 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape [][][]mpz[][][]class[][][]remove[][][]space[][][]dimensions Overfull \hbox (1.9427pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[ ][][][]Shape[][][]mpz[][][]class[][][]remove[][][] Overfull \hbox (27.62158pt too wide) in paragraph at lines 751--752 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expand [][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]expand[][][]space[][][]dimension [70] Overfull \hbox (12.0115pt too wide) in paragraph at lines 757--758 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold[] [][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][]fold[][][]space[][][]dimensions Overfull \hbox (9.68161pt too wide) in paragraph at lines 763--764 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]map[][ ][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][ ][]mpz[][][]class[][][]map[][][]space[][][]dimensions Overfull \hbox (2.12299pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]B[ ]D[][][][]Shape[][][]mpz[][][]class[][][]drop[][][]some[][][] Overfull \hbox (7.84299pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[][][]some[] Overfull \hbox (11.11328pt too wide) in paragraph at lines 781--782 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][]external[][][]memory[] Overfull \hbox (11.6919pt too wide) in paragraph at lines 787--788 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]total[ ][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sh ape[][][]mpz[][][]class[][][]total[][][]memory[][][]in[][][]bytes Overfull \hbox (0.64241pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[] [71] Overfull \hbox (28.74266pt too wide) in paragraph at lines 799--800 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[][][]widening[] Overfull \hbox (12.15302pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (7.27174pt too wide) in paragraph at lines 811--812 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] [][]mpz[][][]class[][][][]H79[][][]widening[][][]assign ( Overfull \hbox (21.76277pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[][][]widening[][][]assign[] Overfull \hbox (0.72179pt too wide) in paragraph at lines 829--830 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[] Overfull \hbox (22.10204pt too wide) in paragraph at lines 835--836 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/ m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.88206pt too wide) in paragraph at lines 841--842 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/p cr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[] [72] Overfull \hbox (27.5924pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (4.81262pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B []D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (11.47267pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []B[]D[][][][]Shape[][][]mpz[][][]class[][][]limited[] Overfull \hbox (2.84262pt too wide) in paragraph at lines 865--866 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[] Overfull \hbox (28.75323pt too wide) in paragraph at lines 871--872 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][ ]Shape[][][]mpz[][][]class[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (19.75198pt too wide) in paragraph at lines 877--878 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Sha pe[][][]mpz[][][]class[][][][]C[]C76[][][]narrowing[][][]assign [73] Overfull \hbox (14.6529pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (20.20296pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (12.97296pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[] [][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]recycle[] Overfull \hbox (1.47284pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (37.57156pt too wide) in paragraph at lines 919--920 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]add[][][]recycled[][][]constraints Overfull \hbox (43.12163pt too wide) in paragraph at lines 925--926 []\OT1/ptm/b/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]add[][][]recycled[][][]congruences Overfull \hbox (5.01176pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class ( [74] Overfull \hbox (3.34184pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][][]te st[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class ( Overfull \hbox (7.36293pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (5.69301pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][] []one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (11.61273pt too wide) in paragraph at lines 955--956 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (9.94281pt too wide) in paragraph at lines 961--962 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][ ][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (12.99327pt too wide) in paragraph at lines 967--968 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.32335pt too wide) in paragraph at lines 973--974 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][][] []Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termination[ ][][]test[][][][]P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.96294pt too wide) in paragraph at lines 979--980 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (14.29301pt too wide) in paragraph at lines 985--986 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[][][]function[] [75] Overfull \hbox (20.21274pt too wide) in paragraph at lines 991--992 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (18.54282pt too wide) in paragraph at lines 997--998 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine[][][]ranking[][][]functions[] ) (./interfaceppl__Coefficient__tag.tex [76]) (./interfaceppl__Congruence__System__const__iterator__tag.tex [77] Overfull \hbox (1.72762pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][][]from[][][][]Congruence[][][][]System[][][]const[][ ][]iterator[][] ([][]ppl[] Overfull \hbox (2.27753pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Congruence[][][][]System[] [][]const[][][]iterator[][] ([][]ppl[][][]const[][][][]Congruence[][][][]System [][][]const[][][]iterator[] Overfull \hbox (17.54732pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]const[][ ][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Congruence[][][ ][]System[][][]const[][][]iterator[] ) (./interfaceppl__Congruence__System__tag.tex [78] Overfull \hbox (7.63844pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Congruence[][][][]System[][][ ]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Congruence[][][][]Sys tem[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, [][]ppl[] Overfull \hbox (9.56808pt too wide) in paragraph at lines 28--30 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Congruence[][][][]System[] [][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Congruence[][][][] System[][][]t[][] dst, [][]ppl[] Overfull \hbox (10.67792pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]space[][ ][]dimension[][] ([][]ppl[][][]const[][][][]Congruence[][][][]System[][][]t[][] cs, [][]ppl[][][]dimension[] Overfull \hbox (4.96837pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]begin[][ ] ([][]ppl[][][]const[][][][]Congruence[][][][]System[][][]t[][] cs, [][]ppl[][ ][][]Congruence[][][][]System[] Overfull \hbox (23.98816pt too wide) in paragraph at lines 60--62 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][][]System[][][]insert[] [][][]Congruence[][] ([][]ppl[][][][]Congruence[][][][]System[][][]t[][] cs, [] []ppl[][][]const[][][][]Congruence[] [79]) (./interfaceppl__Congruence__tag.tex Overfull \hbox (15.0983pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Congruence[][][]coefficient[][] ([][]p pl[][][]const[][][][]Congruence[][][]t[][] c, [][]ppl[][][]dimension[][][]type[ ][] var, [][]ppl[][][][]Coefficient[] [80]) (./interfaceppl__Constraint__System__const__iterator__tag.tex Overfull \hbox (25.10667pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][][][]System[][][ ]const[][][]iterator[][][]from[][][][]Constraint[][][][]System[][][]const[][][] iterator[][] ([][]ppl[][][][]Constraint[] Overfull \hbox (33.69638pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Constraint[][][][]System[] [][]const[][][]iterator[][][]from[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][] ([][]ppl[][][][]Constraint[] Overfull \hbox (11.7268pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][][]dereference[][] ([][]ppl[][][]const[][][][]Constraint[][][][]S ystem[][][]const[][][]iterator[] Overfull \hbox (4.24669pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]const[][ ][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Constraint[][][ ][]System[][][]const[][][]iterator[] [81]) (./interfaceppl__Constraint__System__tag.tex Overfull \hbox (24.61707pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][][][]System[][][ ]from[][][][]Constraint[][] ([][]ppl[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, [][]ppl[][][]const[][][][]Constrai nt[] Overfull \hbox (2.09717pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][][]System[][][]end[][] ([][]ppl[][][]const[][][][]Constraint[][][][]System[][][]t[][] cs, [][]ppl[][][ ][]Constraint[][][][]System[][][]const[] [82]) (./interfaceppl__Constraint__tag.tex Overfull \hbox (1.5281pt too wide) in paragraph at lines 16--18 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraint[][] ([][]ppl[][][] []Constraint[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pc, [][]ppl[][][ ]const[][][][]Linear[][][][]Expression[][][]t[][] le, enum [][]ppl[][][]enum[] [83] Overfull \hbox (1.79767pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraint[][][]coefficient[][] ([][]p pl[][][]const[][][][]Constraint[][][]t[][] c, [][]ppl[][][]dimension[][][]type[ ][] var, [][]ppl[][][][]Coefficient[] ) (./interfaceppl__Constraints__Product__C__Polyhedron__Grid__tag.tex Overfull \hbox (14.4614pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[][][]const[][][][]Constraints [][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (16.42136pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension[][] ([][] ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (5.32178pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][] ([][ ]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (19.76172pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][ ] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (27.2516pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][] ([][]ppl[][][][]Con straints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.10153pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][] ([][ ]ppl[][][][]Constraints[][][][]Product[] [84] Overfull \hbox (0.58157pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (27.2312pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (27.79126pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (0.26022pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid[][] Overfull \hbox (5.4219pt too wide) in paragraph at lines 35--37 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.44136pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]wit h[][][]complexity[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (5.72202pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][ ][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (2.39153pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexi ty[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (38.22112pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]wit h[][][]complexity[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (20.69154pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[] [][]class[][][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (21.2516pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] [][]class[][][]with[][][]complexity[][] ([][]ppl[] Overfull \hbox (20.90985pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][][]with[][][]complexity[][] Overfull \hbox (2.55026pt too wide) in paragraph at lines 49--51 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t[][] ph, int Overfull \hbox (21.46991pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][][]with[][][]complexity[][] Overfull \hbox (3.11032pt too wide) in paragraph at lines 51--53 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][] ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t[][] ph, int Overfull \hbox (9.24173pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid[] Overfull \hbox (16.57161pt too wide) in paragraph at lines 53--55 [][]\OT1/ptm/bc/n/10 with[][][]complexity[][] ([][]ppl[][][][]Constraints[][][] []Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^ ^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (23.66107pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Constraints[][][][]Product[][][] []C[][][][]Polyhedron[][][][]Grid[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (26.11101pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[ ][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (25.8513pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (34.3313pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]universe[][] ([][]ppl[][][]const[][][][]C onstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.29152pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]bounded[][] ([][]ppl[][][]const[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] [85] Overfull \hbox (22.80093pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][ ][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (31.95103pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]discrete[][] ([][]ppl[][][]const[][][][]C onstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.9711pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]topological[][][]closure[][][]assign[][] ([][]ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (9.71191pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounds[][][]from[][][]above[][] ([][]ppl[][][]con st[][][][]Constraints[][][][]Product[] Overfull \hbox (10.32164pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounds[][][]from[][][]below[][] ([][]ppl[][][]con st[][][][]Constraints[][][][]Product[] Overfull \hbox (30.02118pt too wide) in paragraph at lines 85--87 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]maximize[][] ([][]ppl[][][]const[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.78001pt too wide) in paragraph at lines 85--87 [][][]\OT1/ptm/bc/n/10 Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][] [][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 poptimum) Overfull \hbox (28.36113pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]minimize[][] ([][]ppl[][][]const[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.78001pt too wide) in paragraph at lines 87--89 [][][]\OT1/ptm/bc/n/10 Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][] [][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 poptimum) Overfull \hbox (15.58107pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]c onst[][][][]Constraints[][][][]Product[] Overfull \hbox (3.36195pt too wide) in paragraph at lines 89--91 [][][]\OT1/ptm/bc/n/10 C[][][][]Polyhedron[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coeffic ient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[] Overfull \hbox (13.92102pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]c onst[][][][]Constraints[][][][]Product[] Overfull \hbox (3.36195pt too wide) in paragraph at lines 91--93 [][][]\OT1/ptm/bc/n/10 C[][][][]Polyhedron[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coeffic ient[][][]t[][] ext[][][]n, [][]ppl[][][][]Coefficient[] Overfull \hbox (21.13144pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[][][][ ]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[] Overfull \hbox (12.5711pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[][][][] Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.18124pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][] [][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.35155pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C [][][][]Polyhedron[][][][]Grid[][] ([][]ppl[] Overfull \hbox (5.02113pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][][]OK[][] ([][]ppl[][][]const[][][][]Constraints[] [][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (23.35141pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]constraint[][] ([][]ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (30.00172pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]congruence[][] ([][]ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (27.2413pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]constraints[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (33.89162pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]congruences[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.62155pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]refine[][][]with[][][]congruences[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] [86] Overfull \hbox (34.7512pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]difference[][][]assign[][] ([][]ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.84091pt too wide) in paragraph at lines 127--129 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][] Constraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.1216pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[] [] ([][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (6.42146pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]constrains[][] ([][]ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (23.63115pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension[][] ([][]pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (16.4315pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]affine[][][]image[][] ([][]ppl[][][][]Constraints [][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.2014pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]affine[][][]preimage[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.26169pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (6.1413pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]image[][] ([][]ppl[] [][][]Constraints[][][][]Product[] Overfull \hbox (18.9112pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][] ([][]pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (2.52121pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][] rhs[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (15.2911pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[][ ][]rhs[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (8.89146pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embe d[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (10.00131pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]proj ect[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (10.55145pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]remove[][][]space[][][]dimensions[][] ([][]ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (4.99152pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (5.70161pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][] [][]Constraints[][][][]Product[] [87] Overfull \hbox (0.69177pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points[ ][][]2[][] ([][]ppl[][][][]Constraints[] Overfull \hbox (0.97137pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes[][] ([][] ppl[][][]const[][][][]Constraints[] Overfull \hbox (21.40106pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl [][][]const[][][][]Constraints[][][][]Product[] Overfull \hbox (22.70122pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens[][] ([ ][]ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (31.69138pt too wide) in paragraph at lines 177--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]widening[][][]assign[][] ([][]ppl[][][][]Constrai nts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.85143pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]print[][][][]Constraints[][][][]Pro duct[][][][]C[][][][]Polyhedron[][][][]Grid[][] ([][]ppl[][][]const[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (17.83125pt too wide) in paragraph at lines 183--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Constraints[][][][]P roduct[][][][]C[][][][]Polyhedron[][][][]Grid[][] (char $\OMS/cmsy/m/n/10 ^^C$$ ^^C$\OT1/ptm/bc/n/10 strp, [][]ppl[][][]const[][][][]Constraints[][][][]Product [] Overfull \hbox (35.29124pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (5.02145pt too wide) in paragraph at lines 187--188 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid[][][]ascii[][][]load[][] ([][]ppl[][][][]Constraints[] [][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (36.6532pt too wide) in paragraph at lines 199--200 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Constraints[][][][]Product[][][][]C[] [][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Cons traints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.3924pt too wide) in paragraph at lines 205--206 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/ 8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (7.45296pt too wide) in paragraph at lines 211--212 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (21.8929pt too wide) in paragraph at lines 217--218 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/p cr/m/n/8 int ppl[][][]new[][][][]Constraints[] [88] Overfull \hbox (4.60298pt too wide) in paragraph at lines 223--224 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Constraints[][][][]Product[] Overfull \hbox (4.50287pt too wide) in paragraph at lines 229--230 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (36.70241pt too wide) in paragraph at lines 235--236 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (37.8224pt too wide) in paragraph at lines 241--242 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (11.0221pt too wide) in paragraph at lines 247--248 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[] Overfull \hbox (12.14209pt too wide) in paragraph at lines 253--254 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[] Overfull \hbox (21.9302pt too wide) in paragraph at lines 259--260 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[ ][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (7.24219pt too wide) in paragraph at lines 265--266 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] [89] Overfull \hbox (21.68213pt too wide) in paragraph at lines 271--272 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[ ][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (40.87224pt too wide) in paragraph at lines 277--278 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Grid[][][]with[][][]complexity()[] \ OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (4.2921pt too wide) in paragraph at lines 283--284 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (8.31012pt too wide) in paragraph at lines 289--290 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]clas s[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int Overfull \hbox (9.43011pt too wide) in paragraph at lines 295--296 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]clas s[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int Overfull \hbox (15.90984pt too wide) in paragraph at lines 301--302 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class[][][]with[][][]complexity()[] Overfull \hbox (11.25407pt too wide) in paragraph at lines 301--302 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][ ]class[][][]with[][][]complexity Overfull \hbox (17.02983pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class[][][]with[][][]complexity()[] Overfull \hbox (11.25407pt too wide) in paragraph at lines 307--308 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][ ]class[][][]with[][][]complexity [90] Overfull \hbox (1.85179pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[ ][][][]Polyhedron[][][][]Grid[] Overfull \hbox (9.12473pt too wide) in paragraph at lines 313--314 [][]\OT1/ptm/b/n/10 with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]Constraints[][][][]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]fro m[][][][]Constraints[][][][]Product[] Overfull \hbox (27.82246pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Constraint[][][][]System()[] \OT1/pc r/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (33.37253pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[][][]from[][][][]Congruence[][][][]System()[] \OT1/pc r/m/n/8 int ppl[][][]new[][][][]Constraints[] Overfull \hbox (2.81264pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][] Overfull \hbox (0.49269pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]C onstraints[][][][]Product[][][][]C[] Overfull \hbox (26.7724pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (25.09247pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 in t ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (32.32246pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] [91] Overfull \hbox (16.91315pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Constrain ts[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.16286pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (27.49298pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.85233pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (23.39287pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Constr aints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.78227pt too wide) in paragraph at lines 391--392 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (5.47299pt too wide) in paragraph at lines 397--398 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (5.57285pt too wide) in paragraph at lines 403--404 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Constraints[][][][]Product[] Overfull \hbox (21.08315pt too wide) in paragraph at lines 409--410 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][ ][][]Product[][][][]C[][][][]Polyhedron[] [92] Overfull \hbox (19.42297pt too wide) in paragraph at lines 415--416 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][ ][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.84259pt too wide) in paragraph at lines 421--422 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Constraints[][][][]Product[] Overfull \hbox (9.18242pt too wide) in paragraph at lines 427--428 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Constraints[][][][]Product[] Overfull \hbox (15.74998pt too wide) in paragraph at lines 433--434 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]contains[][][][]Constraints[][][][]Product[][][][]C[][][] []Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (5.10138pt too wide) in paragraph at lines 439--440 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]strictly[][][]contains[][][][]Constraints[][][][]Product[ ][][][]C[][][][]Polyhedron[] Overfull \hbox (3.73514pt too wide) in paragraph at lines 439--440 [][][]\OT1/ptm/b/n/10 Grid()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]strictly[][][]contains[][] [][]Constraints[][][][]Product[] Overfull \hbox (2.97153pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]disjoint[][][]from[][][][]Constraints[][][][]Prod uct[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.69514pt too wide) in paragraph at lines 445--446 [][][]\OT1/ptm/b/n/10 Grid()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][ ]Product[][][][]C[][][][]Polyhedron[][][][]Grid[][][]is[][][]disjoint[][][]from [][][][]Constraints[][][][]Product[][][][]C[] [93] Overfull \hbox (7.42003pt too wide) in paragraph at lines 451--452 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]equals[][][][]Constraints[][][][]Product[][][][]C[][][][] Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int Overfull \hbox (17.62337pt too wide) in paragraph at lines 457--458 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][][]O[]K()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][ ][]Product[][][][]C[][][][]Polyhedron[][][][]Grid[] Overfull \hbox (43.0329pt too wide) in paragraph at lines 463--464 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Con straints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.58293pt too wide) in paragraph at lines 469--470 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Con straints[][][][]Product[][][][]C[][][] Overfull \hbox (46.92279pt too wide) in paragraph at lines 475--476 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.59282pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[] Overfull \hbox (15.10251pt too wide) in paragraph at lines 487--488 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] Overfull \hbox (20.65257pt too wide) in paragraph at lines 493--494 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] [94] Overfull \hbox (18.9924pt too wide) in paragraph at lines 499--500 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (24.54247pt too wide) in paragraph at lines 505--506 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (1.13237pt too wide) in paragraph at lines 511--512 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][] []Constraints[][][][]Product[] Overfull \hbox (7.54259pt too wide) in paragraph at lines 517--518 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Constraints[][][][]Product[] Overfull \hbox (1.40259pt too wide) in paragraph at lines 523--524 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][] Constraints[][][][]Product[][][][]C[] Overfull \hbox (1.6827pt too wide) in paragraph at lines 529--530 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Constraints[][][][]Product[] Overfull \hbox (2.6125pt too wide) in paragraph at lines 535--536 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Constraints[][][][]Product[][][] Overfull \hbox (6.58226pt too wide) in paragraph at lines 541--542 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/ pcr/m/n/8 int ppl[][][][]Constraints[] [95] Overfull \hbox (23.87296pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[ ][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.49197pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (14.38187pt too wide) in paragraph at lines 559--560 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.02313pt too wide) in paragraph at lines 565--566 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Const raints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (47.28302pt too wide) in paragraph at lines 571--572 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.30272pt too wide) in paragraph at lines 577--578 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (29.5626pt too wide) in paragraph at lines 583--584 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] [96] Overfull \hbox (26.94246pt too wide) in paragraph at lines 589--590 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (4.72232pt too wide) in paragraph at lines 595--596 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (23.78194pt too wide) in paragraph at lines 601--602 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (38.04182pt too wide) in paragraph at lines 607--608 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs() [] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (31.03197pt too wide) in paragraph at lines 613--614 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \O T1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.062pt too wide) in paragraph at lines 619--620 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] [97] Overfull \hbox (31.01239pt too wide) in paragraph at lines 625--626 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (25.91202pt too wide) in paragraph at lines 631--632 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pc r/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (26.97238pt too wide) in paragraph at lines 637--638 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int p pl[][][][]Constraints[][][][]Product[] Overfull \hbox (16.16231pt too wide) in paragraph at lines 643--644 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int pp l[][][][]Constraints[][][][]Product[] Overfull \hbox (18.63242pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl [][][][]Constraints[][][][]Product[] Overfull \hbox (13.61229pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1 /pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (22.2123pt too wide) in paragraph at lines 661--662 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2() [] \OT1/pcr/m/n/8 int ppl[][][][]Constraints[] Overfull \hbox (33.1626pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Constraints[][][][]Product[] [98] Overfull \hbox (17.7627pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Constraints[][][][]Product[] Overfull \hbox (7.33206pt too wide) in paragraph at lines 679--680 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m /n/8 int ppl[][][][]Constraints[] Overfull \hbox (0.60266pt too wide) in paragraph at lines 685--686 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Co nstraints[][][][]Product[][][][]C[][][] Overfull \hbox (1.51312pt too wide) in paragraph at lines 691--692 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[][] [][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]pri nt[][][][]Constraints[][][][]Product[][][][]C[] Overfull \hbox (1.96307pt too wide) in paragraph at lines 697--698 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fp rint[][][][]Constraints[][][][]Product[] Overfull \hbox (12.32301pt too wide) in paragraph at lines 703--704 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]a sprint[][][][]Constraints[][][][]Product[] Overfull \hbox (27.48296pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.81302pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Constra ints[][][][]Product[][][][]C[][][][]Polyhedron[] [99]) (./interfaceppl__Generator__System__const__iterator__tag.tex Overfull \hbox (20.03731pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] const[][][]iterator[][][]from[][][][]Generator[][][][]System[][][]const[][][]it erator[][] ([][]ppl[][][][]Generator[] Overfull \hbox (28.62701pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]from[][][][]Generator[][][][]System[][][]const[][][ ]iterator[][] ([][]ppl[][][][]Generator[] Overfull \hbox (8.34723pt too wide) in paragraph at lines 32--34 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]const[][] []iterator[][][]dereference[][] ([][]ppl[][][]const[][][][]Generator[][][][]Sys tem[][][]const[][][]iterator[] Overfull \hbox (0.86711pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]const[][] []iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Generator[][][][ ]System[][][]const[][][]iterator[] ) (./interfaceppl__Generator__System__tag.tex [100] Overfull \hbox (18.41797pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] from[][][][]Generator[][] ([][]ppl[][][][]Generator[][][][]System[][][]t[][] $\ OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (7.88792pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Generator[][][][]System[][][] from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Generator[][][][]System [][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs, [][]ppl[][][]const[] Overfull \hbox (5.21785pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Generator[][][][]System[][][]begin[][] ([][]ppl[][][]const[][][][]Generator[][][][]System[][][]t[][] gs, [][]ppl[][][ ][]Generator[][][][]System[][][]const[] [101]) (./interfaceppl__Generator__tag.tex [102]) (./interfaceppl__Grid__Generator__System__const__iterator__tag.tex Overfull \hbox (20.31735pt too wide) in paragraph at lines 19--21 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][][]Generator[][][][] System[][][]const[][][]iterator[][][]from[][][][]Grid[][][][]Generator[][][][]S ystem[][][]const[][][]iterator[][] ([][]ppl[] Overfull \hbox (2.36742pt too wide) in paragraph at lines 19--21 [][][]\OT1/ptm/bc/n/10 Grid[][][][]Generator[][][][]System[][][]const[][][]iter ator[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgit, [][]ppl[][][]const [][][][]Grid[][][][]Generator[][][][]System[][][]const[][][]iterator[] Overfull \hbox (1.91568pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Grid[][][][]Generator[][][ ][]System[][][]const[][][]iterator[][][]from[][][][]Grid[][][][]Generator[][][] []System[][][]const[][][]iterator[][] Overfull \hbox (10.18723pt too wide) in paragraph at lines 22--24 \OT1/ptm/bc/n/10 ([][]ppl[][][][]Grid[][][][]Generator[][][][]System[][][]const [][][]iterator[][][]t[][] dst, [][]ppl[][][]const[][][][]Grid[][][][]Generator[ ][][][]System[][][]const[][][]iterator[] Overfull \hbox (20.85709pt too wide) in paragraph at lines 35--37 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Grid[][][][]Generator [][][][]System[][][]const[][][]iterator[] Overfull \hbox (12.24728pt too wide) in paragraph at lines 38--40 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Grid [][][][]Generator[][][][]System[][][]const[] [103]) (./interfaceppl__Grid__Generator__System__tag.tex Overfull \hbox (4.49792pt too wide) in paragraph at lines 22--24 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][][]Generator[][][][] System[][][]from[][][][]Grid[][][][]Generator[][][][]System[][] ([][]ppl[][][][ ]Grid[][][][]Generator[][][][]System[] Overfull \hbox (13.08763pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Grid[][][][]Generator[][][ ][]System[][][]from[][][][]Grid[][][][]Generator[][][][]System[][] ([][]ppl[][] [][]Grid[][][][]Generator[][][][]System[] Overfull \hbox (13.24803pt too wide) in paragraph at lines 41--43 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]begin[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][]System[][] []t[][] gs, [][]ppl[][][][]Grid[][][][]Generator[] Overfull \hbox (5.61804pt too wide) in paragraph at lines 44--46 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]end[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][]System[][][] t[][] gs, [][]ppl[][][][]Grid[][][][]Generator[] [104] Overfull \hbox (2.72562pt too wide) in paragraph at lines 73--75 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][][]Generator[][][][]System[][ ][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Grid[][][][]Generator[][][][] System[][][]t[][] x, F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stream) ) (./interfaceppl__Grid__Generator__tag.tex [105]) (./interfaceppl__Grid__tag.tex [106] Overfull \hbox (3.80247pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][ ][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Grid[][][]t[][] $ \OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron [] Overfull \hbox (6.9618pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][] []Generator[][][][]System[][] ([][]ppl[][][][]Grid[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Grid[][][][]Generator[][][ ][]System[] Overfull \hbox (3.21011pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]get[][][]minimized[][][]congrue nces[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][ ][]Congruence[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 p cs) Overfull \hbox (7.22137pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]get[][][]minimized[][][]grid[][ ][]generators[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]c onst[][][][]Grid[][][][]Generator[][][][]System[] Overfull \hbox (28.41115pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]maximize[][][]with[][][]point[] [] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[] Overfull \hbox (26.7511pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]minimize[][][]with[][][]point[] [] ([][]ppl[][][]const[][][][]Grid[][][]t[][] ph, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] le, [][]ppl[][][][]Coefficient[] [107] Overfull \hbox (24.14204pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]bounded[][][]affine[][][]image[ ][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] va r, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (7.17998pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]im age[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[][][]t[][] lhs, enum Overfull \hbox (4.87045pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]im age[][][]with[][][]congruence[][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[] [][]dimension[][][]type[][] var, enum Overfull \hbox (1.3616pt too wide) in paragraph at lines 175--177 [][]\OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][]c onst[][][][]Coefficient[][][]t[][] d, [][]ppl[] Overfull \hbox (5.27174pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]generalized[][][]affine[][][]pr eimage[][][]lhs[][][]rhs[][][]with[][][]congruence[][] ([][]ppl[][][][]Grid[][] []t[][] ph, [][]ppl[][][]const[][][][]Linear[] [108] Overfull \hbox (7.88818pt too wide) in paragraph at lines 193--195 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]fold[][][]space[][][]dimensions [][] ([][]ppl[][][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] d s[]$ $[], size[][][]t n, [][]ppl[][][]dimension[] Overfull \hbox (9.77875pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Grid[][][]wrap[][][]assign[][] ([][]ppl[] [][][]Grid[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] ds[]$ $[], size[ ][][]t n, enum [][]ppl[][][]enum[][][][]Bounded[] Overfull \hbox (8.82231pt too wide) in paragraph at lines 225--227 [][][]\OT1/ptm/bc/n/10 Bounded[][][][]Integer[][][][]Type[][][][]Overflow[][] o , const [][]ppl[][][]const[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cms y/m/n/10 ^^C$\OT1/ptm/bc/n/10 pcs, un-signed complexity[] Overfull \hbox (4.96187pt too wide) in paragraph at lines 257--259 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] [109] Overfull \hbox (2.7419pt too wide) in paragraph at lines 259--261 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] Overfull \hbox (4.41154pt too wide) in paragraph at lines 261--263 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] pset[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] Overfull \hbox (2.19157pt too wide) in paragraph at lines 263--265 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Grid[][][]2[][] ([][]ppl[][][]const[][][][]Grid[][][]t[][] pset[][][]before, [][]ppl[][][]const[][][][]Grid[][][]t[][] pset[] [110] Overfull \hbox (8.37189pt too wide) in paragraph at lines 333--334 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class Overfull \hbox (9.49188pt too wide) in paragraph at lines 339--340 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class Overfull \hbox (36.272pt too wide) in paragraph at lines 345--346 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][] []from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity Overfull \hbox (18.41342pt too wide) in paragraph at lines 351--352 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Pol yhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Gr id[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (33.32191pt too wide) in paragraph at lines 363--364 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][]Bo x[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][] []from[][][][]Rational[][][][]Box[][][]with[][][]complexity [111] Overfull \hbox (2.50291pt too wide) in paragraph at lines 369--370 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (0.7429pt too wide) in paragraph at lines 375--376 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (19.06262pt too wide) in paragraph at lines 381--382 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Grid[][][]from[][][][]Octagonal[] Overfull \hbox (20.18262pt too wide) in paragraph at lines 387--388 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Grid[][][]from[][][][]Octagonal[] [112] [113] [114] [115] [116] [117] [118] Overfull \hbox (3.7116pt too wide) in paragraph at lines 759--760 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalized[][][]a ffine[][][]preimage[][][]lhs[][][]rhs Overfull \hbox (13.20297pt too wide) in paragraph at lines 765--766 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalized[] [][]affine[][][]image[][][]with[] Overfull \hbox (19.78285pt too wide) in paragraph at lines 771--772 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generalize d[][][]affine[][][]preimage[] Overfull \hbox (0.44244pt too wide) in paragraph at lines 777--778 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]lhs[][][]rhs[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[ ][][]generalized[][][]affine[][][] Overfull \hbox (11.82233pt too wide) in paragraph at lines 783--784 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Gr id[][][]generalized[][][]affine[] [119] [120] Overfull \hbox (17.18285pt too wide) in paragraph at lines 855--856 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[][ ][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]congruence[][][ ]widening[][][]assign[][][]with[] Overfull \hbox (5.15298pt too wide) in paragraph at lines 861--862 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[][] []with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]generator[][][]w idening[][][]assign[][][]with[] [121] Overfull \hbox (10.54222pt too wide) in paragraph at lines 891--892 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][ ][]limited[][][]congruence[] Overfull \hbox (1.39236pt too wide) in paragraph at lines 897--898 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][] []limited[][][]generator[][][] Overfull \hbox (22.05283pt too wide) in paragraph at lines 903--904 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]limited[][][]congru ence[][][]extrapolation[] Overfull \hbox (10.02296pt too wide) in paragraph at lines 909--910 []\OT1/ptm/b/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Grid[][][]limited[][][]generat or[][][]extrapolation[] [122] Overfull \hbox (7.5717pt too wide) in paragraph at lines 933--934 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Grid[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Grid[][][]recyc le[][][][]Grid[][][][]Generator[][][][]System ( [123] [124]) (./interfaceppl__Linear__Expression__tag.tex Overfull \hbox (22.34773pt too wide) in paragraph at lines 25--27 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Linear[][][][]Expression[][][ ]from[][][][]Constraint[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ple, [][]ppl[][][]const[][][][]Constrai nt[] Overfull \hbox (18.96815pt too wide) in paragraph at lines 28--30 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Linear[][][][]Expression[][][ ]from[][][][]Generator[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ple, [][]ppl[][][]const[][][][]Generator [] [125] Overfull \hbox (15.40788pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]inhomoge neous[][][]term[][] ([][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[ ][] le, [][]ppl[][][][]Coefficient[] Overfull \hbox (2.65662pt too wide) in paragraph at lines 69--71 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]add[][][ ]to[][][]coefficient[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] le , [][]ppl[][][]dimension[][][]type[][] var, Overfull \hbox (22.89804pt too wide) in paragraph at lines 72--74 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Linear[][][][]Expression[][][]add[][][ ]to[][][]inhomogeneous[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[][][]const[][][][]Coefficient[] Overfull \hbox (25.43753pt too wide) in paragraph at lines 81--83 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]multiply[][][][]Linear[][][][]Expression [][][]by[][][][]Coefficient[][] ([][]ppl[][][][]Linear[][][][]Expression[][][]t [][] le, [][]ppl[][][]const[][][][]Coefficient[] ) (./interfaceppl__MIP__Problem__tag.tex [126] Overfull \hbox (14.92802pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]M[]I[]P[][][][]Problem[][] ([ ][]ppl[][][][]M[]I[]P[][][][]Problem[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/ bc/n/10 pmip, [][]ppl[][][]dimension[][][]type[][] d, [][]ppl[][][]const[][][][ ]Constraint[] Overfull \hbox (20.14798pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]M[]I[]P[][][][]Problem[][][]f rom[][][][]M[]I[]P[][][][]Problem[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem[][ ][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pmip, [][]ppl[][][]const[][][][ ]M[]I[]P[][][][]Problem[] Overfull \hbox (14.84767pt too wide) in paragraph at lines 56--58 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]M[]I[]P[][][][]Problem[][] []from[][][][]M[]I[]P[][][][]Problem[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem [][][]t[][] dst, [][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[] Overfull \hbox (1.62802pt too wide) in paragraph at lines 69--71 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]number[][] []of[][][]integer[][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]M[] I[]P[][][][]Problem[][][]t[][] mip, [][]ppl[] Overfull \hbox (0.81778pt too wide) in paragraph at lines 72--74 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]integer[][ ][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[ ][][]t[][] mip, [][]ppl[][][]dimension[] [127] Overfull \hbox (28.59772pt too wide) in paragraph at lines 81--83 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]objective[ ][][]function[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[][][]t[][] mip, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (11.228pt too wide) in paragraph at lines 97--99 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]s pace[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]M[]I[]P[][][][]Pro blem[][][]t[][] mip, [][]ppl[][][]dimension[] Overfull \hbox (5.5279pt too wide) in paragraph at lines 100--102 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]add[][][]t o[][][]integer[][][]space[][][]dimensions[][] ([][]ppl[][][][]M[]I[]P[][][][]Pr oblem[][][]t[][] mip, [][]ppl[][][]dimension[] Overfull \hbox (18.59772pt too wide) in paragraph at lines 109--111 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]set[][][]o bjective[][][]function[][] ([][]ppl[][][][]M[]I[]P[][][][]Problem[][][]t[][] mi p, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (28.95757pt too wide) in paragraph at lines 124--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][ ]objective[][][]function[][] ([][]ppl[][][]const[][][][]M[]I[]P[][][][]Problem[ ][][]t[][] mip, [][]ppl[][][]const[][][][]Generator[] [128] Underfull \hbox (badness 10000) detected at line 188 [][][] Overfull \hbox (2.87207pt too wide) in paragraph at lines 195--196 []\OT1/ptm/b/n/10 ppl[][][][]M[]I[]P[][][][]Problem[][][]evaluate[][][]objecti ve[][][]function()[] \OT1/pcr/m/n/8 int ppl[][][][]M[]I[]P[][][][]Problem[][][] evaluate[][][]objective[][][]function [129]) (./interfaceppl__Octagonal__Shape__mpq__class__tag.tex Overfull \hbox (1.09158pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.79044pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (4.43195pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.57019pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, [130] Overfull \hbox (2.1917pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.75175pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (15.40186pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.80197pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity [][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (13.18161pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (16.7715pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (17.33156pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (8.3313pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.64151pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.47102pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.78123pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.00133pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]get[][][]constraints[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.41159pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpq[] Overfull \hbox (3.98143pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]contains[][][]integer[][][]point[][] ([][]ppl[][][]const[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] [131] Overfull \hbox (7.47116pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][][]const[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.2513pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 97--99 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (7.02023pt too wide) in paragraph at lines 99--101 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (24.68086pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]strictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class [][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (23.291pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]is[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (13.56143pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]equals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][ ][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.33154pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (13.3314pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (1.11198pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[ ][][]mpq[][][]class[][][]t[][] x, [][]ppl[] [132] Overfull \hbox (4.79182pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (10.66122pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (11.96138pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]constrains[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (8.30138pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]unconstrain[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[] Overfull \hbox (12.19127pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (21.97142pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][ ][]class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (14.74185pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.75192pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 dimension[][][]type[][] var, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Ex pression[][][]t[][] ub, [][]ppl[][][]const[] Overfull \hbox (2.60994pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]t[][] ph, Overfull \hbox (3.58142pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 159--161 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (11.6315pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][] [][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.23186pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]O ctagonal[][][][]Shape[][][]mpq[] Overfull \hbox (6.3417pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (1.33191pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpq[] Overfull \hbox (2.17026pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] ph, Overfull \hbox (11.47173pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[] [133] Overfull \hbox (6.07129pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.44176pt too wide) in paragraph at lines 187--189 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][][]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][] ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.37144pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (24.74109pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][] []tokens[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (9.19116pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]toke ns[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (1.79141pt too wide) in paragraph at lines 199--201 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][] ([][]ppl[ ][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.62138pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.29158pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]p pl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.11128pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sh ape[][][]mpq[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (20.00146pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]wrap[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][] []class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (1.22195pt too wide) in paragraph at lines 215--217 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[ ][][]class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.34146pt too wide) in paragraph at lines 219--221 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]m pq[][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.05pt too wide) in paragraph at lines 221--223 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]clas s[][][]add[][][]recycled[][][]constraints[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]t[][] ph, [134] Overfull \hbox (0.54193pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][ ]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.52112pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Oc tagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.30115pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Oc tagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (9.14194pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.92197pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.59161pt too wide) in paragraph at lines 245--247 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.37164pt too wide) in paragraph at lines 247--249 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.06079pt too wide) in paragraph at lines 251--253 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]fprint[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][] (F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stre am, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (2.50148pt too wide) in paragraph at lines 253--255 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Sha pe[][][]mpq[][][]class[][] (char $\OMS/cmsy/m/n/10 ^^C$$^^C$\OT1/ptm/bc/n/10 st rp, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.58278pt too wide) in paragraph at lines 275--276 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][] Overfull \hbox (13.64336pt too wide) in paragraph at lines 281--282 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpq[][][]class[] [135] Overfull \hbox (1.20328pt too wide) in paragraph at lines 287--288 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (9.49188pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]from[][][][]Grid Overfull \hbox (10.69327pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (1.61278pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (2.73277pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (1.85248pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (2.97247pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (15.35258pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] [136] Overfull \hbox (29.79253pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (2.9026pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (12.4025pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.40201pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (2.522pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (11.24171pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (12.36171pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] [137] Overfull \hbox (7.13284pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (12.6829pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (5.45291pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new [][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (25.94154pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s pace[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]space[][][]dimension Overfull \hbox (31.3016pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpq[][][]class[][][]affine[][][]dimension Overfull \hbox (37.7628pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[][][]relation[] Overfull \hbox (36.08287pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]relation[] Overfull \hbox (2.03284pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] [138] Overfull \hbox (18.70169pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]get[][][]constraints Overfull \hbox (24.25175pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]get[][][]congruences Overfull \hbox (3.3225pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (8.87256pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (27.39282pt too wide) in paragraph at lines 467--468 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]contains[] Overfull \hbox (0.92271pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]is[][][] [139] Overfull \hbox (1.49265pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t opological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.86339pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]bounds[] Overfull \hbox (6.96324pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][]bounds[] Overfull \hbox (21.833pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m aximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[][][]maximize[] Overfull \hbox (20.17282pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m inimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[][][]minimize[] [140] Overfull \hbox (6.39226pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (13.10172pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s trictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT 1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (10.97186pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (0.9423pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e quals[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (13.36177pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class[][][]add[][][]constraint Overfull \hbox (18.91183pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class[][][]add[][][]congruence [141] Overfull \hbox (22.05167pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]add[][][]constraints Overfull \hbox (27.60173pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]add[][][]congruences Overfull \hbox (16.4929pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (22.04297pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (20.3828pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (25.93286pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][]refine[] Overfull \hbox (31.32278pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i ntersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shap e[][][]mpq[][][]class[][][]intersection[] Overfull \hbox (4.13298pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]upper[] [142] Overfull \hbox (14.31299pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d ifference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[ ][][]mpq[][][]class[][][]difference[] Overfull \hbox (27.0731pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c oncatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape [][][]mpq[][][]class[][][]concatenate[] Overfull \hbox (23.20291pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t ime[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpq[][][]class[][][]time[][][]elapse[] Overfull \hbox (12.77266pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][] []Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (16.39233pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s implify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]O ctagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (16.68237pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (20.57227pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagon al[][][][]Shape[][][]mpq[][][]class[] [143] Overfull \hbox (3.352pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] mpq[][][]class[][][]affine[][][]image ( Overfull \hbox (22.4119pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a ffine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]affine[][][]preimage Overfull \hbox (21.49312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpq[][][]class[][][]bounded[] Overfull \hbox (2.15298pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[][][] Overfull \hbox (52.33287pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]generalized[] Overfull \hbox (10.91272pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (3.09232pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] [144] Overfull \hbox (10.34235pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (12.37238pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (0.72276pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.2224pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (28.36278pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xpand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpq[][][]class[][][]expand[] Overfull \hbox (7.9527pt too wide) in paragraph at lines 749--750 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]f old[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][ ][]Shape[][][]mpq[][][]class[][][]fold[] [145] Overfull \hbox (5.6228pt too wide) in paragraph at lines 755--756 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m ap[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpq[][][]class[][][]map[] Overfull \hbox (19.80269pt too wide) in paragraph at lines 761--762 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (1.52267pt too wide) in paragraph at lines 767--768 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (2.87297pt too wide) in paragraph at lines 773--774 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xternal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (14.35309pt too wide) in paragraph at lines 779--780 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t otal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpq[][][]class[][][]total[] Overfull \hbox (13.52211pt too wide) in paragraph at lines 785--786 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (3.9127pt too wide) in paragraph at lines 791--792 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octag onal[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (13.52246pt too wide) in paragraph at lines 797--798 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[] [146] Overfull \hbox (1.03305pt too wide) in paragraph at lines 803--804 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpq[][][]class[][][]widening[] Overfull \hbox (38.56151pt too wide) in paragraph at lines 809--810 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens ()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (22.44177pt too wide) in paragraph at lines 815--816 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \ OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (11.67209pt too wide) in paragraph at lines 821--822 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (12.83237pt too wide) in paragraph at lines 827--828 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (15.72232pt too wide) in paragraph at lines 833--834 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.11292pt too wide) in paragraph at lines 839--840 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpq[][][]class[] [147] Overfull \hbox (1.29317pt too wide) in paragraph at lines 845--846 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][][]C[] Overfull \hbox (26.29156pt too wide) in paragraph at lines 851--852 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l inear[][][]partition()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpq[][][]class[][][]linear[][][]partition Overfull \hbox (1.61258pt too wide) in paragraph at lines 863--864 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (4.28264pt too wide) in paragraph at lines 869--870 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (14.33266pt too wide) in paragraph at lines 875--876 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][] new[][][][]Octagonal[][][][]Shape[][][]mpq[] Overfull \hbox (26.27225pt too wide) in paragraph at lines 881--882 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][]assign[][][][]Octagonal[] [148] Overfull \hbox (14.31274pt too wide) in paragraph at lines 887--888 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[][][]add[] Overfull \hbox (2.5828pt too wide) in paragraph at lines 893--894 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.95296pt too wide) in paragraph at lines 899--900 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]M[]S[][][][]Octagonal[][][] Overfull \hbox (23.28305pt too wide) in paragraph at lines 905--906 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (36.81273pt too wide) in paragraph at lines 917--918 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (42.73245pt too wide) in paragraph at lines 923--924 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (41.06253pt too wide) in paragraph at lines 929--930 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (6.67296pt too wide) in paragraph at lines 935--936 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]M[]S[][][][]Octagonal[] [149] Overfull \hbox (5.00304pt too wide) in paragraph at lines 941--942 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]P[]R[][][][]Octagonal[] Overfull \hbox (5.80263pt too wide) in paragraph at lines 947--948 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (4.1327pt too wide) in paragraph at lines 953--954 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (5.25243pt too wide) in paragraph at lines 959--960 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] Overfull \hbox (3.5825pt too wide) in paragraph at lines 965--966 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] [150]) (./interfaceppl__Octagonal__Shape__mpz__class__tag.tex Overfull \hbox (10.67032pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (3.31183pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.45007pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 pph, Overfull \hbox (1.63164pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.1917pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][ ]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (14.8418pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (1.24191pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity [][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (12.62155pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (16.21144pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (16.7715pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][] []complexity[][] ([][]ppl[][][][]Octagonal[] [151] Overfull \hbox (7.21118pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (13.8615pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.5214pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]from[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.3509pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.66112pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.88121pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]constraints[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (15.53152pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]congruences[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.29147pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]get[][][]minimized[][][]congruences[][] ([][]ppl[][][]const[][][][]Octag onal[][][][]Shape[][][]mpz[] Overfull \hbox (2.86131pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]contains[][][]integer[][][]point[][] ([][]ppl[][][]const[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (6.35104pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]is[][][]topologically[][][]closed[][] ([][]ppl[][][]const[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 97--99 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (7.02023pt too wide) in paragraph at lines 99--101 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, [152] Overfull \hbox (23.56075pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]strictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class [][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (22.17088pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]is[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][] ([][]ppl[][][]const[][][][]Octagonal[] Overfull \hbox (12.44131pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]equals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][ ][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (7.21143pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]t[][] ph, [][]ppl[][][]const[] Overfull \hbox (12.21129pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (16.10118pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]refine[][][]with[][][]constraints[][] ([][]ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.6717pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]upper[][][]bound[][][]assign[][][]if[][][]exact[][] ([][]ppl[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.5411pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.84126pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]constrains[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (7.18126pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]unconstrain[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[] Overfull \hbox (11.07115pt too wide) in paragraph at lines 147--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (20.8513pt too wide) in paragraph at lines 149--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][ ][]class[][][]t[][] ph, [][]ppl[][][]dimension[] [153] Overfull \hbox (13.62173pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (4.75192pt too wide) in paragraph at lines 153--155 [][]\OT1/ptm/bc/n/10 dimension[][][]type[][] var, [][]ppl[][][]const[][][][]Lin ear[][][][]Expression[][][]t[][] lb, [][]ppl[][][]const[][][][]Linear[][][][]Ex pression[][][]t[][] ub, [][]ppl[][][]const[] Overfull \hbox (2.61021pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (1.48982pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (2.4613pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 159--161 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (10.51138pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][] [][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (4.11174pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl[][][][]O ctagonal[][][][]Shape[][][]mpz[] Overfull \hbox (5.22159pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (0.21179pt too wide) in paragraph at lines 171--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octago nal[][][][]Shape[][][]mpz[] Overfull \hbox (1.05014pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] ph, Overfull \hbox (16.10132pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][][]t[][] ph, [][]ppl[] Overfull \hbox (10.35161pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.95117pt too wide) in paragraph at lines 185--187 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]total[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][]const[][][][]Octa gonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.8817pt too wide) in paragraph at lines 187--189 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][][]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][] ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.25133pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]widening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (10.55139pt too wide) in paragraph at lines 193--195 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]widening[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz [][][]class[][][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (24.18103pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][] []tokens[][] ([][]ppl[][][][]Octagonal[] [154] Overfull \hbox (8.6311pt too wide) in paragraph at lines 197--199 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]toke ns[][] ([][]ppl[][][][]Octagonal[] Overfull \hbox (1.23135pt too wide) in paragraph at lines 199--201 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][] ([][]ppl[ ][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.50127pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]limited[][][][]C[]C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][ ]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (4.73152pt too wide) in paragraph at lines 203--205 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]p pl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.99117pt too wide) in paragraph at lines 209--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Sh ape[][][]mpz[][][]class[][][]t[][] x, [][]ppl[] Overfull \hbox (18.88135pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]wrap[][][]assign[][] ([][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][] []class[][][]t[][] ph, [][]ppl[][][]dimension[] Overfull \hbox (0.10184pt too wide) in paragraph at lines 215--217 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[ ][][]class[][][]recycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (10.22134pt too wide) in paragraph at lines 219--221 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]m pz[][][]class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ( [][]ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.401pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Oc tagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.18103pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Oc tagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]ppl[][][]const[][][][] Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.58188pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] [155] Overfull \hbox (6.36191pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][]p pl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (8.03156pt too wide) in paragraph at lines 245--247 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.81158pt too wide) in paragraph at lines 247--249 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2[][] ([][] ppl[][][]const[][][][]Octagonal[][][][]Shape[] Overfull \hbox (6.94067pt too wide) in paragraph at lines 251--253 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]fprint[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][] (F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stre am, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.38136pt too wide) in paragraph at lines 253--255 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Sha pe[][][]mpz[][][]class[][] (char $\OMS/cmsy/m/n/10 ^^C$$^^C$\OT1/ptm/bc/n/10 st rp, [][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (25.67891pt too wide) in paragraph at lines 255--257 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]clas s[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]t[][] x, F[]I[]LE $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 stream) Overfull \hbox (23.4628pt too wide) in paragraph at lines 275--276 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.52336pt too wide) in paragraph at lines 281--282 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (8.37189pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]from[][][][]Grid [156] Overfull \hbox (9.57327pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.49278pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (1.61278pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (0.73248pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.85248pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n /8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (14.23259pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (28.67253pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (1.78261pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[] [][]new[][][][]Octagonal[][][][]Shape[] [157] Overfull \hbox (11.2825pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Octagonal[] Overfull \hbox (0.28201pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (1.40201pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]comple xity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][] Overfull \hbox (10.12172pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (11.24171pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]c omplexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (6.01285pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (11.56291pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]ne w[][][][]Octagonal[][][][]Shape[][][]mpz[] [158] Overfull \hbox (4.33292pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new [][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (24.82155pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s pace[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]space[][][]dimension Overfull \hbox (30.18161pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpz[][][]class[][][]affine[][][]dimension Overfull \hbox (36.6428pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[][][]relation[] Overfull \hbox (34.96288pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]relation[] Overfull \hbox (0.91284pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (17.5817pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]get[][][]constraints Overfull \hbox (23.13176pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]get[][][]congruences Overfull \hbox (2.2025pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] [159] Overfull \hbox (7.75256pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (26.27283pt too wide) in paragraph at lines 467--468 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]contains[] Overfull \hbox (62.20276pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]is[][][]topologically[] Overfull \hbox (0.37265pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t opological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.7434pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]bounds[] Overfull \hbox (5.84325pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]bounds[] [160] Overfull \hbox (20.713pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m aximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[][][]maximize[] Overfull \hbox (19.05283pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m inimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[][][]minimize[] Overfull \hbox (4.15227pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] [161] Overfull \hbox (10.86172pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s trictly[][][]contains[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT 1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (8.73187pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]disjoint[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (13.10233pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e quals[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (12.24178pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class[][][]add[][][]constraint Overfull \hbox (17.79184pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class[][][]add[][][]congruence Overfull \hbox (20.93167pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]add[][][]constraints Overfull \hbox (26.48174pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]add[][][]congruences Overfull \hbox (15.37291pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]refine[] [162] Overfull \hbox (20.92297pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (19.2628pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (24.81287pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][]refine[] Overfull \hbox (30.20279pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i ntersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shap e[][][]mpz[][][]class[][][]intersection[] Overfull \hbox (3.01299pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]upper[] Overfull \hbox (13.193pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d ifference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[ ][][]mpz[][][]class[][][]difference[] Overfull \hbox (25.95311pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c oncatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape [][][]mpz[][][]class[][][]concatenate[] Overfull \hbox (22.08292pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t ime[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][] Shape[][][]mpz[][][]class[][][]time[][][]elapse[] [163] Overfull \hbox (11.65266pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][] []Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.27234pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s implify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]O ctagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (15.56238pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (19.45227pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagon al[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.23201pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][][] mpz[][][]class[][][]affine[][][]image ( Overfull \hbox (21.2919pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a ffine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]affine[][][]preimage Overfull \hbox (20.37312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpz[][][]class[][][]bounded[] [164] Overfull \hbox (1.03299pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][] Overfull \hbox (51.21288pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]generalized[] Overfull \hbox (9.79272pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagona l[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (1.97232pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (1.8322pt too wide) in paragraph at lines 713--714 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (9.22235pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Octagonal[][][][]Shape[][][]mpz[] [165] Overfull \hbox (11.25238pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (2.48277pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][ ][][]Shape[][][]mpz[][][]class[][][] Overfull \hbox (4.1024pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (27.24278pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xpand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][] [][]Shape[][][]mpz[][][]class[][][]expand[] Overfull \hbox (6.8327pt too wide) in paragraph at lines 749--750 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]f old[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][ ][]Shape[][][]mpz[][][]class[][][]fold[] Overfull \hbox (4.5028pt too wide) in paragraph at lines 755--756 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m ap[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][] []Shape[][][]mpz[][][]class[][][]map[] Overfull \hbox (18.6827pt too wide) in paragraph at lines 761--762 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.40268pt too wide) in paragraph at lines 767--768 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int p pl[][][][]Octagonal[][][][]Shape[][][]mpz[] [166] Overfull \hbox (1.75298pt too wide) in paragraph at lines 773--774 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xternal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (13.2331pt too wide) in paragraph at lines 779--780 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t otal[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal [][][][]Shape[][][]mpz[][][]class[][][]total[] Overfull \hbox (12.40211pt too wide) in paragraph at lines 785--786 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.79271pt too wide) in paragraph at lines 791--792 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octag onal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (12.40247pt too wide) in paragraph at lines 797--798 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.79306pt too wide) in paragraph at lines 803--804 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[][ ][]mpz[][][]class[][][]widening[][][] Overfull \hbox (37.44151pt too wide) in paragraph at lines 809--810 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens ()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [167] Overfull \hbox (21.32178pt too wide) in paragraph at lines 815--816 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \ OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] Overfull \hbox (10.5521pt too wide) in paragraph at lines 821--822 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 in t ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (11.71237pt too wide) in paragraph at lines 827--828 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (14.60233pt too wide) in paragraph at lines 833--834 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.99292pt too wide) in paragraph at lines 839--840 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octago nal[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.17317pt too wide) in paragraph at lines 845--846 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]narrowing[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][][]C[] Overfull \hbox (25.17157pt too wide) in paragraph at lines 851--852 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l inear[][][]partition()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[][][][]Shape[] [][]mpz[][][]class[][][]linear[][][]partition [168] Overfull \hbox (0.49258pt too wide) in paragraph at lines 863--864 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[][][] Overfull \hbox (3.16264pt too wide) in paragraph at lines 869--870 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Octagonal[][][][]Shape[] Overfull \hbox (13.21266pt too wide) in paragraph at lines 875--876 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][] new[][][][]Octagonal[][][][]Shape[][][]mpz[] Overfull \hbox (24.03226pt too wide) in paragraph at lines 881--882 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/ m/n/8 int ppl[][][]assign[][][][]Octagonal[] Overfull \hbox (13.19275pt too wide) in paragraph at lines 887--888 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[][][]add[] Overfull \hbox (1.4628pt too wide) in paragraph at lines 893--894 []\OT1/ptm/b/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Octagonal[] [][][]Shape[][][]mpz[][][]class[] Overfull \hbox (23.83298pt too wide) in paragraph at lines 899--900 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (22.16306pt too wide) in paragraph at lines 905--906 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]termination[][ ][]test[][][][]P[]R[][][][]Octagonal[][][][]Shape[] [169] Overfull \hbox (37.36266pt too wide) in paragraph at lines 911--912 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (35.69273pt too wide) in paragraph at lines 917--918 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int pp l[][][]one[][][]affine[][][]ranking[][][]function[] Overfull \hbox (41.61246pt too wide) in paragraph at lines 923--924 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (39.94254pt too wide) in paragraph at lines 929--930 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int p pl[][][]all[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (5.55296pt too wide) in paragraph at lines 935--936 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]M[]S[][][][]Octagonal[] Overfull \hbox (3.88304pt too wide) in paragraph at lines 941--942 []\OT1/ptm/b/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]termina tion[][][]test[][][][]P[]R[][][][]Octagonal[] Overfull \hbox (4.68263pt too wide) in paragraph at lines 947--948 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] Overfull \hbox (3.01271pt too wide) in paragraph at lines 953--954 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[][][]ranking[] [170] Overfull \hbox (4.13243pt too wide) in paragraph at lines 959--960 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] Overfull \hbox (2.46251pt too wide) in paragraph at lines 965--966 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]2()[] \OT1/pcr/m/n/ 8 int ppl[][][]all[][][]affine[][][]ranking[] ) (./interfaceppl__PIP__Decision__Node__tag.tex [171]) (./interfaceppl__PIP__Problem__tag.tex [172] Overfull \hbox (4.04826pt too wide) in paragraph at lines 50--52 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]P[]I[]P[][][][]Problem[][][]f rom[][][][]P[]I[]P[][][][]Problem[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem[][ ][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ppip, [][]ppl[][][]const[][][][ ]P[]I[]P[][][][]Problem[] Overfull \hbox (1.52785pt too wide) in paragraph at lines 53--55 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]P[]I[]P[][][][]Problem[][] []from[][][][]P[]I[]P[][][][]Problem[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem [][][]t[][] dst, [][]ppl[][][]const[][][][]P[]I[]P[][][][]Problem[] Overfull \hbox (5.47821pt too wide) in paragraph at lines 56--58 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]P[]I[]P[][][][]Problem[][][]f rom[][][]constraints[][] ([][]ppl[][][][]P[]I[]P[][][][]Problem[][][]t[][] $\OM S/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 ppip, [][]ppl[][][]dimension[][][]type[][] d , [][]ppl[] Overfull \hbox (4.99655pt too wide) in paragraph at lines 56--58 [][][]\OT1/ptm/bc/n/10 Constraint[][][][]System[][][]const[][][]iterator[][][]t [][] first, [][]ppl[][][][]Constraint[][][][]System[][][]const[][][]iterator[][ ][]t[][] last, size[][][]t n, [][]ppl[] Overfull \hbox (1.6448pt too wide) in paragraph at lines 58--58 []\OT1/ptm/m/it/9 Builds a P[]IP prob-lem hav-ing space di-men-sion \OT1/pcr/m/ sl/9 d \OT1/ptm/m/it/9 from the se-quence of con-straints in the range $\OT1/cm r/m/n/9 [[]\OML/cmm/m/it/9 ; []\OT1/cmr/m/n/9 )$\OT1/ptm/m/it/9 ; Overfull \hbox (4.54796pt too wide) in paragraph at lines 68--70 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]number[][] []of[][][]parameter[][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]P []I[]P[][][][]Problem[][][]t[][] pip, [][]ppl[] Overfull \hbox (3.73772pt too wide) in paragraph at lines 71--73 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]parameter[ ][][]space[][][]dimensions[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Proble m[][][]t[][] pip, [][]ppl[][][]dimension[] Overfull \hbox (6.23784pt too wide) in paragraph at lines 74--76 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]get[][][]b ig[][][]parameter[][][]dimension[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][] Problem[][][]t[][] pip, [][]ppl[][][]dimension[] Overfull \hbox (7.51797pt too wide) in paragraph at lines 80--82 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]constraint [][][]at[][][]index[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Problem[][][] t[][] pip, [][]ppl[][][]dimension[][][]type[][] i, [][]ppl[] [173] Overfull \hbox (8.44783pt too wide) in paragraph at lines 101--103 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]t o[][][]parameter[][][]space[][][]dimensions[][] ([][]ppl[][][][]P[]I[]P[][][][] Problem[][][]t[][] pip, [][]ppl[][][]dimension[] [174] Overfull \hbox (4.83315pt too wide) in paragraph at lines 180--181 []\OT1/ptm/b/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]d imensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]P[]I[]P[][][][] Problem[][][]add[][][]space[][][]dimensions[] Underfull \hbox (badness 10000) detected at line 205 [][][] ) (./interfaceppl__PIP__Solution__Node__tag.tex Overfull \hbox (28.95125pt too wide) in paragraph at lines 15--16 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][] get[][][]parametric[][][]values[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]S olution[][][][]Node[][][]t[][] pip[][][]sol, [][]ppl[][][]dimension[] [175] Overfull \hbox (0.65196pt too wide) in paragraph at lines 48--49 []\OT1/ptm/b/n/10 ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][]get[][][ ]parametric[][][]values()[] \OT1/pcr/m/n/8 int ppl[][][][]P[]I[]P[][][][]Soluti on[][][][]Node[][][]get[][][]parametric[][][]values Underfull \hbox (badness 10000) detected at line 65 [][][] ) (./interfaceppl__PIP__Tree__Node__tag.tex [176] Overfull \hbox (0.62167pt too wide) in paragraph at lines 18--20 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]a s[][][]decision[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[ ][][]t[][] spip[][][]tree, [][]ppl[][][]const[][][][]P[]I[]P[][][][]Decision[] Overfull \hbox (17.25174pt too wide) in paragraph at lines 30--32 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]b egin[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]t[][] pip[][][]tree, [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[] Overfull \hbox (9.62175pt too wide) in paragraph at lines 33--35 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]e nd[][] ([][]ppl[][][]const[][][][]P[]I[]P[][][][]Tree[][][][]Node[][][]t[][] pi p[][][]tree, [][]ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[] ) (./interfaceppl__Pointset__Powerset__C__Polyhedron__const__iterator__tag.tex [177] Overfull \hbox (12.70763pt too wide) in paragraph at lines 16--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]const[][][]iterator[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.57777pt too wide) in paragraph at lines 18--19 \OT1/ptm/bc/n/10 Powerset[][][][]C[][][][]Polyhedron[][][]const[][][]iterator[] [][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pit, [][]ppl[][][]const[][][][ ]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[][][]const[] Overfull \hbox (35.44739pt too wide) in paragraph at lines 22--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]end[][] ([][]ppl[][][]const[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.6573pt too wide) in paragraph at lines 30--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]const[][ ][][]Pointset[][][][]Powerset[] Overfull \hbox (36.28717pt too wide) in paragraph at lines 32--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (37.94722pt too wide) in paragraph at lines 34--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.17719pt too wide) in paragraph at lines 36--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]cons t[][][][]Pointset[][][][]Powerset[] Overfull \hbox (31.45328pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][ ]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.3125pt too wide) in paragraph at lines 59--60 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator[][][]from[][][]const[][][]iterator()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] [178] Overfull \hbox (20.29312pt too wide) in paragraph at lines 69--70 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (12.51323pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.74301pt too wide) in paragraph at lines 89--90 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[ ][][][]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (46.56291pt too wide) in paragraph at lines 99--100 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 105 [][][] Overfull \hbox (40.09293pt too wide) in paragraph at lines 112--113 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (41.75298pt too wide) in paragraph at lines 122--123 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (38.88287pt too wide) in paragraph at lines 132--133 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [179]) (./interfaceppl__Pointset__Powerset__C__Polyhedron__iterator__tag.tex Overfull \hbox (20.47737pt too wide) in paragraph at lines 16--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][][]Pointset[][][][]Powerset[ ][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (20.17732pt too wide) in paragraph at lines 24--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (11.57744pt too wide) in paragraph at lines 32--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.23749pt too wide) in paragraph at lines 34--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.44711pt too wide) in paragraph at lines 36--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [180] Overfull \hbox (5.63354pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.95306pt too wide) in paragraph at lines 59--60 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator[][][]from[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][ ][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (35.75342pt too wide) in paragraph at lines 69--70 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (27.97353pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]iterator[] Overfull \hbox (27.80331pt too wide) in paragraph at lines 89--90 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.74318pt too wide) in paragraph at lines 99--100 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 105 [][][] Underfull \hbox (badness 10000) detected at line 108 [][][] Overfull \hbox (14.2732pt too wide) in paragraph at lines 115--116 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] [181] Overfull \hbox (15.93324pt too wide) in paragraph at lines 125--126 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.06314pt too wide) in paragraph at lines 135--136 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] ) (./interfaceppl__Pointset__Powerset__C__Polyhedron__tag.tex Overfull \hbox (38.41113pt too wide) in paragraph at lines 17--19 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][]space[][][]dimension[][] ([][]ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.16135pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (27.31155pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.16983pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron[][][]with[][][]complexity[][] Overfull \hbox (20.07114pt too wide) in paragraph at lines 31--33 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]space[][][]dimension[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.3812pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]dimension[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] [182] Overfull \hbox (0.48979pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[][][]t[][] ph) Overfull \hbox (33.96088pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]topological[][][]closure[][][]assign[][] ([][]ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.70169pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounds[][][]from[][][]above[][] ([][]ppl[][][]const[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (32.31142pt too wide) in paragraph at lines 59--61 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounds[][][]from[][][]below[][] ([][]ppl[][][]const[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.85016pt too wide) in paragraph at lines 61--63 \OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] [][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][][][] Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 p optimum) Overfull \hbox (2.16966pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]minimize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Powerse t[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (37.57085pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]maximize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 65--67 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (35.9108pt too wide) in paragraph at lines 67--69 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.02023pt too wide) in paragraph at lines 67--69 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum, Overfull \hbox (21.75092pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][] ([][]ppl[][][]const[][][][]Pointset[] Overfull \hbox (15.91096pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (13.97102pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][] ([][]ppl[][][]const[][][][]Pointset[] Overfull \hbox (1.04984pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]constraints[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (15.07112pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]constraint[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (21.72144pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]congruence[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.96101pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]constraints[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] [183] Overfull \hbox (25.61133pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]refine[][][]with[][][]congruences[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.14104pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]intersection[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.8517pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.68123pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]concatenate[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.85103pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.01141pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]constrains[][] ([][]ppl[][][][]Pointset[][][][]Powerset[][][][] C[][][][]Polyhedron[][][]t[][] ph, [][]ppl[] Overfull \hbox (14.02145pt too wide) in paragraph at lines 115--117 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][][][]Powerset[ ][][][]C[][][][]Polyhedron[][][]t[][] ph, [][]ppl[] Overfull \hbox (3.00993pt too wide) in paragraph at lines 117--119 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[][][]t[][] ph, Overfull \hbox (16.48157pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounded[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.25146pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.13107pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 123--125 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (40.90097pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]preimage[][] ([][]ppl[][][][]Point set[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.21204pt too wide) in paragraph at lines 125--127 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]dimension[][][]type[][] var, enum [ ][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-sym, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (12.01096pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[][] ([] []ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (5.61131pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([][]ppl [][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.72116pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]p pl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (32.54123pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]remove[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.71136pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]ppl[][][ ][]Pointset[][][][]Powerset[] [184] Overfull \hbox (27.69139pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Pointset[] [][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.96115pt too wide) in paragraph at lines 141--143 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]fold[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.07114pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]map[][][]space[][][]dimensions[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.85179pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]wideni ng[][][]assign[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (8.96167pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.44122pt too wide) in paragraph at lines 157--159 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign[ ][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.9914pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign[][] ([][] ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.42798pt too wide) in paragraph at lines 174--176 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]omega[][][]reduce[][] ([][]ppl[][][]const[][][][]Pointset[][ ][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (16.6074pt too wide) in paragraph at lines 177--178 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]size[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][ ][][]C[][][][]Polyhedron[][][]t[][] ps, size[] Overfull \hbox (23.49762pt too wide) in paragraph at lines 179--180 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (23.24736pt too wide) in paragraph at lines 181--182 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (15.89742pt too wide) in paragraph at lines 185--186 \OT1/ptm/bc/n/10 t[][] ps, [][]ppl[][][]const[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]iterator[][][]t[][] cit, [][]ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] [185] Overfull \hbox (3.23778pt too wide) in paragraph at lines 189--190 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron[][][]pairwise[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][]Powers et[][][][]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 214 [][][] Overfull \hbox (25.52202pt too wide) in paragraph at lines 221--222 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (25.74188pt too wide) in paragraph at lines 231--232 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (6.22339pt too wide) in paragraph at lines 241--242 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]add[] [186] Overfull \hbox (15.2834pt too wide) in paragraph at lines 251--252 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Po werset[][][][]C[][][][]Polyhedron[][][]drop[] Overfull \hbox (19.1733pt too wide) in paragraph at lines 261--262 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjuncts()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][]drop[] Overfull \hbox (3.18323pt too wide) in paragraph at lines 271--272 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]pairwise[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (9.6629pt too wide) in paragraph at lines 287--288 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][ ]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (37.45274pt too wide) in paragraph at lines 293--294 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (1.60347pt too wide) in paragraph at lines 299--300 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]Pointset[][][][]Powerset[][][] [187] Overfull \hbox (1.06046pt too wide) in paragraph at lines 305--306 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity()[] Overfull \hbox (3.57407pt too wide) in paragraph at lines 305--306 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity Overfull \hbox (30.19272pt too wide) in paragraph at lines 311--312 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (19.09297pt too wide) in paragraph at lines 317--318 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (24.64304pt too wide) in paragraph at lines 323--324 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (5.60315pt too wide) in paragraph at lines 329--330 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (6.16321pt too wide) in paragraph at lines 335--336 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.12292pt too wide) in paragraph at lines 341--342 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (38.443pt too wide) in paragraph at lines 347--348 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (45.67299pt too wide) in paragraph at lines 353--354 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [188] Overfull \hbox (2.08215pt too wide) in paragraph at lines 359--360 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerse t[][][][]C[][][][]Polyhedron[][][]is[][][]empty Overfull \hbox (25.73187pt too wide) in paragraph at lines 365--366 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]C[][][][]Polyhedron[][][]is[][][]universe Overfull \hbox (22.262pt too wide) in paragraph at lines 371--372 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]is[][][]bounded Overfull \hbox (29.75294pt too wide) in paragraph at lines 377--378 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.20285pt too wide) in paragraph at lines 383--384 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.96188pt too wide) in paragraph at lines 389--390 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]C[][][][]Polyhedron[][][]is[][][]discrete Overfull \hbox (45.1328pt too wide) in paragraph at lines 395--396 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (21.72368pt too wide) in paragraph at lines 401--402 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]omega[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]omega[] Overfull \hbox (18.82352pt too wide) in paragraph at lines 407--408 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.92337pt too wide) in paragraph at lines 413--414 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]C[][][][]Polyhedron[] [189] Overfull \hbox (8.17215pt too wide) in paragraph at lines 419--420 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron[][][]maximize Overfull \hbox (6.51198pt too wide) in paragraph at lines 425--426 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron[][][]minimize Overfull \hbox (24.19312pt too wide) in paragraph at lines 431--432 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.53294pt too wide) in paragraph at lines 437--438 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.99251pt too wide) in paragraph at lines 443--444 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (6.30196pt too wide) in paragraph at lines 449--450 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][] Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] [190] Overfull \hbox (4.1721pt too wide) in paragraph at lines 455--456 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (5.66255pt too wide) in paragraph at lines 461--462 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron()[] \ OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (0.70338pt too wide) in paragraph at lines 473--474 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[][][] Overfull \hbox (3.37344pt too wide) in paragraph at lines 479--480 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (1.71327pt too wide) in paragraph at lines 485--486 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.26334pt too wide) in paragraph at lines 491--492 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.45303pt too wide) in paragraph at lines 497--498 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (34.0031pt too wide) in paragraph at lines 503--504 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] [191] Overfull \hbox (32.34293pt too wide) in paragraph at lines 509--510 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (37.89299pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (14.4829pt too wide) in paragraph at lines 521--522 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][] [][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (20.89311pt too wide) in paragraph at lines 527--528 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (7.0731pt too wide) in paragraph at lines 533--534 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (15.03322pt too wide) in paragraph at lines 539--540 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.08302pt too wide) in paragraph at lines 545--546 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (0.73277pt too wide) in paragraph at lines 551--552 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][] [192] Overfull \hbox (1.47244pt too wide) in paragraph at lines 557--558 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]simplify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl [][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.56197pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron[][][]constrains Overfull \hbox (1.76248pt too wide) in paragraph at lines 569--570 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[] Overfull \hbox (5.65237pt too wide) in paragraph at lines 575--576 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[] Overfull \hbox (19.49364pt too wide) in paragraph at lines 581--582 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Pow erset[][][][]C[][][][]Polyhedron[][][]affine[] Overfull \hbox (2.0735pt too wide) in paragraph at lines 587--588 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][] Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (28.65324pt too wide) in paragraph at lines 593--594 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] [193] Overfull \hbox (42.91313pt too wide) in paragraph at lines 599--600 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (40.29298pt too wide) in paragraph at lines 605--606 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (3.67284pt too wide) in paragraph at lines 611--612 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[][][][]C[] Overfull \hbox (15.05244pt too wide) in paragraph at lines 617--618 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (29.31233pt too wide) in paragraph at lines 623--624 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/ n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.30247pt too wide) in paragraph at lines 629--630 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (24.3325pt too wide) in paragraph at lines 635--636 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] [194] Overfull \hbox (44.36292pt too wide) in paragraph at lines 641--642 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (17.18253pt too wide) in paragraph at lines 647--648 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (40.3229pt too wide) in paragraph at lines 653--654 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (29.51283pt too wide) in paragraph at lines 659--660 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Point set[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.98294pt too wide) in paragraph at lines 665--666 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (4.8828pt too wide) in paragraph at lines 671--672 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (13.4828pt too wide) in paragraph at lines 677--678 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/pcr/m/ n/8 int ppl[][][][]Pointset[][][][]Powerset[] [195] Overfull \hbox (46.51312pt too wide) in paragraph at lines 683--684 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (31.11322pt too wide) in paragraph at lines 689--690 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[] Overfull \hbox (22.15227pt too wide) in paragraph at lines 695--696 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][] assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (22.31267pt too wide) in paragraph at lines 701--702 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign()[] \OT1/pc r/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.85257pt too wide) in paragraph at lines 707--708 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign()[] \OT1 /pcr/m/n/8 int ppl[][][][]Pointset[][][] Overfull \hbox (18.69278pt too wide) in paragraph at lines 713--714 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (7.80214pt too wide) in paragraph at lines 719--720 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][][] []C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]print[][][][]Poin tset[][][][]Powerset[][][][]C[][][][]Polyhedron ( Overfull \hbox (6.33209pt too wide) in paragraph at lines 725--726 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][][ ][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fprint[][][][]Po intset[][][][]Powerset[][][][]C[][][][]Polyhedron Overfull \hbox (16.69203pt too wide) in paragraph at lines 731--732 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]asprint[][][][] Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron [196] Overfull \hbox (9.15346pt too wide) in paragraph at lines 737--738 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]ascii[] Overfull \hbox (2.48352pt too wide) in paragraph at lines 743--744 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Power set[][][][]C[][][][]Polyhedron[][][]ascii[] ) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__const__iterator__tag.tex Overfull \hbox (11.83833pt too wide) in paragraph at lines 1--1 []\OT1/ptm/b/n/12 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Pol yhedron[][][]const[][][]iterator[][][]tag In-ter-face Ref-er-ence Overfull \hbox (30.36118pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.3908pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]const[][][]iterator[][][]equal[][][]test[][] ([][]ppl[][] []const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.1415pt too wide) in paragraph at lines 23--25 [][][]\OT1/ptm/bc/n/10 N[]N[]C[][][][]Polyhedron[][][]const[][][]iterator[][][] t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]const[][][]iterator[] Overfull \hbox (10.87091pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]const[][][]iterator[][][]dereference[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] [197] Overfull \hbox (4.61319pt too wide) in paragraph at lines 43--44 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (32.75244pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[][][]iterator[][][]from[][][]const[][][]iterator() [] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[] Overfull \hbox (44.33307pt too wide) in paragraph at lines 55--56 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.55318pt too wide) in paragraph at lines 61--62 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.44278pt too wide) in paragraph at lines 67--68 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int p pl[][][][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (3.65283pt too wide) in paragraph at lines 73--74 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (0.51288pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][] Overfull \hbox (2.44281pt too wide) in paragraph at lines 85--86 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (9.50294pt too wide) in paragraph at lines 91--92 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]const[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]d elete[][][][]Pointset[][][][]Powerset[] [198]) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__iterator__tag.tex Overfull \hbox (5.65144pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (11.31146pt too wide) in paragraph at lines 19--21 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]begin[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.68147pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]end[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (29.23099pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]increment[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (30.89104pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]iterator[][][]decrement[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.83087pt too wide) in paragraph at lines 31--32 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron[][][]iterator[][] ([][]ppl[][][]const[][][][]Point set[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (29.6735pt too wide) in paragraph at lines 43--44 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Poin tset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.393pt too wide) in paragraph at lines 49--50 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator[][][]from[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (18.51334pt too wide) in paragraph at lines 55--56 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]begin()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [199] Overfull \hbox (10.73344pt too wide) in paragraph at lines 61--62 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]end()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.10309pt too wide) in paragraph at lines 67--68 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]equal[][][]test()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (38.31314pt too wide) in paragraph at lines 73--74 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]increment()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (39.97319pt too wide) in paragraph at lines 79--80 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]decrement()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (44.78313pt too wide) in paragraph at lines 85--86 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][]dereference()[] \OT1/pcr/m/n/8 int ppl[][][][]Point set[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.96323pt too wide) in paragraph at lines 91--92 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]iterator()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] ) (./interfaceppl__Pointset__Powerset__NNC__Polyhedron__tag.tex Overfull \hbox (5.3514pt too wide) in paragraph at lines 15--17 []\OT1/ptm/bc/n/10 int [][]ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] [200] Overfull \hbox (26.03156pt too wide) in paragraph at lines 25--27 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[ ][][]complexity[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (0.11113pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]Constraint[][][][]System[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.76144pt too wide) in paragraph at lines 29--31 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron[][][]from[][][][]Congruence[][][][]System[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (4.25085pt too wide) in paragraph at lines 35--37 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Constraint[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.56107pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Generator[][] ([][]ppl[][][]con st[][][][]Pointset[][][][]Powerset[] Overfull \hbox (10.90117pt too wide) in paragraph at lines 39--41 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]relation[][][]with[][][][]Congruence[][] ([][]ppl[][][]co nst[][][][]Pointset[][][][]Powerset[] Overfull \hbox (16.7413pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]empty[][] ([][]ppl[][][]const[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (25.2213pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]universe[][] ([][]ppl[][][]const[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.18152pt too wide) in paragraph at lines 45--47 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]bounded[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.84103pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]discrete[][] ([][]ppl[][][]const[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.89133pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]pairwise[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (13.47177pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]omega[][][]reduce[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.91118pt too wide) in paragraph at lines 63--65 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]maximize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.85019pt too wide) in paragraph at lines 63--65 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum) Overfull \hbox (19.25113pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]minimize[][] ([][]ppl[][][]const[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.85019pt too wide) in paragraph at lines 65--67 [][]\OT1/ptm/bc/n/10 t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expressi on[][][]t[][] le, [][]ppl[][][][]Coefficient[][][]t[][] ext[][][]n, [][]ppl[][] [][]Coefficient[][][]t[][] ext[][][]d, int $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/ 10 poptimum) Overfull \hbox (1.19106pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]minimize[][][]with[][][]point[][] ([][]ppl[][][]const[][] [][]Pointset[][][][]Powerset[][][][]N[] [201] Overfull \hbox (14.80135pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (21.47098pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (20.08112pt too wide) in paragraph at lines 75--77 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerse t[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[] Overfull \hbox (14.15979pt too wide) in paragraph at lines 77--79 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset [][][][]N[]N[]C[][][][]Polyhedron[][] Overfull \hbox (6.02162pt too wide) in paragraph at lines 77--79 \OT1/ptm/bc/n/10 ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (13.90953pt too wide) in paragraph at lines 79--81 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset [][][][]N[]N[]C[][][][]Polyhedron[][] Overfull \hbox (6.02162pt too wide) in paragraph at lines 79--81 \OT1/ptm/bc/n/10 ([][]ppl[][][]const[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (7.02145pt too wide) in paragraph at lines 81--83 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][] [][]Polyhedron[][] ([][]ppl[][][]const[] Overfull \hbox (14.24141pt too wide) in paragraph at lines 85--87 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]constraint[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.89172pt too wide) in paragraph at lines 87--89 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]congruence[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.1313pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]constraints[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (24.78162pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]congruences[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.89159pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]refine[][][]with[][][]congruence[][] ([][]ppl[][][][]Poin tset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (32.02092pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]intersection[][][]assign[][] ([][]ppl[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.73158pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]upper[][][]bound[][][]assign[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (25.6412pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]difference[][][]assign[][] ([][]ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (32.56111pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]concatenate[][][]assign[][] ([][]ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (31.73091pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]time[][][]elapse[][][]assign[][] ([][]ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.44106pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]simplify[][][]using[][][]context[][][]assign[][] ([][]ppl [][][][]Pointset[][][][]Powerset[] [202] Overfull \hbox (3.9711pt too wide) in paragraph at lines 119--121 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]unconstrain[][][]space[][][]dimensions[][] ([][]ppl[][][] []Pointset[][][][]Powerset[] Overfull \hbox (7.3215pt too wide) in paragraph at lines 121--123 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]affine[][][]image[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.0914pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]affine[][][]preimage[][] ([][]ppl[][][][]Pointset[][][][] Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.7517pt too wide) in paragraph at lines 127--129 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]bounded[][][]affine[][][]preimage[][] ([][]ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (0.6313pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]image[][] ([][]ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (13.681pt too wide) in paragraph at lines 133--135 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (26.4509pt too wide) in paragraph at lines 135--137 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs[] [] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.05125pt too wide) in paragraph at lines 137--139 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed[][] ([ ][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (21.1611pt too wide) in paragraph at lines 139--141 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (16.1513pt too wide) in paragraph at lines 143--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]remove[][][]higher[][][]space[][][]dimensions[][] ([][]pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.19162pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]expand[][][]space[][][]dimension[][] ([][]ppl[][][][]Poin tset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (3.25156pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][] ([][ ]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (11.85156pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2[] [] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (12.13116pt too wide) in paragraph at lines 155--157 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]external[][][]memory[][][]in[][][]bytes[][] ([][]ppl[][][ ]const[][][][]Pointset[][][][]Powerset[] Overfull \hbox (6.47151pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]add[][][]disjunct[][] ([][]ppl[][][][]Pointset[][][][]Pow erset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (10.36153pt too wide) in paragraph at lines 163--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]disjunct[][] ([][]ppl[][][][]Pointset[][][][]Po werset[][][][]N[]N[]C[][][][]Polyhedron[] [203] Overfull \hbox (14.25142pt too wide) in paragraph at lines 165--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]drop[][][]disjuncts[][] ([][]ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (22.29173pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][] widening[][][]assign[][] ([][]ppl[][][][]Pointset[] Overfull \hbox (23.40161pt too wide) in paragraph at lines 169--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assi gn[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (17.43134pt too wide) in paragraph at lines 173--175 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (11.74142pt too wide) in paragraph at lines 175--177 []\OT1/ptm/bc/n/10 int [][]ppl[][][]io[][][]print[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.18124pt too wide) in paragraph at lines 181--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] [][][]Polyhedron[][][]ascii[][][]dump[][] ([][]ppl[][][]const[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (6.50212pt too wide) in paragraph at lines 195--196 []\OT1/ptm/b/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]delete[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (24.10284pt too wide) in paragraph at lines 201--202 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int pp l[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (7.77258pt too wide) in paragraph at lines 207--208 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (27.60335pt too wide) in paragraph at lines 213--214 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] [204] Overfull \hbox (29.94034pt too wide) in paragraph at lines 219--220 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]with[][][]complexity()[] Overfull \hbox (22.77408pt too wide) in paragraph at lines 219--220 \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron[][][]with[][][]complexity Overfull \hbox (0.51256pt too wide) in paragraph at lines 225--226 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]com plexity()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (33.53291pt too wide) in paragraph at lines 231--232 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.68295pt too wide) in paragraph at lines 237--238 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Pointset[][][] Overfull \hbox (29.6431pt too wide) in paragraph at lines 243--244 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (30.20316pt too wide) in paragraph at lines 249--250 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[ ][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (3.68283pt too wide) in paragraph at lines 255--256 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Constraint()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (2.0029pt too wide) in paragraph at lines 261--262 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Generator()[] \OT1/pcr/m/n/8 int ppl[][ ][][]Pointset[][][][]Powerset[][][][]N[] [205] Overfull \hbox (1.55289pt too wide) in paragraph at lines 267--268 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][]with[][][][]Congruence()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (8.22359pt too wide) in paragraph at lines 273--274 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]empty()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]P owerset[][][][]N[]N[]C[][][][]Polyhedron[][][]is[] Overfull \hbox (4.99329pt too wide) in paragraph at lines 279--280 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]universe()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (6.32341pt too wide) in paragraph at lines 285--286 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]bounded()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.91286pt too wide) in paragraph at lines 291--292 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[][][]integer[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.36276pt too wide) in paragraph at lines 297--298 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]topologically[][][]closed()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.2233pt too wide) in paragraph at lines 303--304 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]discrete()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][] []Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.0127pt too wide) in paragraph at lines 309--310 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]topological[][][]closure[][][]assign()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[] Overfull \hbox (27.22318pt too wide) in paragraph at lines 315--316 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]pairwise[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.8836pt too wide) in paragraph at lines 321--322 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]omega[][][]reduce()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [206] Overfull \hbox (42.86346pt too wide) in paragraph at lines 327--328 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][]from[][][]above()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (42.96332pt too wide) in paragraph at lines 333--334 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][]from[][][]below()[] \OT1/pcr/m/n/8 int ppl[][][][]Poi ntset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.79358pt too wide) in paragraph at lines 339--340 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][][] Overfull \hbox (1.1334pt too wide) in paragraph at lines 345--346 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powers et[][][][]N[]N[]C[][][][]Polyhedron[][][] Overfull \hbox (0.23303pt too wide) in paragraph at lines 351--352 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][] Overfull \hbox (46.57289pt too wide) in paragraph at lines 357--358 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize[][][]with[][][]point()[] \OT1/pcr/m/n/8 int ppl[][][][]P ointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [207] Overfull \hbox (1.59236pt too wide) in paragraph at lines 363--364 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron()[] \OT1/pcr/m/n/8 int ppl[] Overfull \hbox (7.00032pt too wide) in paragraph at lines 369--370 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]strictly[][][]contains[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int Overfull \hbox (4.87047pt too wide) in paragraph at lines 375--376 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]disjoint[][][]from[][][][]Pointset[][][][]Powerset[][][][ ]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int Overfull \hbox (3.82037pt too wide) in paragraph at lines 381--382 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron()[] Overfull \hbox (7.41406pt too wide) in paragraph at lines 381--382 \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]covers[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron Overfull \hbox (4.04024pt too wide) in paragraph at lines 387--388 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron()[] Overfull \hbox (7.41406pt too wide) in paragraph at lines 387--388 \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[][][]equals[][][][]Pointset[][][][]Powerset[][][][] N[]N[]C[][][][]Polyhedron Overfull \hbox (34.54243pt too wide) in paragraph at lines 393--394 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Poly hedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (21.86333pt too wide) in paragraph at lines 405--406 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (27.41339pt too wide) in paragraph at lines 411--412 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [208] Overfull \hbox (25.75322pt too wide) in paragraph at lines 417--418 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (31.30328pt too wide) in paragraph at lines 423--424 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.61295pt too wide) in paragraph at lines 429--430 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]constraint()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (2.363pt too wide) in paragraph at lines 435--436 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]congruence()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (0.70284pt too wide) in paragraph at lines 441--442 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]constraints()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (1.4529pt too wide) in paragraph at lines 447--448 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[][][]congruences()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (38.52284pt too wide) in paragraph at lines 453--454 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]intersection[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Points et[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (44.93306pt too wide) in paragraph at lines 459--460 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [209] Overfull \hbox (31.11305pt too wide) in paragraph at lines 465--466 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]difference[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset [][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (39.07317pt too wide) in paragraph at lines 471--472 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]concatenate[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointse t[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (37.12297pt too wide) in paragraph at lines 477--478 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]time[][][]elapse[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Po intset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (12.29271pt too wide) in paragraph at lines 483--484 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[][][]assign[][][]if[][][]exact()[] \OT1/pcr/m/n/ 8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (15.91238pt too wide) in paragraph at lines 489--490 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]simplify[][][]using[][][]context[][][]assign()[] \OT1/pcr/m/n/8 i nt ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.70338pt too wide) in paragraph at lines 495--496 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]constrains()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powe rset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (16.20242pt too wide) in paragraph at lines 501--502 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Pointset[][][][]Powerset[] Overfull \hbox (20.09232pt too wide) in paragraph at lines 507--508 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl [][][][]Pointset[][][][]Powerset[] [210] Overfull \hbox (11.85356pt too wide) in paragraph at lines 513--514 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.11345pt too wide) in paragraph at lines 519--520 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] [][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (1.81316pt too wide) in paragraph at lines 525--526 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (1.67303pt too wide) in paragraph at lines 531--532 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[][][] Overfull \hbox (3.85289pt too wide) in paragraph at lines 537--538 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]image()[] \OT1/pcr/m/n/8 int ppl[][] [][]Pointset[][][][]Powerset[][][][]N[] Overfull \hbox (10.43277pt too wide) in paragraph at lines 543--544 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]preimage()[] \OT1/pcr/m/n/8 int ppl[ ][][][]Pointset[][][][]Powerset[] [211] Overfull \hbox (29.49239pt too wide) in paragraph at lines 549--550 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]image[][][]lhs[][][]rhs()[] \OT1/pcr /m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.47224pt too wide) in paragraph at lines 555--556 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[][][]affine[][][]preimage[][][]lhs[][][]rhs()[] \OT1/ pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (36.74242pt too wide) in paragraph at lines 561--562 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]embed()[] \OT1/pcr/m /n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (0.37242pt too wide) in paragraph at lines 567--568 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[][][]dimensions[][][]and[][][]project()[] \OT1/pcr /m/n/8 int ppl[][][][]Pointset[][][] Overfull \hbox (0.24281pt too wide) in paragraph at lines 573--574 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Pointset[][][][]Powerset[] Overfull \hbox (31.62247pt too wide) in paragraph at lines 579--580 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][]higher[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (3.88281pt too wide) in paragraph at lines 585--586 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]expand[][][]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][] []Pointset[][][][]Powerset[][][][]N[] [212] Overfull \hbox (2.67274pt too wide) in paragraph at lines 591--592 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]fold[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][ ]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (0.34285pt too wide) in paragraph at lines 597--598 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]map[][][]space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][] Pointset[][][][]Powerset[][][][]N[]N[] Overfull \hbox (19.32274pt too wide) in paragraph at lines 603--604 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points()[] \OT1/pcr/m/n /8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (27.92274pt too wide) in paragraph at lines 609--610 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[][][]non[][][]integer[][][]points[][][]2()[] \OT1/ pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (2.39302pt too wide) in paragraph at lines 615--616 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]external[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int pp l[][][][]Pointset[][][][]Powerset[] Overfull \hbox (4.27313pt too wide) in paragraph at lines 621--622 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]total[][][]memory[][][]in[][][]bytes()[] \OT1/pcr/m/n/8 int ppl[] [][][]Pointset[][][][]Powerset[][][][]N[]N[]C[] Overfull \hbox (12.98332pt too wide) in paragraph at lines 633--634 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][ ][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] [213] Overfull \hbox (17.24333pt too wide) in paragraph at lines 639--640 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjunct()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][] [][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (21.13322pt too wide) in paragraph at lines 645--646 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjuncts()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][ ][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (36.59221pt too wide) in paragraph at lines 651--652 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening [][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (36.75261pt too wide) in paragraph at lines 657--658 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][][]H79[][][][]H79[][][]widening[][][]assign()[] \ OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (12.4125pt too wide) in paragraph at lines 663--664 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][][]B[]H[]R[]Z03[][][]extrapolation[][][]assign()[ ] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[] Overfull \hbox (33.13272pt too wide) in paragraph at lines 669--670 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][][]H79[][][]extrapolation[][][]assign()[] \OT1/pc r/m/n/8 int ppl[][][][]Pointset[][][][]Powerset[] Overfull \hbox (22.24208pt too wide) in paragraph at lines 675--676 []\OT1/ptm/b/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][][] []N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]print[][][] []Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (30.37204pt too wide) in paragraph at lines 681--682 []\OT1/ptm/b/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][][ ][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]fprint[][] [][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedron [214] Overfull \hbox (1.71346pt too wide) in paragraph at lines 687--688 []\OT1/ptm/b/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[][] [][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]io[][][]asprint[] [][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][] Overfull \hbox (6.31339pt too wide) in paragraph at lines 693--694 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]dump()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (2.52345pt too wide) in paragraph at lines 699--700 []\OT1/ptm/b/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]load()[] \OT1/pcr/m/n/8 int ppl[][][][]Pointset[][][][ ]Powerset[][][][]N[]N[]C[][][][]Polyhedron[][][] ) (./interfaceppl__Polyhedron__tag.tex Overfull \hbox (5.63234pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Rational[][][][]Box[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Rational[][][][ ]Box[] Overfull \hbox (10.59242pt too wide) in paragraph at lines 23--25 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][][]Polyhedron[][][] t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]B[] D[][][][]Shape[] Overfull \hbox (11.15248pt too wide) in paragraph at lines 27--29 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][][]Polyhedron[][][] t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]B[] D[][][][]Shape[] Overfull \hbox (6.71233pt too wide) in paragraph at lines 33--35 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] ([][]ppl[][][][]Polyh edron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const [] Overfull \hbox (7.27238pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] ([][]ppl[][][][]Polyh edron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const [] [215] Overfull \hbox (3.80247pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Grid[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t [][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Grid [] Overfull \hbox (3.2623pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedr on[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[] Overfull \hbox (10.18228pt too wide) in paragraph at lines 47--49 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][ ]ppl[] Overfull \hbox (0.8408pt too wide) in paragraph at lines 49--51 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, Overfull \hbox (10.74234pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][ ]ppl[] Overfull \hbox (1.40086pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pp h, Overfull \hbox (6.25206pt too wide) in paragraph at lines 57--59 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity [][] ([][]ppl[][][][]Polyhedron[] Overfull \hbox (6.81212pt too wide) in paragraph at lines 61--63 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity [][] ([][]ppl[][][][]Polyhedron[] Overfull \hbox (25.27213pt too wide) in paragraph at lines 83--85 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]linear[][][]partition[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][] Polyhedron[][][]t[][] y, [][]ppl[][][][]Polyhedron[] Overfull \hbox (5.6022pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedro n[][][]t[][] pset, [][]ppl[][][][]Generator[] [216] Overfull \hbox (3.38223pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedro n[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (20.04214pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pol yhedron[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (17.82217pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Pol yhedron[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (11.182pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedr on[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (8.96204pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedr on[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (25.62195pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Po lyhedron[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (23.40198pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Po lyhedron[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (26.14159pt too wide) in paragraph at lines 111--113 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]C[ ][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (23.92162pt too wide) in paragraph at lines 113--115 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]C[ ][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] p set[][][]before, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (14.20235pt too wide) in paragraph at lines 123--125 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][] [][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (11.98238pt too wide) in paragraph at lines 125--127 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][] [][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (13.65202pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][ ][][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (11.43205pt too wide) in paragraph at lines 133--134 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2[][] ([][]ppl[][][]const[][ ][][]Polyhedron[][][]t[][] pset[][][]before, [][]ppl[] [217] Overfull \hbox (10.48825pt too wide) in paragraph at lines 144--145 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/c msy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (23.78888pt too wide) in paragraph at lines 148--149 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/c msy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (8.35905pt too wide) in paragraph at lines 150--151 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle [][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OM S/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] Overfull \hbox (25.46918pt too wide) in paragraph at lines 160--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedro n[] Overfull \hbox (24.92819pt too wide) in paragraph at lines 164--165 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $ \OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constraint [] Overfull \hbox (9.49837pt too wide) in paragraph at lines 166--167 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Constraint[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Constraint[] Overfull \hbox (22.799pt too wide) in paragraph at lines 170--171 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] Overfull \hbox (25.72865pt too wide) in paragraph at lines 172--173 []\OT1/ptm/bc/n/10 int [][]ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][] []from[][][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[] [] dst, [][]ppl[][][]const[][][][]Polyhedron[] [218] Overfull \hbox (11.02924pt too wide) in paragraph at lines 178--179 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (6.43909pt too wide) in paragraph at lines 180--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Po lyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (11.02924pt too wide) in paragraph at lines 182--183 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]C[][][][]Polyhedron[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/ cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (6.43909pt too wide) in paragraph at lines 184--185 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Po lyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (2.65869pt too wide) in paragraph at lines 206--207 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]congruences[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][] Congruence[][][][]System[] Overfull \hbox (2.68785pt too wide) in paragraph at lines 208--209 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]c onstraints[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][] []const[][][][]Constraint[] Overfull \hbox (15.98848pt too wide) in paragraph at lines 210--211 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]c ongruences[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][] []const[][][][]Congruence[] [219] Overfull \hbox (8.73904pt too wide) in paragraph at lines 226--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounds[][][]from[][][]abo ve[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (9.34877pt too wide) in paragraph at lines 228--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounds[][][]from[][][]bel ow[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[] Overfull \hbox (14.6082pt too wide) in paragraph at lines 230--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]maximize[][][]with[][][]p oint[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (1.86832pt too wide) in paragraph at lines 232--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]maximize[][] ([][]ppl[][] []const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][] []Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (12.94815pt too wide) in paragraph at lines 234--235 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]minimize[][][]with[][][]p oint[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]cons t[][][][]Linear[][][][]Expression[] Overfull \hbox (14.84818pt too wide) in paragraph at lines 236--238 [][] \OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]minimize[][][]with[][] []point[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]c onst[][][][]Linear[][][][]Expression[] Overfull \hbox (11.01836pt too wide) in paragraph at lines 241--242 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]strictly[][][]contains[][ ][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][]ppl [][][]const[][][][]Polyhedron[] Overfull \hbox (9.6285pt too wide) in paragraph at lines 243--244 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]fro m[][][][]Polyhedron[][] ([][]ppl[][][]const[][][][]Polyhedron[][][]t[][] x, [][ ]ppl[][][]const[][][][]Polyhedron[] [220] Overfull \hbox (9.87866pt too wide) in paragraph at lines 275--276 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]refine[][][]with[][][]con gruences[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][] []Congruence[][][][]System[] Overfull \hbox (2.82346pt too wide) in paragraph at lines 291--292 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][ ][]dimensions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimens ion[][][]type[][] ds[]$ $[], Overfull \hbox (4.84868pt too wide) in paragraph at lines 293--294 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]affine[][][]image[][] ([] []ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[][][]type[][] var , [][]ppl[][][]const[][][][]Linear[] Overfull \hbox (1.24907pt too wide) in paragraph at lines 299--300 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][]affine[][][] preimage[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[] [][]type[][] var, [][]ppl[] Overfull \hbox (0.58711pt too wide) in paragraph at lines 301--302 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]generalized[][][]affine[] [][]image[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[ ][][]type[][] var, enum [221] Overfull \hbox (6.12796pt too wide) in paragraph at lines 303--304 \OT1/ptm/bc/n/10 enum [][]ppl[][][]enum[][][][]Constraint[][][][]Type[][] rel-s ym, [][]ppl[][][]const[][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] [][]const[][][][]Coefficient[] Overfull \hbox (0.9884pt too wide) in paragraph at lines 307--308 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]generalized[][][]affine[] [][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [] []ppl[][][]const[][][][]Linear[] Overfull \hbox (12.40506pt too wide) in paragraph at lines 319--320 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]remove[][][]space[][][]di mensions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[] [][]type[][] ds[]$ $[], size[] Overfull \hbox (12.1548pt too wide) in paragraph at lines 323--324 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]map[][][]space[][][]dimen sions[][] ([][]ppl[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]dimension[][][ ]type[][] maps[]$ $[], size[] [222] Overfull \hbox (7.10867pt too wide) in paragraph at lines 347--348 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][ ][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cm sy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (21.54861pt too wide) in paragraph at lines 351--352 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]f rom[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\ OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generator[] Overfull \hbox (6.11879pt too wide) in paragraph at lines 353--354 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]r ecycle[][][][]Generator[][][][]System[][] ([][]ppl[][][][]Polyhedron[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Generator[] Overfull \hbox (7.50677pt too wide) in paragraph at lines 355--356 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]get[][][]generators[][] ( [][]ppl[][][]const[][][][]Polyhedron[][][]t[][] ph, [][]ppl[][][]const[][][][]G enerator[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pgs) Overfull \hbox (14.67685pt too wide) in paragraph at lines 369--370 [][][]\OT1/ptm/bc/n/10 Integer[][][][]Type[][][][]Overflow[][] o, const [][]ppl [][][]const[][][][]Constraint[][][][]System[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\O T1/ptm/bc/n/10 pcs, un-signed complexity[][][]threshold, Overfull \hbox (28.9686pt too wide) in paragraph at lines 371--372 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widen ing[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (9.51877pt too wide) in paragraph at lines 373--374 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][] assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]p pl[][][]const[][][][]Polyhedron[] [223] Overfull \hbox (1.88829pt too wide) in paragraph at lines 379--380 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Pol yhedron[][][]t[][] x, [][]ppl[] Overfull \hbox (7.1482pt too wide) in paragraph at lines 381--382 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]e xtrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Polyhedron[] [][]t[][] x, [][]ppl[][][]const[] Overfull \hbox (25.31825pt too wide) in paragraph at lines 383--384 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (5.86842pt too wide) in paragraph at lines 385--386 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]e xtrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[] [][]const[][][][]Polyhedron[] Overfull \hbox (7.98883pt too wide) in paragraph at lines 387--388 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Pol yhedron[][][]t[][] x, [][]ppl[] Overfull \hbox (31.4188pt too wide) in paragraph at lines 391--392 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z 03[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[][][]const[][][][]Polyhedron[] Overfull \hbox (11.96896pt too wide) in paragraph at lines 393--394 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]e xtrapolation[][][]assign[][] ([][]ppl[][][][]Polyhedron[][][]t[][] x, [][]ppl[] [][]const[][][][]Polyhedron[] [224] Overfull \hbox (1.31215pt too wide) in paragraph at lines 412--413 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]space [][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[ ][][]from[][][]space[][][]dimension ( Overfull \hbox (0.10345pt too wide) in paragraph at lines 432--433 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]C[][][][]Polyhedron[][][]from[][][][]C[][][] Underfull \hbox (badness 10000) detected at line 438 [][][] Overfull \hbox (10.74222pt too wide) in paragraph at lines 445--446 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Con straint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyh edron[][][]from[][][][]Constraint[][][][]System Overfull \hbox (11.32346pt too wide) in paragraph at lines 455--456 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Po lyhedron[][][]recycle[][][][]Constraint[] [225] Underfull \hbox (badness 10000) detected at line 463 [][][] Overfull \hbox (16.29228pt too wide) in paragraph at lines 470--471 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Con gruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyh edron[][][]from[][][][]Congruence[][][][]System Overfull \hbox (16.87352pt too wide) in paragraph at lines 480--481 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Po lyhedron[][][]recycle[][][][]Congruence[] Underfull \hbox (badness 10000) detected at line 488 [][][] Overfull \hbox (15.75209pt too wide) in paragraph at lines 505--506 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ]space[][][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][ ]Polyhedron[][][]from[][][]space[][][]dimension Overfull \hbox (14.45259pt too wide) in paragraph at lines 515--516 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C [][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron [226] Overfull \hbox (5.94331pt too wide) in paragraph at lines 525--526 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int p pl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Underfull \hbox (badness 10000) detected at line 531 [][][] Overfull \hbox (12.08365pt too wide) in paragraph at lines 538--539 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Constraint[] Overfull \hbox (35.3634pt too wide) in paragraph at lines 548--549 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[ ]C[][][][]Polyhedron[][][]recycle[][][][]Constraint[] Underfull \hbox (badness 10000) detected at line 556 [][][] Overfull \hbox (17.63371pt too wide) in paragraph at lines 563--564 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[][][][]Congruence[] Overfull \hbox (40.91347pt too wide) in paragraph at lines 573--574 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[ ]C[][][][]Polyhedron[][][]recycle[][][][]Congruence[] [227] Underfull \hbox (badness 10000) detected at line 581 [][][] Overfull \hbox (37.75237pt too wide) in paragraph at lines 588--589 []\OT1/ptm/b/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]assign[][][][]N []N[]C[][][][]Polyhedron[][][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (3.98338pt too wide) in paragraph at lines 608--609 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]C[][][][]Polyhedron[][][]from[] Underfull \hbox (badness 10000) detected at line 614 [][][] Overfull \hbox (13.58339pt too wide) in paragraph at lines 631--632 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [228] Underfull \hbox (badness 10000) detected at line 637 [][][] [229] [230] [231] Overfull \hbox (9.58202pt too wide) in paragraph at lines 894--895 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]strictly[][][]contains[][][][]Pol yhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]strictly[][][]contain s[][][][]Polyhedron ( Overfull \hbox (0.73216pt too wide) in paragraph at lines 904--905 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][][ ]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]is[][][]disjoint[ ][][]from[][][][]Polyhedron ( [232] Underfull \hbox (badness 10000) detected at line 1000 [][][] [233] Underfull \hbox (badness 10000) detected at line 1013 [][][] Overfull \hbox (6.30173pt too wide) in paragraph at lines 1090--1091 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]context[ ][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]simplify[][][]usi ng[][][]context[][][]assign [234] Overfull \hbox (8.51176pt too wide) in paragraph at lines 1120--1121 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dimen sion()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]unconstrain[][][]space[] [][]dimension ( Overfull \hbox (7.60165pt too wide) in paragraph at lines 1130--1131 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dimen sions()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]unconstrain[][][]space[ ][][]dimensions [235] Underfull \vbox (badness 10000) has occurred while \output is active [236] Overfull \hbox (2.74211pt too wide) in paragraph at lines 1251--1252 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]generalized[][][]affine[ ][][]preimage ( Overfull \hbox (6.78322pt too wide) in paragraph at lines 1274--1275 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]imag e[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]generaliz ed[][][]affine[][][]image[] [237] Overfull \hbox (35.44312pt too wide) in paragraph at lines 1295--1296 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]genera lized[][][]affine[][][]preimage[] Overfull \hbox (12.11325pt too wide) in paragraph at lines 1326--1327 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][ ][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]add[][][]sp ace[][][]dimensions[][][]and[] Overfull \hbox (14.14328pt too wide) in paragraph at lines 1336--1337 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[][ ][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]add[][][] space[][][]dimensions[][][]and[] [238] Overfull \hbox (26.81181pt too wide) in paragraph at lines 1356--1357 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[][] []dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]remove[][][]high er[][][]space[][][]dimensions Overfull \hbox (7.42976pt too wide) in paragraph at lines 1372--1373 []\OT1/ptm/bc/n/10 The par-tial func-tion is de-fined on di-men-sion \OT1/pcr/m /n/10 i \OT1/ptm/bc/n/10 if \OT1/pcr/m/n/10 i $\OML/cmm/m/it/10 <$ \OT1/pcr/m/n /10 n \OT1/ptm/bc/n/10 and \OT1/pcr/m/n/10 maps[]i[] != ppl[][][]not[][][]a[][] []dimension\OT1/ptm/bc/n/10 ; [239] Overfull \hbox (4.26228pt too wide) in paragraph at lines 1448--1449 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhe dron[][][]from[][][][]Generator[][][][]System Overfull \hbox (4.84352pt too wide) in paragraph at lines 1458--1459 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Pol yhedron[][][]recycle[][][][]Generator[] Underfull \hbox (badness 10000) detected at line 1466 [][][] Overfull \hbox (5.60371pt too wide) in paragraph at lines 1473--1474 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[] [][][]Polyhedron[][][]from[][][][]Generator[] Overfull \hbox (28.88347pt too wide) in paragraph at lines 1483--1484 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[] C[][][][]Polyhedron[][][]recycle[][][][]Generator[] [240] Underfull \hbox (badness 10000) detected at line 1491 [][][] Underfull \hbox (badness 10000) detected at line 1544 [][][] [241] Overfull \hbox (22.67305pt too wide) in paragraph at lines 1602--1603 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][ ][]B[]H[]R[]Z03[][][]widening[][][]assign[] [242] Overfull \hbox (9.79324pt too wide) in paragraph at lines 1612--1613 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign[] [][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][][]H79[][ ][]widening[][][]assign[][][]with[] Overfull \hbox (6.43242pt too wide) in paragraph at lines 1642--1643 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Polyhedron[][][]limited[] Overfull \hbox (3.15262pt too wide) in paragraph at lines 1652--1653 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhe dron[][][]limited[][][][]H79[] Overfull \hbox (49.62305pt too wide) in paragraph at lines 1662--1663 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]lim ited[][][][]B[]H[]R[]Z03[][][]extrapolation[] [243] Overfull \hbox (14.66322pt too wide) in paragraph at lines 1672--1673 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]limited[][][ ][]H79[][][]extrapolation[] Overfull \hbox (13.67258pt too wide) in paragraph at lines 1682--1683 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][ ][]Polyhedron[][][]bounded[] Overfull \hbox (10.39278pt too wide) in paragraph at lines 1692--1693 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhe dron[][][]bounded[][][][]H79[] Overfull \hbox (56.8632pt too wide) in paragraph at lines 1702--1703 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]bou nded[][][][]B[]H[]R[]Z03[][][]extrapolation[] Overfull \hbox (21.90338pt too wide) in paragraph at lines 1712--1713 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]bounded[][][ ][]H79[][][]extrapolation[] [244] Overfull \hbox (2.68365pt too wide) in paragraph at lines 1746--1747 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C [][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (9.44359pt too wide) in paragraph at lines 1752--1753 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]N[]N[]C[][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (3.80365pt too wide) in paragraph at lines 1758--1759 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C [][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (10.56358pt too wide) in paragraph at lines 1764--1765 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][ ][][]N[]N[]C[][][][]Polyhedron[][][]from[][][][]B[]D[][][][]Shape[] [245] Overfull \hbox (22.12337pt too wide) in paragraph at lines 1770--1771 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]C[][][][]Polyhedron[][][]from[][][][]Octagonal[] Overfull \hbox (23.24336pt too wide) in paragraph at lines 1782--1783 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]C[][][][]Polyhedron[][][]from[][][][]Octagonal[] Overfull \hbox (1.20328pt too wide) in paragraph at lines 1788--1789 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]n ew[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] Overfull \hbox (36.272pt too wide) in paragraph at lines 1794--1795 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gri d[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (18.41342pt too wide) in paragraph at lines 1800--1801 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Grid[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]N[ ]N[]C[][][][]Polyhedron[][][]from[][][][]Grid[][][]with[] Overfull \hbox (27.87338pt too wide) in paragraph at lines 1806--1807 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]C[][][][]Polyhedron[][][]from[][][][]Rational[] Overfull \hbox (10.6333pt too wide) in paragraph at lines 1812--1813 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Rational[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [246] Overfull \hbox (18.7929pt too wide) in paragraph at lines 1818--1819 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[] Overfull \hbox (20.75282pt too wide) in paragraph at lines 1824--1825 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.71288pt too wide) in paragraph at lines 1830--1831 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[][][] Overfull \hbox (21.87282pt too wide) in paragraph at lines 1836--1837 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr /m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (26.7126pt too wide) in paragraph at lines 1842--1843 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.75252pt too wide) in paragraph at lines 1848--1849 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[][][] Overfull \hbox (27.8326pt too wide) in paragraph at lines 1854--1855 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]C[][][][]Polyhedron[] [247] Overfull \hbox (0.99251pt too wide) in paragraph at lines 1860--1861 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT 1/pcr/m/n/8 int ppl[][][]new[][][][]N[]N[]C[] Overfull \hbox (0.76205pt too wide) in paragraph at lines 1884--1885 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]upper[][][]bound[][][]assign[][][ ]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]upper[][][]bou nd[][][]assign[][][]if[][][]exact ( Overfull \hbox (2.99208pt too wide) in paragraph at lines 1902--1903 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]inte ger[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]drop[][][]som e[][][]non[][][]integer[][][]points [248] Overfull \hbox (20.5736pt too wide) in paragraph at lines 1908--1909 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]inte ger[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]drop[] [][]some[][][]non[][][]integer[][][]points[] Overfull \hbox (3.43185pt too wide) in paragraph at lines 1914--1915 []\OT1/ptm/b/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[][ ][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Polyhedron[][][]widening[][][]assig n[][][]with[][][]tokens ( [249] Overfull \hbox (1.1535pt too wide) in paragraph at lines 1962--1963 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]M[]S[][][][]C[][][] Overfull \hbox (38.5021pt too wide) in paragraph at lines 1968--1969 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]P[]R[][][][]C[][][][]Polyhedron Overfull \hbox (0.23343pt too wide) in paragraph at lines 1974--1975 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]a ffine[][][]ranking[][][]function[][][][]M[] Overfull \hbox (3.36351pt too wide) in paragraph at lines 1980--1981 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]a ffine[][][]ranking[][][]function[][][][]P[]R[] Overfull \hbox (2.5233pt too wide) in paragraph at lines 1986--1987 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]M[]S[][][][]C[] Overfull \hbox (0.85338pt too wide) in paragraph at lines 1992--1993 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]P[]R[][][][]C[] Overfull \hbox (4.48323pt too wide) in paragraph at lines 1998--1999 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][] affine[][][]ranking[][][]functions[][][][]M[] Overfull \hbox (2.81331pt too wide) in paragraph at lines 2004--2005 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][] affine[][][]ranking[][][]functions[][][][]P[] [250] Overfull \hbox (2.0735pt too wide) in paragraph at lines 2034--2035 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]M[]S[][][] Overfull \hbox (0.40358pt too wide) in paragraph at lines 2040--2041 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]P[]R[][][] Overfull \hbox (1.15343pt too wide) in paragraph at lines 2046--2047 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one [][][]affine[][][]ranking[][][]function[] Overfull \hbox (2.36351pt too wide) in paragraph at lines 2052--2053 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one [][][]affine[][][]ranking[][][]function[][][] [251] Overfull \hbox (3.4433pt too wide) in paragraph at lines 2058--2059 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]M[]S[] Overfull \hbox (1.77338pt too wide) in paragraph at lines 2064--2065 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]P[]R[] Overfull \hbox (5.40323pt too wide) in paragraph at lines 2070--2071 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]al l[][][]affine[][][]ranking[][][]functions[] Overfull \hbox (3.7333pt too wide) in paragraph at lines 2076--2077 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]al l[][][]affine[][][]ranking[][][]functions[] ) (./interfaceppl__Rational__Box__tag.tex Overfull \hbox (5.63234pt too wide) in paragraph at lines 21--23 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[] [] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Polyhe dron[] [252] Overfull \hbox (1.04219pt too wide) in paragraph at lines 37--39 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]complexity[][] ([][]ppl[][][][]Ra tional[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]pp l[] Overfull \hbox (9.09174pt too wide) in paragraph at lines 41--43 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Rational[][][][]Box[][][]with[][][]complexity[][] ([][]ppl[][][][]Rational [][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][ ]const[] Overfull \hbox (16.01172pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity[][] ([][]p pl[][][][]Rational[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[] Overfull \hbox (5.09135pt too wide) in paragraph at lines 51--53 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Constraint[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Constra int[] Overfull \hbox (18.39198pt too wide) in paragraph at lines 53--55 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Congruence[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][ ] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Congrue nce[] Overfull \hbox (1.71178pt too wide) in paragraph at lines 55--57 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][ ][][]Generator[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][]const[][][][]Generato r[] Overfull \hbox (12.5317pt too wide) in paragraph at lines 65--67 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]relation[][][]wi th[][][][]Congruence[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[ ][] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (7.53172pt too wide) in paragraph at lines 69--71 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]congrue nces[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[ ][][]const[][][][]Congruence[][][][]System[] Overfull \hbox (7.56088pt too wide) in paragraph at lines 71--73 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]minimiz ed[][][]constraints[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] ph, [][]ppl[][][]const[][][][]Constraint[] Overfull \hbox (20.86151pt too wide) in paragraph at lines 73--75 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]minimiz ed[][][]congruences[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] ph, [][]ppl[][][]const[][][][]Congruence[] Overfull \hbox (13.61208pt too wide) in paragraph at lines 89--91 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounds[][][]from [][][]above[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (14.2218pt too wide) in paragraph at lines 91--93 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounds[][][]from [][][]below[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]const[][][][]Linear[][][][]Expression[] [253] Overfull \hbox (18.62187pt too wide) in paragraph at lines 93--95 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]upper[] [][]bound[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ps, [][]ppl[][][]d imension[][][]type[][] var, [][]ppl[][][][]Coefficient[] Overfull \hbox (18.37173pt too wide) in paragraph at lines 95--97 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]get[][][]lower[] [][]bound[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ps, [][]ppl[][][]d imension[][][]type[][] var, [][]ppl[][][][]Coefficient[] Overfull \hbox (6.74135pt too wide) in paragraph at lines 97--99 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]maximize[][] ([] []ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[] [][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (5.0813pt too wide) in paragraph at lines 99--101 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]minimize[][] ([] []ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[] [][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (19.48123pt too wide) in paragraph at lines 101--103 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]maximize[][][]wi th[][][]point[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (17.82118pt too wide) in paragraph at lines 103--105 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]minimize[][][]wi th[][][]point[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[][][][]Expression[] Overfull \hbox (7.13179pt too wide) in paragraph at lines 105--107 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]frequency[][] ([ ][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]const[ ][][][]Linear[][][][]Expression[][][]t[][] le, [][]ppl[] Overfull \hbox (0.61139pt too wide) in paragraph at lines 107--109 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]contains[][][][] Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][][]t[] [] x, [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (11.72083pt too wide) in paragraph at lines 109--111 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]strictly[][][]co ntains[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[][][] []Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (10.33096pt too wide) in paragraph at lines 111--113 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint [][][]from[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[] [][][]Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (1.45107pt too wide) in paragraph at lines 129--131 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]refine[][][]with [][][]constraints[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]const[][][][]Constraint[][][][]System[] Overfull \hbox (14.7517pt too wide) in paragraph at lines 131--133 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]refine[][][]with [][][]congruences[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]const[][][][]Congruence[][][][]System[] Overfull \hbox (4.91129pt too wide) in paragraph at lines 145--147 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]simplify[][][]us ing[][][]context[][][]assign[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (7.69649pt too wide) in paragraph at lines 151--153 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][ ]space[][][]dimensions[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [ ][]ppl[][][]dimension[][][]type[][] ds[]$ $[], Overfull \hbox (9.72171pt too wide) in paragraph at lines 153--155 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]affine[][][]imag e[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[][][]dimension [][][]type[][] var, [][]ppl[][][]const[][][][]Linear[] [254] Overfull \hbox (6.1221pt too wide) in paragraph at lines 159--161 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]bounded[][][]aff ine[][][]preimage[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]pp l[][][]dimension[][][]type[][] var, [][]ppl[] Overfull \hbox (5.46014pt too wide) in paragraph at lines 161--163 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]generalized[][][ ]affine[][][]image[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]p pl[][][]dimension[][][]type[][] var, enum Overfull \hbox (5.86143pt too wide) in paragraph at lines 167--169 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]generalized[][][ ]affine[][][]preimage[][][]lhs[][][]rhs[][] ([][]ppl[][][][]Rational[][][][]Box [][][]t[][] ph, [][]ppl[][][]const[][][][]Linear[] Overfull \hbox (3.69801pt too wide) in paragraph at lines 179--181 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]fold[][][]space[ ][][]dimensions[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] ph, [][]ppl[ ][][]dimension[][][]type[][] ds[]$ $[], size[] Overfull \hbox (8.29143pt too wide) in paragraph at lines 191--193 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]wi dening[][][]assign[][][]with[][][]tokens[][] ([][]ppl[][][][]Rational[][][][]Bo x[][][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (1.6215pt too wide) in paragraph at lines 195--197 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]widening[][][]as sign[][][]with[][][]tokens[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t[][] x , [][]ppl[][][]const[][][][]Rational[][][][]Box[] Overfull \hbox (4.64108pt too wide) in paragraph at lines 201--203 []\OT1/ptm/bc/n/10 int [][]ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C []C76[][][]extrapolation[][][]assign[][] ([][]ppl[][][][]Rational[][][][]Box[][ ][]t[][] x, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (2.96216pt too wide) in paragraph at lines 211--213 []\OT1/ptm/bc/n/10 int [][]ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle [][][][]Congruence[][][][]System[][] ([][]ppl[][][][]Rational[][][][]Box[][][]t [][] $\OMS/cmsy/m/n/10 ^^C$\OT1/ptm/bc/n/10 pph, [][]ppl[][][][]Congruence[] [255] Overfull \hbox (11.43164pt too wide) in paragraph at lines 225--227 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[ ][][][]Box[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (9.21167pt too wide) in paragraph at lines 227--229 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational[ ][][][]Box[][][]t[][] pset, [][]ppl[][][][]Generator[] Overfull \hbox (17.01144pt too wide) in paragraph at lines 229--231 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational [][][][]Box[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (14.79147pt too wide) in paragraph at lines 231--233 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Rational[][][][]Box[][] ([][]ppl[][][]const[][][][]Rational [][][][]Box[][][]t[][] pset, [][]ppl[][][][]Polyhedron[] Overfull \hbox (19.75078pt too wide) in paragraph at lines 233--235 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]M[]S[][][][]Ra tional[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][] []t[][] pset[][][]before, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (17.5308pt too wide) in paragraph at lines 235--237 []\OT1/ptm/bc/n/10 int [][]ppl[][][]termination[][][]test[][][][]P[]R[][][][]Ra tional[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Rational[][][][]Box[][] []t[][] pset[][][]before, [][]ppl[][][]const[][][][]Rational[] Overfull \hbox (5.59184pt too wide) in paragraph at lines 237--239 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]M[]S[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Ra tional[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (3.37187pt too wide) in paragraph at lines 239--241 []\OT1/ptm/bc/n/10 int [][]ppl[][][]one[][][]affine[][][]ranking[][][]function[ ][][][]P[]R[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]Ra tional[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (5.04152pt too wide) in paragraph at lines 241--243 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]M[]S[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]R ational[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] Overfull \hbox (2.82155pt too wide) in paragraph at lines 243--245 []\OT1/ptm/bc/n/10 int [][]ppl[][][]all[][][]affine[][][]ranking[][][]functions [][][][]P[]R[][][][]Rational[][][][]Box[][][]2[][] ([][]ppl[][][]const[][][][]R ational[][][][]Box[][][]t[][] pset[][][]before, [][]ppl[] [256] Overfull \hbox (2.61357pt too wide) in paragraph at lines 301--302 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]R ational[][][][]Box[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (0.85356pt too wide) in paragraph at lines 307--308 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]R ational[][][][]Box[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (19.17328pt too wide) in paragraph at lines 313--314 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Rational[][][][]Box[][][]from[][][][]Octagonal[] Overfull \hbox (20.29327pt too wide) in paragraph at lines 319--320 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class()[] \OT1/pcr/m/n/8 int ppl[][][]new[][] [][]Rational[][][][]Box[][][]from[][][][]Octagonal[] Overfull \hbox (45.1534pt too wide) in paragraph at lines 325--326 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Rational[][][][]Box[][][]from[][][][]C[][][][]Polyhedron[] [257] Overfull \hbox (1.0333pt too wide) in paragraph at lines 331--332 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][] []new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (33.32191pt too wide) in paragraph at lines 337--338 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Gri d[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational [][][][]Box[][][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (24.9233pt too wide) in paragraph at lines 343--344 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[ ][][][]Rational[][][][]Box[][][]from[][][][]Rational[] Overfull \hbox (15.8428pt too wide) in paragraph at lines 349--350 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (16.9628pt too wide) in paragraph at lines 355--356 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][]Box[][][]from[] Overfull \hbox (6.4825pt too wide) in paragraph at lines 361--362 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Rational[] Overfull \hbox (7.6025pt too wide) in paragraph at lines 367--368 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity()[] \OT1/pcr/ m/n/8 int ppl[][][]new[][][][]Rational[] [258] Overfull \hbox (7.79213pt too wide) in paragraph at lines 373--374 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Con straint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][] []Box[][][]from[][][][]Constraint[][][][]System Overfull \hbox (13.3422pt too wide) in paragraph at lines 379--380 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Con gruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][] []Box[][][]from[][][][]Congruence[][][][]System Overfull \hbox (1.3122pt too wide) in paragraph at lines 385--386 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Gen erator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][][][ ]Box[][][]from[][][][]Generator[][][][]System [259] Overfull \hbox (1.10178pt too wide) in paragraph at lines 433--434 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][] constraints()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]get[][][ ]minimized[][][]constraints ( Overfull \hbox (6.65184pt too wide) in paragraph at lines 439--440 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][][] congruences()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]get[][][ ]minimized[][][]congruences ( Overfull \hbox (4.07193pt too wide) in paragraph at lines 481--482 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]topological[][][]closure [][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]topolog ical[][][]closure[][][]assign ( [260] [261] Overfull \hbox (22.7833pt too wide) in paragraph at lines 547--548 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]strictly[][][]contains[] [][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box [][][]strictly[][][]contains[][][][]Rational[] Overfull \hbox (13.93344pt too wide) in paragraph at lines 553--554 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint[][][]fr om[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][ ]Box[][][]is[][][]disjoint[][][]from[][][][]Rational[] [262] [263] Overfull \hbox (6.71194pt too wide) in paragraph at lines 649--650 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]upper[][][]bound[][][]as sign[][][]if[][][]exact()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[] [][]upper[][][]bound[][][]assign[][][]if[][][]exact Overfull \hbox (2.03311pt too wide) in paragraph at lines 655--656 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][][ ]context[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][ ]simplify[][][]using[][][]context[][][] Overfull \hbox (14.46165pt too wide) in paragraph at lines 667--668 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[] [][]dimension()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]uncons train[][][]space[][][]dimension Overfull \hbox (23.15155pt too wide) in paragraph at lines 673--674 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space[] [][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]uncon strain[][][]space[][][]dimensions [264] Overfull \hbox (8.692pt too wide) in paragraph at lines 709--710 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (22.33311pt too wide) in paragraph at lines 715--716 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]image[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]generalized[][][]affine[][][]image[] Overfull \hbox (9.71298pt too wide) in paragraph at lines 721--722 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage[][][]lhs[][][]rhs()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][ ][]Box[][][]generalized[][][]affine[] Overfull \hbox (10.38313pt too wide) in paragraph at lines 727--728 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]embed()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Bo x[][][]add[][][]space[][][]dimensions[] [265] Overfull \hbox (12.41316pt too wide) in paragraph at lines 733--734 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]project()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]add[][][]space[][][]dimensions[] Overfull \hbox (0.46318pt too wide) in paragraph at lines 745--746 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][] space[][][]dimensions()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][] []remove[][][]higher[][][]space[] Overfull \hbox (18.54198pt too wide) in paragraph at lines 769--770 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[ ][][]drop[][][]some[][][]non[][][]integer[][][]points Overfull \hbox (4.44347pt too wide) in paragraph at lines 775--776 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][ ][]Box[][][]drop[][][]some[][][]non[][][]integer[] [266] Overfull \hbox (14.72318pt too wide) in paragraph at lines 793--794 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[] [][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][] [][]Box[][][][]C[]C76[][][]widening[][][]assign[] Overfull \hbox (9.38174pt too wide) in paragraph at lines 805--806 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[][] []with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][]Box[][][]w idening[][][]assign[][][]with[][][]tokens Overfull \hbox (8.08255pt too wide) in paragraph at lines 817--818 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign[][][]with[][][]tokens()[] \OT1/pcr/m/n/8 int ppl[] [][][]Rational[][][][]Box[][][]limited[] Overfull \hbox (41.67317pt too wide) in paragraph at lines 823--824 []\OT1/ptm/b/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign()[] \OT1/pcr/m/n/8 int ppl[][][][]Rational[][][][] Box[][][]limited[][][][]C[]C76[][][]extrapolation[] [267] Overfull \hbox (8.37337pt too wide) in paragraph at lines 847--848 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Constraint[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][ ][][]Box[][][]recycle[][][][]Constraint[] Overfull \hbox (13.92343pt too wide) in paragraph at lines 853--854 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Congruence[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][ ][][]Box[][][]recycle[][][][]Congruence[] Overfull \hbox (1.89343pt too wide) in paragraph at lines 859--860 []\OT1/ptm/b/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Generator[][][][]System()[] \OT1/pcr/m/n/8 int ppl[][][]new[][][][]Rational[][] [][]Box[][][]recycle[][][][]Generator[] [268] Overfull \hbox (28.92343pt too wide) in paragraph at lines 895--896 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]M[]S[][][][]Rational[] Overfull \hbox (27.25351pt too wide) in paragraph at lines 901--902 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][]affine[ ][][]ranking[][][]function[][][][]P[]R[][][][]Rational[] Overfull \hbox (33.17323pt too wide) in paragraph at lines 907--908 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]M[]S[][][][]Rational[] Overfull \hbox (31.50331pt too wide) in paragraph at lines 913--914 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][]affine [][][]ranking[][][]functions[][][][]P[]R[][][][]Rational[] Overfull \hbox (37.52344pt too wide) in paragraph at lines 931--932 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]M[]S[][][][]Rational[] [269] Overfull \hbox (35.85352pt too wide) in paragraph at lines 937--938 []\OT1/ptm/b/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]one[][][] affine[][][]ranking[][][]function[][][][]P[]R[][][][]Rational[] Overfull \hbox (0.49321pt too wide) in paragraph at lines 943--944 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]M[]S[] Overfull \hbox (1.7033pt too wide) in paragraph at lines 949--950 []\OT1/ptm/b/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box[][][]2()[] \OT1/pcr/m/n/8 int ppl[][][]all[][][ ]affine[][][]ranking[][][]functions[][][][]P[]R[][][] ) [270] (./refman.ind Overfull \hbox (1.62616pt too wide) in paragraph at lines 14--16 []| \OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][ ][][]Overflow, [][]32[][] Overfull \hbox (12.22548pt too wide) in paragraph at lines 16--18 []| \OT1/ptm/bc/n/10 ppl[][][]enum[][][][]Bounded[][][][]Integer[][][][]Type[][ ][][]Representation, Overfull \hbox (0.87602pt too wide) in paragraph at lines 43--45 []\OT1/ptm/bc/n/10 ppl[][][][]Artificial[][][][]Parameter[][][][]Sequence[][][] const[][][]iterator[][][] Overfull \hbox (7.34506pt too wide) in paragraph at lines 47--48 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign Overfull \hbox (16.32657pt too wide) in paragraph at lines 50--51 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[] Overfull \hbox (7.19489pt too wide) in paragraph at lines 53--54 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign Overfull \hbox (16.17639pt too wide) in paragraph at lines 56--57 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[] Overfull \hbox (16.03653pt too wide) in paragraph at lines 65--66 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[] Overfull \hbox (4.37524pt too wide) in paragraph at lines 83--84 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]recycled[][][]congruences Overfull \hbox (1.02655pt too wide) in paragraph at lines 89--90 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (1.02655pt too wide) in paragraph at lines 92--93 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (0.40526pt too wide) in paragraph at lines 113--114 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]bounde d[][][]affine[][][]preimage Overfull \hbox (8.25665pt too wide) in paragraph at lines 128--129 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (0.87689pt too wide) in paragraph at lines 137--138 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (0.87689pt too wide) in paragraph at lines 140--141 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (0.47676pt too wide) in paragraph at lines 143--144 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpq[] [271] Overfull \hbox (4.11494pt too wide) in paragraph at lines 149--150 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes Overfull \hbox (8.26637pt too wide) in paragraph at lines 161--162 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]image[] Overfull \hbox (12.05476pt too wide) in paragraph at lines 164--165 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (21.03627pt too wide) in paragraph at lines 167--168 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]genera lized[][][]affine[][][]preimage[] Overfull \hbox (11.21477pt too wide) in paragraph at lines 176--177 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]congruences Overfull \hbox (4.56445pt too wide) in paragraph at lines 179--180 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[][ ][]minimized[][][]constraints Overfull \hbox (16.86626pt too wide) in paragraph at lines 191--192 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (35.0661pt too wide) in paragraph at lines 203--204 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (35.0661pt too wide) in paragraph at lines 206--207 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (19.51617pt too wide) in paragraph at lines 209--210 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (19.51617pt too wide) in paragraph at lines 212--213 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (13.3963pt too wide) in paragraph at lines 215--216 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (13.3963pt too wide) in paragraph at lines 218--219 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (2.88495pt too wide) in paragraph at lines 251--252 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]relati on[][][]with[][][][]Congruence Overfull \hbox (32.84482pt too wide) in paragraph at lines 260--261 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions Overfull \hbox (3.69502pt too wide) in paragraph at lines 263--264 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remove [][][]space[][][]dimensions Overfull \hbox (3.11646pt too wide) in paragraph at lines 266--267 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simpli fy[][][]using[][][]context[][][] Overfull \hbox (18.25612pt too wide) in paragraph at lines 272--273 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.72694pt too wide) in paragraph at lines 277--279 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.72694pt too wide) in paragraph at lines 279--281 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.57677pt too wide) in paragraph at lines 281--283 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (7.57677pt too wide) in paragraph at lines 283--285 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (17.92516pt too wide) in paragraph at lines 285--287 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]C[ ]C76[][][]narrowing[][][]assign, [272] Overfull \hbox (8.17526pt too wide) in paragraph at lines 287--289 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H7 9[][][]widening[][][]assign, Overfull \hbox (14.65677pt too wide) in paragraph at lines 289--291 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][][]H7 9[][][]widening[][][]assign[] Overfull \hbox (1.57555pt too wide) in paragraph at lines 295--297 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]congruences, [][]46[][] Overfull \hbox (26.87524pt too wide) in paragraph at lines 301--303 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]recycled[][][]congruences, Overfull \hbox (20.22493pt too wide) in paragraph at lines 303--305 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]recycled[][][]constraints, Overfull \hbox (17.42654pt too wide) in paragraph at lines 305--307 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (17.42654pt too wide) in paragraph at lines 307--309 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (1.34528pt too wide) in paragraph at lines 309--311 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]affi ne[][][]dimension, [][]43[][] Overfull \hbox (10.13536pt too wide) in paragraph at lines 319--321 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ded[][][]affine[][][]image, Overfull \hbox (22.90526pt too wide) in paragraph at lines 321--323 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ded[][][]affine[][][]preimage, Overfull \hbox (0.64575pt too wide) in paragraph at lines 323--325 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ds[][][]from[][][]above, Overfull \hbox (1.25548pt too wide) in paragraph at lines 325--327 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]boun ds[][][]from[][][]below, Overfull \hbox (9.35504pt too wide) in paragraph at lines 327--329 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]conc atenate[][][]assign, [][]47[][] Overfull \hbox (6.87675pt too wide) in paragraph at lines 331--333 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]cont ains[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.24504pt too wide) in paragraph at lines 333--335 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]cont ains[][][]integer[][][]point, Overfull \hbox (2.43513pt too wide) in paragraph at lines 335--337 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]diff erence[][][]assign, [][]47[][] Overfull \hbox (20.87689pt too wide) in paragraph at lines 337--339 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (20.87689pt too wide) in paragraph at lines 339--341 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (2.69687pt too wide) in paragraph at lines 341--343 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]equa ls[][][][]B[]D[][][][]Shape[][][] Overfull \hbox (21.34518pt too wide) in paragraph at lines 343--345 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]expa nd[][][]space[][][]dimension, Overfull \hbox (0.60683pt too wide) in paragraph at lines 345--347 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]exte rnal[][][]memory[][][] Overfull \hbox (12.61494pt too wide) in paragraph at lines 347--349 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]fold [][][]space[][][]dimensions, Overfull \hbox (0.2267pt too wide) in paragraph at lines 351--353 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (0.2267pt too wide) in paragraph at lines 353--355 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (0.2267pt too wide) in paragraph at lines 355--357 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (0.2267pt too wide) in paragraph at lines 357--359 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]gene ralized[][][]affine[] Overfull \hbox (33.71477pt too wide) in paragraph at lines 363--365 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[ ][][]minimized[][][]congruences, Overfull \hbox (27.06445pt too wide) in paragraph at lines 365--367 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]get[ ][][]minimized[][][]constraints, Overfull \hbox (8.81485pt too wide) in paragraph at lines 367--369 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]inte rsection[][][]assign, [][]47[][] Overfull \hbox (1.60646pt too wide) in paragraph at lines 373--375 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] [][]disjoint[][][]from[][][][]B[] Overfull \hbox (13.73477pt too wide) in paragraph at lines 377--379 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]is[] [][]topologically[][][]closed, Overfull \hbox (2.44666pt too wide) in paragraph at lines 381--383 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (2.44666pt too wide) in paragraph at lines 383--385 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (39.51617pt too wide) in paragraph at lines 385--387 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (39.51617pt too wide) in paragraph at lines 387--389 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (33.3963pt too wide) in paragraph at lines 389--391 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (33.3963pt too wide) in paragraph at lines 391--393 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (13.72493pt too wide) in paragraph at lines 395--397 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]map[ ][][]space[][][]dimensions, Overfull \hbox (6.51491pt too wide) in paragraph at lines 399--401 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]maxi mize[][][]with[][][]point, Overfull \hbox (4.85486pt too wide) in paragraph at lines 403--405 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]mini mize[][][]with[][][]point, Overfull \hbox (15.37523pt too wide) in paragraph at lines 405--407 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]congruence, Overfull \hbox (19.26512pt too wide) in paragraph at lines 407--409 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]congruences, Overfull \hbox (8.72491pt too wide) in paragraph at lines 409--411 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]constraint, Overfull \hbox (12.6148pt too wide) in paragraph at lines 411--413 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]refi ne[][][]with[][][]constraints, Overfull \hbox (25.38495pt too wide) in paragraph at lines 413--415 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]rela tion[][][]with[][][][]Congruence, Overfull \hbox (18.73463pt too wide) in paragraph at lines 415--417 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]rela tion[][][]with[][][][]Constraint, Overfull \hbox (17.04485pt too wide) in paragraph at lines 417--419 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]rela tion[][][]with[][][][]Generator, [273] Overfull \hbox (12.66692pt too wide) in paragraph at lines 419--421 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remo ve[][][]higher[][][]space[] Overfull \hbox (26.19502pt too wide) in paragraph at lines 421--423 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]remo ve[][][]space[][][]dimensions, Overfull \hbox (19.51645pt too wide) in paragraph at lines 423--425 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]simp lify[][][]using[][][]context[] Overfull \hbox (1.03522pt too wide) in paragraph at lines 425--427 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]spac e[][][]dimension, [][]43[][] Overfull \hbox (2.99632pt too wide) in paragraph at lines 427--429 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]stri ctly[][][]contains[][][][]B[] Overfull \hbox (8.52484pt too wide) in paragraph at lines 429--431 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]time [][][]elapse[][][]assign, [][]47[][] Overfull \hbox (5.49655pt too wide) in paragraph at lines 431--433 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topo logical[][][]closure[] Overfull \hbox (12.3349pt too wide) in paragraph at lines 433--435 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]tota l[][][]memory[][][]in[][][]bytes, Overfull \hbox (0.48671pt too wide) in paragraph at lines 435--437 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]unco nstrain[][][]space[] Overfull \hbox (0.48671pt too wide) in paragraph at lines 437--439 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]unco nstrain[][][]space[] Overfull \hbox (1.5055pt too wide) in paragraph at lines 439--441 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uppe r[][][]bound[][][]assign, Overfull \hbox (7.987pt too wide) in paragraph at lines 441--443 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uppe r[][][]bound[][][]assign[] Overfull \hbox (15.21655pt too wide) in paragraph at lines 445--447 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wide ning[][][]assign[][][]with[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 449--451 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 451--453 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 453--455 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 455--457 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (21.58662pt too wide) in paragraph at lines 457--459 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 467--469 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 469--471 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 471--473 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.99692pt too wide) in paragraph at lines 473--475 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.96535pt too wide) in paragraph at lines 475--477 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]C[][][][]Polyhedron, Overfull \hbox (27.44685pt too wide) in paragraph at lines 477--479 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (19.3869pt too wide) in paragraph at lines 479--481 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Congruence[] Overfull \hbox (12.73659pt too wide) in paragraph at lines 481--483 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Constraint[] Overfull \hbox (11.0468pt too wide) in paragraph at lines 483--485 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Generator[] Overfull \hbox (10.77678pt too wide) in paragraph at lines 487--489 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Grid[][][]with[] Overfull \hbox (35.40529pt too wide) in paragraph at lines 489--491 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (41.8868pt too wide) in paragraph at lines 491--493 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 493--495 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 495--497 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 497--499 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (12.16678pt too wide) in paragraph at lines 499--501 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (4.95668pt too wide) in paragraph at lines 501--503 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (4.95668pt too wide) in paragraph at lines 503--505 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (32.06493pt too wide) in paragraph at lines 505--507 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]from[][][]space[][][]dimension, Overfull \hbox (28.66681pt too wide) in paragraph at lines 507--509 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]recycle[][][][]Congruence[] Overfull \hbox (22.0165pt too wide) in paragraph at lines 509--511 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]recycle[][][][]Constraint[] Overfull \hbox (20.3267pt too wide) in paragraph at lines 511--513 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]recycle[][][][]Generator[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 513--515 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 515--517 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 517--519 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 519--521 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (3.18472pt too wide) in paragraph at lines 521--523 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class, Overfull \hbox (9.66623pt too wide) in paragraph at lines 523--525 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (0.96475pt too wide) in paragraph at lines 525--527 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class, Overfull \hbox (7.44626pt too wide) in paragraph at lines 527--529 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.11467pt too wide) in paragraph at lines 532--533 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]topolo gical[][][]closure[][][]assign [274] Overfull \hbox (16.77472pt too wide) in paragraph at lines 538--539 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimension Overfull \hbox (20.66461pt too wide) in paragraph at lines 541--542 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]uncons train[][][]space[][][]dimensions Overfull \hbox (1.29686pt too wide) in paragraph at lines 547--548 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][] Overfull \hbox (15.84479pt too wide) in paragraph at lines 553--554 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens Overfull \hbox (6.785pt too wide) in paragraph at lines 559--560 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign Overfull \hbox (15.76651pt too wide) in paragraph at lines 562--563 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[]H []M[]Z05[][][]widening[][][]assign[] Overfull \hbox (6.63483pt too wide) in paragraph at lines 565--566 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign Overfull \hbox (15.61633pt too wide) in paragraph at lines 568--569 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[]C 76[][][]extrapolation[][][]assign[] Overfull \hbox (15.47647pt too wide) in paragraph at lines 577--578 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H79[ ][][]widening[][][]assign[][][]with[] Overfull \hbox (3.81519pt too wide) in paragraph at lines 595--596 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]recycled[][][]congruences Overfull \hbox (0.46649pt too wide) in paragraph at lines 601--602 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (0.46649pt too wide) in paragraph at lines 604--605 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[][ ][]space[][][]dimensions[][][] Overfull \hbox (7.13654pt too wide) in paragraph at lines 640--641 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]contai ns[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (0.31683pt too wide) in paragraph at lines 649--650 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (0.31683pt too wide) in paragraph at lines 652--653 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop[] [][]some[][][]non[][][]integer[] Overfull \hbox (2.95665pt too wide) in paragraph at lines 655--656 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equals [][][][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (3.55489pt too wide) in paragraph at lines 661--662 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]extern al[][][]memory[][][]in[][][]bytes Overfull \hbox (7.70631pt too wide) in paragraph at lines 673--674 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]image[] Overfull \hbox (11.4947pt too wide) in paragraph at lines 676--677 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage Overfull \hbox (20.47621pt too wide) in paragraph at lines 679--680 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]genera lized[][][]affine[][][]preimage[] [275] Overfull \hbox (10.65471pt too wide) in paragraph at lines 688--689 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]congruences Overfull \hbox (4.0044pt too wide) in paragraph at lines 691--692 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[][ ][]minimized[][][]constraints Overfull \hbox (16.3062pt too wide) in paragraph at lines 703--704 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[][] []disjoint[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (34.50604pt too wide) in paragraph at lines 715--716 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (34.50604pt too wide) in paragraph at lines 718--719 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]B[]H[]M[]Z05[][][]extrapolation[] Overfull \hbox (18.95612pt too wide) in paragraph at lines 721--722 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (18.95612pt too wide) in paragraph at lines 724--725 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (12.83624pt too wide) in paragraph at lines 727--728 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (12.83624pt too wide) in paragraph at lines 730--731 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limite d[][][][]H79[][][]extrapolation[] Overfull \hbox (2.32489pt too wide) in paragraph at lines 763--764 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]relati on[][][]with[][][][]Congruence Overfull \hbox (32.28476pt too wide) in paragraph at lines 772--773 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]higher[][][]space[][][]dimensions Overfull \hbox (3.13496pt too wide) in paragraph at lines 775--776 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remove [][][]space[][][]dimensions Overfull \hbox (2.5564pt too wide) in paragraph at lines 778--779 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simpli fy[][][]using[][][]context[][][] Overfull \hbox (17.69606pt too wide) in paragraph at lines 784--785 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]strict ly[][][]contains[][][][]B[]D[][][][]Shape[] Overfull \hbox (7.16689pt too wide) in paragraph at lines 789--791 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.16689pt too wide) in paragraph at lines 791--793 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]B[ ]H[]M[]Z05[][][]widening[] Overfull \hbox (7.01671pt too wide) in paragraph at lines 793--795 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (7.01671pt too wide) in paragraph at lines 795--797 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[ ]C76[][][]extrapolation[] Overfull \hbox (17.3651pt too wide) in paragraph at lines 797--799 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]C[ ]C76[][][]narrowing[][][]assign, Overfull \hbox (7.6152pt too wide) in paragraph at lines 799--801 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H7 9[][][]widening[][][]assign, Overfull \hbox (14.09671pt too wide) in paragraph at lines 801--803 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][][]H7 9[][][]widening[][][]assign[] Overfull \hbox (1.01549pt too wide) in paragraph at lines 807--809 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]congruences, [][]67[][] Overfull \hbox (26.31519pt too wide) in paragraph at lines 813--815 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]recycled[][][]congruences, Overfull \hbox (19.66487pt too wide) in paragraph at lines 815--817 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]recycled[][][]constraints, Overfull \hbox (16.86649pt too wide) in paragraph at lines 817--819 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (16.86649pt too wide) in paragraph at lines 819--821 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]add[ ][][]space[][][]dimensions[] Overfull \hbox (0.78522pt too wide) in paragraph at lines 821--823 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]affi ne[][][]dimension, [][]64[][] [276] Overfull \hbox (9.5753pt too wide) in paragraph at lines 831--833 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]boun ded[][][]affine[][][]image, Overfull \hbox (22.3452pt too wide) in paragraph at lines 833--835 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]boun ded[][][]affine[][][]preimage, Overfull \hbox (0.69542pt too wide) in paragraph at lines 837--839 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]boun ds[][][]from[][][]below, Overfull \hbox (8.79498pt too wide) in paragraph at lines 839--841 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]conc atenate[][][]assign, [][]68[][] Overfull \hbox (6.3167pt too wide) in paragraph at lines 843--845 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]cont ains[][][][]B[]D[][][][]Shape[] Overfull \hbox (9.68498pt too wide) in paragraph at lines 845--847 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]cont ains[][][]integer[][][]point, Overfull \hbox (1.87508pt too wide) in paragraph at lines 847--849 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]diff erence[][][]assign, [][]68[][] Overfull \hbox (20.31683pt too wide) in paragraph at lines 849--851 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (20.31683pt too wide) in paragraph at lines 851--853 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]drop [][][]some[][][]non[][][]integer[] Overfull \hbox (2.13681pt too wide) in paragraph at lines 853--855 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]equa ls[][][][]B[]D[][][][]Shape[][][] Overfull \hbox (20.78513pt too wide) in paragraph at lines 855--857 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]expa nd[][][]space[][][]dimension, Overfull \hbox (12.05489pt too wide) in paragraph at lines 859--861 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]fold [][][]space[][][]dimensions, Overfull \hbox (3.26665pt too wide) in paragraph at lines 863--865 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (3.26665pt too wide) in paragraph at lines 865--867 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (3.26665pt too wide) in paragraph at lines 867--869 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (3.26665pt too wide) in paragraph at lines 869--871 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]gene ralized[][][]affine[][][] Overfull \hbox (33.15471pt too wide) in paragraph at lines 875--877 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[ ][][]minimized[][][]congruences, Overfull \hbox (26.5044pt too wide) in paragraph at lines 877--879 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]get[ ][][]minimized[][][]constraints, Overfull \hbox (8.25479pt too wide) in paragraph at lines 879--881 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]inte rsection[][][]assign, [][]68[][] Overfull \hbox (1.0464pt too wide) in paragraph at lines 885--887 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[] [][]disjoint[][][]from[][][][]B[] Overfull \hbox (13.17471pt too wide) in paragraph at lines 889--891 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]is[] [][]topologically[][][]closed, Overfull \hbox (1.8866pt too wide) in paragraph at lines 893--895 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (1.8866pt too wide) in paragraph at lines 895--897 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]B[]H[]M[]Z05[][][] Overfull \hbox (38.95612pt too wide) in paragraph at lines 897--899 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (38.95612pt too wide) in paragraph at lines 899--901 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (32.83624pt too wide) in paragraph at lines 901--903 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (32.83624pt too wide) in paragraph at lines 903--905 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]limi ted[][][][]H79[][][]extrapolation[] Overfull \hbox (13.16487pt too wide) in paragraph at lines 907--909 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]map[ ][][]space[][][]dimensions, Overfull \hbox (5.95485pt too wide) in paragraph at lines 911--913 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]maxi mize[][][]with[][][]point, Overfull \hbox (4.2948pt too wide) in paragraph at lines 915--917 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]mini mize[][][]with[][][]point, Overfull \hbox (14.81517pt too wide) in paragraph at lines 917--919 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]congruence, Overfull \hbox (18.70506pt too wide) in paragraph at lines 919--921 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]congruences, Overfull \hbox (8.16486pt too wide) in paragraph at lines 921--923 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]constraint, Overfull \hbox (12.05475pt too wide) in paragraph at lines 923--925 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]refi ne[][][]with[][][]constraints, Overfull \hbox (24.82489pt too wide) in paragraph at lines 925--927 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]rela tion[][][]with[][][][]Congruence, Overfull \hbox (18.17458pt too wide) in paragraph at lines 927--929 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]rela tion[][][]with[][][][]Constraint, Overfull \hbox (16.48479pt too wide) in paragraph at lines 929--931 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]rela tion[][][]with[][][][]Generator, Overfull \hbox (12.10686pt too wide) in paragraph at lines 931--933 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remo ve[][][]higher[][][]space[] Overfull \hbox (25.63496pt too wide) in paragraph at lines 933--935 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]remo ve[][][]space[][][]dimensions, Overfull \hbox (18.95639pt too wide) in paragraph at lines 935--937 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]simp lify[][][]using[][][]context[] Overfull \hbox (0.47516pt too wide) in paragraph at lines 937--939 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]spac e[][][]dimension, [][]63[][] Overfull \hbox (2.43626pt too wide) in paragraph at lines 939--941 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]stri ctly[][][]contains[][][][]B[] Overfull \hbox (7.96478pt too wide) in paragraph at lines 941--943 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]time [][][]elapse[][][]assign, [][]68[][] Overfull \hbox (4.9365pt too wide) in paragraph at lines 943--945 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topo logical[][][]closure[] Overfull \hbox (11.77484pt too wide) in paragraph at lines 945--947 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]tota l[][][]memory[][][]in[][][]bytes, Overfull \hbox (3.52666pt too wide) in paragraph at lines 947--949 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]unco nstrain[][][]space[][][] Overfull \hbox (3.52666pt too wide) in paragraph at lines 949--951 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]unco nstrain[][][]space[][][] [277] Overfull \hbox (0.94543pt too wide) in paragraph at lines 951--953 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uppe r[][][]bound[][][]assign, Overfull \hbox (7.42694pt too wide) in paragraph at lines 953--955 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uppe r[][][]bound[][][]assign[] Overfull \hbox (14.6565pt too wide) in paragraph at lines 957--959 []| \OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wide ning[][][]assign[][][]with[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 961--963 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.73672pt too wide) in paragraph at lines 963--965 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 965--967 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (10.51675pt too wide) in paragraph at lines 967--969 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (21.02657pt too wide) in paragraph at lines 969--971 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 979--981 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 981--983 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 983--985 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (12.43686pt too wide) in paragraph at lines 985--987 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.40529pt too wide) in paragraph at lines 987--989 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]C[][][][]Polyhedron, Overfull \hbox (26.8868pt too wide) in paragraph at lines 989--991 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (18.82684pt too wide) in paragraph at lines 991--993 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Congruence[] Overfull \hbox (12.17653pt too wide) in paragraph at lines 993--995 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Constraint[] Overfull \hbox (10.48674pt too wide) in paragraph at lines 995--997 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Generator[] Overfull \hbox (10.21672pt too wide) in paragraph at lines 999--1001 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Grid[][][]with[] Overfull \hbox (34.84523pt too wide) in paragraph at lines 1001--1003 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (41.32674pt too wide) in paragraph at lines 1003--1005 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1005--1007 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1007--1009 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1009--1011 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (11.60672pt too wide) in paragraph at lines 1011--1013 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Octagonal[] Overfull \hbox (4.39662pt too wide) in paragraph at lines 1013--1015 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (4.39662pt too wide) in paragraph at lines 1015--1017 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][][]Rational[] Overfull \hbox (31.50487pt too wide) in paragraph at lines 1017--1019 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]from[][][]space[][][]dimension, Overfull \hbox (28.10675pt too wide) in paragraph at lines 1019--1021 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]recycle[][][][]Congruence[] Overfull \hbox (21.45644pt too wide) in paragraph at lines 1021--1023 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]recycle[][][][]Constraint[] Overfull \hbox (19.76665pt too wide) in paragraph at lines 1023--1025 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]recycle[][][][]Generator[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 1025--1027 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (13.28705pt too wide) in paragraph at lines 1027--1029 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 1029--1031 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (11.06708pt too wide) in paragraph at lines 1031--1033 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]B[]D[][][][]Shape[] Overfull \hbox (2.62466pt too wide) in paragraph at lines 1033--1035 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class, Overfull \hbox (9.10617pt too wide) in paragraph at lines 1035--1037 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.4047pt too wide) in paragraph at lines 1037--1039 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class, Overfull \hbox (6.8862pt too wide) in paragraph at lines 1039--1041 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]B[]D[][] [][]Shape[][][]mpz[][][]class[] Overfull \hbox (4.55461pt too wide) in paragraph at lines 1044--1045 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]topolo gical[][][]closure[][][]assign Overfull \hbox (16.21466pt too wide) in paragraph at lines 1050--1051 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimension Overfull \hbox (20.10455pt too wide) in paragraph at lines 1053--1054 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]uncons train[][][]space[][][]dimensions Overfull \hbox (0.7368pt too wide) in paragraph at lines 1059--1060 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]upper[ ][][]bound[][][]assign[][][]if[][][] Overfull \hbox (15.28473pt too wide) in paragraph at lines 1065--1066 []\OT1/ptm/bc/n/10 ppl[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wideni ng[][][]assign[][][]with[][][]tokens [278] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1081--1083 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1083--1084 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1084--1086 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1086--1087 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1087--1089 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1089--1090 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1090--1092 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1092--1093 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1093--1095 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1095--1096 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1096--1098 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.88673pt too wide) in paragraph at lines 1098--1099 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]add[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1099--1101 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.36656pt too wide) in paragraph at lines 1101--1102 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1102--1104 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.36656pt too wide) in paragraph at lines 1104--1105 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1105--1107 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.36656pt too wide) in paragraph at lines 1107--1108 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]affine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1108--1110 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17635pt too wide) in paragraph at lines 1110--1111 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1111--1113 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17635pt too wide) in paragraph at lines 1113--1114 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]ascii[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1114--1116 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (18.28673pt too wide) in paragraph at lines 1116--1117 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1117--1119 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (18.28673pt too wide) in paragraph at lines 1119--1120 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounded[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1120--1122 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.73668pt too wide) in paragraph at lines 1122--1123 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1123--1125 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.73668pt too wide) in paragraph at lines 1125--1126 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]bounds[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1126--1128 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (31.04622pt too wide) in paragraph at lines 1128--1129 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]concatenate[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1129--1131 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (15.41469pt too wide) in paragraph at lines 1131--1132 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]constrains Overfull \hbox (0.24678pt too wide) in paragraph at lines 1132--1134 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (17.17635pt too wide) in paragraph at lines 1134--1135 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]contains[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1135--1137 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (24.12631pt too wide) in paragraph at lines 1137--1138 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]difference[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1138--1140 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17674pt too wide) in paragraph at lines 1140--1141 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1141--1143 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.17674pt too wide) in paragraph at lines 1143--1144 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]drop[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1144--1146 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (9.39645pt too wide) in paragraph at lines 1146--1147 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]equals[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1147--1149 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.57677pt too wide) in paragraph at lines 1149--1150 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]expand[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1150--1152 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (15.90645pt too wide) in paragraph at lines 1152--1153 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]external[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1153--1155 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (3.55664pt too wide) in paragraph at lines 1155--1156 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]fold[][][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1156--1158 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [279] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1158--1159 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1159--1161 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1161--1162 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1162--1164 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1164--1165 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1165--1167 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (29.93623pt too wide) in paragraph at lines 1167--1168 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]generalized[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1168--1170 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.50603pt too wide) in paragraph at lines 1170--1171 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]intersection[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1171--1173 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (19.57501pt too wide) in paragraph at lines 1173--1174 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]bounded Overfull \hbox (0.24678pt too wide) in paragraph at lines 1174--1176 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (16.23453pt too wide) in paragraph at lines 1176--1177 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]discrete Overfull \hbox (0.24678pt too wide) in paragraph at lines 1177--1179 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (24.12604pt too wide) in paragraph at lines 1179--1180 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]disjoint[] Overfull \hbox (7.9769pt too wide) in paragraph at lines 1179--1180 [][]\OT1/ptm/bc/n/10 from[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1180--1182 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (10.1348pt too wide) in paragraph at lines 1182--1183 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]empty Overfull \hbox (0.24678pt too wide) in paragraph at lines 1183--1185 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (46.89592pt too wide) in paragraph at lines 1185--1186 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]topologically[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1186--1188 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (18.61479pt too wide) in paragraph at lines 1188--1189 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]is[][][]universe Overfull \hbox (0.24678pt too wide) in paragraph at lines 1189--1191 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.06662pt too wide) in paragraph at lines 1191--1192 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]map[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1192--1194 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.30467pt too wide) in paragraph at lines 1194--1195 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize Overfull \hbox (0.24678pt too wide) in paragraph at lines 1195--1197 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (23.28618pt too wide) in paragraph at lines 1197--1198 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]maximize[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1198--1200 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (12.64462pt too wide) in paragraph at lines 1200--1201 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize Overfull \hbox (0.24678pt too wide) in paragraph at lines 1201--1203 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.62613pt too wide) in paragraph at lines 1203--1204 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]minimize[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1204--1206 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1206--1207 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1207--1209 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1209--1210 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1210--1212 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1212--1213 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1213--1215 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61656pt too wide) in paragraph at lines 1215--1216 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]refine[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1216--1218 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.3963pt too wide) in paragraph at lines 1218--1219 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1219--1221 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.3963pt too wide) in paragraph at lines 1221--1222 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1222--1224 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.3963pt too wide) in paragraph at lines 1224--1225 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]relation[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1225--1227 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (13.53671pt too wide) in paragraph at lines 1227--1228 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1228--1230 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (13.53671pt too wide) in paragraph at lines 1230--1231 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]remove[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1231--1233 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.0565pt too wide) in paragraph at lines 1233--1234 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]space[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1234--1236 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (11.62614pt too wide) in paragraph at lines 1236--1237 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]strictly[] Overfull \hbox (21.86665pt too wide) in paragraph at lines 1236--1237 [][]\OT1/ptm/bc/n/10 contains[][][][]Constraints[][][][]Product[][][][]C[][][][ ]Polyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1237--1239 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.60513pt too wide) in paragraph at lines 1239--1241 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]tag, [][]84[][] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1241--1243 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [280] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1243--1245 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1245--1247 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1247--1249 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1249--1251 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1251--1253 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1253--1255 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1255--1257 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1257--1259 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1259--1261 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1261--1263 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1263--1265 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1265--1267 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1267--1269 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1269--1271 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1271--1273 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1273--1275 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1275--1277 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1277--1279 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.86665pt too wide) in paragraph at lines 1277--1279 [][]\OT1/ptm/bc/n/10 contains[][][][]Constraints[][][][]Product[][][][]C[][][][ ]Polyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1279--1281 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1281--1283 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1283--1285 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1285--1287 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (14.08676pt too wide) in paragraph at lines 1285--1287 [][]\OT1/ptm/bc/n/10 equals[][][][]Constraints[][][][]Product[][][][]C[][][][]P olyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1287--1289 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1289--1291 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1291--1293 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1293--1295 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1295--1297 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1297--1299 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1299--1301 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1301--1303 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1303--1305 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1305--1307 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1307--1309 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.14642pt too wide) in paragraph at lines 1307--1309 [][]\OT1/ptm/bc/n/10 is[][][]disjoint[][][]from[][][][]Constraints[][][][]Produ ct[][][][]C[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1309--1311 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1311--1313 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1313--1315 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1315--1317 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1317--1319 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1319--1321 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1321--1323 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1323--1325 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1325--1327 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1327--1329 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1329--1331 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1331--1333 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1333--1335 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1335--1337 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1337--1339 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1339--1341 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1341--1343 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1343--1345 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1345--1347 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (3.53629pt too wide) in paragraph at lines 1345--1347 [][]\OT1/ptm/bc/n/10 strictly[][][]contains[][][][]Constraints[][][][]Product[] [][][]C[] [281] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1347--1349 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1349--1351 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1351--1353 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1353--1355 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1355--1357 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1357--1359 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1359--1361 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1361--1363 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1363--1365 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (5.79657pt too wide) in paragraph at lines 1365--1367 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Constraints[][][][]Product[][][][]C [][][][]Polyhedron[] Overfull \hbox (20.51643pt too wide) in paragraph at lines 1367--1369 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product [][][][]C[][][][]Polyhedron[] Overfull \hbox (15.51656pt too wide) in paragraph at lines 1369--1371 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[ ][][][]C[][][][]Polyhedron[] Overfull \hbox (12.1866pt too wide) in paragraph at lines 1371--1373 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1373--1375 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1375--1377 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (36.35501pt too wide) in paragraph at lines 1375--1377 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[ ][][]with[][][]complexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1377--1379 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1379--1381 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (35.79495pt too wide) in paragraph at lines 1379--1381 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[ ][][]with[][][]complexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1381--1383 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1383--1385 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (6.38548pt too wide) in paragraph at lines 1383--1385 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]C[][][][]Polyhedron[][][]with[][][]com plexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1385--1387 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1387--1389 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1389--1391 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (26.9067pt too wide) in paragraph at lines 1389--1391 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1391--1393 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (26.9067pt too wide) in paragraph at lines 1391--1393 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1393--1395 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1395--1397 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1397--1399 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1399--1401 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (20.82542pt too wide) in paragraph at lines 1399--1401 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][ ][]complexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1401--1403 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (5.7554pt too wide) in paragraph at lines 1401--1403 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass, [][]89[][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1403--1405 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (0.21689pt too wide) in paragraph at lines 1403--1405 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1405--1407 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (5.19534pt too wide) in paragraph at lines 1405--1407 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass, [][]89[][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1407--1409 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (3.25684pt too wide) in paragraph at lines 1407--1409 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1409--1411 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.92688pt too wide) in paragraph at lines 1411--1413 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (4.16524pt too wide) in paragraph at lines 1411--1413 []\OT1/ptm/bc/n/10 Grid[][][]from[][][][]Rational[][][][]Box[][][]with[][][]com plexity, Overfull \hbox (1.92688pt too wide) in paragraph at lines 1413--1415 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][ ][][]Polyhedron[][][] Overfull \hbox (1.6264pt too wide) in paragraph at lines 1415--1416 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]time[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1416--1418 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (28.84624pt too wide) in paragraph at lines 1418--1419 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]topological[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1419--1421 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (1.6264pt too wide) in paragraph at lines 1421--1422 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]total[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1422--1424 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.5063pt too wide) in paragraph at lines 1424--1425 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1425--1427 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.5063pt too wide) in paragraph at lines 1427--1428 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]unconstrain[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1428--1430 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61668pt too wide) in paragraph at lines 1430--1431 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1431--1433 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (6.61668pt too wide) in paragraph at lines 1433--1434 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]upper[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1434--1436 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.06648pt too wide) in paragraph at lines 1436--1437 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[] [282] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1437--1439 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (21.06648pt too wide) in paragraph at lines 1439--1440 []\OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Polyhe dron[][][][]Grid[][][]widening[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 1440--1442 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (33.42464pt too wide) in paragraph at lines 1525--1526 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]lhs[][][]rhs[][][]with[][][]congruence Overfull \hbox (2.33499pt too wide) in paragraph at lines 1527--1528 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][][ ]with[][][]congruence Overfull \hbox (5.48631pt too wide) in paragraph at lines 1533--1534 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]lhs[][][]rhs[][][]with[] Overfull \hbox (15.10489pt too wide) in paragraph at lines 1535--1536 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage[] [][]with[][][]congruence [283] Overfull \hbox (2.84631pt too wide) in paragraph at lines 1569--1570 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapolat ion[][][]assign[] Overfull \hbox (15.89598pt too wide) in paragraph at lines 1573--1574 []\OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapolati on[][][]assign[][][]with[] Overfull \hbox (8.24542pt too wide) in paragraph at lines 1631--1633 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]a nd[][][]embed, [][]120[][] Overfull \hbox (9.35527pt too wide) in paragraph at lines 1633--1635 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]add[][][]space[][][]dimensions[][][]a nd[][][]project, [][]120[][] Overfull \hbox (0.48692pt too wide) in paragraph at lines 1654--1656 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]congruence[][][]widening[][][]assign[ ][][]with[][][] Overfull \hbox (1.87517pt too wide) in paragraph at lines 1677--1679 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][ ][]lhs[][][]rhs, [][]119[][] Overfull \hbox (12.71642pt too wide) in paragraph at lines 1679--1681 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][ ][]lhs[][][]rhs[][][]with[] [284] Overfull \hbox (24.83499pt too wide) in paragraph at lines 1681--1683 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]image[][ ][]with[][][]congruence, Overfull \hbox (14.64507pt too wide) in paragraph at lines 1685--1687 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage [][][]lhs[][][]rhs, [][]119[][] Overfull \hbox (4.10655pt too wide) in paragraph at lines 1687--1689 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage [][][]lhs[][][]rhs[] Overfull \hbox (37.60489pt too wide) in paragraph at lines 1689--1691 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generalized[][][]affine[][][]preimage [][][]with[][][]congruence, Overfull \hbox (11.68506pt too wide) in paragraph at lines 1693--1695 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]generator[][][]widening[][][]assign[] [][]with[][][]tokens, Overfull \hbox (16.3648pt too wide) in paragraph at lines 1717--1719 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapol ation[][][]assign, Overfull \hbox (22.84631pt too wide) in paragraph at lines 1719--1721 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]congruence[][][]extrapol ation[][][]assign[] Overfull \hbox (8.03471pt too wide) in paragraph at lines 1721--1723 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapola tion[][][]assign, Overfull \hbox (14.51622pt too wide) in paragraph at lines 1723--1725 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]limited[][][]generator[][][]extrapola tion[][][]assign[] Overfull \hbox (4.34547pt too wide) in paragraph at lines 1749--1751 []| \OT1/ptm/bc/n/10 ppl[][][][]Grid[][][]remove[][][]higher[][][]space[][][]di mensions, [][]120[][] Overfull \hbox (8.27534pt too wide) in paragraph at lines 1780--1782 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Grid[][][]2, [][]124[][] Overfull \hbox (6.05537pt too wide) in paragraph at lines 1784--1786 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Grid[][][]2, [][]124[][] Overfull \hbox (10.77678pt too wide) in paragraph at lines 1794--1796 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shap e[][][]mpq[][][]class[][][]with[] Overfull \hbox (10.21672pt too wide) in paragraph at lines 1798--1800 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shap e[][][]mpz[][][]class[][][]with[] Overfull \hbox (22.7753pt too wide) in paragraph at lines 1802--1804 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhed ron[][][]with[][][]complexity, Overfull \hbox (8.54533pt too wide) in paragraph at lines 1810--1812 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][][]Gene rator[][][][]System, [][]112[][] Overfull \hbox (1.74548pt too wide) in paragraph at lines 1812--1814 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Grid[][][]with[] [][]complexity, [][]111[][] Overfull \hbox (37.21524pt too wide) in paragraph at lines 1816--1818 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]P olyhedron[][][]with[][][]complexity, Overfull \hbox (10.1252pt too wide) in paragraph at lines 1818--1820 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class, Overfull \hbox (16.6067pt too wide) in paragraph at lines 1820--1822 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpq[][][]class[] Overfull \hbox (9.56514pt too wide) in paragraph at lines 1822--1824 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class, Overfull \hbox (16.04665pt too wide) in paragraph at lines 1824--1826 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][ ]Shape[][][]mpz[][][]class[] Overfull \hbox (20.55505pt too wide) in paragraph at lines 1828--1830 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Rational[][][][] Box[][][]with[][][]complexity, Overfull \hbox (4.23552pt too wide) in paragraph at lines 1832--1834 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Congruence[][ ][][]System, [][]122[][] Overfull \hbox (0.80522pt too wide) in paragraph at lines 1836--1838 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]recycle[][][][]Grid[][][][]G enerator[][][][]System, Overfull \hbox (0.22566pt too wide) in paragraph at lines 1838--1840 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Grid, [][]123[][] Overfull \hbox (8.82567pt too wide) in paragraph at lines 1840--1842 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Grid[][][]2, [][]124[][] Overfull \hbox (6.6057pt too wide) in paragraph at lines 1844--1846 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Grid[][][]2, [][]124[][] [285] Overfull \hbox (14.93663pt too wide) in paragraph at lines 1891--1892 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.93663pt too wide) in paragraph at lines 1894--1895 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.78645pt too wide) in paragraph at lines 1897--1898 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (14.78645pt too wide) in paragraph at lines 1900--1901 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (3.01672pt too wide) in paragraph at lines 1903--1904 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][][ ]C[]C76[][][]narrowing[] Overfull \hbox (31.58493pt too wide) in paragraph at lines 1921--1922 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]congruences Overfull \hbox (24.93462pt too wide) in paragraph at lines 1924--1925 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]recycled[][][]constraints Overfull \hbox (24.63623pt too wide) in paragraph at lines 1927--1928 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (24.63623pt too wide) in paragraph at lines 1930--1931 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (14.84505pt too wide) in paragraph at lines 1948--1949 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]image Overfull \hbox (27.61494pt too wide) in paragraph at lines 1951--1952 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounded[][][]affine[][][]preimage Overfull \hbox (5.35544pt too wide) in paragraph at lines 1954--1955 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]above Overfull \hbox (5.96516pt too wide) in paragraph at lines 1957--1958 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]b ounds[][][]from[][][]below Overfull \hbox (2.04471pt too wide) in paragraph at lines 1960--1961 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c oncatenate[][][]assign Overfull \hbox (13.2563pt too wide) in paragraph at lines 1966--1967 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][][]Octagonal[] Overfull \hbox (3.37645pt too wide) in paragraph at lines 1969--1970 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]c ontains[][][]integer[][][] Overfull \hbox (0.46686pt too wide) in paragraph at lines 1975--1976 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][] Overfull \hbox (0.46686pt too wide) in paragraph at lines 1978--1979 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]d rop[][][]some[][][]non[][][] Overfull \hbox (5.47641pt too wide) in paragraph at lines 1981--1982 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e quals[][][][]Octagonal[] [286] Overfull \hbox (26.05487pt too wide) in paragraph at lines 1984--1985 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xpand[][][]space[][][]dimension Overfull \hbox (4.2165pt too wide) in paragraph at lines 1987--1988 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]e xternal[][][]memory[] Overfull \hbox (17.32463pt too wide) in paragraph at lines 1990--1991 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]f old[][][]space[][][]dimensions Overfull \hbox (7.43639pt too wide) in paragraph at lines 1996--1997 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (7.43639pt too wide) in paragraph at lines 1999--2000 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (7.43639pt too wide) in paragraph at lines 2002--2003 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (7.43639pt too wide) in paragraph at lines 2005--2006 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (38.42445pt too wide) in paragraph at lines 2014--2015 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]congruences Overfull \hbox (31.77414pt too wide) in paragraph at lines 2017--2018 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]g et[][][]minimized[][][]constraints Overfull \hbox (1.50452pt too wide) in paragraph at lines 2020--2021 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i ntersection[][][]assign Overfull \hbox (2.14622pt too wide) in paragraph at lines 2029--2030 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]disjoint[][][]from[][][] Overfull \hbox (1.8763pt too wide) in paragraph at lines 2035--2036 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]i s[][][]topologically[][][] Overfull \hbox (6.05634pt too wide) in paragraph at lines 2041--2042 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (6.05634pt too wide) in paragraph at lines 2044--2045 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (46.72586pt too wide) in paragraph at lines 2047--2048 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (46.72586pt too wide) in paragraph at lines 2050--2051 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (18.43462pt too wide) in paragraph at lines 2056--2057 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m ap[][][]space[][][]dimensions Overfull \hbox (11.2246pt too wide) in paragraph at lines 2062--2063 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m aximize[][][]with[][][]point Overfull \hbox (9.56454pt too wide) in paragraph at lines 2068--2069 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]m inimize[][][]with[][][]point Overfull \hbox (20.08492pt too wide) in paragraph at lines 2071--2072 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruence Overfull \hbox (23.97481pt too wide) in paragraph at lines 2074--2075 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]congruences Overfull \hbox (13.4346pt too wide) in paragraph at lines 2077--2078 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraint Overfull \hbox (17.3245pt too wide) in paragraph at lines 2080--2081 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r efine[][][]with[][][]constraints Overfull \hbox (30.09464pt too wide) in paragraph at lines 2083--2084 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Congruence Overfull \hbox (23.44432pt too wide) in paragraph at lines 2086--2087 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Constraint Overfull \hbox (21.75453pt too wide) in paragraph at lines 2089--2090 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r elation[][][]with[][][][]Generator Overfull \hbox (19.8766pt too wide) in paragraph at lines 2092--2093 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]higher[][][]space[] Overfull \hbox (30.90471pt too wide) in paragraph at lines 2095--2096 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]r emove[][][]space[][][]dimensions Overfull \hbox (26.72614pt too wide) in paragraph at lines 2098--2099 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s implify[][][]using[][][]context[] Overfull \hbox (3.53609pt too wide) in paragraph at lines 2104--2105 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]s trictly[][][]contains[][][] Overfull \hbox (34.93663pt too wide) in paragraph at lines 2109--2111 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.93663pt too wide) in paragraph at lines 2111--2113 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.78645pt too wide) in paragraph at lines 2113--2115 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (34.78645pt too wide) in paragraph at lines 2115--2117 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (23.01672pt too wide) in paragraph at lines 2117--2119 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ][]C[]C76[][][]narrowing[] [287] Overfull \hbox (12.87532pt too wide) in paragraph at lines 2121--2123 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]congruence, Overfull \hbox (16.76521pt too wide) in paragraph at lines 2123--2125 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]congruences, Overfull \hbox (6.225pt too wide) in paragraph at lines 2125--2127 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]constraint, Overfull \hbox (10.1149pt too wide) in paragraph at lines 2127--2129 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]constraints, Overfull \hbox (6.98682pt too wide) in paragraph at lines 2129--2131 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (6.98682pt too wide) in paragraph at lines 2131--2133 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (44.63623pt too wide) in paragraph at lines 2133--2135 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (44.63623pt too wide) in paragraph at lines 2135--2137 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (16.53494pt too wide) in paragraph at lines 2137--2139 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]affine[][][]dimension, Overfull \hbox (16.32512pt too wide) in paragraph at lines 2139--2141 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]affine[][][]image, [][]144[][] Overfull \hbox (12.075pt too wide) in paragraph at lines 2141--2143 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]affine[][][]preimage, Overfull \hbox (10.47513pt too wide) in paragraph at lines 2143--2145 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]ascii[][][]dump, [][]151[][] Overfull \hbox (4.91507pt too wide) in paragraph at lines 2145--2147 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]ascii[][][]load, [][]151[][] Overfull \hbox (15.78688pt too wide) in paragraph at lines 2147--2149 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (15.78688pt too wide) in paragraph at lines 2149--2151 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (7.15686pt too wide) in paragraph at lines 2151--2153 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (7.15686pt too wide) in paragraph at lines 2153--2155 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (2.42659pt too wide) in paragraph at lines 2155--2157 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]concatenate[] Overfull \hbox (6.31508pt too wide) in paragraph at lines 2157--2159 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]constrains, [][]143[][] Overfull \hbox (33.2563pt too wide) in paragraph at lines 2159--2161 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]contains[][][][]Octagonal[] Overfull \hbox (19.77644pt too wide) in paragraph at lines 2161--2163 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]contains[][][]integer[] Overfull \hbox (17.6248pt too wide) in paragraph at lines 2163--2165 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]difference[][][]assign, Overfull \hbox (1.86685pt too wide) in paragraph at lines 2165--2167 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (1.86685pt too wide) in paragraph at lines 2167--2169 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (25.47641pt too wide) in paragraph at lines 2169--2171 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]equals[][][][]Octagonal[] Overfull \hbox (9.76686pt too wide) in paragraph at lines 2171--2173 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]expand[][][]space[] Overfull \hbox (24.2165pt too wide) in paragraph at lines 2173--2175 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]external[][][]memory[] Overfull \hbox (0.74673pt too wide) in paragraph at lines 2175--2177 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]fold[][][]space[][][] Overfull \hbox (5.5955pt too wide) in paragraph at lines 2177--2179 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]frequency, [][]141[][] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2179--2181 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2181--2183 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2183--2185 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (1.3166pt too wide) in paragraph at lines 2185--2187 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]generalized[] Overfull \hbox (14.5451pt too wide) in paragraph at lines 2187--2189 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]congruences, Overfull \hbox (7.89479pt too wide) in paragraph at lines 2189--2191 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]constraints, Overfull \hbox (13.82634pt too wide) in paragraph at lines 2191--2193 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (13.82634pt too wide) in paragraph at lines 2193--2195 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (1.8864pt too wide) in paragraph at lines 2195--2197 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]intersection[] Overfull \hbox (10.4754pt too wide) in paragraph at lines 2197--2199 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]bounded, [][]139[][] Overfull \hbox (7.13492pt too wide) in paragraph at lines 2199--2201 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]discrete, [][]139[][] Overfull \hbox (18.54622pt too wide) in paragraph at lines 2201--2203 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]disjoint[][][]from[] Overfull \hbox (1.03519pt too wide) in paragraph at lines 2203--2205 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]empty, [][]139[][] Overfull \hbox (18.27629pt too wide) in paragraph at lines 2205--2207 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]topologically[] Overfull \hbox (9.51518pt too wide) in paragraph at lines 2207--2209 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]is[][][]universe, [][]139[][] Overfull \hbox (1.05646pt too wide) in paragraph at lines 2209--2211 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (1.05646pt too wide) in paragraph at lines 2211--2213 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (13.03535pt too wide) in paragraph at lines 2211--2213 \OT1/ptm/bc/n/10 M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens, [ ][]147[][] Overfull \hbox (10.50641pt too wide) in paragraph at lines 2213--2215 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (10.50641pt too wide) in paragraph at lines 2215--2217 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (9.00475pt too wide) in paragraph at lines 2217--2219 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]linear[][][]partition, Overfull \hbox (1.85672pt too wide) in paragraph at lines 2219--2221 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]map[][][]space[][][] Overfull \hbox (5.20506pt too wide) in paragraph at lines 2221--2223 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]maximize, [][]140[][] Overfull \hbox (16.04631pt too wide) in paragraph at lines 2223--2225 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]maximize[][][]with[] Overfull \hbox (3.54501pt too wide) in paragraph at lines 2225--2227 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]minimize, [][]140[][] Overfull \hbox (14.38626pt too wide) in paragraph at lines 2227--2229 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]minimize[][][]with[] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2229--2231 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2231--2233 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2233--2235 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.9767pt too wide) in paragraph at lines 2235--2237 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]refine[][][]with[][][] [288] Overfull \hbox (7.15643pt too wide) in paragraph at lines 2237--2239 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]relation[][][]with[] Overfull \hbox (7.15643pt too wide) in paragraph at lines 2239--2241 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]relation[][][]with[] Overfull \hbox (7.15643pt too wide) in paragraph at lines 2241--2243 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]relation[][][]with[] Overfull \hbox (14.06688pt too wide) in paragraph at lines 2243--2245 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]remove[][][]higher[] Overfull \hbox (10.7268pt too wide) in paragraph at lines 2245--2247 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]remove[][][]space[] Overfull \hbox (13.83636pt too wide) in paragraph at lines 2247--2249 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]simplify[][][]using[] Overfull \hbox (16.22488pt too wide) in paragraph at lines 2249--2251 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]space[][][]dimension, Overfull \hbox (19.93608pt too wide) in paragraph at lines 2251--2253 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]strictly[][][]contains[] Overfull \hbox (1.59639pt too wide) in paragraph at lines 2253--2255 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]time[][][]elapse[] Overfull \hbox (0.22661pt too wide) in paragraph at lines 2255--2257 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]topological[] Overfull \hbox (9.93646pt too wide) in paragraph at lines 2257--2259 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]total[][][]memory[] Overfull \hbox (1.88667pt too wide) in paragraph at lines 2259--2261 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]unconstrain[] Overfull \hbox (1.88667pt too wide) in paragraph at lines 2261--2263 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]unconstrain[] Overfull \hbox (6.59706pt too wide) in paragraph at lines 2263--2265 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (6.59706pt too wide) in paragraph at lines 2265--2267 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (14.56497pt too wide) in paragraph at lines 2267--2269 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]widening[][][]assign, Overfull \hbox (21.04648pt too wide) in paragraph at lines 2269--2271 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]widening[][][]assign[] Overfull \hbox (14.35516pt too wide) in paragraph at lines 2271--2273 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][ ]wrap[][][]assign, [][]148[][] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2273--2275 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2275--2277 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2277--2279 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2279--2281 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (3.26659pt too wide) in paragraph at lines 2281--2283 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][] []class[][][]from[] Overfull \hbox (4.36514pt too wide) in paragraph at lines 2285--2287 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Shape[][] []mpq[][][]class, [][]150[][] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2291--2293 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2293--2295 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.73547pt too wide) in paragraph at lines 2293--2295 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity, [][]137[][] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2295--2297 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2297--2299 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.17542pt too wide) in paragraph at lines 2297--2299 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity, [][]137[][] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2299--2301 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]C[] Overfull \hbox (4.94681pt too wide) in paragraph at lines 2301--2303 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]C[] Overfull \hbox (46.59659pt too wide) in paragraph at lines 2303--2305 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Congruence[] Overfull \hbox (39.94627pt too wide) in paragraph at lines 2305--2307 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Constraint[] Overfull \hbox (38.25648pt too wide) in paragraph at lines 2307--2309 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Generator[] Overfull \hbox (10.1252pt too wide) in paragraph at lines 2309--2311 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Grid, Overfull \hbox (16.6067pt too wide) in paragraph at lines 2311--2313 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Grid[] Overfull \hbox (5.49686pt too wide) in paragraph at lines 2313--2315 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]N[] Overfull \hbox (5.49686pt too wide) in paragraph at lines 2315--2317 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]N[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2317--2319 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2319--2321 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2321--2323 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (39.37646pt too wide) in paragraph at lines 2323--2325 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (32.16637pt too wide) in paragraph at lines 2325--2327 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (32.16637pt too wide) in paragraph at lines 2327--2329 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (20.4866pt too wide) in paragraph at lines 2329--2331 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]from[][][]space[] Overfull \hbox (3.95679pt too wide) in paragraph at lines 2331--2333 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]recycle[] Overfull \hbox (3.95679pt too wide) in paragraph at lines 2333--2335 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]recycle[] Overfull \hbox (3.95679pt too wide) in paragraph at lines 2335--2337 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]c lass[][][]recycle[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2337--2339 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2339--2341 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2341--2343 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2343--2345 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (13.83635pt too wide) in paragraph at lines 2345--2347 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpq[] Overfull \hbox (13.83635pt too wide) in paragraph at lines 2347--2349 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpq[] [289] Overfull \hbox (11.61638pt too wide) in paragraph at lines 2349--2351 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpq[] Overfull \hbox (11.61638pt too wide) in paragraph at lines 2351--2353 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpq[] Overfull \hbox (1.21451pt too wide) in paragraph at lines 2353--2354 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t ime[][][]elapse[][][]assign Overfull \hbox (12.70624pt too wide) in paragraph at lines 2356--2357 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t opological[][][]closure[] Overfull \hbox (1.31636pt too wide) in paragraph at lines 2359--2360 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]t otal[][][]memory[][][]in[] Overfull \hbox (7.6964pt too wide) in paragraph at lines 2362--2363 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (7.6964pt too wide) in paragraph at lines 2365--2366 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (6.21518pt too wide) in paragraph at lines 2368--2369 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign Overfull \hbox (15.19669pt too wide) in paragraph at lines 2371--2372 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]u pper[][][]bound[][][]assign[] Overfull \hbox (1.04648pt too wide) in paragraph at lines 2377--2378 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][][]w idening[][][]assign[] Overfull \hbox (14.37657pt too wide) in paragraph at lines 2383--2384 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.37657pt too wide) in paragraph at lines 2386--2387 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (14.2264pt too wide) in paragraph at lines 2389--2390 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (14.2264pt too wide) in paragraph at lines 2392--2393 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]extrapolation[] Overfull \hbox (2.45667pt too wide) in paragraph at lines 2395--2396 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][][ ]C[]C76[][][]narrowing[] Overfull \hbox (31.02487pt too wide) in paragraph at lines 2413--2414 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]congruences Overfull \hbox (24.37456pt too wide) in paragraph at lines 2416--2417 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]recycled[][][]constraints Overfull \hbox (24.07617pt too wide) in paragraph at lines 2419--2420 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (24.07617pt too wide) in paragraph at lines 2422--2423 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]a dd[][][]space[][][]dimensions[] Overfull \hbox (14.28499pt too wide) in paragraph at lines 2440--2441 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]image Overfull \hbox (27.05489pt too wide) in paragraph at lines 2443--2444 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounded[][][]affine[][][]preimage Overfull \hbox (4.79538pt too wide) in paragraph at lines 2446--2447 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]above Overfull \hbox (5.4051pt too wide) in paragraph at lines 2449--2450 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]b ounds[][][]from[][][]below Overfull \hbox (1.48465pt too wide) in paragraph at lines 2452--2453 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c oncatenate[][][]assign Overfull \hbox (12.69624pt too wide) in paragraph at lines 2458--2459 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][][]Octagonal[] Overfull \hbox (2.81639pt too wide) in paragraph at lines 2461--2462 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]c ontains[][][]integer[][][] Overfull \hbox (27.52652pt too wide) in paragraph at lines 2467--2468 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[] Overfull \hbox (27.52652pt too wide) in paragraph at lines 2470--2471 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]d rop[][][]some[][][]non[][][]integer[] Overfull \hbox (4.91635pt too wide) in paragraph at lines 2473--2474 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e quals[][][][]Octagonal[] Overfull \hbox (25.49481pt too wide) in paragraph at lines 2476--2477 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xpand[][][]space[][][]dimension Overfull \hbox (3.65645pt too wide) in paragraph at lines 2479--2480 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]e xternal[][][]memory[] [290] Overfull \hbox (16.76457pt too wide) in paragraph at lines 2482--2483 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]f old[][][]space[][][]dimensions Overfull \hbox (6.87633pt too wide) in paragraph at lines 2488--2489 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (6.87633pt too wide) in paragraph at lines 2491--2492 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (6.87633pt too wide) in paragraph at lines 2494--2495 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (6.87633pt too wide) in paragraph at lines 2497--2498 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g eneralized[][][]affine[] Overfull \hbox (37.8644pt too wide) in paragraph at lines 2506--2507 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]congruences Overfull \hbox (31.21408pt too wide) in paragraph at lines 2509--2510 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]g et[][][]minimized[][][]constraints Overfull \hbox (0.94446pt too wide) in paragraph at lines 2512--2513 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i ntersection[][][]assign Overfull \hbox (1.58617pt too wide) in paragraph at lines 2521--2522 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]disjoint[][][]from[][][] Overfull \hbox (1.31624pt too wide) in paragraph at lines 2527--2528 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]i s[][][]topologically[][][] Overfull \hbox (5.49628pt too wide) in paragraph at lines 2533--2534 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (5.49628pt too wide) in paragraph at lines 2536--2537 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]B[]H[]M[]Z05[] Overfull \hbox (46.1658pt too wide) in paragraph at lines 2539--2540 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (46.1658pt too wide) in paragraph at lines 2542--2543 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]l imited[][][][]C[]C76[][][]extrapolation[] Overfull \hbox (17.87456pt too wide) in paragraph at lines 2548--2549 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m ap[][][]space[][][]dimensions Overfull \hbox (10.66454pt too wide) in paragraph at lines 2554--2555 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m aximize[][][]with[][][]point Overfull \hbox (9.00449pt too wide) in paragraph at lines 2560--2561 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]m inimize[][][]with[][][]point Overfull \hbox (19.52486pt too wide) in paragraph at lines 2563--2564 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruence Overfull \hbox (23.41475pt too wide) in paragraph at lines 2566--2567 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]congruences Overfull \hbox (12.87454pt too wide) in paragraph at lines 2569--2570 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraint Overfull \hbox (16.76443pt too wide) in paragraph at lines 2572--2573 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r efine[][][]with[][][]constraints Overfull \hbox (29.53458pt too wide) in paragraph at lines 2575--2576 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Congruence Overfull \hbox (22.88426pt too wide) in paragraph at lines 2578--2579 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Constraint Overfull \hbox (21.19447pt too wide) in paragraph at lines 2581--2582 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r elation[][][]with[][][][]Generator Overfull \hbox (19.31654pt too wide) in paragraph at lines 2584--2585 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]higher[][][]space[] Overfull \hbox (30.34465pt too wide) in paragraph at lines 2587--2588 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]r emove[][][]space[][][]dimensions Overfull \hbox (26.16608pt too wide) in paragraph at lines 2590--2591 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s implify[][][]using[][][]context[] Overfull \hbox (2.97603pt too wide) in paragraph at lines 2596--2597 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]s trictly[][][]contains[][][] Overfull \hbox (34.37657pt too wide) in paragraph at lines 2601--2603 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.37657pt too wide) in paragraph at lines 2603--2605 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]B[]H[]M[]Z05[][][]widening[] Overfull \hbox (34.2264pt too wide) in paragraph at lines 2605--2607 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (34.2264pt too wide) in paragraph at lines 2607--2609 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]C[]C76[][][]extrapolation[] Overfull \hbox (22.45667pt too wide) in paragraph at lines 2609--2611 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ][]C[]C76[][][]narrowing[] Overfull \hbox (12.31526pt too wide) in paragraph at lines 2613--2615 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]congruence, Overfull \hbox (16.20515pt too wide) in paragraph at lines 2615--2617 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]congruences, [291] Overfull \hbox (5.66495pt too wide) in paragraph at lines 2617--2619 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]constraint, Overfull \hbox (9.55484pt too wide) in paragraph at lines 2619--2621 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]constraints, Overfull \hbox (6.42676pt too wide) in paragraph at lines 2621--2623 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (6.42676pt too wide) in paragraph at lines 2623--2625 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]recycled[] Overfull \hbox (44.07617pt too wide) in paragraph at lines 2625--2627 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (44.07617pt too wide) in paragraph at lines 2627--2629 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]add[][][]space[][][]dimensions[] Overfull \hbox (15.97488pt too wide) in paragraph at lines 2629--2631 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]affine[][][]dimension, Overfull \hbox (15.76506pt too wide) in paragraph at lines 2631--2633 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]affine[][][]image, [][]164[][] Overfull \hbox (11.51494pt too wide) in paragraph at lines 2633--2635 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]affine[][][]preimage, Overfull \hbox (9.91507pt too wide) in paragraph at lines 2635--2637 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]ascii[][][]dump, [][]171[][] Overfull \hbox (4.35501pt too wide) in paragraph at lines 2637--2639 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]ascii[][][]load, [][]171[][] Overfull \hbox (15.22682pt too wide) in paragraph at lines 2639--2641 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (15.22682pt too wide) in paragraph at lines 2641--2643 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounded[][][]affine[] Overfull \hbox (6.5968pt too wide) in paragraph at lines 2643--2645 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (6.5968pt too wide) in paragraph at lines 2645--2647 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]bounds[][][]from[] Overfull \hbox (1.86653pt too wide) in paragraph at lines 2647--2649 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]concatenate[] Overfull \hbox (5.75502pt too wide) in paragraph at lines 2649--2651 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]constrains, [][]164[][] Overfull \hbox (32.69624pt too wide) in paragraph at lines 2651--2653 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]contains[][][][]Octagonal[] Overfull \hbox (19.21638pt too wide) in paragraph at lines 2653--2655 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]contains[][][]integer[] Overfull \hbox (17.06474pt too wide) in paragraph at lines 2655--2657 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]difference[][][]assign, Overfull \hbox (1.3068pt too wide) in paragraph at lines 2657--2659 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (1.3068pt too wide) in paragraph at lines 2659--2661 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]drop[][][]some[][][] Overfull \hbox (24.91635pt too wide) in paragraph at lines 2661--2663 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]equals[][][][]Octagonal[] Overfull \hbox (9.2068pt too wide) in paragraph at lines 2663--2665 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]expand[][][]space[] Overfull \hbox (23.65645pt too wide) in paragraph at lines 2665--2667 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]external[][][]memory[] Overfull \hbox (0.18668pt too wide) in paragraph at lines 2667--2669 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]fold[][][]space[][][] Overfull \hbox (5.03545pt too wide) in paragraph at lines 2669--2671 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]frequency, [][]161[][] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2671--2673 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2673--2675 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2675--2677 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (0.75655pt too wide) in paragraph at lines 2677--2679 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]generalized[] Overfull \hbox (13.98505pt too wide) in paragraph at lines 2679--2681 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]congruences, Overfull \hbox (7.33473pt too wide) in paragraph at lines 2681--2683 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]constraints, Overfull \hbox (13.26628pt too wide) in paragraph at lines 2683--2685 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (13.26628pt too wide) in paragraph at lines 2685--2687 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]get[][][]minimized[] Overfull \hbox (1.32634pt too wide) in paragraph at lines 2687--2689 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]intersection[] Overfull \hbox (9.91534pt too wide) in paragraph at lines 2689--2691 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]bounded, [][]160[][] Overfull \hbox (6.57486pt too wide) in paragraph at lines 2691--2693 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]discrete, [][]160[][] Overfull \hbox (17.98616pt too wide) in paragraph at lines 2693--2695 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]disjoint[][][]from[] Overfull \hbox (0.47513pt too wide) in paragraph at lines 2695--2697 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]empty, [][]160[][] Overfull \hbox (17.71623pt too wide) in paragraph at lines 2697--2699 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]topologically[] Overfull \hbox (8.95512pt too wide) in paragraph at lines 2699--2701 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]is[][][]universe, [][]160[][] Overfull \hbox (0.4964pt too wide) in paragraph at lines 2701--2703 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (0.4964pt too wide) in paragraph at lines 2703--2705 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]B[]H[] Overfull \hbox (13.03535pt too wide) in paragraph at lines 2703--2705 \OT1/ptm/bc/n/10 M[]Z05[][][]extrapolation[][][]assign[][][]with[][][]tokens, [ ][]167[][] Overfull \hbox (9.94635pt too wide) in paragraph at lines 2705--2707 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (9.94635pt too wide) in paragraph at lines 2707--2709 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]limited[][][][]C[]C76[] Overfull \hbox (8.44469pt too wide) in paragraph at lines 2709--2711 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]linear[][][]partition, Overfull \hbox (1.29666pt too wide) in paragraph at lines 2711--2713 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]map[][][]space[][][] Overfull \hbox (4.645pt too wide) in paragraph at lines 2713--2715 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]maximize, [][]161[][] Overfull \hbox (15.48625pt too wide) in paragraph at lines 2715--2717 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]maximize[][][]with[] Overfull \hbox (2.98495pt too wide) in paragraph at lines 2717--2719 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]minimize, [][]161[][] Overfull \hbox (13.8262pt too wide) in paragraph at lines 2719--2721 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]minimize[][][]with[] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2721--2723 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2723--2725 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2725--2727 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (2.41664pt too wide) in paragraph at lines 2727--2729 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]refine[][][]with[][][] Overfull \hbox (6.59637pt too wide) in paragraph at lines 2729--2731 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]relation[][][]with[] Overfull \hbox (6.59637pt too wide) in paragraph at lines 2731--2733 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]relation[][][]with[] Overfull \hbox (6.59637pt too wide) in paragraph at lines 2733--2735 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]relation[][][]with[] [292] Overfull \hbox (13.50682pt too wide) in paragraph at lines 2735--2737 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]remove[][][]higher[] Overfull \hbox (10.16675pt too wide) in paragraph at lines 2737--2739 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]remove[][][]space[] Overfull \hbox (13.2763pt too wide) in paragraph at lines 2739--2741 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]simplify[][][]using[] Overfull \hbox (15.66483pt too wide) in paragraph at lines 2741--2743 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]space[][][]dimension, Overfull \hbox (19.37602pt too wide) in paragraph at lines 2743--2745 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]strictly[][][]contains[] Overfull \hbox (1.03633pt too wide) in paragraph at lines 2745--2747 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]time[][][]elapse[] Overfull \hbox (3.26656pt too wide) in paragraph at lines 2747--2749 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]topological[][][] Overfull \hbox (9.3764pt too wide) in paragraph at lines 2749--2751 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]total[][][]memory[] Overfull \hbox (1.32661pt too wide) in paragraph at lines 2751--2753 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]unconstrain[] Overfull \hbox (1.32661pt too wide) in paragraph at lines 2753--2755 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]unconstrain[] Overfull \hbox (6.037pt too wide) in paragraph at lines 2755--2757 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (6.037pt too wide) in paragraph at lines 2757--2759 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]upper[][][]bound[] Overfull \hbox (14.00491pt too wide) in paragraph at lines 2759--2761 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]widening[][][]assign, Overfull \hbox (20.48642pt too wide) in paragraph at lines 2761--2763 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]widening[][][]assign[] Overfull \hbox (13.7951pt too wide) in paragraph at lines 2763--2765 []| \OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][ ]wrap[][][]assign, [][]168[][] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2765--2767 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (11.90659pt too wide) in paragraph at lines 2767--2769 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2769--2771 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (9.68661pt too wide) in paragraph at lines 2771--2773 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Octagonal[] Overfull \hbox (2.70653pt too wide) in paragraph at lines 2773--2775 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][] []class[][][]from[] Overfull \hbox (3.80508pt too wide) in paragraph at lines 2777--2779 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Octagonal[][][][]Shape[][] []mpz[][][]class, [][]171[][] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2783--2785 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2785--2787 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.73547pt too wide) in paragraph at lines 2785--2787 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpq[][][]class[][][]with[][][]complexity, [][]158[][] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2787--2789 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2789--2791 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]B[] Overfull \hbox (1.17542pt too wide) in paragraph at lines 2789--2791 \OT1/ptm/bc/n/10 D[][][][]Shape[][][]mpz[][][]class[][][]with[][][]complexity, [][]158[][] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2791--2793 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]C[] Overfull \hbox (4.38675pt too wide) in paragraph at lines 2793--2795 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]C[] Overfull \hbox (46.03653pt too wide) in paragraph at lines 2795--2797 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Congruence[] Overfull \hbox (39.38622pt too wide) in paragraph at lines 2797--2799 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Constraint[] Overfull \hbox (37.69643pt too wide) in paragraph at lines 2799--2801 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Generator[] Overfull \hbox (9.56514pt too wide) in paragraph at lines 2801--2803 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Grid, Overfull \hbox (16.04665pt too wide) in paragraph at lines 2803--2805 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Grid[] Overfull \hbox (4.9368pt too wide) in paragraph at lines 2805--2807 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]N[] Overfull \hbox (4.9368pt too wide) in paragraph at lines 2807--2809 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]N[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2809--2811 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2811--2813 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2813--2815 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (38.8164pt too wide) in paragraph at lines 2815--2817 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Octagonal[] Overfull \hbox (31.60631pt too wide) in paragraph at lines 2817--2819 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (31.60631pt too wide) in paragraph at lines 2819--2821 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][][]Rational[] Overfull \hbox (19.92654pt too wide) in paragraph at lines 2821--2823 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]from[][][]space[] Overfull \hbox (3.39673pt too wide) in paragraph at lines 2823--2825 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]recycle[] Overfull \hbox (3.39673pt too wide) in paragraph at lines 2825--2827 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]recycle[] Overfull \hbox (3.39673pt too wide) in paragraph at lines 2827--2829 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]c lass[][][]recycle[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2829--2831 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (12.45691pt too wide) in paragraph at lines 2831--2833 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2833--2835 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (10.23694pt too wide) in paragraph at lines 2835--2837 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Octagonal[] Overfull \hbox (13.27629pt too wide) in paragraph at lines 2837--2839 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (13.27629pt too wide) in paragraph at lines 2839--2841 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (11.05632pt too wide) in paragraph at lines 2841--2843 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (11.05632pt too wide) in paragraph at lines 2843--2845 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagona l[][][][]Shape[][][]mpz[] Overfull \hbox (0.65445pt too wide) in paragraph at lines 2845--2846 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t ime[][][]elapse[][][]assign [293] Overfull \hbox (12.14618pt too wide) in paragraph at lines 2848--2849 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t opological[][][]closure[] Overfull \hbox (0.7563pt too wide) in paragraph at lines 2851--2852 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]t otal[][][]memory[][][]in[] Overfull \hbox (7.13634pt too wide) in paragraph at lines 2854--2855 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (7.13634pt too wide) in paragraph at lines 2857--2858 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u nconstrain[][][]space[] Overfull \hbox (5.65512pt too wide) in paragraph at lines 2860--2861 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign Overfull \hbox (14.63663pt too wide) in paragraph at lines 2863--2864 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]u pper[][][]bound[][][]assign[] Overfull \hbox (0.48642pt too wide) in paragraph at lines 2869--2870 []\OT1/ptm/bc/n/10 ppl[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][][]w idening[][][]assign[] Overfull \hbox (2.33504pt too wide) in paragraph at lines 2877--2878 []\OT1/ptm/bc/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][]d imensions[][][]and[][][]embed Overfull \hbox (1.05676pt too wide) in paragraph at lines 2887--2889 []| \OT1/ptm/bc/n/10 ppl[][][][]P[]I[]P[][][][]Problem[][][]add[][][]space[][][ ]dimensions[][][]and[] Overfull \hbox (16.89503pt too wide) in paragraph at lines 2898--2900 []| \OT1/ptm/bc/n/10 ppl[][][][]P[]I[]P[][][][]Solution[][][][]Node[][][]get[][ ][]parametric[][][]values, [][]176[][] Overfull \hbox (0.82666pt too wide) in paragraph at lines 2902--2903 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]B[]H[] Overfull \hbox (4.15674pt too wide) in paragraph at lines 2905--2906 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]G[]P99[][][][]H79[] Overfull \hbox (1.37671pt too wide) in paragraph at lines 2908--2909 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]B[]H[] Overfull \hbox (4.70679pt too wide) in paragraph at lines 2911--2912 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][][]B[]H[]Z03[][][][]H79[] Overfull \hbox (9.0351pt too wide) in paragraph at lines 2917--2918 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruence Overfull \hbox (12.92499pt too wide) in paragraph at lines 2920--2921 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]congruences Overfull \hbox (2.38478pt too wide) in paragraph at lines 2923--2924 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraint Overfull \hbox (6.27467pt too wide) in paragraph at lines 2926--2927 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]constraints Overfull \hbox (43.296pt too wide) in paragraph at lines 2932--2933 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[] Overfull \hbox (43.296pt too wide) in paragraph at lines 2935--2936 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]add[][][]space[][][]dimensions[] Overfull \hbox (12.69472pt too wide) in paragraph at lines 2938--2939 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]dimension Overfull \hbox (8.23477pt too wide) in paragraph at lines 2944--2945 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]affine[][][]preimage Overfull \hbox (14.44666pt too wide) in paragraph at lines 2953--2954 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[] Overfull \hbox (14.44666pt too wide) in paragraph at lines 2956--2957 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounded[][][]affine[] Overfull \hbox (5.81664pt too wide) in paragraph at lines 2959--2960 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[] Overfull \hbox (5.81664pt too wide) in paragraph at lines 2962--2963 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]bounds[][][]from[] Overfull \hbox (1.08636pt too wide) in paragraph at lines 2965--2966 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]concatenate[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2968--2969 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2969--2971 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2971--2972 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2972--2974 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2974--2975 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2975--2977 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] [294] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2977--2978 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2978--2980 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2980--2981 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2981--2983 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2983--2984 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2984--2986 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (7.47614pt too wide) in paragraph at lines 2986--2988 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2988--2990 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2990--2992 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2992--2994 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2994--2996 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2996--2998 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 2998--3000 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (1.36655pt too wide) in paragraph at lines 3000--3002 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[] [][][]Polyhedron[][][] Overfull \hbox (15.00658pt too wide) in paragraph at lines 3002--3004 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]const[] Overfull \hbox (15.00658pt too wide) in paragraph at lines 3004--3006 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]const[] Overfull \hbox (23.04594pt too wide) in paragraph at lines 3009--3010 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][][]Pointset[] Overfull \hbox (18.43622pt too wide) in paragraph at lines 3012--3013 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]contains[][][]integer[] Overfull \hbox (13.78458pt too wide) in paragraph at lines 3015--3016 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]difference[][][]assign Overfull \hbox (2.39479pt too wide) in paragraph at lines 3021--3022 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]disjuncts Overfull \hbox (0.52663pt too wide) in paragraph at lines 3024--3025 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][] Overfull \hbox (0.52663pt too wide) in paragraph at lines 3027--3028 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]drop[][][]some[][][] Overfull \hbox (15.26605pt too wide) in paragraph at lines 3030--3031 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]equals[][][][]Pointset[] Overfull \hbox (8.42664pt too wide) in paragraph at lines 3033--3034 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]expand[][][]space[] Overfull \hbox (22.87628pt too wide) in paragraph at lines 3036--3037 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]external[][][]memory[] Overfull \hbox (35.9844pt too wide) in paragraph at lines 3039--3040 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]fold[][][]space[][][]dimensions Overfull \hbox (3.57639pt too wide) in paragraph at lines 3042--3043 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (3.57639pt too wide) in paragraph at lines 3045--3046 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (3.57639pt too wide) in paragraph at lines 3048--3049 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (3.57639pt too wide) in paragraph at lines 3051--3052 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]generalized[][][] Overfull \hbox (8.87611pt too wide) in paragraph at lines 3054--3055 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[] Overfull \hbox (8.87611pt too wide) in paragraph at lines 3057--3058 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]geometrically[] Overfull \hbox (0.54617pt too wide) in paragraph at lines 3060--3061 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]intersection[] Overfull \hbox (17.206pt too wide) in paragraph at lines 3069--3070 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]disjoint[][][]from[] Overfull \hbox (16.93607pt too wide) in paragraph at lines 3075--3076 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]is[][][]topologically[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3082--3084 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (19.03441pt too wide) in paragraph at lines 3084--3085 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]decrement Overfull \hbox (2.7664pt too wide) in paragraph at lines 3085--3087 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (24.01442pt too wide) in paragraph at lines 3087--3088 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]dereference Overfull \hbox (2.7664pt too wide) in paragraph at lines 3088--3090 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] [295] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3091--3093 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (8.02618pt too wide) in paragraph at lines 3093--3094 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]equal[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3094--3096 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (17.37436pt too wide) in paragraph at lines 3096--3097 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]increment Overfull \hbox (2.7664pt too wide) in paragraph at lines 3097--3099 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (9.12476pt too wide) in paragraph at lines 3099--3101 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]iterator[][][]tag, [][]180[][] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3101--3103 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3103--3105 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3105--3107 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3107--3109 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3109--3111 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 3111--3113 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (1.36655pt too wide) in paragraph at lines 3113--3115 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[] [][][]Polyhedron[][][] Overfull \hbox (16.29482pt too wide) in paragraph at lines 3115--3117 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]iterator, Overfull \hbox (22.77632pt too wide) in paragraph at lines 3117--3119 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]iterator[] Overfull \hbox (0.5165pt too wide) in paragraph at lines 3119--3120 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]map[][][]space[][][] Overfull \hbox (14.70609pt too wide) in paragraph at lines 3125--3126 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]maximize[][][]with[] Overfull \hbox (13.04604pt too wide) in paragraph at lines 3131--3132 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]minimize[][][]with[] Overfull \hbox (1.61514pt too wide) in paragraph at lines 3134--3135 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]omega[][][]reduce Overfull \hbox (9.0347pt too wide) in paragraph at lines 3137--3138 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]pairwise[][][]reduce Overfull \hbox (1.63647pt too wide) in paragraph at lines 3140--3141 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (1.63647pt too wide) in paragraph at lines 3143--3144 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (1.63647pt too wide) in paragraph at lines 3146--3147 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (1.63647pt too wide) in paragraph at lines 3149--3150 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]refine[][][]with[][][] Overfull \hbox (5.81621pt too wide) in paragraph at lines 3152--3153 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[] Overfull \hbox (5.81621pt too wide) in paragraph at lines 3155--3156 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[] Overfull \hbox (5.81621pt too wide) in paragraph at lines 3158--3159 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]relation[][][]with[] Overfull \hbox (12.72665pt too wide) in paragraph at lines 3161--3162 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]higher[] Overfull \hbox (9.38658pt too wide) in paragraph at lines 3164--3165 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]remove[][][]space[] Overfull \hbox (12.49614pt too wide) in paragraph at lines 3167--3168 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]simplify[][][]using[] Overfull \hbox (12.38466pt too wide) in paragraph at lines 3173--3174 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]space[][][]dimension Overfull \hbox (18.59586pt too wide) in paragraph at lines 3176--3177 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]strictly[][][]contains[] Overfull \hbox (3.33676pt too wide) in paragraph at lines 3181--3183 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]G[]P99[] Overfull \hbox (3.33676pt too wide) in paragraph at lines 3183--3185 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]G[]P99[] Overfull \hbox (3.88681pt too wide) in paragraph at lines 3185--3187 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]H[]Z03[] Overfull \hbox (1.58586pt too wide) in paragraph at lines 3185--3187 [][][]\OT1/ptm/bc/n/10 B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][]assi gn, [][]196[][] Overfull \hbox (3.88681pt too wide) in paragraph at lines 3187--3189 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][][]B[]H[]Z03[] Overfull \hbox (31.5351pt too wide) in paragraph at lines 3191--3193 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]congruence, Overfull \hbox (35.42499pt too wide) in paragraph at lines 3193--3195 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]congruences, Overfull \hbox (24.88478pt too wide) in paragraph at lines 3195--3197 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]constraint, Overfull \hbox (28.77467pt too wide) in paragraph at lines 3197--3199 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]constraints, Overfull \hbox (17.11488pt too wide) in paragraph at lines 3199--3201 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]disjunct, Overfull \hbox (14.1366pt too wide) in paragraph at lines 3201--3203 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]space[] Overfull \hbox (14.1366pt too wide) in paragraph at lines 3203--3205 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]add[][][]space[] [296] Overfull \hbox (12.11488pt too wide) in paragraph at lines 3211--3213 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]ascii[][][]dump, Overfull \hbox (6.55482pt too wide) in paragraph at lines 3213--3215 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]ascii[][][]load, Overfull \hbox (8.32687pt too wide) in paragraph at lines 3215--3217 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounded[] Overfull \hbox (8.32687pt too wide) in paragraph at lines 3217--3219 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounded[] Overfull \hbox (2.77682pt too wide) in paragraph at lines 3219--3221 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounds[] Overfull \hbox (2.77682pt too wide) in paragraph at lines 3221--3223 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]bounds[] Overfull \hbox (21.08636pt too wide) in paragraph at lines 3223--3225 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]concatenate[] Overfull \hbox (7.95483pt too wide) in paragraph at lines 3225--3227 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]constrains, Overfull \hbox (7.21649pt too wide) in paragraph at lines 3227--3229 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]contains[] Overfull \hbox (7.21649pt too wide) in paragraph at lines 3229--3231 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]contains[] Overfull \hbox (14.16646pt too wide) in paragraph at lines 3231--3233 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]difference[] Overfull \hbox (21.0049pt too wide) in paragraph at lines 3233--3235 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]disjunct, Overfull \hbox (24.89479pt too wide) in paragraph at lines 3235--3237 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]disjuncts, Overfull \hbox (16.92662pt too wide) in paragraph at lines 3237--3239 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]some[] Overfull \hbox (16.92662pt too wide) in paragraph at lines 3239--3241 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]drop[][][]some[] Overfull \hbox (3.0366pt too wide) in paragraph at lines 3241--3243 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]equals[][][] Overfull \hbox (2.61691pt too wide) in paragraph at lines 3243--3245 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]expand[] Overfull \hbox (5.9466pt too wide) in paragraph at lines 3245--3247 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]external[] Overfull \hbox (15.8065pt too wide) in paragraph at lines 3247--3249 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]fold[][][]space[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3249--3251 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3251--3253 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3253--3255 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (19.97638pt too wide) in paragraph at lines 3255--3257 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]generalized[] Overfull \hbox (28.87611pt too wide) in paragraph at lines 3257--3259 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]geometrically[] Overfull \hbox (16.8455pt too wide) in paragraph at lines 3257--3259 [][]\OT1/ptm/bc/n/10 covers[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Pol yhedron, [][]186[][] Overfull \hbox (28.87611pt too wide) in paragraph at lines 3259--3261 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]geometrically[] Overfull \hbox (16.59525pt too wide) in paragraph at lines 3259--3261 [][]\OT1/ptm/bc/n/10 equals[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Pol yhedron, [][]186[][] Overfull \hbox (20.54617pt too wide) in paragraph at lines 3261--3263 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]intersection[] Overfull \hbox (12.11516pt too wide) in paragraph at lines 3263--3265 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]bounded, Overfull \hbox (8.77467pt too wide) in paragraph at lines 3265--3267 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]discrete, Overfull \hbox (14.16618pt too wide) in paragraph at lines 3267--3269 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]disjoint[] Overfull \hbox (10.48538pt too wide) in paragraph at lines 3267--3269 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyh edron, [][]191[][] Overfull \hbox (2.67494pt too wide) in paragraph at lines 3269--3271 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]empty, Overfull \hbox (36.93607pt too wide) in paragraph at lines 3271--3273 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]topologically[] Overfull \hbox (11.15494pt too wide) in paragraph at lines 3273--3275 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]is[][][]universe, Overfull \hbox (16.91649pt too wide) in paragraph at lines 3275--3277 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]map[][][]space[] Overfull \hbox (6.84482pt too wide) in paragraph at lines 3277--3279 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]maximize, Overfull \hbox (13.32632pt too wide) in paragraph at lines 3279--3281 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]maximize[] Overfull \hbox (5.18477pt too wide) in paragraph at lines 3281--3283 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]minimize, Overfull \hbox (11.66628pt too wide) in paragraph at lines 3283--3285 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]minimize[] Overfull \hbox (0.34686pt too wide) in paragraph at lines 3285--3287 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]omega[] Overfull \hbox (7.76642pt too wide) in paragraph at lines 3287--3289 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]pairwise[] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3289--3291 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3291--3293 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3293--3295 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (0.25671pt too wide) in paragraph at lines 3295--3297 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]refine[][][] Overfull \hbox (4.43645pt too wide) in paragraph at lines 3297--3299 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]relation[] Overfull \hbox (4.43645pt too wide) in paragraph at lines 3299--3301 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]relation[] Overfull \hbox (4.43645pt too wide) in paragraph at lines 3301--3303 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]relation[] Overfull \hbox (3.57686pt too wide) in paragraph at lines 3303--3305 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]remove[] Overfull \hbox (3.57686pt too wide) in paragraph at lines 3305--3307 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]remove[] Overfull \hbox (7.22635pt too wide) in paragraph at lines 3307--3309 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]simplify[] Overfull \hbox (34.88466pt too wide) in paragraph at lines 3311--3313 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]space[][][]dimension, [297] Overfull \hbox (1.66629pt too wide) in paragraph at lines 3313--3315 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]strictly[] Overfull \hbox (7.35512pt too wide) in paragraph at lines 3313--3315 [][]\OT1/ptm/bc/n/10 contains[][][][]Pointset[][][][]Powerset[][][][]C[][][][]P olyhedron, Overfull \hbox (20.25616pt too wide) in paragraph at lines 3315--3317 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]time[][][]elapse[] Overfull \hbox (18.88638pt too wide) in paragraph at lines 3317--3319 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]topological[] Overfull \hbox (28.59624pt too wide) in paragraph at lines 3319--3321 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]total[][][]memory[] Overfull \hbox (20.54645pt too wide) in paragraph at lines 3321--3323 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]unconstrain[] Overfull \hbox (20.54645pt too wide) in paragraph at lines 3323--3325 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]unconstrain[] Overfull \hbox (0.25684pt too wide) in paragraph at lines 3325--3327 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]upper[][][] Overfull \hbox (0.25684pt too wide) in paragraph at lines 3327--3329 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]upper[][][] Overfull \hbox (8.30505pt too wide) in paragraph at lines 3329--3331 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[] [][][]Polyhedron, [][]187[][] Overfull \hbox (6.0049pt too wide) in paragraph at lines 3331--3333 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[] [][][]C[][][][]Polyhedron, Overfull \hbox (1.00502pt too wide) in paragraph at lines 3333--3335 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][ ][][]C[][][][]Polyhedron, Overfull \hbox (14.69508pt too wide) in paragraph at lines 3335--3337 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][] [][]C[][][][]Polyhedron, [][]196[][] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3337--3339 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3339--3341 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3341--3343 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3343--3345 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3345--3347 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3347--3349 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (1.88683pt too wide) in paragraph at lines 3347--3349 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]C[][][][]Polyhedron[][][ ]with[][][] Overfull \hbox (13.33665pt too wide) in paragraph at lines 3349--3351 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][ ][]Polyhedron[][][]from[] Overfull \hbox (0.25616pt too wide) in paragraph at lines 3351--3352 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]time[][][]elapse[] Overfull \hbox (2.48639pt too wide) in paragraph at lines 3354--3355 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]topological[][][] Overfull \hbox (8.59624pt too wide) in paragraph at lines 3357--3358 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]total[][][]memory[] Overfull \hbox (0.54645pt too wide) in paragraph at lines 3360--3361 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[] Overfull \hbox (0.54645pt too wide) in paragraph at lines 3363--3364 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]unconstrain[] Overfull \hbox (5.25684pt too wide) in paragraph at lines 3366--3367 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[] Overfull \hbox (5.25684pt too wide) in paragraph at lines 3369--3370 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhedr on[][][]upper[][][]bound[] Overfull \hbox (1.37671pt too wide) in paragraph at lines 3372--3373 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3373--3375 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (1.37671pt too wide) in paragraph at lines 3375--3376 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]G[]P99[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3376--3378 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (1.92676pt too wide) in paragraph at lines 3378--3379 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3379--3381 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (1.92676pt too wide) in paragraph at lines 3381--3382 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][][]B[]H[]Z03[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3382--3384 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3385--3387 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (23.47504pt too wide) in paragraph at lines 3387--3388 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruence Overfull \hbox (11.08522pt too wide) in paragraph at lines 3388--3390 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (27.36493pt too wide) in paragraph at lines 3390--3391 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]congruences Overfull \hbox (11.08522pt too wide) in paragraph at lines 3391--3393 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (16.82472pt too wide) in paragraph at lines 3393--3394 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraint Overfull \hbox (11.08522pt too wide) in paragraph at lines 3394--3396 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (20.71461pt too wide) in paragraph at lines 3396--3397 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]constraints Overfull \hbox (11.08522pt too wide) in paragraph at lines 3397--3399 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (9.05482pt too wide) in paragraph at lines 3399--3400 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]disjunct Overfull \hbox (11.08522pt too wide) in paragraph at lines 3400--3402 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (8.57654pt too wide) in paragraph at lines 3402--3403 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3403--3405 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (8.57654pt too wide) in paragraph at lines 3405--3406 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]add[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3406--3408 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (27.13466pt too wide) in paragraph at lines 3408--3409 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]dimension Overfull \hbox (11.08522pt too wide) in paragraph at lines 3409--3411 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (9.90482pt too wide) in paragraph at lines 3411--3412 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]image Overfull \hbox (11.08522pt too wide) in paragraph at lines 3412--3414 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (22.67471pt too wide) in paragraph at lines 3414--3415 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]affine[][][]preimage Overfull \hbox (11.08522pt too wide) in paragraph at lines 3415--3417 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (4.05482pt too wide) in paragraph at lines 3417--3418 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]ascii[][][]dump Overfull \hbox (11.08522pt too wide) in paragraph at lines 3418--3420 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]215[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3421--3423 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]215[][] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3423--3424 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3424--3426 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3426--3427 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounded[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3427--3429 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (0.81677pt too wide) in paragraph at lines 3429--3430 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3430--3432 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] [298] Overfull \hbox (0.81677pt too wide) in paragraph at lines 3432--3433 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]bounds[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3433--3435 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (15.5263pt too wide) in paragraph at lines 3435--3436 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]concatenate[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3436--3438 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3438--3439 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3439--3441 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3441--3442 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3442--3444 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3444--3445 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3445--3447 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3447--3448 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3448--3450 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3450--3451 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3451--3453 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3453--3454 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3454--3456 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (21.91608pt too wide) in paragraph at lines 3456--3458 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]const[][][]iterator[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3458--3460 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3460--3462 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3462--3464 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3464--3466 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3466--3468 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 3468--3470 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (12.20648pt too wide) in paragraph at lines 3470--3472 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3472--3474 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3474--3476 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3477--3479 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (1.65643pt too wide) in paragraph at lines 3479--3480 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3480--3482 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (1.65643pt too wide) in paragraph at lines 3482--3483 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]contains[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3483--3485 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (8.6064pt too wide) in paragraph at lines 3485--3486 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]difference[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3486--3488 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (12.94484pt too wide) in paragraph at lines 3488--3489 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjunct Overfull \hbox (11.08522pt too wide) in paragraph at lines 3489--3491 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (16.83473pt too wide) in paragraph at lines 3491--3492 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]disjuncts Overfull \hbox (11.08522pt too wide) in paragraph at lines 3492--3494 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (11.36656pt too wide) in paragraph at lines 3494--3495 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3495--3497 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (11.36656pt too wide) in paragraph at lines 3497--3498 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]drop[][][]some[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3498--3500 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (29.706pt too wide) in paragraph at lines 3500--3501 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]equals[][][][]Pointset[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3501--3503 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (0.65686pt too wide) in paragraph at lines 3503--3504 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]expand[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3504--3506 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (0.38654pt too wide) in paragraph at lines 3506--3507 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]external[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3507--3509 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (10.24644pt too wide) in paragraph at lines 3509--3510 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]fold[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3510--3512 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3512--3513 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3513--3515 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3515--3516 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3516--3518 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3518--3519 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3519--3521 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]211[][] Overfull \hbox (14.41632pt too wide) in paragraph at lines 3521--3522 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]generalized[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3522--3524 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (23.31606pt too wide) in paragraph at lines 3524--3525 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[] Overfull \hbox (11.76543pt too wide) in paragraph at lines 3524--3525 [][]\OT1/ptm/bc/n/10 covers[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron Overfull \hbox (11.08522pt too wide) in paragraph at lines 3525--3527 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (23.31606pt too wide) in paragraph at lines 3527--3528 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]geometrically[] Overfull \hbox (11.51517pt too wide) in paragraph at lines 3527--3528 [][]\OT1/ptm/bc/n/10 equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron Overfull \hbox (11.08522pt too wide) in paragraph at lines 3528--3530 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (14.98611pt too wide) in paragraph at lines 3530--3531 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]intersection[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3531--3533 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (4.0551pt too wide) in paragraph at lines 3533--3534 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]bounded Overfull \hbox (11.08522pt too wide) in paragraph at lines 3534--3536 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (0.71461pt too wide) in paragraph at lines 3536--3537 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]discrete [299] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3537--3539 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (8.60612pt too wide) in paragraph at lines 3539--3540 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]disjoint[] Overfull \hbox (5.4053pt too wide) in paragraph at lines 3539--3540 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron Overfull \hbox (11.08522pt too wide) in paragraph at lines 3540--3542 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3543--3545 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (31.376pt too wide) in paragraph at lines 3545--3546 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]topologically[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3546--3548 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (3.09488pt too wide) in paragraph at lines 3548--3549 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]is[][][]universe Overfull \hbox (11.08522pt too wide) in paragraph at lines 3549--3551 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3551--3552 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3552--3554 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3554--3555 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3555--3557 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3557--3558 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3558--3560 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3560--3561 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3561--3563 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3563--3564 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3564--3566 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3566--3567 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3567--3569 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.80635pt too wide) in paragraph at lines 3569--3571 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]iterator[][][] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3571--3573 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3573--3575 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3575--3577 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3577--3579 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3579--3581 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 3581--3583 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (12.20648pt too wide) in paragraph at lines 3583--3585 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3585--3587 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3587--3589 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (11.35643pt too wide) in paragraph at lines 3589--3590 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]map[][][]space[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3590--3592 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3593--3595 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (7.76627pt too wide) in paragraph at lines 3595--3596 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]maximize[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3596--3598 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3599--3601 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (6.10622pt too wide) in paragraph at lines 3601--3602 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]minimize[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3602--3604 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]207[][] Overfull \hbox (16.05508pt too wide) in paragraph at lines 3604--3605 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]omega[][][]reduce Overfull \hbox (11.08522pt too wide) in paragraph at lines 3605--3607 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (2.20636pt too wide) in paragraph at lines 3607--3608 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]pairwise[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3608--3610 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3610--3611 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3611--3613 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3613--3614 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3614--3616 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3616--3617 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3617--3619 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (12.47641pt too wide) in paragraph at lines 3619--3620 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]refine[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3620--3622 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (2.4764pt too wide) in paragraph at lines 3622--3623 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3623--3625 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (2.4764pt too wide) in paragraph at lines 3625--3626 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3626--3628 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (2.4764pt too wide) in paragraph at lines 3628--3629 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]relation[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3629--3631 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (1.6168pt too wide) in paragraph at lines 3631--3632 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3632--3634 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (1.6168pt too wide) in paragraph at lines 3634--3635 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]remove[][][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3635--3637 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]212[][] Overfull \hbox (1.66629pt too wide) in paragraph at lines 3637--3638 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]simplify[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3638--3640 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3641--3643 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (26.8246pt too wide) in paragraph at lines 3643--3644 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]space[][][]dimension Overfull \hbox (11.08522pt too wide) in paragraph at lines 3644--3646 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (33.0358pt too wide) in paragraph at lines 3646--3647 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]strictly[][][]contains[] [300] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3647--3649 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]208[][] Overfull \hbox (2.21677pt too wide) in paragraph at lines 3651--3653 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]G[] Overfull \hbox (2.21677pt too wide) in paragraph at lines 3653--3655 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]G[] Overfull \hbox (2.21677pt too wide) in paragraph at lines 3655--3657 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]H[] Overfull \hbox (1.2758pt too wide) in paragraph at lines 3655--3657 \OT1/ptm/bc/n/10 Z03[][][][]B[]H[]R[]Z03[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign, Overfull \hbox (2.21677pt too wide) in paragraph at lines 3657--3659 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]B[]H[] Overfull \hbox (13.18533pt too wide) in paragraph at lines 3659--3661 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][][]OK, [][]208[][] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3661--3663 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3663--3665 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3665--3667 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3667--3669 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3669--3671 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3671--3673 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (2.76682pt too wide) in paragraph at lines 3673--3675 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]add[] Overfull \hbox (10.84665pt too wide) in paragraph at lines 3675--3677 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]affine[] Overfull \hbox (10.84665pt too wide) in paragraph at lines 3677--3679 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]affine[] Overfull \hbox (10.84665pt too wide) in paragraph at lines 3679--3681 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]affine[] Overfull \hbox (6.65643pt too wide) in paragraph at lines 3681--3683 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]ascii[] Overfull \hbox (6.65643pt too wide) in paragraph at lines 3683--3685 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]ascii[] Overfull \hbox (22.76682pt too wide) in paragraph at lines 3685--3687 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounded[] Overfull \hbox (22.76682pt too wide) in paragraph at lines 3687--3689 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounded[] Overfull \hbox (17.21677pt too wide) in paragraph at lines 3689--3691 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounds[] Overfull \hbox (17.21677pt too wide) in paragraph at lines 3691--3693 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]bounds[] Overfull \hbox (35.5263pt too wide) in paragraph at lines 3693--3695 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]concatenate[] Overfull \hbox (22.39478pt too wide) in paragraph at lines 3695--3697 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]constrains, Overfull \hbox (21.65643pt too wide) in paragraph at lines 3697--3699 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]contains[] Overfull \hbox (1.88551pt too wide) in paragraph at lines 3697--3699 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedro n, [][]208[][] Overfull \hbox (21.65643pt too wide) in paragraph at lines 3699--3701 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]contains[] Overfull \hbox (28.6064pt too wide) in paragraph at lines 3701--3703 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]difference[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3703--3705 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3705--3707 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3707--3709 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (6.65683pt too wide) in paragraph at lines 3709--3711 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]drop[] Overfull \hbox (13.87654pt too wide) in paragraph at lines 3711--3713 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]equals[] Overfull \hbox (1.88551pt too wide) in paragraph at lines 3711--3713 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedro n, [][]208[][] Overfull \hbox (17.05685pt too wide) in paragraph at lines 3713--3715 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]expand[] Overfull \hbox (20.38654pt too wide) in paragraph at lines 3715--3717 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]external[] Overfull \hbox (4.43672pt too wide) in paragraph at lines 3717--3719 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]fold[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3719--3721 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3721--3723 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3723--3725 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (34.41632pt too wide) in paragraph at lines 3725--3727 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]generalized[] Overfull \hbox (43.31606pt too wide) in paragraph at lines 3727--3729 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]geometrically[] Overfull \hbox (14.26543pt too wide) in paragraph at lines 3727--3729 [][]\OT1/ptm/bc/n/10 covers[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron, Overfull \hbox (43.31606pt too wide) in paragraph at lines 3729--3731 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]geometrically[] Overfull \hbox (14.01517pt too wide) in paragraph at lines 3729--3731 [][]\OT1/ptm/bc/n/10 equals[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][ ][]Polyhedron, Overfull \hbox (34.98611pt too wide) in paragraph at lines 3731--3733 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]intersection[] Overfull \hbox (26.5551pt too wide) in paragraph at lines 3733--3735 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]bounded, Overfull \hbox (23.21461pt too wide) in paragraph at lines 3735--3737 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]discrete, Overfull \hbox (28.60612pt too wide) in paragraph at lines 3737--3739 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]disjoint[] Overfull \hbox (7.9053pt too wide) in paragraph at lines 3737--3739 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron, Overfull \hbox (17.11488pt too wide) in paragraph at lines 3739--3741 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]empty, Overfull \hbox (51.376pt too wide) in paragraph at lines 3741--3743 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]topologically[] Overfull \hbox (25.59488pt too wide) in paragraph at lines 3743--3745 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]is[][][]universe, Overfull \hbox (5.5467pt too wide) in paragraph at lines 3745--3747 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]map[] Overfull \hbox (21.28476pt too wide) in paragraph at lines 3747--3749 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]maximize, Overfull \hbox (27.76627pt too wide) in paragraph at lines 3749--3751 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]maximize[] Overfull \hbox (19.62471pt too wide) in paragraph at lines 3751--3753 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]minimize, [301] Overfull \hbox (26.10622pt too wide) in paragraph at lines 3753--3755 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]minimize[] Overfull \hbox (14.7868pt too wide) in paragraph at lines 3755--3757 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]omega[] Overfull \hbox (22.20636pt too wide) in paragraph at lines 3757--3759 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]pairwise[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3759--3761 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3761--3763 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3763--3765 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (11.09665pt too wide) in paragraph at lines 3765--3767 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]refine[] Overfull \hbox (18.87639pt too wide) in paragraph at lines 3767--3769 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]relation[] Overfull \hbox (18.87639pt too wide) in paragraph at lines 3769--3771 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]relation[] Overfull \hbox (18.87639pt too wide) in paragraph at lines 3771--3773 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]relation[] Overfull \hbox (18.0168pt too wide) in paragraph at lines 3773--3775 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]remove[] Overfull \hbox (18.0168pt too wide) in paragraph at lines 3775--3777 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]remove[] Overfull \hbox (21.66629pt too wide) in paragraph at lines 3777--3779 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]simplify[] Overfull \hbox (14.41505pt too wide) in paragraph at lines 3779--3781 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]size, [][]213[][] Overfull \hbox (10.53659pt too wide) in paragraph at lines 3781--3783 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]space[] Overfull \hbox (16.10623pt too wide) in paragraph at lines 3783--3785 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]strictly[] Overfull \hbox (21.79506pt too wide) in paragraph at lines 3783--3785 [][]\OT1/ptm/bc/n/10 contains[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][ ][][]Polyhedron, Overfull \hbox (6.10649pt too wide) in paragraph at lines 3785--3787 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]time[] Overfull \hbox (33.32632pt too wide) in paragraph at lines 3787--3789 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]topological[] Overfull \hbox (6.10649pt too wide) in paragraph at lines 3789--3791 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]total[] Overfull \hbox (34.98639pt too wide) in paragraph at lines 3791--3793 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]unconstrain[] Overfull \hbox (34.98639pt too wide) in paragraph at lines 3793--3795 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]unconstrain[] Overfull \hbox (11.09677pt too wide) in paragraph at lines 3795--3797 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]upper[] Overfull \hbox (11.09677pt too wide) in paragraph at lines 3797--3799 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]upper[] Overfull \hbox (5.72498pt too wide) in paragraph at lines 3799--3801 []| \OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[] N[]C[][][][]Polyhedron, Overfull \hbox (20.44484pt too wide) in paragraph at lines 3801--3803 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Pointset[][][][]Powerset[] [][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (15.44496pt too wide) in paragraph at lines 3803--3805 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Pointset[][][][]Powerset[][ ][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (12.115pt too wide) in paragraph at lines 3805--3807 []| \OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Pointset[][][][]Powerset[][] [][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (4.73679pt too wide) in paragraph at lines 3807--3809 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3809--3811 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3811--3813 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3813--3815 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (1.89563pt too wide) in paragraph at lines 3813--3815 [][]\OT1/ptm/bc/n/10 from[][][][]N[]N[]C[][][][]Polyhedron[][][]with[][][]compl exity, Overfull \hbox (4.73679pt too wide) in paragraph at lines 3815--3817 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (7.9053pt too wide) in paragraph at lines 3815--3817 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron, Overfull \hbox (4.73679pt too wide) in paragraph at lines 3817--3819 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (14.38681pt too wide) in paragraph at lines 3817--3819 [][]\OT1/ptm/bc/n/10 from[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][ ]Polyhedron[] Overfull \hbox (4.73679pt too wide) in paragraph at lines 3819--3821 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[] C[][][][]Polyhedron[] Overfull \hbox (14.6961pt too wide) in paragraph at lines 3821--3822 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]time[][][]elapse[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3822--3824 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (13.32632pt too wide) in paragraph at lines 3824--3825 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]topological[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3825--3827 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]206[][] Overfull \hbox (23.03618pt too wide) in paragraph at lines 3827--3828 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]total[][][]memory[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3828--3830 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]213[][] Overfull \hbox (14.98639pt too wide) in paragraph at lines 3830--3831 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3831--3833 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (14.98639pt too wide) in paragraph at lines 3833--3834 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]unconstrain[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3834--3836 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (19.69678pt too wide) in paragraph at lines 3836--3837 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3837--3839 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]209[][] Overfull \hbox (19.69678pt too wide) in paragraph at lines 3839--3840 []\OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Po lyhedron[][][]upper[][][]bound[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 3840--3842 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]210[][] Overfull \hbox (15.87514pt too wide) in paragraph at lines 3844--3845 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][][ ]assign[][][]with[][][]tokens [302] Overfull \hbox (2.30722pt too wide) in paragraph at lines 3884--3885 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][] Overfull \hbox (2.30722pt too wide) in paragraph at lines 3886--3887 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][][] extrapolation[][][] Overfull \hbox (7.85701pt too wide) in paragraph at lines 3890--3891 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapola tion[][][]assign[] Overfull \hbox (2.90495pt too wide) in paragraph at lines 3930--3931 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]prei mage[][][]lhs[][][]rhs Overfull \hbox (12.2248pt too wide) in paragraph at lines 3958--3959 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign Overfull \hbox (21.2063pt too wide) in paragraph at lines 3960--3961 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][][] extrapolation[][][]assign[] [303] Overfull \hbox (1.75647pt too wide) in paragraph at lines 3964--3965 []\OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapola tion[][][]assign[] Overfull \hbox (4.40565pt too wide) in paragraph at lines 4011--4013 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][ ][]assign, [][]243[][] Overfull \hbox (15.2469pt too wide) in paragraph at lines 4013--4015 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]B[]H[]R[]Z03[][][]widening[][ ][]assign[][][]with[] Overfull \hbox (18.92531pt too wide) in paragraph at lines 4017--4019 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][][]H79[][][]widening[][][]assign [][][]with[][][]tokens, Overfull \hbox (3.6558pt too wide) in paragraph at lines 4032--4034 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]add[][][]recycled[][][]congruen ces, [][]233[][] Overfull \hbox (19.00531pt too wide) in paragraph at lines 4038--4040 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[ ][][]and[][][]embed, Overfull \hbox (20.11516pt too wide) in paragraph at lines 4040--4042 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]add[][][]space[][][]dimensions[ ][][]and[][][]project, Overfull \hbox (18.70721pt too wide) in paragraph at lines 4052--4054 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (18.70721pt too wide) in paragraph at lines 4054--4056 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (2.85739pt too wide) in paragraph at lines 4056--4058 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapo lation[][][] Overfull \hbox (2.85739pt too wide) in paragraph at lines 4058--4060 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]bounded[][][][]H79[][][]extrapo lation[][][] Overfull \hbox (2.20561pt too wide) in paragraph at lines 4077--4079 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]in teger[][][]points, Overfull \hbox (8.68712pt too wide) in paragraph at lines 4079--4081 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]drop[][][]some[][][]non[][][]in teger[][][]points[] Overfull \hbox (3.39551pt too wide) in paragraph at lines 4085--4087 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]external[][][]memory[][][]in[][ ][]bytes, [][]233[][] Overfull \hbox (3.2967pt too wide) in paragraph at lines 4092--4094 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]im age[][][]lhs[] Overfull \hbox (11.33533pt too wide) in paragraph at lines 4094--4096 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]pr eimage, [][]237[][] Overfull \hbox (0.79681pt too wide) in paragraph at lines 4096--4098 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]generalized[][][]affine[][][]pr eimage[] [304] Overfull \hbox (10.49533pt too wide) in paragraph at lines 4104--4106 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]congrue nces, [][]230[][] Overfull \hbox (3.84502pt too wide) in paragraph at lines 4106--4108 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]constra ints, [][]230[][] Overfull \hbox (2.16524pt too wide) in paragraph at lines 4108--4110 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]get[][][]minimized[][][]generat ors, [][]241[][] Overfull \hbox (11.34532pt too wide) in paragraph at lines 4116--4118 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]is[][][]disjoint[][][]from[][][ ][]Polyhedron, [][]232[][] Overfull \hbox (12.60667pt too wide) in paragraph at lines 4124--4126 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (12.60667pt too wide) in paragraph at lines 4126--4128 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]B[]H[]R[]Z03[][] []extrapolation[] Overfull \hbox (15.27496pt too wide) in paragraph at lines 4128--4130 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapo lation[][][]assign, Overfull \hbox (21.75647pt too wide) in paragraph at lines 4130--4132 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]limited[][][][]H79[][][]extrapo lation[][][]assign[] Overfull \hbox (8.155pt too wide) in paragraph at lines 4148--4150 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]positive[][][]time[][][]elapse[ ][][]assign, [][]248[][] Overfull \hbox (2.16551pt too wide) in paragraph at lines 4158--4160 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]relation[][][]with[][][][]Congr uence, [][]248[][] Overfull \hbox (15.10536pt too wide) in paragraph at lines 4164--4166 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]remove[][][]higher[][][]space[] [][]dimensions, Overfull \hbox (2.97559pt too wide) in paragraph at lines 4166--4168 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]remove[][][]space[][][]dimensio ns, [][]238[][] Overfull \hbox (1.39511pt too wide) in paragraph at lines 4168--4170 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]simplify[][][]using[][][]contex t[][][]assign, Overfull \hbox (12.73518pt too wide) in paragraph at lines 4172--4174 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]strictly[][][]contains[][][][]P olyhedron, [][]232[][] Overfull \hbox (4.39523pt too wide) in paragraph at lines 4176--4178 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]topological[][][]closure[][][]a ssign, [][]235[][] Overfull \hbox (16.05528pt too wide) in paragraph at lines 4180--4182 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dim ension, [][]235[][] Overfull \hbox (2.92516pt too wide) in paragraph at lines 4182--4184 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]unconstrain[][][]space[][][]dim ensions, Overfull \hbox (12.54573pt too wide) in paragraph at lines 4186--4188 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]upper[][][]bound[][][]assign[][ ][]if[][][]exact, [][]248[][] Overfull \hbox (15.12535pt too wide) in paragraph at lines 4190--4192 []| \OT1/ptm/bc/n/10 ppl[][][][]Polyhedron[][][]widening[][][]assign[][][]with[ ][][]tokens, [][]249[][] Overfull \hbox (20.70515pt too wide) in paragraph at lines 4194--4196 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]C[][][][]Polyhedron, Overfull \hbox (27.18666pt too wide) in paragraph at lines 4196--4198 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.1451pt too wide) in paragraph at lines 4198--4200 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (41.6266pt too wide) in paragraph at lines 4200--4202 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.48518pt too wide) in paragraph at lines 4202--4204 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]C[][][][]Polyhedron, Overfull \hbox (24.96669pt too wide) in paragraph at lines 4204--4206 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]C[][][][]Polyhedron[] Overfull \hbox (32.92513pt too wide) in paragraph at lines 4206--4208 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (39.40663pt too wide) in paragraph at lines 4208--4210 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (16.60555pt too wide) in paragraph at lines 4210--4212 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]C[][][][]Polyhedron[][][]from[][][] []C[][][][]Polyhedron, [][]226[][] Overfull \hbox (28.46541pt too wide) in paragraph at lines 4212--4214 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from [][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (4.40729pt too wide) in paragraph at lines 4221--4223 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (4.40729pt too wide) in paragraph at lines 4223--4225 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (3.84723pt too wide) in paragraph at lines 4225--4227 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (3.84723pt too wide) in paragraph at lines 4227--4229 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (8.01584pt too wide) in paragraph at lines 4229--4231 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C [][][][]Polyhedron, [][]225[][] Overfull \hbox (1.07733pt too wide) in paragraph at lines 4231--4233 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C [][][][]Polyhedron[][][] Overfull \hbox (15.98543pt too wide) in paragraph at lines 4233--4235 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C ongruence[][][][]System, Overfull \hbox (9.33511pt too wide) in paragraph at lines 4235--4237 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C onstraint[][][][]System, Overfull \hbox (7.64532pt too wide) in paragraph at lines 4237--4239 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]G enerator[][][][]System, Overfull \hbox (22.7753pt too wide) in paragraph at lines 4241--4243 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]G rid[][][]with[][][]complexity, Overfull \hbox (5.43576pt too wide) in paragraph at lines 4243--4245 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N []N[]C[][][][]Polyhedron, Overfull \hbox (11.91727pt too wide) in paragraph at lines 4245--4247 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N []N[]C[][][][]Polyhedron[] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4247--4249 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4249--4251 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4251--4253 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] [305] Overfull \hbox (10.23708pt too wide) in paragraph at lines 4253--4255 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (5.7956pt too wide) in paragraph at lines 4255--4257 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]R ational[][][][]Box, [][]245[][] Overfull \hbox (16.63684pt too wide) in paragraph at lines 4257--4259 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]R ational[][][][]Box[][][]with[] Overfull \hbox (2.0954pt too wide) in paragraph at lines 4259--4261 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][]spa ce[][][]dimension, Overfull \hbox (2.29729pt too wide) in paragraph at lines 4261--4263 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][] []Congruence[][][] Overfull \hbox (18.61502pt too wide) in paragraph at lines 4263--4265 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][] []Constraint[][][][]System, Overfull \hbox (16.92523pt too wide) in paragraph at lines 4265--4267 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][] []Generator[][][][]System, Overfull \hbox (1.06734pt too wide) in paragraph at lines 4267--4269 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (1.06734pt too wide) in paragraph at lines 4269--4271 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (1.06734pt too wide) in paragraph at lines 4271--4273 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (1.06734pt too wide) in paragraph at lines 4273--4275 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]B[]D[][][][]Shape[][][] Overfull \hbox (5.43576pt too wide) in paragraph at lines 4275--4277 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]C[][][][]Polyhedron, Overfull \hbox (11.91727pt too wide) in paragraph at lines 4277--4279 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]C[][][][]Polyhedron[] Overfull \hbox (3.85732pt too wide) in paragraph at lines 4279--4281 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Congruence[] Overfull \hbox (0.807pt too wide) in paragraph at lines 4281--4283 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Constraint[][][] Overfull \hbox (22.08527pt too wide) in paragraph at lines 4283--4285 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Generator[][][][]System, Overfull \hbox (37.21524pt too wide) in paragraph at lines 4287--4289 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Grid[][][]with[][][]complexity, Overfull \hbox (19.8757pt too wide) in paragraph at lines 4289--4291 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (26.35721pt too wide) in paragraph at lines 4291--4293 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4293--4295 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4295--4297 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4297--4299 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (0.2372pt too wide) in paragraph at lines 4299--4301 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Octagonal[][][] Overfull \hbox (3.21552pt too wide) in paragraph at lines 4301--4303 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box, Overfull \hbox (9.69702pt too wide) in paragraph at lines 4303--4305 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][][]Rational[][][][]Box[] Overfull \hbox (16.53534pt too wide) in paragraph at lines 4305--4307 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][ ][]space[][][]dimension, Overfull \hbox (13.13722pt too wide) in paragraph at lines 4307--4309 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle [][][][]Congruence[] Overfull \hbox (6.48691pt too wide) in paragraph at lines 4309--4311 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle [][][][]Constraint[] Overfull \hbox (4.79712pt too wide) in paragraph at lines 4311--4313 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle [][][][]Generator[] Overfull \hbox (21.25548pt too wide) in paragraph at lines 4313--4315 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]C[][][][]Polyhedron, Overfull \hbox (27.73698pt too wide) in paragraph at lines 4315--4317 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]C[][][][]Polyhedron[] Overfull \hbox (35.69542pt too wide) in paragraph at lines 4317--4319 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (42.17693pt too wide) in paragraph at lines 4319--4321 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (19.0355pt too wide) in paragraph at lines 4321--4323 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]C[][][][]Polyhedron, Overfull \hbox (25.51701pt too wide) in paragraph at lines 4323--4325 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]C[][][][]Polyhedron[] Overfull \hbox (33.47545pt too wide) in paragraph at lines 4325--4327 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]N[]N[]C[][][][]Polyhedron, Overfull \hbox (39.95695pt too wide) in paragraph at lines 4327--4329 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (4.67516pt too wide) in paragraph at lines 4333--4335 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]N[]N[]C[ ][][][]Polyhedron, [][]249[][] Overfull \hbox (13.27516pt too wide) in paragraph at lines 4335--4337 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]N[]N[]C[ ][][][]Polyhedron[][][]2, [][]251[][] Overfull \hbox (2.45518pt too wide) in paragraph at lines 4341--4343 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]N[]N[]C[ ][][][]Polyhedron, [][]250[][] Overfull \hbox (11.05519pt too wide) in paragraph at lines 4343--4345 []| \OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]N[]N[]C[ ][][][]Polyhedron[][][]2, [][]251[][] [306] Overfull \hbox (10.59486pt too wide) in paragraph at lines 4370--4371 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening[] [][]assign[][][]with[][][]tokens Overfull \hbox (4.555pt too wide) in paragraph at lines 4386--4387 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]embed Overfull \hbox (5.66484pt too wide) in paragraph at lines 4388--4389 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]dime nsions[][][]and[][][]project Overfull \hbox (0.3368pt too wide) in paragraph at lines 4420--4421 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]non[ ][][]integer[][][]points[][][] Overfull \hbox (4.11629pt too wide) in paragraph at lines 4438--4439 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affine[ ][][]preimage[][][]lhs[] Overfull \hbox (6.94452pt too wide) in paragraph at lines 4466--4467 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign Overfull \hbox (15.92603pt too wide) in paragraph at lines 4468--4469 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[][ ][]extrapolation[][][]assign[] [307] Overfull \hbox (0.65504pt too wide) in paragraph at lines 4496--4497 []\OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][][] space[][][]dimensions Overfull \hbox (2.7554pt too wide) in paragraph at lines 4507--4509 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]narrowin g[][][]assign, [][]267[][] Overfull \hbox (9.96663pt too wide) in paragraph at lines 4511--4513 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][][]C[]C76[][][]widening [][][]assign[][][]with[] Overfull \hbox (11.70549pt too wide) in paragraph at lines 4523--4525 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]recycled[][][ ]congruences, [][]268[][] Overfull \hbox (5.05518pt too wide) in paragraph at lines 4525--4527 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]recycled[][][ ]constraints, [][]268[][] Overfull \hbox (3.27672pt too wide) in paragraph at lines 4527--4529 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]di mensions[][][]and[] Overfull \hbox (3.27672pt too wide) in paragraph at lines 4529--4531 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]add[][][]space[][][]di mensions[][][]and[] Overfull \hbox (7.7355pt too wide) in paragraph at lines 4543--4545 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]bounded[][][]affine[][ ][]preimage, [][]265[][] Overfull \hbox (10.2553pt too wide) in paragraph at lines 4559--4561 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]no n[][][]integer[][][]points, Overfull \hbox (16.7368pt too wide) in paragraph at lines 4561--4563 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]drop[][][]some[][][]no n[][][]integer[][][]points[] Overfull \hbox (6.17543pt too wide) in paragraph at lines 4565--4567 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]expand[][][]space[][][ ]dimension, [][]266[][] Overfull \hbox (11.44519pt too wide) in paragraph at lines 4567--4569 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]external[][][]memory[] [][]in[][][]bytes, [][]267[][] Overfull \hbox (6.61511pt too wide) in paragraph at lines 4573--4575 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]image, [][]265[][] Overfull \hbox (11.34639pt too wide) in paragraph at lines 4575--4577 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]image[][][]lhs[] Overfull \hbox (2.36499pt too wide) in paragraph at lines 4577--4579 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]preimage, Overfull \hbox (8.8465pt too wide) in paragraph at lines 4579--4581 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]generalized[][][]affin e[][][]preimage[] Overfull \hbox (1.525pt too wide) in paragraph at lines 4587--4589 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][] []congruences, Overfull \hbox (11.8947pt too wide) in paragraph at lines 4589--4591 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]get[][][]minimized[][] []constraints, [][]260[][] Overfull \hbox (0.23625pt too wide) in paragraph at lines 4599--4601 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]is[][][]disjoint[][][] from[][][][]Rational[][][] Overfull \hbox (7.3264pt too wide) in paragraph at lines 4607--4609 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[ ][][]extrapolation[] Overfull \hbox (7.3264pt too wide) in paragraph at lines 4609--4611 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]limited[][][][]C[]C76[ ][][]extrapolation[] Overfull \hbox (0.20547pt too wide) in paragraph at lines 4623--4625 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]refine[][][]with[][][] congruence, [][]263[][] Overfull \hbox (4.09537pt too wide) in paragraph at lines 4625--4627 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]refine[][][]with[][][] congruences, [][]263[][] Overfull \hbox (10.2152pt too wide) in paragraph at lines 4631--4633 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][] [][]Congruence, [][]259[][] Overfull \hbox (3.56488pt too wide) in paragraph at lines 4633--4635 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][] [][]Constraint, [][]259[][] [308] Overfull \hbox (1.87509pt too wide) in paragraph at lines 4635--4637 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]relation[][][]with[][] [][]Generator, [][]259[][] Overfull \hbox (23.15504pt too wide) in paragraph at lines 4637--4639 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]higher[][] []space[][][]dimensions, Overfull \hbox (11.02527pt too wide) in paragraph at lines 4639--4641 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]remove[][][]space[][][ ]dimensions, [][]266[][] Overfull \hbox (9.4448pt too wide) in paragraph at lines 4641--4643 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]simplify[][][]using[][ ][]context[][][]assign, Overfull \hbox (1.62611pt too wide) in paragraph at lines 4645--4647 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]strictly[][][]contains [][][][]Rational[][][] Overfull \hbox (12.44492pt too wide) in paragraph at lines 4649--4651 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]topological[][][]closu re[][][]assign, [][]260[][] Overfull \hbox (7.08495pt too wide) in paragraph at lines 4653--4655 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space [][][]dimension, Overfull \hbox (10.97484pt too wide) in paragraph at lines 4655--4657 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]unconstrain[][][]space [][][]dimensions, Overfull \hbox (3.5754pt too wide) in paragraph at lines 4659--4661 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]upper[][][]bound[][][] assign[][][]if[][][]exact, Overfull \hbox (6.15501pt too wide) in paragraph at lines 4663--4665 []| \OT1/ptm/bc/n/10 ppl[][][][]Rational[][][][]Box[][][]widening[][][]assign[] [][]with[][][]tokens, Overfull \hbox (4.69649pt too wide) in paragraph at lines 4667--4669 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Rational[] Overfull \hbox (4.69649pt too wide) in paragraph at lines 4669--4671 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []M[]S[][][][]Rational[] Overfull \hbox (2.47652pt too wide) in paragraph at lines 4671--4673 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Rational[] Overfull \hbox (2.47652pt too wide) in paragraph at lines 4673--4675 []| \OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][] []P[]R[][][][]Rational[] Overfull \hbox (12.16505pt too wide) in paragraph at lines 4675--4677 []| \OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Rational[][][][]Box[][][]from[][][] []Rational[][][][]Box, [][]268[][] Overfull \hbox (2.18704pt too wide) in paragraph at lines 4685--4687 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (2.18704pt too wide) in paragraph at lines 4687--4689 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpq[] Overfull \hbox (1.62698pt too wide) in paragraph at lines 4689--4691 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (1.62698pt too wide) in paragraph at lines 4691--4693 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B []D[][][][]Shape[][][]mpz[] Overfull \hbox (5.7956pt too wide) in paragraph at lines 4693--4695 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C [][][][]Polyhedron, [][]257[][] Overfull \hbox (16.63684pt too wide) in paragraph at lines 4695--4697 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C [][][][]Polyhedron[][][]with[] Overfull \hbox (13.76518pt too wide) in paragraph at lines 4697--4699 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C ongruence[][][][]System, Overfull \hbox (7.11487pt too wide) in paragraph at lines 4699--4701 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C onstraint[][][][]System, Overfull \hbox (5.42508pt too wide) in paragraph at lines 4701--4703 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]G enerator[][][][]System, Overfull \hbox (20.55505pt too wide) in paragraph at lines 4705--4707 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]G rid[][][]with[][][]complexity, Overfull \hbox (3.21552pt too wide) in paragraph at lines 4707--4709 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N []N[]C[][][][]Polyhedron, Overfull \hbox (9.69702pt too wide) in paragraph at lines 4709--4711 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N []N[]C[][][][]Polyhedron[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4711--4713 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4713--4715 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4715--4717 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (8.01683pt too wide) in paragraph at lines 4717--4719 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]O ctagonal[][][][]Shape[] Overfull \hbox (3.57535pt too wide) in paragraph at lines 4719--4721 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]R ational[][][][]Box, [][]257[][] Overfull \hbox (14.4166pt too wide) in paragraph at lines 4721--4723 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]R ational[][][][]Box[][][]with[] Overfull \hbox (16.89517pt too wide) in paragraph at lines 4723--4725 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][]spa ce[][][]dimension, [][]256[][] Overfull \hbox (16.39478pt too wide) in paragraph at lines 4727--4729 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][] []Constraint[][][][]System, Overfull \hbox (14.70499pt too wide) in paragraph at lines 4729--4731 []| \OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][] []Generator[][][][]System, Overfull \hbox (5.24681pt too wide) in paragraph at lines 4731--4733 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Rational[] Overfull \hbox (5.24681pt too wide) in paragraph at lines 4733--4735 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]M[]S[][][][]Rational[] Overfull \hbox (3.02684pt too wide) in paragraph at lines 4735--4737 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Rational[] Overfull \hbox (3.02684pt too wide) in paragraph at lines 4737--4739 []| \OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][ ]P[]R[][][][]Rational[] [309] Overfull \hbox (14.11662pt too wide) in paragraph at lines 4767--4768 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (14.11662pt too wide) in paragraph at lines 4770--4771 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.55656pt too wide) in paragraph at lines 4773--4774 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (13.55656pt too wide) in paragraph at lines 4776--4777 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (7.18666pt too wide) in paragraph at lines 4781--4782 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]C[][][][]Polyhedron[] Overfull \hbox (12.6451pt too wide) in paragraph at lines 4787--4788 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (21.6266pt too wide) in paragraph at lines 4789--4790 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4791--4792 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4794--4795 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4797--4798 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.94641pt too wide) in paragraph at lines 4800--4801 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.96642pt too wide) in paragraph at lines 4805--4806 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] M[]S[][][][]Rational[][][][]Box[] Overfull \hbox (11.89665pt too wide) in paragraph at lines 4807--4808 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (11.89665pt too wide) in paragraph at lines 4810--4811 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (11.3366pt too wide) in paragraph at lines 4813--4814 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.3366pt too wide) in paragraph at lines 4816--4817 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (4.96669pt too wide) in paragraph at lines 4821--4822 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.42513pt too wide) in paragraph at lines 4827--4828 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (19.40663pt too wide) in paragraph at lines 4829--4830 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4831--4832 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4834--4835 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4837--4838 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (17.72644pt too wide) in paragraph at lines 4840--4841 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (2.74644pt too wide) in paragraph at lines 4845--4846 []\OT1/ptm/bc/n/10 ppl[][][]all[][][]affine[][][]ranking[][][]functions[][][][] P[]R[][][][]Rational[][][][]Box[] Overfull \hbox (1.58662pt too wide) in paragraph at lines 4847--4848 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpq[][][]class [][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (1.02657pt too wide) in paragraph at lines 4850--4851 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]B[]D[][][][]Shape[][][]mpz[][][]class [][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (5.96541pt too wide) in paragraph at lines 4857--4858 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]N[]N[]C[][][][]Polyhedron[][][]from[] [][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (27.96617pt too wide) in paragraph at lines 4859--4860 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpq[][][] class[][][]from[][][][]Octagonal[] Overfull \hbox (27.40611pt too wide) in paragraph at lines 4862--4863 []\OT1/ptm/bc/n/10 ppl[][][]assign[][][][]Octagonal[][][][]Shape[][][]mpz[][][] class[][][]from[][][][]Octagonal[] [310] Overfull \hbox (0.24678pt too wide) in paragraph at lines 4876--4878 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (2.47627pt too wide) in paragraph at lines 4889--4890 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]const[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 4890--4892 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (1.26451pt too wide) in paragraph at lines 4892--4893 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]C[][] [][]Polyhedron[][][]iterator Overfull \hbox (2.7664pt too wide) in paragraph at lines 4893--4895 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 4896--4898 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (16.91621pt too wide) in paragraph at lines 4898--4899 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 4899--4901 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (15.70445pt too wide) in paragraph at lines 4901--4902 []\OT1/ptm/bc/n/10 ppl[][][]delete[][][][]Pointset[][][][]Powerset[][][][]N[]N[ ]C[][][][]Polyhedron[][][]iterator Overfull \hbox (17.20634pt too wide) in paragraph at lines 4902--4904 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (0.51643pt too wide) in paragraph at lines 4932--4933 []\OT1/ptm/bc/n/10 ppl[][][]io[][][]asprint[][][][]Constraints[][][][]Product[] [][][]C[][][][]Polyhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 4933--4935 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 4947--4949 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]215[][] Overfull \hbox (8.46487pt too wide) in paragraph at lines 4959--4960 []\OT1/ptm/bc/n/10 ppl[][][]io[][][]fprint[][][][]Constraints[][][][]Product[][ ][][]C[][][][]Polyhedron[][][][]Grid Overfull \hbox (0.24678pt too wide) in paragraph at lines 4960--4962 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 4974--4976 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (5.13492pt too wide) in paragraph at lines 4986--4987 []\OT1/ptm/bc/n/10 ppl[][][]io[][][]print[][][][]Constraints[][][][]Product[][] [][]C[][][][]Polyhedron[][][][]Grid Overfull \hbox (0.24678pt too wide) in paragraph at lines 4987--4989 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [311] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5001--5003 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]214[][] Overfull \hbox (14.37682pt too wide) in paragraph at lines 5011--5012 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (14.37682pt too wide) in paragraph at lines 5014--5015 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5017--5018 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5020--5021 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (7.44685pt too wide) in paragraph at lines 5026--5027 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.98691pt too wide) in paragraph at lines 5029--5030 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Congruence[][][] Overfull \hbox (16.80464pt too wide) in paragraph at lines 5032--5033 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Constraint[][][][]System Overfull \hbox (15.11485pt too wide) in paragraph at lines 5035--5036 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Generator[][][][]System Overfull \hbox (30.24483pt too wide) in paragraph at lines 5041--5042 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (12.90529pt too wide) in paragraph at lines 5044--5045 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (21.8868pt too wide) in paragraph at lines 5047--5048 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5050--5051 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5053--5054 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5056--5057 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5059--5060 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.22661pt too wide) in paragraph at lines 5065--5066 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][][]Rational[][][][]Box[] Overfull \hbox (9.56493pt too wide) in paragraph at lines 5068--5069 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]from[][][]space[][][]dimension Overfull \hbox (8.66681pt too wide) in paragraph at lines 5071--5072 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Congruence[] Overfull \hbox (2.0165pt too wide) in paragraph at lines 5074--5075 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Constraint[] Overfull \hbox (0.3267pt too wide) in paragraph at lines 5077--5078 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][ ][]recycle[][][][]Generator[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5080--5081 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.81676pt too wide) in paragraph at lines 5083--5084 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (13.2567pt too wide) in paragraph at lines 5086--5087 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (13.2567pt too wide) in paragraph at lines 5089--5090 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (6.8868pt too wide) in paragraph at lines 5095--5096 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (2.42685pt too wide) in paragraph at lines 5098--5099 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Congruence[][][] Overfull \hbox (16.24458pt too wide) in paragraph at lines 5101--5102 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Constraint[][][][]System Overfull \hbox (14.5548pt too wide) in paragraph at lines 5104--5105 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Generator[][][][]System Overfull \hbox (29.68477pt too wide) in paragraph at lines 5110--5111 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Grid[][][]with[][][]complexity Overfull \hbox (12.34523pt too wide) in paragraph at lines 5113--5114 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (21.32674pt too wide) in paragraph at lines 5116--5117 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]N[]N[]C[][][][]Polyhedron[] [312] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5119--5120 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5122--5123 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5125--5126 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5128--5129 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Octagonal[][][][]Shape[] Overfull \hbox (4.66655pt too wide) in paragraph at lines 5134--5135 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][][]Rational[][][][]Box[] Overfull \hbox (9.00487pt too wide) in paragraph at lines 5137--5138 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]from[][][]space[][][]dimension Overfull \hbox (8.10675pt too wide) in paragraph at lines 5140--5141 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Congruence[] Overfull \hbox (1.45644pt too wide) in paragraph at lines 5143--5144 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Constraint[] Overfull \hbox (3.36665pt too wide) in paragraph at lines 5146--5147 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][ ][]recycle[][][][]Generator[][][] Overfull \hbox (7.44685pt too wide) in paragraph at lines 5151--5152 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (6.8868pt too wide) in paragraph at lines 5155--5156 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (2.45709pt too wide) in paragraph at lines 5159--5160 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][] Overfull \hbox (0.2753pt too wide) in paragraph at lines 5169--5170 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Gri d[][][]with[][][]complexity Overfull \hbox (13.29703pt too wide) in paragraph at lines 5173--5174 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (11.61697pt too wide) in paragraph at lines 5175--5176 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.61697pt too wide) in paragraph at lines 5177--5178 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (11.05692pt too wide) in paragraph at lines 5179--5180 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (11.05692pt too wide) in paragraph at lines 5181--5182 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (0.23685pt too wide) in paragraph at lines 5185--5186 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][] Overfull \hbox (2.76534pt too wide) in paragraph at lines 5189--5190 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]C[][][][]Polyhedron[][][]recycle[][][][] Congruence[][][][]System Overfull \hbox (0.2567pt too wide) in paragraph at lines 5195--5196 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5196--5198 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5198--5199 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (14.92522pt too wide) in paragraph at lines 5198--5199 [][]\OT1/ptm/bc/n/10 from[][][][]B[]D[][][][]Shape[][][]mpq[][][]class[][][]wit h[][][]complexity Overfull \hbox (0.24678pt too wide) in paragraph at lines 5199--5201 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5201--5202 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5202--5204 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5204--5205 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (14.36516pt too wide) in paragraph at lines 5204--5205 [][]\OT1/ptm/bc/n/10 from[][][][]B[]D[][][][]Shape[][][]mpz[][][]class[][][]wit h[][][]complexity Overfull \hbox (0.24678pt too wide) in paragraph at lines 5205--5207 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5207--5208 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5208--5210 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5210--5211 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5211--5213 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] [313] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5213--5214 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5214--5216 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5216--5217 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5217--5219 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5219--5220 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (7.9769pt too wide) in paragraph at lines 5219--5220 [][]\OT1/ptm/bc/n/10 from[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5220--5222 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5222--5223 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (7.9769pt too wide) in paragraph at lines 5222--5223 [][]\OT1/ptm/bc/n/10 from[][][][]Constraints[][][][]Product[][][][]C[][][][]Pol yhedron[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5223--5225 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5225--5226 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5226--5228 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5228--5229 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5229--5231 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5231--5232 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5232--5234 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5234--5235 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5235--5237 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5237--5238 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5238--5240 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5240--5241 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (2.66685pt too wide) in paragraph at lines 5240--5241 [][]\OT1/ptm/bc/n/10 from[][][][]Octagonal[][][][]Shape[][][]mpq[][][]class[][] []with[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5241--5243 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5243--5244 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5244--5246 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5246--5247 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (2.1068pt too wide) in paragraph at lines 5246--5247 [][]\OT1/ptm/bc/n/10 from[][][][]Octagonal[][][][]Shape[][][]mpz[][][]class[][] []with[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5247--5249 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5249--5250 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5250--5252 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5252--5253 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5253--5255 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (0.2567pt too wide) in paragraph at lines 5255--5256 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Constraints[][][][]Product[][][][]C[][][ ][]Polyhedron[][][][]Grid[] Overfull \hbox (0.24678pt too wide) in paragraph at lines 5256--5258 []| \OT1/ptm/bc/n/10 ppl[][][][]Constraints[][][][]Product[][][][]C[][][][]Poly hedron[][][][]Grid[] Overfull \hbox (30.24483pt too wide) in paragraph at lines 5260--5261 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpq[][][]class[][][]with[][][]complexity Overfull \hbox (29.68477pt too wide) in paragraph at lines 5264--5265 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]B[]D[][][][]Shape[ ][][]mpz[][][]class[][][]with[][][]complexity Overfull \hbox (0.2753pt too wide) in paragraph at lines 5268--5269 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]C[][][][]Polyhedro n[][][]with[][][]complexity Overfull \hbox (14.71524pt too wide) in paragraph at lines 5282--5283 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]N[]N[]C[][][][]Pol yhedron[][][]with[][][]complexity Overfull \hbox (0.20671pt too wide) in paragraph at lines 5286--5287 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpq[][][]class[][][] Overfull \hbox (17.4264pt too wide) in paragraph at lines 5290--5291 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Grid[][][]from[][][][]Octagonal[][][][]S hape[][][]mpz[][][]class[][][]with[] [314] Overfull \hbox (2.44724pt too wide) in paragraph at lines 5304--5305 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][] Overfull \hbox (2.44724pt too wide) in paragraph at lines 5306--5307 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpq[][][] Overfull \hbox (1.88718pt too wide) in paragraph at lines 5308--5309 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (1.88718pt too wide) in paragraph at lines 5310--5311 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]B[]D[][][][]Shape[][][]mpz[][][] Overfull \hbox (13.29703pt too wide) in paragraph at lines 5314--5315 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]C[][][][]Polyhedron[][][]with[] Overfull \hbox (7.92537pt too wide) in paragraph at lines 5316--5317 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Congruence[][][][]System Overfull \hbox (1.27505pt too wide) in paragraph at lines 5318--5319 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Constraint[][][][]System Overfull \hbox (14.71524pt too wide) in paragraph at lines 5324--5325 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Grid[][][]with[][][]complexity Overfull \hbox (6.35721pt too wide) in paragraph at lines 5328--5329 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5330--5331 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5332--5333 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5334--5335 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (4.67702pt too wide) in paragraph at lines 5336--5337 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Octagonal[][][][]Shape[] Overfull \hbox (11.07678pt too wide) in paragraph at lines 5340--5341 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]from[][][ ][]Rational[][][][]Box[][][]with[] Overfull \hbox (17.20528pt too wide) in paragraph at lines 5344--5345 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Congruence[][][][]System Overfull \hbox (10.55496pt too wide) in paragraph at lines 5346--5347 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Constraint[][][][]System Overfull \hbox (8.86517pt too wide) in paragraph at lines 5348--5349 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]N[]N[]C[][][][]Polyhedron[][][]recycle[] [][][]Generator[][][][]System Overfull \hbox (20.2066pt too wide) in paragraph at lines 5350--5351 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5353--5354 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5356--5357 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (20.2066pt too wide) in paragraph at lines 5359--5360 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (25.67503pt too wide) in paragraph at lines 5362--5363 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (34.65654pt too wide) in paragraph at lines 5365--5366 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.59659pt too wide) in paragraph at lines 5368--5369 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Congruence[] Overfull \hbox (19.94627pt too wide) in paragraph at lines 5371--5372 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Constraint[] Overfull \hbox (18.25648pt too wide) in paragraph at lines 5374--5375 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Generator[] Overfull \hbox (0.20671pt too wide) in paragraph at lines 5380--5381 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Grid[][][] Overfull \hbox (2.98676pt too wide) in paragraph at lines 5383--5384 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (2.98676pt too wide) in paragraph at lines 5386--5387 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5389--5390 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5392--5393 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5395--5396 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] [315] Overfull \hbox (19.37646pt too wide) in paragraph at lines 5398--5399 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (12.16637pt too wide) in paragraph at lines 5401--5402 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (12.16637pt too wide) in paragraph at lines 5404--5405 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (0.4866pt too wide) in paragraph at lines 5407--5408 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]from[][][]space[] Overfull \hbox (35.8765pt too wide) in paragraph at lines 5410--5411 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Congruence[] Overfull \hbox (29.22618pt too wide) in paragraph at lines 5413--5414 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Constraint[] Overfull \hbox (27.53639pt too wide) in paragraph at lines 5416--5417 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpq[][][]cla ss[][][]recycle[][][][]Generator[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5419--5420 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5422--5423 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5425--5426 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (19.64655pt too wide) in paragraph at lines 5428--5429 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]B[]D[][][][]Shape[] Overfull \hbox (25.11497pt too wide) in paragraph at lines 5431--5432 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron Overfull \hbox (34.09648pt too wide) in paragraph at lines 5434--5435 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]C[][][][]Polyhedron[] Overfull \hbox (26.03653pt too wide) in paragraph at lines 5437--5438 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Congruence[] Overfull \hbox (19.38622pt too wide) in paragraph at lines 5440--5441 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Constraint[] Overfull \hbox (17.69643pt too wide) in paragraph at lines 5443--5444 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Generator[] Overfull \hbox (17.4264pt too wide) in paragraph at lines 5449--5450 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Grid[][][]with[] Overfull \hbox (2.4267pt too wide) in paragraph at lines 5452--5453 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (2.4267pt too wide) in paragraph at lines 5455--5456 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]N[]N[]C[][][] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5458--5459 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5461--5462 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5464--5465 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (18.8164pt too wide) in paragraph at lines 5467--5468 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Octagonal[] Overfull \hbox (11.60631pt too wide) in paragraph at lines 5470--5471 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (11.60631pt too wide) in paragraph at lines 5473--5474 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][][]Rational[] Overfull \hbox (3.52655pt too wide) in paragraph at lines 5476--5477 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]from[][][]space[][][] Overfull \hbox (35.31644pt too wide) in paragraph at lines 5479--5480 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Congruence[] Overfull \hbox (28.66612pt too wide) in paragraph at lines 5482--5483 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Constraint[] Overfull \hbox (26.97633pt too wide) in paragraph at lines 5485--5486 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Octagonal[][][][]Shape[][][]mpz[][][]cla ss[][][]recycle[][][][]Generator[] Overfull \hbox (18.50455pt too wide) in paragraph at lines 5488--5489 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator Overfull \hbox (27.47614pt too wide) in paragraph at lines 5489--5491 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (27.48605pt too wide) in paragraph at lines 5491--5492 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]const[][][]iterator[] Overfull \hbox (27.47614pt too wide) in paragraph at lines 5492--5494 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]const[][][]iterator[] Overfull \hbox (3.60658pt too wide) in paragraph at lines 5494--5495 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[] Overfull \hbox (3.60658pt too wide) in paragraph at lines 5497--5498 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]C[] Overfull \hbox (45.25636pt too wide) in paragraph at lines 5500--5501 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Congruence[] Overfull \hbox (38.60605pt too wide) in paragraph at lines 5503--5504 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Constraint[] [316] Overfull \hbox (29.1661pt too wide) in paragraph at lines 5506--5507 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[] Overfull \hbox (29.1661pt too wide) in paragraph at lines 5509--5510 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][][]Pointset[] Overfull \hbox (1.92542pt too wide) in paragraph at lines 5509--5510 [][][]\OT1/ptm/bc/n/10 Powerset[][][][]C[][][][]Polyhedron[][][]with[][][]compl exity Overfull \hbox (19.14638pt too wide) in paragraph at lines 5512--5513 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]from[][][]space[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 5516--5518 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (2.77632pt too wide) in paragraph at lines 5518--5519 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]C[][][][ ]Polyhedron[][][]iterator[] Overfull \hbox (2.7664pt too wide) in paragraph at lines 5519--5521 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]C[][][][]Polyhe dron[][][]iterator[] Overfull \hbox (9.44652pt too wide) in paragraph at lines 5521--5522 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 5522--5524 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (9.44652pt too wide) in paragraph at lines 5524--5525 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]const[] Overfull \hbox (9.4366pt too wide) in paragraph at lines 5525--5527 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]const[] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5527--5528 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5528--5530 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5530--5531 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5531--5533 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5533--5534 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5534--5536 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5536--5537 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5537--5539 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5539--5540 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5540--5542 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5542--5543 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (12.72676pt too wide) in paragraph at lines 5542--5543 [][][]\OT1/ptm/bc/n/10 Pointset[][][][]Powerset[][][][]N[]N[]C[][][][]Polyhedro n[][][]with[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5543--5545 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]205[][] Overfull \hbox (7.7766pt too wide) in paragraph at lines 5545--5546 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]from[] Overfull \hbox (11.08522pt too wide) in paragraph at lines 5546--5548 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]tag, [][]204[][] Overfull \hbox (8.23476pt too wide) in paragraph at lines 5548--5549 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator Overfull \hbox (17.20634pt too wide) in paragraph at lines 5549--5551 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (17.21626pt too wide) in paragraph at lines 5551--5552 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[ ][][][]Polyhedron[][][]iterator[] Overfull \hbox (17.20634pt too wide) in paragraph at lines 5552--5554 []| \OT1/ptm/bc/n/10 ppl[][][][]Pointset[][][][]Powerset[][][][]N[]N[]C[][][][] Polyhedron[][][]iterator[] Overfull \hbox (5.22661pt too wide) in paragraph at lines 5556--5557 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (4.66655pt too wide) in paragraph at lines 5560--5561 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]B[] D[][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (0.23685pt too wide) in paragraph at lines 5564--5565 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]C[] [][][]Polyhedron[][][]with[][][] Overfull \hbox (11.07678pt too wide) in paragraph at lines 5578--5579 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]N[] N[]C[][][][]Polyhedron[][][]with[] Overfull \hbox (9.39673pt too wide) in paragraph at lines 5580--5581 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (9.39673pt too wide) in paragraph at lines 5582--5583 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpq[] Overfull \hbox (8.83667pt too wide) in paragraph at lines 5584--5585 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (8.83667pt too wide) in paragraph at lines 5586--5587 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Oct agonal[][][][]Shape[][][]mpz[] Overfull \hbox (33.88464pt too wide) in paragraph at lines 5590--5591 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]from[][][][]Rat ional[][][][]Box[][][]with[][][]complexity Overfull \hbox (0.54509pt too wide) in paragraph at lines 5594--5595 []\OT1/ptm/bc/n/10 ppl[][][]new[][][][]Rational[][][][]Box[][][]recycle[][][][] Congruence[][][][]System Overfull \hbox (14.66695pt too wide) in paragraph at lines 5600--5601 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[] [317] Overfull \hbox (14.66695pt too wide) in paragraph at lines 5603--5604 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (14.10689pt too wide) in paragraph at lines 5606--5607 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (14.10689pt too wide) in paragraph at lines 5609--5610 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (7.73698pt too wide) in paragraph at lines 5614--5615 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]C[][][][]Polyhedron[] Overfull \hbox (13.19542pt too wide) in paragraph at lines 5620--5621 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (22.17693pt too wide) in paragraph at lines 5622--5623 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5624--5625 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5627--5628 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5630--5631 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (20.49673pt too wide) in paragraph at lines 5633--5634 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Octagonal[][][][]Shape[] Overfull \hbox (5.51674pt too wide) in paragraph at lines 5638--5639 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]M []S[][][][]Rational[][][][]Box[] Overfull \hbox (12.44698pt too wide) in paragraph at lines 5640--5641 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (12.44698pt too wide) in paragraph at lines 5643--5644 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpq[] Overfull \hbox (11.88692pt too wide) in paragraph at lines 5646--5647 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (11.88692pt too wide) in paragraph at lines 5649--5650 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]B[]D[][][][]Shape[][][]mpz[] Overfull \hbox (5.51701pt too wide) in paragraph at lines 5654--5655 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]C[][][][]Polyhedron[] Overfull \hbox (10.97545pt too wide) in paragraph at lines 5660--5661 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron Overfull \hbox (19.95695pt too wide) in paragraph at lines 5662--5663 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]N[]N[]C[][][][]Polyhedron[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5664--5665 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5667--5668 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5670--5671 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (18.27676pt too wide) in paragraph at lines 5673--5674 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Octagonal[][][][]Shape[] Overfull \hbox (3.29677pt too wide) in paragraph at lines 5678--5679 []\OT1/ptm/bc/n/10 ppl[][][]one[][][]affine[][][]ranking[][][]function[][][][]P []R[][][][]Rational[][][][]Box[] [318] Overfull \hbox (7.89441pt too wide) in paragraph at lines 5716--5717 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class Overfull \hbox (16.87592pt too wide) in paragraph at lines 5719--5720 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (7.33435pt too wide) in paragraph at lines 5722--5723 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class Overfull \hbox (16.31586pt too wide) in paragraph at lines 5725--5726 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]M[]S[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] Overfull \hbox (5.67444pt too wide) in paragraph at lines 5756--5757 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class Overfull \hbox (14.65594pt too wide) in paragraph at lines 5759--5760 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpq[][][]class[] Overfull \hbox (5.11438pt too wide) in paragraph at lines 5762--5763 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class Overfull \hbox (14.09589pt too wide) in paragraph at lines 5765--5766 []\OT1/ptm/bc/n/10 ppl[][][]termination[][][]test[][][][]P[]R[][][][]Octagonal[ ][][][]Shape[][][]mpz[][][]class[] [319]) (./refman.aux (./group__Init.aux) (./group__Version.aux) (./group__Error.aux) (./group__Timeout.aux) (./group__Datatypes.aux)) LaTeX Font Warning: Some font shapes were not available, defaults substituted. ) (see the transcript file for additional information){/usr/share/texlive/texmf-d ist/fonts/enc/dvips/base/8r.enc} Output written on refman.pdf (325 pages, 2050269 bytes). Transcript written on refman.log. make[3]: Leaving directory '/build/ppl-1.2/doc/user-configured-c-interface.latex-dir' pdftops ppl-user-configured-c-interface-1.2.pdf ppl-user-configured-c-interface-1.2.ps gzip -n --best --force ppl-user-configured-c-interface-1.2.ps rm -rf ppl-user-configured-c-interface-1.2-html rm -rf ppl-user-configured-prolog-interface-1.2-html /bin/sed -e 's//PPL_DOXYGEN_CONFIGURED_MANUAL/' -e 's//Configured C/' -e 's//configured-c-interface/' -e 's///' \ ./user-language-interface.tex \ > user-configured-c-interface.tex /bin/sed -e 's//PPL_DOXYGEN_CONFIGURED_MANUAL/' -e 's//Configured Prolog/' -e 's//configured-prolog-interface/' -e 's///' \ ./user-language-interface.tex \ > user-configured-prolog-interface.tex /bin/sed -e 's//PPL_DOXYGEN_CONFIGURED_MANUAL/' -e 's//Configured Prolog/' -e 's//configured-prolog-interface/' -e 's///' -f ./interfaces-html.sed -e 's||ppl-user-1.2-html.tag=../ppl-user-1.2-html|' \ -e 's||'"./gpl.dox ./fdl.dox ./../interfaces/Prolog/Prolog_configured_interface.dox ./../interfaces/Prolog/Prolog_interface_sysindep.dox ../interfaces/Prolog/Prolog_configured_domains.dox ./../interfaces/Prolog/Prolog_interface_compilation.dox ./../interfaces/Prolog/Prolog_interface_sysdep.dox"'|' \ user-language-interface.doxyconf \ > Doxyfile.user-configured-prolog-interface-html /bin/sed -e 's//PPL_DOXYGEN_CONFIGURED_MANUAL/' -e 's//Configured C/' -e 's//configured-c-interface/' -e 's///' -f ./interfaces-html.sed -e 's||ppl-user-1.2-html.tag=../ppl-user-1.2-html|' \ -e 's||'"./gpl.dox ./fdl.dox ./../interfaces/C/C_interface.dox ../interfaces/C/ppl_c.h"'|' \ user-language-interface.doxyconf \ > Doxyfile.user-configured-c-interface-html TEXINPUTS=/build/ppl-1.2/doc: texmf_casefold_search=0 doxygen Doxyfile.user-configured-prolog-interface-html TEXINPUTS=/build/ppl-1.2/doc: texmf_casefold_search=0 doxygen Doxyfile.user-configured-c-interface-html warning: doxygen no longer ships with the FreeSans font. You may want to clear or change DOT_FONTNAME. Otherwise you run the risk that the wrong font is being used for dot generated graphs. warning: doxygen no longer ships with the FreeSans font. You may want to clear or change DOT_FONTNAME. Otherwise you run the risk that the wrong font is being used for dot generated graphs. /build/ppl-1.2/doc/gpl.dox:6: warning: multiple use of section label 'GPL' while adding anchor, (first occurrence: GPL) /build/ppl-1.2/doc/fdl.dox:6: warning: multiple use of section label 'GFDL' while adding anchor, (first occurrence: GFDL) /build/ppl-1.2/doc/gpl.dox:6: warning: multiple use of section label 'GPL' while adding anchor, (first occurrence: GPL) /build/ppl-1.2/doc/fdl.dox:6: warning: multiple use of section label 'GFDL' while adding anchor, (first occurrence: GFDL) GPL:-1: warning: multiple use of section label 'GPL', (first occurrence: GPL) GFDL:-1: warning: multiple use of section label 'GFDL', (first occurrence: GFDL) GPL:-1: warning: multiple use of section label 'GPL', (first occurrence: GPL) GFDL:-1: warning: multiple use of section label 'GFDL', (first occurrence: GFDL) This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./_formulas.tex LaTeX2e <2018-12-01> This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./_formulas.tex LaTeX2e <2018-12-01> tar cf ppl-user-configured-prolog-interface-1.2-html.tar ppl-user-configured-prolog-interface-1.2-html gzip -n --best --force ppl-user-configured-prolog-interface-1.2-html.tar tar cf ppl-user-configured-c-interface-1.2-html.tar ppl-user-configured-c-interface-1.2-html gzip -n --best --force ppl-user-configured-c-interface-1.2-html.tar make[2]: Leaving directory '/build/ppl-1.2/doc' make[1]: Leaving directory '/build/ppl-1.2' dh_auto_build -Nlibppl-doc make -j3 make[1]: Entering directory '/build/ppl-1.2' make all-recursive make[2]: Entering directory '/build/ppl-1.2' Making all in . make[3]: Entering directory '/build/ppl-1.2' make[3]: Leaving directory '/build/ppl-1.2' Making all in utils make[3]: Entering directory '/build/ppl-1.2/utils' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/ppl-1.2/utils' Making all in src make[3]: Entering directory '/build/ppl-1.2/src' make all-am make[4]: Entering directory '/build/ppl-1.2/src' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/ppl-1.2/src' make[3]: Leaving directory '/build/ppl-1.2/src' Making all in tests make[3]: Entering directory '/build/ppl-1.2/tests' Making all in . make[4]: Entering directory '/build/ppl-1.2/tests' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/ppl-1.2/tests' Making all in Concrete_Expression make[4]: Entering directory '/build/ppl-1.2/tests/Concrete_Expression' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/Concrete_Expression' Making all in CO_Tree make[4]: Entering directory '/build/ppl-1.2/tests/CO_Tree' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/CO_Tree' Making all in PIP_Problem make[4]: Entering directory '/build/ppl-1.2/tests/PIP_Problem' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/PIP_Problem' Making all in Powerset make[4]: Entering directory '/build/ppl-1.2/tests/Powerset' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/Powerset' Making all in Partially_Reduced_Product make[4]: Entering directory '/build/ppl-1.2/tests/Partially_Reduced_Product' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/Partially_Reduced_Product' Making all in Box make[4]: Entering directory '/build/ppl-1.2/tests/Box' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/Box' Making all in MIP_Problem make[4]: Entering directory '/build/ppl-1.2/tests/MIP_Problem' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/MIP_Problem' Making all in Octagonal_Shape make[4]: Entering directory '/build/ppl-1.2/tests/Octagonal_Shape' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/Octagonal_Shape' Making all in BD_Shape make[4]: Entering directory '/build/ppl-1.2/tests/BD_Shape' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/BD_Shape' Making all in Polyhedron make[4]: Entering directory '/build/ppl-1.2/tests/Polyhedron' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/Polyhedron' Making all in Grid make[4]: Entering directory '/build/ppl-1.2/tests/Grid' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/Grid' Making all in Watchdog make[4]: Entering directory '/build/ppl-1.2/tests/Watchdog' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/ppl-1.2/tests/Watchdog' make[3]: Leaving directory '/build/ppl-1.2/tests' Making all in interfaces make[3]: Entering directory '/build/ppl-1.2/interfaces' make all-recursive make[4]: Entering directory '/build/ppl-1.2/interfaces' Making all in . make[5]: Entering directory '/build/ppl-1.2/interfaces' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/build/ppl-1.2/interfaces' Making all in C make[5]: Entering directory '/build/ppl-1.2/interfaces/C' make all-recursive make[6]: Entering directory '/build/ppl-1.2/interfaces/C' Making all in . make[7]: Entering directory '/build/ppl-1.2/interfaces/C' make[7]: Nothing to be done for 'all-am'. make[7]: Leaving directory '/build/ppl-1.2/interfaces/C' Making all in tests make[7]: Entering directory '/build/ppl-1.2/interfaces/C/tests' make[7]: Nothing to be done for 'all'. make[7]: Leaving directory '/build/ppl-1.2/interfaces/C/tests' make[6]: Leaving directory '/build/ppl-1.2/interfaces/C' make[5]: Leaving directory '/build/ppl-1.2/interfaces/C' Making all in Prolog make[5]: Entering directory '/build/ppl-1.2/interfaces/Prolog' make all-recursive make[6]: Entering directory '/build/ppl-1.2/interfaces/Prolog' Making all in . make[7]: Entering directory '/build/ppl-1.2/interfaces/Prolog' make[7]: Nothing to be done for 'all-am'. make[7]: Leaving directory '/build/ppl-1.2/interfaces/Prolog' Making all in tests make[7]: Entering directory '/build/ppl-1.2/interfaces/Prolog/tests' make[7]: Nothing to be done for 'all'. make[7]: Leaving directory '/build/ppl-1.2/interfaces/Prolog/tests' Making all in SWI make[7]: Entering directory '/build/ppl-1.2/interfaces/Prolog/SWI' make[7]: Nothing to be done for 'all'. make[7]: Leaving directory '/build/ppl-1.2/interfaces/Prolog/SWI' make[6]: Leaving directory '/build/ppl-1.2/interfaces/Prolog' make[5]: Leaving directory '/build/ppl-1.2/interfaces/Prolog' make[4]: Leaving directory '/build/ppl-1.2/interfaces' make[3]: Leaving directory '/build/ppl-1.2/interfaces' Making all in demos make[3]: Entering directory '/build/ppl-1.2/demos' Making all in ppl_pips make[4]: Entering directory '/build/ppl-1.2/demos/ppl_pips' Making all in examples make[5]: Entering directory '/build/ppl-1.2/demos/ppl_pips/examples' make[5]: Nothing to be done for 'all'. make[5]: Leaving directory '/build/ppl-1.2/demos/ppl_pips/examples' make[5]: Entering directory '/build/ppl-1.2/demos/ppl_pips' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/build/ppl-1.2/demos/ppl_pips' make[4]: Leaving directory '/build/ppl-1.2/demos/ppl_pips' make[4]: Entering directory '/build/ppl-1.2/demos' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/ppl-1.2/demos' make[3]: Leaving directory '/build/ppl-1.2/demos' Making all in doc make[3]: Entering directory '/build/ppl-1.2/doc' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/ppl-1.2/doc' Making all in m4 make[3]: Entering directory '/build/ppl-1.2/m4' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/ppl-1.2/m4' make[2]: Leaving directory '/build/ppl-1.2' make[1]: Leaving directory '/build/ppl-1.2' debian/rules override_dh_auto_test-arch make[1]: Entering directory '/build/ppl-1.2' # FIXME: there are test failures with swi-prolog 7.2 # for now just ignore these. dh_auto_test CFLAGS="-gstabs -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -gstabs -marm" CXXFLAGS="-gstabs -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -gstabs -fpermissive -marm" || true make -j3 check VERBOSE=1 make[2]: Entering directory '/build/ppl-1.2' Making check in . make[3]: Entering directory '/build/ppl-1.2' make[3]: Leaving directory '/build/ppl-1.2' Making check in utils make[3]: Entering directory '/build/ppl-1.2/utils' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/ppl-1.2/utils' Making check in src make[3]: Entering directory '/build/ppl-1.2/src' make check-am make[4]: Entering directory '/build/ppl-1.2/src' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/build/ppl-1.2/src' make[3]: Leaving directory '/build/ppl-1.2/src' Making check in tests make[3]: Entering directory '/build/ppl-1.2/tests' Making check in . make[4]: Entering directory '/build/ppl-1.2/tests' make libppl_tests.a make[5]: Entering directory '/build/ppl-1.2/tests' g++ -DHAVE_CONFIG_H -I. -I.. -I../src -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o files.o files.cc g++ -DHAVE_CONFIG_H -I. -I.. -I../src -I../src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ppl_test.o ppl_test.cc In file included from ../src/CO_Tree_defs.hh:1557, from ../src/Sparse_Row_defs.hh:29, from ../src/Linear_Expression_Impl_defs.hh:33, from ../src/ppl_include_files.hh:8, from ../src/ppl_header.hh:38, from ppl_test.hh:27, from ppl_test.cc:24: ../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../src/mp_std_bits_defs.hh:28, from ../src/checked_defs.hh:27, from ../src/Checked_Number_defs.hh:28, from ../src/checked_numeric_limits.hh:27, from ../src/ppl_include_files.hh:3, from ../src/ppl_header.hh:38, from ppl_test.hh:27, from ppl_test.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/Linear_System_templates.hh:30, from ../src/Linear_System_defs.hh:580, from ../src/Constraint_System_defs.hh:29, from ../src/Box_inlines.hh:28, from ../src/Box_defs.hh:2285, from ../src/Linear_Form_templates.hh:29, from ../src/ppl_include_files.hh:9, from ../src/ppl_header.hh:38, from ppl_test.hh:27, from ppl_test.cc:24: ../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ rm -f libppl_tests.a ar cru libppl_tests.a files.o ppl_test.o ar: `u' modifier ignored since `D' is the default (see `U') ranlib libppl_tests.a make[5]: Leaving directory '/build/ppl-1.2/tests' make[4]: Leaving directory '/build/ppl-1.2/tests' Making check in Concrete_Expression make[4]: Entering directory '/build/ppl-1.2/tests/Concrete_Expression' make \ run_tests make[5]: Entering directory '/build/ppl-1.2/tests/Concrete_Expression' make[5]: Nothing to be done for 'run_tests'. make[5]: Leaving directory '/build/ppl-1.2/tests/Concrete_Expression' make check-TESTS make[5]: Entering directory '/build/ppl-1.2/tests/Concrete_Expression' ================== All 0 tests passed ================== make[5]: Leaving directory '/build/ppl-1.2/tests/Concrete_Expression' make[4]: Leaving directory '/build/ppl-1.2/tests/Concrete_Expression' Making check in CO_Tree make[4]: Entering directory '/build/ppl-1.2/tests/CO_Tree' make cotree1 make[5]: Entering directory '/build/ppl-1.2/tests/CO_Tree' g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../utils -I../../tests -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o cotree1.o cotree1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from cotree1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from cotree1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from cotree1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z,relro -o cotree1 cotree1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lgmpxx -lgmp libtool: link: g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z -Wl,relro -o .libs/cotree1 cotree1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -lgmpxx -lgmp make[5]: Leaving directory '/build/ppl-1.2/tests/CO_Tree' make check-TESTS make[5]: Entering directory '/build/ppl-1.2/tests/CO_Tree' make[6]: Entering directory '/build/ppl-1.2/tests/CO_Tree' PASS: cotree1 ============================================================================ Testsuite summary for the Parma Polyhedra Library 1.2 ============================================================================ # TOTAL: 1 # PASS: 1 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ make[6]: Leaving directory '/build/ppl-1.2/tests/CO_Tree' make[5]: Leaving directory '/build/ppl-1.2/tests/CO_Tree' make[4]: Leaving directory '/build/ppl-1.2/tests/CO_Tree' Making check in PIP_Problem make[4]: Entering directory '/build/ppl-1.2/tests/PIP_Problem' make ascii_dump_load1 exceptions1 pipproblem1 pipproblem2 pipproblem3 weightwatch1 make[5]: Entering directory '/build/ppl-1.2/tests/PIP_Problem' g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../utils -I../../tests -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o ascii_dump_load1.o ascii_dump_load1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../utils -I../../tests -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o exceptions1.o exceptions1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../utils -I../../tests -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o pipproblem1.o pipproblem1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from exceptions1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from exceptions1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from ascii_dump_load1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from ascii_dump_load1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from exceptions1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from pipproblem1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from pipproblem1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from ascii_dump_load1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from pipproblem1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../utils -I../../tests -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o pipproblem2.o pipproblem2.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../utils -I../../tests -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o pipproblem3.o pipproblem3.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from pipproblem2.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from pipproblem2.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from pipproblem2.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from pipproblem3.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from pipproblem3.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from pipproblem3.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../utils -I../../tests -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o weightwatch1.o weightwatch1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from weightwatch1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from weightwatch1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from weightwatch1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z,relro -o ascii_dump_load1 ascii_dump_load1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lgmpxx -lgmp libtool: link: g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z -Wl,relro -o .libs/ascii_dump_load1 ascii_dump_load1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -lgmpxx -lgmp /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z,relro -o exceptions1 exceptions1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lgmpxx -lgmp libtool: link: g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z -Wl,relro -o .libs/exceptions1 exceptions1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -lgmpxx -lgmp /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z,relro -o pipproblem1 pipproblem1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lgmpxx -lgmp libtool: link: g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z -Wl,relro -o .libs/pipproblem1 pipproblem1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -lgmpxx -lgmp /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z,relro -o pipproblem3 pipproblem3.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lgmpxx -lgmp libtool: link: g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z -Wl,relro -o .libs/pipproblem3 pipproblem3.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -lgmpxx -lgmp /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z,relro -o pipproblem2 pipproblem2.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lgmpxx -lgmp libtool: link: g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z -Wl,relro -o .libs/pipproblem2 pipproblem2.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -lgmpxx -lgmp /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z,relro -o weightwatch1 weightwatch1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lgmpxx -lgmp libtool: link: g++ -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -Wl,-z -Wl,relro -o .libs/weightwatch1 weightwatch1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -lgmpxx -lgmp make[5]: Leaving directory '/build/ppl-1.2/tests/PIP_Problem' make check-TESTS make[5]: Entering directory '/build/ppl-1.2/tests/PIP_Problem' make[6]: Entering directory '/build/ppl-1.2/tests/PIP_Problem' PASS: ascii_dump_load1 PASS: exceptions1 PASS: pipproblem1 PASS: pipproblem2 PASS: pipproblem3 PASS: weightwatch1 ============================================================================ Testsuite summary for the Parma Polyhedra Library 1.2 ============================================================================ # TOTAL: 6 # PASS: 6 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ make[6]: Leaving directory '/build/ppl-1.2/tests/PIP_Problem' make[5]: Leaving directory '/build/ppl-1.2/tests/PIP_Problem' make[4]: Leaving directory '/build/ppl-1.2/tests/PIP_Problem' Making check in Powerset make[4]: Entering directory '/build/ppl-1.2/tests/Powerset' make addcongruences1 addconstraints1 affinedimension1 affineimage1 affinepreimage1 bounded1 bounds1 closed1 closure1 collapse1 concatenate1 contains1 containsintegerpoint1 difference1 discrete1 disjoint1 disjunct1 empty1 entails1 equals1 frombdshape1 frombox1 fromcongruences1 fromconstraints1 fromgrid1 fromoctagonalshape1 frompolyhedron1 fromspacedimension1 intersection1 maxmin1 meet1 membytes1 powerset1 reduce1 refinewith1 relationwith1 simplifyusingcontext1 size1 spacedims1 universe1 upperbound1 make[5]: Entering directory '/build/ppl-1.2/tests/Powerset' g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o addcongruences1.o addcongruences1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o addconstraints1.o addconstraints1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o affinedimension1.o affinedimension1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from addcongruences1.cc:25: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from addconstraints1.cc:25: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from addconstraints1.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from addcongruences1.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from affinedimension1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from affinedimension1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from addcongruences1.cc:25: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from addconstraints1.cc:25: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from affinedimension1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o affineimage1.o affineimage1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o affinepreimage1.o affinepreimage1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o bounded1.o bounded1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from affineimage1.cc:26: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from affineimage1.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from affinepreimage1.cc:26: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from affinepreimage1.cc:26: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from affineimage1.cc:26: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from affinepreimage1.cc:26: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from bounded1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from bounded1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from bounded1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o bounds1.o bounds1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o closed1.o closed1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from bounds1.cc:25: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from bounds1.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from bounds1.cc:25: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from closed1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from closed1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from closed1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o closure1.o closure1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from closure1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from closure1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from closure1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o collapse1.o collapse1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o concatenate1.o concatenate1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from collapse1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from collapse1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from collapse1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from concatenate1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from concatenate1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from concatenate1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o contains1.o contains1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from contains1.cc:25: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from contains1.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from contains1.cc:25: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o containsintegerpoint1.o containsintegerpoint1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o difference1.o difference1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from containsintegerpoint1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from containsintegerpoint1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from containsintegerpoint1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o discrete1.o discrete1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from difference1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from difference1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from difference1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from discrete1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from discrete1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from discrete1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o disjoint1.o disjoint1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o disjunct1.o disjunct1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from disjoint1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from disjoint1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o empty1.o empty1.cc In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from disjoint1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from disjunct1.cc:25: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from disjunct1.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from disjunct1.cc:25: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from empty1.cc:25: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from empty1.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from empty1.cc:25: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o entails1.o entails1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from entails1.cc:24: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from entails1.cc:24: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from entails1.cc:24: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o equals1.o equals1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from equals1.cc:25: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from equals1.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from equals1.cc:25: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o frombdshape1.o frombdshape1.cc g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -I../../src -I../../tests -I../../utils -DNDEBUG=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -frounding-math -g -O2 -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -fpermissive -marm -W -Wall -c -o frombox1.o frombox1.cc In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from frombdshape1.cc:25: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from frombdshape1.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from frombdshape1.cc:25: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ In file included from ../../src/Pointset_Powerset_defs.hh:1454, from ../../src/algorithms.hh:28, from ../../src/ppl_include_files.hh:18, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from equals1.cc:25: ../../src/Pointset_Powerset_templates.hh: In instantiation of 'Parma_Polyhedra_Library::Pointset_Powerset::Pointset_Powerset(const Parma_Polyhedra_Library::Pointset_Powerset&, Parma_Polyhedra_Library::Complexity_Class) [with QH = Parma_Polyhedra_Library::Box, Parma_Polyhedra_Library::Interval_Info_Bitset > >; PSET = Parma_Polyhedra_Library::NNC_Polyhedron]': ../../src/Pointset_Powerset_inlines.hh:262:43: required from 'bool Parma_Polyhedra_Library::Pointset_Powerset::geometrically_equals(const Parma_Polyhedra_Library::Pointset_Powerset&) const [with PSET = Parma_Polyhedra_Library::Box, Parma_Polyhedra_Library::Interval_Info_Bitset > >]' equals1.cc:44:50: required from here ../../src/Pointset_Powerset_templates.hh:66:29: internal compiler error: in type_dependent_expression_p, at cp/pt.c:25195 y_end = y.end(); i != y_end; ++i) { ~~^~~~~~~~ Please submit a full bug report, with preprocessed source if appropriate. See for instructions. In file included from ../../src/CO_Tree_defs.hh:1557, from ../../src/Sparse_Row_defs.hh:29, from ../../src/Linear_Expression_Impl_defs.hh:33, from ../../src/ppl_include_files.hh:8, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from frombox1.cc:25: ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] std::memcpy(&to, &from, sizeof(data_type)); ^ In file included from ../../src/mp_std_bits_defs.hh:28, from ../../src/checked_defs.hh:27, from ../../src/Checked_Number_defs.hh:28, from ../../src/checked_numeric_limits.hh:27, from ../../src/ppl_include_files.hh:3, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from frombox1.cc:25: /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here class __gmp_expr ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../src/Linear_System_templates.hh:30, from ../../src/Linear_System_defs.hh:580, from ../../src/Constraint_System_defs.hh:29, from ../../src/Box_inlines.hh:28, from ../../src/Box_defs.hh:2285, from ../../src/Linear_Form_templates.hh:29, from ../../src/ppl_include_files.hh:9, from ../../src/ppl_header.hh:38, from ../../tests/ppl_test.hh:27, from frombox1.cc:25: ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] ? static_cast(&Scalar_Products::sign) ^ ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] : static_cast(&Scalar_Products::reduced_sign)) { ^ Preprocessed source stored into /tmp/ccli7HMJ.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 23376: // Target: arm-linux-gnueabihf 23376: // Configured with: ../src/configure -v --with-pkgversion='Debian 8.3.0-6' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf 23376: // Thread model: posix 23376: // gcc version 8.3.0 (Debian 8.3.0-6) 23376: // 23376: // In file included from ../../src/CO_Tree_defs.hh:1557, 23376: // from ../../src/Sparse_Row_defs.hh:29, 23376: // from ../../src/Linear_Expression_Impl_defs.hh:33, 23376: // from ../../src/ppl_include_files.hh:8, 23376: // from ../../src/ppl_header.hh:38, 23376: // from ../../tests/ppl_test.hh:27, 23376: // from equals1.cc:25: 23376: // ../../src/CO_Tree_inlines.hh: In static member function 'static void Parma_Polyhedra_Library::CO_Tree::move_data_element(Parma_Polyhedra_Library::CO_Tree::data_type&, Parma_Polyhedra_Library::CO_Tree::data_type&)': 23376: // ../../src/CO_Tree_inlines.hh:354:44: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] 23376: // std::memcpy(&to, &from, sizeof(data_type)); 23376: // ^ 23376: // In file included from ../../src/mp_std_bits_defs.hh:28, 23376: // from ../../src/checked_defs.hh:27, 23376: // from ../../src/Checked_Number_defs.hh:28, 23376: // from ../../src/checked_numeric_limits.hh:27, 23376: // from ../../src/ppl_include_files.hh:3, 23376: // from ../../src/ppl_header.hh:38, 23376: // from ../../tests/ppl_test.hh:27, 23376: // from equals1.cc:25: 23376: // /usr/include/gmpxx.h:1429:7: note: 'Parma_Polyhedra_Library::CO_Tree::data_type' {aka 'class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>'} declared here 23376: // class __gmp_expr 23376: // ^~~~~~~~~~~~~~~~~~~~~~~~ 23376: // In file included from ../../src/Linear_System_templates.hh:30, 23376: // from ../../src/Linear_System_defs.hh:580, 23376: // from ../../src/Constraint_System_defs.hh:29, 23376: // from ../../src/Box_inlines.hh:28, 23376: // from ../../src/Box_defs.hh:2285, 23376: // from ../../src/Linear_Form_templates.hh:29, 23376: // from ../../src/ppl_include_files.hh:9, 23376: // from ../../src/ppl_header.hh:38, 23376: // from ../../tests/ppl_test.hh:27, 23376: // from equals1.cc:25: 23376: // ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Constraint&)': 23376: // ../../src/Scalar_Products_inlines.hh:129:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] 23376: // ? static_cast(&Scalar_Products::sign) 23376: // ^ 23376: // ../../src/Scalar_Products_inlines.hh:130:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] 23376: // : static_cast(&Scalar_Products::reduced_sign)) { 23376: // ^ 23376: // ../../src/Scalar_Products_inlines.hh: In constructor 'Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign(const Parma_Polyhedra_Library::Generator&)': 23376: // ../../src/Scalar_Products_inlines.hh:137:58: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] 23376: // ? static_cast(&Scalar_Products::sign) 23376: // ^ 23376: // ../../src/Scalar_Products_inlines.hh:138:66: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] 23376: // : static_cast(&Scalar_Products::reduced_sign)) { 23376: // ^ 23376: // In file included from ../../src/Pointset_Powerset_defs.hh:1454, 23376: // from ../../src/algorithms.hh:28, 23376: // from ../../src/ppl_include_files.hh:18, 23376: // from ../../src/ppl_header.hh:38, 23376: // from ../../tests/ppl_test.hh:27, 23376: // from equals1.cc:25: 23376: // ../../src/Pointset_Powerset_templates.hh: In instantiation of 'Parma_Polyhedra_Library::Pointset_Powerset::Pointset_Powerset(const Parma_Polyhedra_Library::Pointset_Powerset&, Parma_Polyhedra_Library::Complexity_Class) [with QH = Parma_Polyhedra_Library::Box, Parma_Polyhedra_Library::Interval_Info_Bitset > >; PSET = Parma_Polyhedra_Library::NNC_Polyhedron]': 23376: // ../../src/Pointset_Powerset_inlines.hh:262:43: required from 'bool Parma_Polyhedra_Library::Pointset_Powerset::geometrically_equals(const Parma_Polyhedra_Library::Pointset_Powerset&) const [with PSET = Parma_Polyhedra_Library::Box, Parma_Polyhedra_Library::Interval_Info_Bitset > >]' 23376: // equals1.cc:44:50: required from here 23376: // ../../src/Pointset_Powerset_templates.hh:66:29: internal compiler error: in type_dependent_expression_p, at cp/pt.c:25195 23376: // y_end = y.end(); i != y_end; ++i) { 23376: // ~~^~~~~~~~ 23376: // Please submit a full bug report, 23376: // with preprocessed source if appropriate. 23376: // See for instructions. 23376: 23376: // /usr/lib/gcc/arm-linux-gnueabihf/8/cc1plus -quiet -I . -I ../.. -I ../../src -I ../../src -I ../../tests -I ../../utils -imultilib . -imultiarch arm-linux-gnueabihf -D_GNU_SOURCE -D HAVE_CONFIG_H -D NDEBUG=1 -D _FORTIFY_SOURCE=2 equals1.cc -quiet -dumpbase equals1.cc -marm -mfloat-abi=hard -mfpu=vfpv3-d16 -mtls-dialect=gnu -march=armv7-a+fp -auxbase-strip equals1.o -g -g -g -O2 -O2 -Wdate-time -Wformat=1 -Werror=format-security -Wextra -Wall -frounding-math -ffile-prefix-map=/build/ppl-1.2=. -fstack-protector-strong -fpermissive -o - -frandom-seed=0 -fdump-noaddr 23376: 23376: # 1 "equals1.cc" 23376: # 1 "/build/ppl-1.2/tests/Powerset//" 23376: # 1 "" 23376: # 1 "" 23376: # 1 "/usr/include/stdc-predef.h" 1 3 4 23376: # 1 "" 2 23376: # 1 "equals1.cc" 23376: # 25 "equals1.cc" 23376: # 1 "../../tests/ppl_test.hh" 1 23376: # 27 "../../tests/ppl_test.hh" 23376: # 1 "../../src/ppl_header.hh" 1 23376: # 36 "../../src/ppl_header.hh" 23376: # 1 "../../ppl-config.h" 1 23376: # 402 "../../ppl-config.h" 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h" 1 3 4 23376: # 9 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h" 3 4 23376: # 1 "/usr/include/stdint.h" 1 3 4 23376: # 26 "/usr/include/stdint.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 23376: # 33 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 3 4 23376: # 1 "/usr/include/features.h" 1 3 4 23376: # 424 "/usr/include/features.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 1 3 4 23376: # 442 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 23376: # 443 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/long-double.h" 1 3 4 23376: # 444 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 2 3 4 23376: # 425 "/usr/include/features.h" 2 3 4 23376: # 448 "/usr/include/features.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 1 3 4 23376: # 10 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/gnu/stubs-hard.h" 1 3 4 23376: # 11 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 2 3 4 23376: # 449 "/usr/include/features.h" 2 3 4 23376: # 34 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 2 3 4 23376: # 27 "/usr/include/stdint.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types.h" 1 3 4 23376: # 27 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 23376: # 28 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4 23376: 23376: 23376: 23376: # 30 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4 23376: typedef unsigned char __u_char; 23376: typedef unsigned short int __u_short; 23376: typedef unsigned int __u_int; 23376: typedef unsigned long int __u_long; 23376: 23376: 23376: typedef signed char __int8_t; 23376: typedef unsigned char __uint8_t; 23376: typedef signed short int __int16_t; 23376: typedef unsigned short int __uint16_t; 23376: typedef signed int __int32_t; 23376: typedef unsigned int __uint32_t; 23376: 23376: 23376: 23376: 23376: __extension__ typedef signed long long int __int64_t; 23376: __extension__ typedef unsigned long long int __uint64_t; 23376: 23376: 23376: 23376: typedef __int8_t __int_least8_t; 23376: typedef __uint8_t __uint_least8_t; 23376: typedef __int16_t __int_least16_t; 23376: typedef __uint16_t __uint_least16_t; 23376: typedef __int32_t __int_least32_t; 23376: typedef __uint32_t __uint_least32_t; 23376: typedef __int64_t __int_least64_t; 23376: typedef __uint64_t __uint_least64_t; 23376: 23376: 23376: 23376: 23376: 23376: 23376: __extension__ typedef long long int __quad_t; 23376: __extension__ typedef unsigned long long int __u_quad_t; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: __extension__ typedef long long int __intmax_t; 23376: __extension__ typedef unsigned long long int __uintmax_t; 23376: # 140 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/typesizes.h" 1 3 4 23376: # 141 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4 23376: 23376: 23376: __extension__ typedef __u_quad_t __dev_t; 23376: __extension__ typedef unsigned int __uid_t; 23376: __extension__ typedef unsigned int __gid_t; 23376: __extension__ typedef unsigned long int __ino_t; 23376: __extension__ typedef __u_quad_t __ino64_t; 23376: __extension__ typedef unsigned int __mode_t; 23376: __extension__ typedef unsigned int __nlink_t; 23376: __extension__ typedef long int __off_t; 23376: __extension__ typedef __quad_t __off64_t; 23376: __extension__ typedef int __pid_t; 23376: __extension__ typedef struct { int __val[2]; } __fsid_t; 23376: __extension__ typedef long int __clock_t; 23376: __extension__ typedef unsigned long int __rlim_t; 23376: __extension__ typedef __u_quad_t __rlim64_t; 23376: __extension__ typedef unsigned int __id_t; 23376: __extension__ typedef long int __time_t; 23376: __extension__ typedef unsigned int __useconds_t; 23376: __extension__ typedef long int __suseconds_t; 23376: 23376: __extension__ typedef int __daddr_t; 23376: __extension__ typedef int __key_t; 23376: 23376: 23376: __extension__ typedef int __clockid_t; 23376: 23376: 23376: __extension__ typedef void * __timer_t; 23376: 23376: 23376: __extension__ typedef long int __blksize_t; 23376: 23376: 23376: 23376: 23376: __extension__ typedef long int __blkcnt_t; 23376: __extension__ typedef __quad_t __blkcnt64_t; 23376: 23376: 23376: __extension__ typedef unsigned long int __fsblkcnt_t; 23376: __extension__ typedef __u_quad_t __fsblkcnt64_t; 23376: 23376: 23376: __extension__ typedef unsigned long int __fsfilcnt_t; 23376: __extension__ typedef __u_quad_t __fsfilcnt64_t; 23376: 23376: 23376: __extension__ typedef int __fsword_t; 23376: 23376: __extension__ typedef int __ssize_t; 23376: 23376: 23376: __extension__ typedef long int __syscall_slong_t; 23376: 23376: __extension__ typedef unsigned long int __syscall_ulong_t; 23376: 23376: 23376: 23376: typedef __off64_t __loff_t; 23376: typedef char *__caddr_t; 23376: 23376: 23376: __extension__ typedef int __intptr_t; 23376: 23376: 23376: __extension__ typedef unsigned int __socklen_t; 23376: 23376: 23376: 23376: 23376: typedef int __sig_atomic_t; 23376: # 28 "/usr/include/stdint.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/wchar.h" 1 3 4 23376: # 29 "/usr/include/stdint.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 23376: # 30 "/usr/include/stdint.h" 2 3 4 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdint-intn.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/stdint-intn.h" 3 4 23376: typedef __int8_t int8_t; 23376: typedef __int16_t int16_t; 23376: typedef __int32_t int32_t; 23376: typedef __int64_t int64_t; 23376: # 35 "/usr/include/stdint.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h" 3 4 23376: typedef __uint8_t uint8_t; 23376: typedef __uint16_t uint16_t; 23376: typedef __uint32_t uint32_t; 23376: typedef __uint64_t uint64_t; 23376: # 38 "/usr/include/stdint.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: typedef __int_least8_t int_least8_t; 23376: typedef __int_least16_t int_least16_t; 23376: typedef __int_least32_t int_least32_t; 23376: typedef __int_least64_t int_least64_t; 23376: 23376: 23376: typedef __uint_least8_t uint_least8_t; 23376: typedef __uint_least16_t uint_least16_t; 23376: typedef __uint_least32_t uint_least32_t; 23376: typedef __uint_least64_t uint_least64_t; 23376: 23376: 23376: 23376: 23376: 23376: typedef signed char int_fast8_t; 23376: 23376: 23376: 23376: 23376: 23376: typedef int int_fast16_t; 23376: typedef int int_fast32_t; 23376: __extension__ 23376: typedef long long int int_fast64_t; 23376: 23376: 23376: 23376: typedef unsigned char uint_fast8_t; 23376: 23376: 23376: 23376: 23376: 23376: typedef unsigned int uint_fast16_t; 23376: typedef unsigned int uint_fast32_t; 23376: __extension__ 23376: typedef unsigned long long int uint_fast64_t; 23376: # 93 "/usr/include/stdint.h" 3 4 23376: typedef int intptr_t; 23376: 23376: 23376: typedef unsigned int uintptr_t; 23376: 23376: 23376: 23376: 23376: typedef __intmax_t intmax_t; 23376: typedef __uintmax_t uintmax_t; 23376: # 10 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h" 2 3 4 23376: # 403 "../../ppl-config.h" 2 23376: 23376: 23376: 23376: # 1 "/usr/include/inttypes.h" 1 3 4 23376: # 266 "/usr/include/inttypes.h" 3 4 23376: extern "C" { 23376: # 280 "/usr/include/inttypes.h" 3 4 23376: typedef struct 23376: { 23376: __extension__ long long int quot; 23376: __extension__ long long int rem; 23376: } imaxdiv_t; 23376: 23376: 23376: 23376: 23376: 23376: extern intmax_t imaxabs (intmax_t __n) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) 23376: throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern intmax_t strtoimax (const char *__restrict __nptr, 23376: char **__restrict __endptr, int __base) throw (); 23376: 23376: 23376: extern uintmax_t strtoumax (const char *__restrict __nptr, 23376: char ** __restrict __endptr, int __base) throw (); 23376: 23376: 23376: extern intmax_t wcstoimax (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, int __base) 23376: throw (); 23376: 23376: 23376: extern uintmax_t wcstoumax (const wchar_t *__restrict __nptr, 23376: wchar_t ** __restrict __endptr, int __base) 23376: throw (); 23376: # 370 "/usr/include/inttypes.h" 3 4 23376: __extension__ 23376: extern long long int __strtoll_internal (const char *__restrict __nptr, 23376: char **__restrict __endptr, 23376: int __base, int __group) 23376: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) intmax_t 23376: __attribute__ ((__leaf__)) strtoimax (const char *__restrict nptr, char **__restrict endptr, int base) throw () 23376: 23376: { 23376: return __strtoll_internal (nptr, endptr, base, 0); 23376: } 23376: 23376: __extension__ 23376: extern unsigned long long int __strtoull_internal (const char * 23376: __restrict __nptr, 23376: char ** 23376: __restrict __endptr, 23376: int __base, 23376: int __group) 23376: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) uintmax_t 23376: __attribute__ ((__leaf__)) strtoumax (const char *__restrict nptr, char **__restrict endptr, int base) throw () 23376: 23376: { 23376: return __strtoull_internal (nptr, endptr, base, 0); 23376: } 23376: 23376: __extension__ 23376: extern long long int __wcstoll_internal (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: int __base, int __group) 23376: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) intmax_t 23376: __attribute__ ((__leaf__)) wcstoimax (const wchar_t *__restrict nptr, wchar_t **__restrict endptr, int base) throw () 23376: 23376: { 23376: return __wcstoll_internal (nptr, endptr, base, 0); 23376: } 23376: 23376: 23376: __extension__ 23376: extern unsigned long long int __wcstoull_internal (const wchar_t * 23376: __restrict __nptr, 23376: wchar_t ** 23376: __restrict __endptr, 23376: int __base, 23376: int __group) 23376: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) uintmax_t 23376: __attribute__ ((__leaf__)) wcstoumax (const wchar_t *__restrict nptr, wchar_t **__restrict endptr, int base) throw () 23376: 23376: { 23376: return __wcstoull_internal (nptr, endptr, base, 0); 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: # 407 "../../ppl-config.h" 2 23376: # 37 "../../src/ppl_header.hh" 2 23376: # 1 "../../src/version.hh" 1 23376: # 61 "../../src/version.hh" 23376: 23376: # 61 "../../src/version.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: unsigned 23376: version_major(); 23376: 23376: 23376: unsigned 23376: version_minor(); 23376: 23376: 23376: unsigned 23376: version_revision(); 23376: 23376: 23376: unsigned 23376: version_beta(); 23376: 23376: 23376: const char* version(); 23376: # 92 "../../src/version.hh" 23376: const char* banner(); 23376: 23376: 23376: 23376: } 23376: # 38 "../../src/ppl_header.hh" 2 23376: # 1 "../../src/ppl_include_files.hh" 1 23376: # 1 "../../src/namespaces.hh" 1 23376: # 28 "../../src/namespaces.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 58 "../../src/namespaces.hh" 23376: namespace IO_Operators { 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace Checked { 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace Implementation { 23376: } 23376: 23376: 23376: 23376: 23376: namespace Interfaces { 23376: 23376: 23376: 23376: 23376: 23376: namespace C { 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace Java { 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace OCaml { 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace Prolog { 23376: 23376: 23376: 23376: 23376: 23376: namespace Ciao { 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace GNU { 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace SICStus { 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace SWI { 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace XSB { 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: namespace YAP { 23376: 23376: } 23376: 23376: } 23376: 23376: } 23376: 23376: } 23376: # 180 "../../src/namespaces.hh" 23376: namespace std { 23376: } 23376: # 2 "../../src/ppl_include_files.hh" 2 23376: # 1 "../../src/Interval_Info_types.hh" 1 23376: # 16 "../../src/Interval_Info_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Interval_Info_Null; 23376: 23376: template 23376: class Interval_Info_Bitset; 23376: 23376: } 23376: # 3 "../../src/ppl_include_files.hh" 2 23376: # 1 "../../src/checked_numeric_limits.hh" 1 23376: # 27 "../../src/checked_numeric_limits.hh" 23376: # 1 "../../src/Checked_Number_defs.hh" 1 23376: # 27 "../../src/Checked_Number_defs.hh" 23376: # 1 "../../src/Checked_Number_types.hh" 1 23376: # 16 "../../src/Checked_Number_types.hh" 23376: # 1 "../../src/Coefficient_traits_template.hh" 1 23376: # 27 "../../src/Coefficient_traits_template.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct Coefficient_traits_template { 23376: }; 23376: 23376: } 23376: # 17 "../../src/Checked_Number_types.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: struct Extended_Number_Policy; 23376: 23376: template 23376: class Checked_Number; 23376: 23376: } 23376: # 28 "../../src/Checked_Number_defs.hh" 2 23376: # 1 "../../src/checked_defs.hh" 1 23376: # 27 "../../src/checked_defs.hh" 23376: # 1 "../../src/mp_std_bits_defs.hh" 1 23376: # 28 "../../src/mp_std_bits_defs.hh" 23376: # 1 "/usr/include/gmpxx.h" 1 3 4 23376: # 34 "/usr/include/gmpxx.h" 3 4 23376: # 1 "/usr/include/c++/8/iosfwd" 1 3 4 23376: # 36 "/usr/include/c++/8/iosfwd" 3 4 23376: 23376: # 37 "/usr/include/c++/8/iosfwd" 3 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 1 3 23376: # 236 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 23376: 23376: # 236 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 23376: namespace std 23376: { 23376: typedef unsigned int size_t; 23376: typedef int ptrdiff_t; 23376: 23376: 23376: typedef decltype(nullptr) nullptr_t; 23376: 23376: } 23376: # 258 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 23376: namespace std 23376: { 23376: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 23376: } 23376: namespace __gnu_cxx 23376: { 23376: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 23376: } 23376: # 508 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/os_defines.h" 1 3 23376: # 509 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 2 3 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/cpu_defines.h" 1 3 23376: # 512 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 2 3 23376: # 39 "/usr/include/c++/8/iosfwd" 2 3 23376: # 1 "/usr/include/c++/8/bits/stringfwd.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/stringfwd.h" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/stringfwd.h" 3 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/memoryfwd.h" 1 3 23376: # 46 "/usr/include/c++/8/bits/memoryfwd.h" 3 23376: 23376: # 47 "/usr/include/c++/8/bits/memoryfwd.h" 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 63 "/usr/include/c++/8/bits/memoryfwd.h" 3 23376: template 23376: class allocator; 23376: 23376: template<> 23376: class allocator; 23376: 23376: 23376: template 23376: struct uses_allocator; 23376: 23376: 23376: 23376: 23376: } 23376: # 41 "/usr/include/c++/8/bits/stringfwd.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct char_traits; 23376: 23376: template<> struct char_traits; 23376: 23376: 23376: template<> struct char_traits; 23376: 23376: 23376: 23376: 23376: template<> struct char_traits; 23376: template<> struct char_traits; 23376: 23376: 23376: namespace __cxx11 { 23376: 23376: template, 23376: typename _Alloc = allocator<_CharT> > 23376: class basic_string; 23376: 23376: 23376: typedef basic_string string; 23376: 23376: 23376: 23376: typedef basic_string wstring; 23376: 23376: 23376: 23376: 23376: 23376: typedef basic_string u16string; 23376: 23376: 23376: typedef basic_string u32string; 23376: 23376: 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: # 40 "/usr/include/c++/8/iosfwd" 2 3 23376: # 1 "/usr/include/c++/8/bits/postypes.h" 1 3 23376: # 38 "/usr/include/c++/8/bits/postypes.h" 3 23376: 23376: # 39 "/usr/include/c++/8/bits/postypes.h" 3 23376: 23376: # 1 "/usr/include/c++/8/cwchar" 1 3 23376: # 39 "/usr/include/c++/8/cwchar" 3 23376: 23376: # 40 "/usr/include/c++/8/cwchar" 3 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/wchar.h" 1 3 4 23376: # 27 "/usr/include/wchar.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 23376: # 28 "/usr/include/wchar.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/floatn.h" 1 3 4 23376: # 52 "/usr/include/arm-linux-gnueabihf/bits/floatn.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/floatn-common.h" 1 3 4 23376: # 214 "/usr/include/arm-linux-gnueabihf/bits/floatn-common.h" 3 4 23376: typedef float _Float32; 23376: # 238 "/usr/include/arm-linux-gnueabihf/bits/floatn-common.h" 3 4 23376: typedef long double _Float64; 23376: # 268 "/usr/include/arm-linux-gnueabihf/bits/floatn-common.h" 3 4 23376: typedef double _Float32x; 23376: # 52 "/usr/include/arm-linux-gnueabihf/bits/floatn.h" 2 3 4 23376: # 31 "/usr/include/wchar.h" 2 3 4 23376: 23376: 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 216 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 23376: typedef unsigned int size_t; 23376: # 36 "/usr/include/wchar.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h" 1 3 4 23376: # 40 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h" 3 4 23376: typedef __builtin_va_list __gnuc_va_list; 23376: # 39 "/usr/include/wchar.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/wint_t.h" 1 3 4 23376: # 20 "/usr/include/arm-linux-gnueabihf/bits/types/wint_t.h" 3 4 23376: typedef unsigned int wint_t; 23376: # 42 "/usr/include/wchar.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/mbstate_t.h" 1 3 4 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h" 1 3 4 23376: # 13 "/usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h" 3 4 23376: typedef struct 23376: { 23376: int __count; 23376: union 23376: { 23376: unsigned int __wch; 23376: char __wchb[4]; 23376: } __value; 23376: } __mbstate_t; 23376: # 5 "/usr/include/arm-linux-gnueabihf/bits/types/mbstate_t.h" 2 3 4 23376: 23376: typedef __mbstate_t mbstate_t; 23376: # 43 "/usr/include/wchar.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__FILE.h" 1 3 4 23376: 23376: 23376: 23376: struct _IO_FILE; 23376: typedef struct _IO_FILE __FILE; 23376: # 44 "/usr/include/wchar.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/FILE.h" 1 3 4 23376: 23376: 23376: 23376: struct _IO_FILE; 23376: 23376: 23376: typedef struct _IO_FILE FILE; 23376: # 47 "/usr/include/wchar.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/locale_t.h" 1 3 4 23376: # 22 "/usr/include/arm-linux-gnueabihf/bits/types/locale_t.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__locale_t.h" 1 3 4 23376: # 28 "/usr/include/arm-linux-gnueabihf/bits/types/__locale_t.h" 3 4 23376: struct __locale_struct 23376: { 23376: 23376: struct __locale_data *__locales[13]; 23376: 23376: 23376: const unsigned short int *__ctype_b; 23376: const int *__ctype_tolower; 23376: const int *__ctype_toupper; 23376: 23376: 23376: const char *__names[13]; 23376: }; 23376: 23376: typedef struct __locale_struct *__locale_t; 23376: # 23 "/usr/include/arm-linux-gnueabihf/bits/types/locale_t.h" 2 3 4 23376: 23376: typedef __locale_t locale_t; 23376: # 50 "/usr/include/wchar.h" 2 3 4 23376: # 79 "/usr/include/wchar.h" 3 4 23376: extern "C" { 23376: 23376: 23376: 23376: struct tm; 23376: 23376: 23376: 23376: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern wchar_t *wcscat (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); 23376: 23376: 23376: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 23376: size_t __n) throw (); 23376: 23376: 23376: 23376: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 23376: locale_t __loc) throw (); 23376: 23376: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 23376: size_t __n, locale_t __loc) throw (); 23376: 23376: 23376: 23376: 23376: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); 23376: 23376: 23376: 23376: extern size_t wcsxfrm (wchar_t *__restrict __s1, 23376: const wchar_t *__restrict __s2, size_t __n) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 23376: locale_t __loc) throw (); 23376: 23376: 23376: 23376: 23376: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 23376: size_t __n, locale_t __loc) throw (); 23376: 23376: 23376: extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); 23376: 23376: 23376: 23376: 23376: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 23376: throw () __asm ("wcschr") __attribute__ ((__pure__)); 23376: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 23376: throw () __asm ("wcschr") __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 23376: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 23376: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 23376: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 23376: # 181 "/usr/include/wchar.h" 3 4 23376: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 23376: throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 23376: throw () __attribute__ ((__pure__)); 23376: 23376: 23376: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 23376: throw () __attribute__ ((__pure__)); 23376: 23376: 23376: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 23376: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 23376: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 23376: const wchar_t *__accept) 23376: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 23376: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 23376: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 23376: const wchar_t *__needle) 23376: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern wchar_t *wcstok (wchar_t *__restrict __s, 23376: const wchar_t *__restrict __delim, 23376: wchar_t **__restrict __ptr) throw (); 23376: 23376: 23376: extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 23376: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 23376: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 23376: const wchar_t *__needle) 23376: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 23376: # 240 "/usr/include/wchar.h" 3 4 23376: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 23376: throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: 23376: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 23376: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 23376: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 23376: size_t __n) 23376: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 23376: throw () __attribute__ ((__pure__)); 23376: 23376: 23376: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 23376: const wchar_t *__restrict __s2, size_t __n) throw (); 23376: 23376: 23376: 23376: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 23376: throw (); 23376: 23376: 23376: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); 23376: 23376: 23376: 23376: 23376: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 23376: const wchar_t *__restrict __s2, size_t __n) 23376: throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t btowc (int __c) throw (); 23376: 23376: 23376: 23376: extern int wctob (wint_t __c) throw (); 23376: 23376: 23376: 23376: extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: extern size_t mbrtowc (wchar_t *__restrict __pwc, 23376: const char *__restrict __s, size_t __n, 23376: mbstate_t *__restrict __p) throw (); 23376: 23376: 23376: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 23376: mbstate_t *__restrict __ps) throw (); 23376: 23376: 23376: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 23376: mbstate_t *__restrict __ps) throw (); 23376: extern size_t mbrlen (const char *__restrict __s, size_t __n, 23376: mbstate_t *__restrict __ps) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 23376: extern __inline __attribute__ ((__gnu_inline__)) wint_t 23376: __attribute__ ((__leaf__)) btowc (int __c) throw () 23376: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 23376: ? (wint_t) __c : __btowc_alias (__c)); } 23376: 23376: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: __attribute__ ((__leaf__)) wctob (wint_t __wc) throw () 23376: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 23376: ? (int) __wc : __wctob_alias (__wc)); } 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) size_t 23376: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () 23376: 23376: { return (__ps != __null 23376: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 23376: 23376: 23376: 23376: 23376: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 23376: const char **__restrict __src, size_t __len, 23376: mbstate_t *__restrict __ps) throw (); 23376: 23376: 23376: 23376: extern size_t wcsrtombs (char *__restrict __dst, 23376: const wchar_t **__restrict __src, size_t __len, 23376: mbstate_t *__restrict __ps) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 23376: const char **__restrict __src, size_t __nmc, 23376: size_t __len, mbstate_t *__restrict __ps) throw (); 23376: 23376: 23376: 23376: extern size_t wcsnrtombs (char *__restrict __dst, 23376: const wchar_t **__restrict __src, 23376: size_t __nwc, size_t __len, 23376: mbstate_t *__restrict __ps) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int wcwidth (wchar_t __c) throw (); 23376: 23376: 23376: 23376: extern int wcswidth (const wchar_t *__s, size_t __n) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern double wcstod (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr) throw (); 23376: 23376: 23376: 23376: extern float wcstof (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr) throw (); 23376: extern long double wcstold (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr) throw (); 23376: # 396 "/usr/include/wchar.h" 3 4 23376: extern _Float32 wcstof32 (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr) throw (); 23376: 23376: 23376: 23376: extern _Float64 wcstof64 (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr) throw (); 23376: # 411 "/usr/include/wchar.h" 3 4 23376: extern _Float32x wcstof32x (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr) throw (); 23376: # 428 "/usr/include/wchar.h" 3 4 23376: extern long int wcstol (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, int __base) throw (); 23376: 23376: 23376: 23376: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, int __base) 23376: throw (); 23376: 23376: 23376: 23376: 23376: __extension__ 23376: extern long long int wcstoll (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, int __base) 23376: throw (); 23376: 23376: 23376: 23376: __extension__ 23376: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: int __base) throw (); 23376: 23376: 23376: 23376: 23376: 23376: __extension__ 23376: extern long long int wcstoq (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, int __base) 23376: throw (); 23376: 23376: 23376: 23376: __extension__ 23376: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: int __base) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long int wcstol_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, int __base, 23376: locale_t __loc) throw (); 23376: 23376: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: int __base, locale_t __loc) throw (); 23376: 23376: __extension__ 23376: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: int __base, locale_t __loc) throw (); 23376: 23376: __extension__ 23376: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: int __base, locale_t __loc) 23376: throw (); 23376: 23376: extern double wcstod_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, locale_t __loc) 23376: throw (); 23376: 23376: extern float wcstof_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, locale_t __loc) 23376: throw (); 23376: 23376: extern long double wcstold_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: locale_t __loc) throw (); 23376: # 511 "/usr/include/wchar.h" 3 4 23376: extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: locale_t __loc) throw (); 23376: 23376: 23376: 23376: extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: locale_t __loc) throw (); 23376: # 529 "/usr/include/wchar.h" 3 4 23376: extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr, 23376: wchar_t **__restrict __endptr, 23376: locale_t __loc) throw (); 23376: # 551 "/usr/include/wchar.h" 3 4 23376: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src) throw (); 23376: 23376: 23376: 23376: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src, size_t __n) 23376: throw (); 23376: # 567 "/usr/include/wchar.h" 3 4 23376: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern int fwide (__FILE *__fp, int __mode) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int fwprintf (__FILE *__restrict __stream, 23376: const wchar_t *__restrict __format, ...) 23376: ; 23376: 23376: 23376: 23376: 23376: extern int wprintf (const wchar_t *__restrict __format, ...) 23376: ; 23376: 23376: extern int swprintf (wchar_t *__restrict __s, size_t __n, 23376: const wchar_t *__restrict __format, ...) 23376: throw () ; 23376: 23376: 23376: 23376: 23376: 23376: extern int vfwprintf (__FILE *__restrict __s, 23376: const wchar_t *__restrict __format, 23376: __gnuc_va_list __arg) 23376: ; 23376: 23376: 23376: 23376: 23376: extern int vwprintf (const wchar_t *__restrict __format, 23376: __gnuc_va_list __arg) 23376: ; 23376: 23376: 23376: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 23376: const wchar_t *__restrict __format, 23376: __gnuc_va_list __arg) 23376: throw () ; 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int fwscanf (__FILE *__restrict __stream, 23376: const wchar_t *__restrict __format, ...) 23376: ; 23376: 23376: 23376: 23376: 23376: extern int wscanf (const wchar_t *__restrict __format, ...) 23376: ; 23376: 23376: extern int swscanf (const wchar_t *__restrict __s, 23376: const wchar_t *__restrict __format, ...) 23376: throw () ; 23376: # 673 "/usr/include/wchar.h" 3 4 23376: extern int vfwscanf (__FILE *__restrict __s, 23376: const wchar_t *__restrict __format, 23376: __gnuc_va_list __arg) 23376: ; 23376: 23376: 23376: 23376: 23376: extern int vwscanf (const wchar_t *__restrict __format, 23376: __gnuc_va_list __arg) 23376: ; 23376: 23376: extern int vswscanf (const wchar_t *__restrict __s, 23376: const wchar_t *__restrict __format, 23376: __gnuc_va_list __arg) 23376: throw () ; 23376: # 727 "/usr/include/wchar.h" 3 4 23376: extern wint_t fgetwc (__FILE *__stream); 23376: extern wint_t getwc (__FILE *__stream); 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t getwchar (void); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 23376: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t putwchar (wchar_t __wc); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 23376: __FILE *__restrict __stream); 23376: 23376: 23376: 23376: 23376: 23376: extern int fputws (const wchar_t *__restrict __ws, 23376: __FILE *__restrict __stream); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 23376: # 782 "/usr/include/wchar.h" 3 4 23376: extern wint_t getwc_unlocked (__FILE *__stream); 23376: extern wint_t getwchar_unlocked (void); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t fgetwc_unlocked (__FILE *__stream); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 23376: # 808 "/usr/include/wchar.h" 3 4 23376: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 23376: extern wint_t putwchar_unlocked (wchar_t __wc); 23376: # 818 "/usr/include/wchar.h" 3 4 23376: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 23376: __FILE *__restrict __stream); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int fputws_unlocked (const wchar_t *__restrict __ws, 23376: __FILE *__restrict __stream); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 23376: const wchar_t *__restrict __format, 23376: const struct tm *__restrict __tp) throw (); 23376: 23376: 23376: 23376: 23376: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 23376: const wchar_t *__restrict __format, 23376: const struct tm *__restrict __tp, 23376: locale_t __loc) throw (); 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/wchar2.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/wchar2.h" 3 4 23376: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 23376: const wchar_t *__restrict __s2, size_t __n, 23376: size_t __ns1) throw (); 23376: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmemcpy") 23376: 23376: 23376: ; 23376: extern wchar_t *__wmemcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemcpy_chk") 23376: 23376: 23376: 23376: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 23376: 23376: { 23376: if (__builtin_object_size (__s1, 0) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n)) 23376: return __wmemcpy_chk (__s1, __s2, __n, 23376: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 23376: 23376: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 23376: return __wmemcpy_chk_warn (__s1, __s2, __n, 23376: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 23376: } 23376: return __wmemcpy_alias (__s1, __s2, __n); 23376: } 23376: 23376: 23376: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 23376: size_t __n, size_t __ns1) throw (); 23376: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __asm__ ("" "wmemmove") 23376: 23376: ; 23376: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemmove_chk") 23376: 23376: 23376: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () 23376: { 23376: if (__builtin_object_size (__s1, 0) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n)) 23376: return __wmemmove_chk (__s1, __s2, __n, 23376: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 23376: 23376: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 23376: return __wmemmove_chk_warn (__s1, __s2, __n, 23376: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 23376: } 23376: return __wmemmove_alias (__s1, __s2, __n); 23376: } 23376: 23376: 23376: 23376: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 23376: const wchar_t *__restrict __s2, size_t __n, 23376: size_t __ns1) throw (); 23376: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmempcpy") 23376: 23376: 23376: ; 23376: extern wchar_t *__wmempcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmempcpy_chk") 23376: 23376: 23376: 23376: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 23376: 23376: { 23376: if (__builtin_object_size (__s1, 0) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n)) 23376: return __wmempcpy_chk (__s1, __s2, __n, 23376: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 23376: 23376: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 23376: return __wmempcpy_chk_warn (__s1, __s2, __n, 23376: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 23376: } 23376: return __wmempcpy_alias (__s1, __s2, __n); 23376: } 23376: 23376: 23376: 23376: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 23376: size_t __ns) throw (); 23376: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm__ ("" "wmemset") 23376: ; 23376: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) throw () __asm__ ("" "__wmemset_chk") 23376: 23376: 23376: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw () 23376: { 23376: if (__builtin_object_size (__s, 0) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n)) 23376: return __wmemset_chk (__s, __c, __n, __builtin_object_size (__s, 0) / sizeof (wchar_t)); 23376: 23376: if (__n > __builtin_object_size (__s, 0) / sizeof (wchar_t)) 23376: return __wmemset_chk_warn (__s, __c, __n, 23376: __builtin_object_size (__s, 0) / sizeof (wchar_t)); 23376: } 23376: return __wmemset_alias (__s, __c, __n); 23376: } 23376: 23376: 23376: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src, 23376: size_t __n) throw (); 23376: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscpy") 23376: 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 23376: { 23376: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 23376: return __wcscpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 23376: return __wcscpy_alias (__dest, __src); 23376: } 23376: 23376: 23376: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src, 23376: size_t __destlen) throw (); 23376: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcpcpy") 23376: 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 23376: { 23376: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 23376: return __wcpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 23376: return __wcpcpy_alias (__dest, __src); 23376: } 23376: 23376: 23376: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src, size_t __n, 23376: size_t __destlen) throw (); 23376: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncpy") 23376: 23376: 23376: ; 23376: extern wchar_t *__wcsncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcsncpy_chk") 23376: 23376: 23376: 23376: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 23376: 23376: { 23376: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n)) 23376: return __wcsncpy_chk (__dest, __src, __n, 23376: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 23376: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 23376: return __wcsncpy_chk_warn (__dest, __src, __n, 23376: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 23376: } 23376: return __wcsncpy_alias (__dest, __src, __n); 23376: } 23376: 23376: 23376: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src, size_t __n, 23376: size_t __destlen) throw (); 23376: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcpncpy") 23376: 23376: 23376: ; 23376: extern wchar_t *__wcpncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcpncpy_chk") 23376: 23376: 23376: 23376: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 23376: 23376: { 23376: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n)) 23376: return __wcpncpy_chk (__dest, __src, __n, 23376: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 23376: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 23376: return __wcpncpy_chk_warn (__dest, __src, __n, 23376: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 23376: } 23376: return __wcpncpy_alias (__dest, __src, __n); 23376: } 23376: 23376: 23376: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src, 23376: size_t __destlen) throw (); 23376: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscat") 23376: 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 23376: { 23376: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 23376: return __wcscat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 23376: return __wcscat_alias (__dest, __src); 23376: } 23376: 23376: 23376: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 23376: const wchar_t *__restrict __src, 23376: size_t __n, size_t __destlen) throw (); 23376: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncat") 23376: 23376: 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 23376: __attribute__ ((__leaf__)) wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 23376: 23376: { 23376: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 23376: return __wcsncat_chk (__dest, __src, __n, 23376: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 23376: return __wcsncat_alias (__dest, __src, __n); 23376: } 23376: 23376: 23376: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 23376: int __flag, size_t __s_len, 23376: const wchar_t *__restrict __format, ...) 23376: throw () ; 23376: 23376: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () __asm__ ("" "swprintf") 23376: 23376: 23376: ; 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () 23376: 23376: { 23376: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 23376: return __swprintf_chk (__s, __n, 2 - 1, 23376: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 23376: __fmt, __builtin_va_arg_pack ()); 23376: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 23376: } 23376: # 303 "/usr/include/arm-linux-gnueabihf/bits/wchar2.h" 3 4 23376: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 23376: int __flag, size_t __s_len, 23376: const wchar_t *__restrict __format, 23376: __gnuc_va_list __arg) 23376: throw () ; 23376: 23376: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () __asm__ ("" "vswprintf") 23376: 23376: 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () 23376: 23376: { 23376: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 23376: return __vswprintf_chk (__s, __n, 2 - 1, 23376: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), __fmt, __ap); 23376: return __vswprintf_alias (__s, __n, __fmt, __ap); 23376: } 23376: 23376: 23376: 23376: 23376: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 23376: const wchar_t *__restrict __format, ...); 23376: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 23376: ...); 23376: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 23376: const wchar_t *__restrict __format, 23376: __gnuc_va_list __ap); 23376: extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format, 23376: __gnuc_va_list __ap); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: wprintf (const wchar_t *__restrict __fmt, ...) 23376: { 23376: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 23376: { 23376: return __fwprintf_chk (__stream, 2 - 1, __fmt, 23376: __builtin_va_arg_pack ()); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 23376: { 23376: return __vwprintf_chk (2 - 1, __fmt, __ap); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: vfwprintf (__FILE *__restrict __stream, 23376: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 23376: { 23376: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 23376: } 23376: 23376: 23376: 23376: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 23376: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 23376: 23376: __attribute__ ((__warn_unused_result__)); 23376: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 23376: fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 23376: { 23376: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n) || __n <= 0) 23376: return __fgetws_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 23376: __n, __stream); 23376: 23376: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 23376: return __fgetws_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 23376: __n, __stream); 23376: } 23376: return __fgetws_alias (__s, __n, __stream); 23376: } 23376: 23376: 23376: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 23376: int __n, __FILE *__restrict __stream) 23376: __attribute__ ((__warn_unused_result__)); 23376: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)); 23376: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 23376: 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 23376: fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 23376: { 23376: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n) || __n <= 0) 23376: return __fgetws_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 23376: __n, __stream); 23376: 23376: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 23376: return __fgetws_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 23376: __n, __stream); 23376: } 23376: return __fgetws_unlocked_alias (__s, __n, __stream); 23376: } 23376: 23376: 23376: 23376: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 23376: mbstate_t *__restrict __p, 23376: size_t __buflen) throw () __attribute__ ((__warn_unused_result__)); 23376: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcrtomb") 23376: 23376: __attribute__ ((__warn_unused_result__)); 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 23376: __attribute__ ((__leaf__)) wcrtomb (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () 23376: 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 23376: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 23376: return __wcrtomb_alias (__s, __wchar, __ps); 23376: } 23376: 23376: 23376: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 23376: const char **__restrict __src, 23376: size_t __len, mbstate_t *__restrict __ps, 23376: size_t __dstlen) throw (); 23376: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsrtowcs") 23376: 23376: 23376: 23376: ; 23376: extern size_t __mbsrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__mbsrtowcs_chk") 23376: 23376: 23376: 23376: 23376: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 23376: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 23376: 23376: { 23376: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__len)) 23376: return __mbsrtowcs_chk (__dst, __src, __len, __ps, 23376: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 23376: 23376: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 23376: return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, 23376: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 23376: } 23376: return __mbsrtowcs_alias (__dst, __src, __len, __ps); 23376: } 23376: 23376: 23376: extern size_t __wcsrtombs_chk (char *__restrict __dst, 23376: const wchar_t **__restrict __src, 23376: size_t __len, mbstate_t *__restrict __ps, 23376: size_t __dstlen) throw (); 23376: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsrtombs") 23376: 23376: 23376: 23376: ; 23376: extern size_t __wcsrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__wcsrtombs_chk") 23376: 23376: 23376: 23376: 23376: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 23376: __attribute__ ((__leaf__)) wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 23376: 23376: { 23376: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__len)) 23376: return __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 23376: 23376: if (__len > __builtin_object_size (__dst, 2 > 1)) 23376: return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 23376: } 23376: return __wcsrtombs_alias (__dst, __src, __len, __ps); 23376: } 23376: 23376: 23376: 23376: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 23376: const char **__restrict __src, size_t __nmc, 23376: size_t __len, mbstate_t *__restrict __ps, 23376: size_t __dstlen) throw (); 23376: extern size_t __mbsnrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsnrtowcs") 23376: 23376: 23376: 23376: ; 23376: extern size_t __mbsnrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__mbsnrtowcs_chk") 23376: 23376: 23376: 23376: 23376: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 23376: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () 23376: 23376: { 23376: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__len)) 23376: return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, 23376: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 23376: 23376: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 23376: return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, 23376: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 23376: } 23376: return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); 23376: } 23376: 23376: 23376: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 23376: const wchar_t **__restrict __src, 23376: size_t __nwc, size_t __len, 23376: mbstate_t *__restrict __ps, size_t __dstlen) 23376: throw (); 23376: extern size_t __wcsnrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsnrtombs") 23376: 23376: 23376: 23376: ; 23376: extern size_t __wcsnrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__wcsnrtombs_chk") 23376: 23376: 23376: 23376: 23376: 23376: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 23376: __attribute__ ((__leaf__)) wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () 23376: 23376: { 23376: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__len)) 23376: return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, 23376: __builtin_object_size (__dst, 2 > 1)); 23376: 23376: if (__len > __builtin_object_size (__dst, 2 > 1)) 23376: return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, 23376: __builtin_object_size (__dst, 2 > 1)); 23376: } 23376: return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); 23376: } 23376: # 851 "/usr/include/wchar.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 45 "/usr/include/c++/8/cwchar" 2 3 23376: # 62 "/usr/include/c++/8/cwchar" 3 23376: namespace std 23376: { 23376: using ::mbstate_t; 23376: } 23376: # 135 "/usr/include/c++/8/cwchar" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: using ::wint_t; 23376: 23376: using ::btowc; 23376: using ::fgetwc; 23376: using ::fgetws; 23376: using ::fputwc; 23376: using ::fputws; 23376: using ::fwide; 23376: using ::fwprintf; 23376: using ::fwscanf; 23376: using ::getwc; 23376: using ::getwchar; 23376: using ::mbrlen; 23376: using ::mbrtowc; 23376: using ::mbsinit; 23376: using ::mbsrtowcs; 23376: using ::putwc; 23376: using ::putwchar; 23376: 23376: using ::swprintf; 23376: 23376: using ::swscanf; 23376: using ::ungetwc; 23376: using ::vfwprintf; 23376: 23376: using ::vfwscanf; 23376: 23376: 23376: using ::vswprintf; 23376: 23376: 23376: using ::vswscanf; 23376: 23376: using ::vwprintf; 23376: 23376: using ::vwscanf; 23376: 23376: using ::wcrtomb; 23376: using ::wcscat; 23376: using ::wcscmp; 23376: using ::wcscoll; 23376: using ::wcscpy; 23376: using ::wcscspn; 23376: using ::wcsftime; 23376: using ::wcslen; 23376: using ::wcsncat; 23376: using ::wcsncmp; 23376: using ::wcsncpy; 23376: using ::wcsrtombs; 23376: using ::wcsspn; 23376: using ::wcstod; 23376: 23376: using ::wcstof; 23376: 23376: using ::wcstok; 23376: using ::wcstol; 23376: using ::wcstoul; 23376: using ::wcsxfrm; 23376: using ::wctob; 23376: using ::wmemcmp; 23376: using ::wmemcpy; 23376: using ::wmemmove; 23376: using ::wmemset; 23376: using ::wprintf; 23376: using ::wscanf; 23376: using ::wcschr; 23376: using ::wcspbrk; 23376: using ::wcsrchr; 23376: using ::wcsstr; 23376: using ::wmemchr; 23376: # 232 "/usr/include/c++/8/cwchar" 3 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace __gnu_cxx 23376: { 23376: 23376: 23376: 23376: 23376: 23376: using ::wcstold; 23376: # 257 "/usr/include/c++/8/cwchar" 3 23376: using ::wcstoll; 23376: using ::wcstoull; 23376: 23376: } 23376: 23376: namespace std 23376: { 23376: using ::__gnu_cxx::wcstold; 23376: using ::__gnu_cxx::wcstoll; 23376: using ::__gnu_cxx::wcstoull; 23376: } 23376: # 277 "/usr/include/c++/8/cwchar" 3 23376: namespace std 23376: { 23376: 23376: using std::wcstof; 23376: 23376: 23376: using std::vfwscanf; 23376: 23376: 23376: using std::vswscanf; 23376: 23376: 23376: using std::vwscanf; 23376: 23376: 23376: 23376: using std::wcstold; 23376: using std::wcstoll; 23376: using std::wcstoull; 23376: 23376: } 23376: # 41 "/usr/include/c++/8/bits/postypes.h" 2 3 23376: # 68 "/usr/include/c++/8/bits/postypes.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 90 "/usr/include/c++/8/bits/postypes.h" 3 23376: typedef long long streamoff; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef ptrdiff_t streamsize; 23376: # 111 "/usr/include/c++/8/bits/postypes.h" 3 23376: template 23376: class fpos 23376: { 23376: private: 23376: streamoff _M_off; 23376: _StateT _M_state; 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: fpos() 23376: : _M_off(0), _M_state() { } 23376: # 133 "/usr/include/c++/8/bits/postypes.h" 3 23376: fpos(streamoff __off) 23376: : _M_off(__off), _M_state() { } 23376: 23376: 23376: operator streamoff() const { return _M_off; } 23376: 23376: 23376: void 23376: state(_StateT __st) 23376: { _M_state = __st; } 23376: 23376: 23376: _StateT 23376: state() const 23376: { return _M_state; } 23376: 23376: 23376: 23376: 23376: 23376: fpos& 23376: operator+=(streamoff __off) 23376: { 23376: _M_off += __off; 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: fpos& 23376: operator-=(streamoff __off) 23376: { 23376: _M_off -= __off; 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: fpos 23376: operator+(streamoff __off) const 23376: { 23376: fpos __pos(*this); 23376: __pos += __off; 23376: return __pos; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: fpos 23376: operator-(streamoff __off) const 23376: { 23376: fpos __pos(*this); 23376: __pos -= __off; 23376: return __pos; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: streamoff 23376: operator-(const fpos& __other) const 23376: { return _M_off - __other._M_off; } 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 23376: { return streamoff(__lhs) == streamoff(__rhs); } 23376: 23376: template 23376: inline bool 23376: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 23376: { return streamoff(__lhs) != streamoff(__rhs); } 23376: 23376: 23376: 23376: 23376: 23376: typedef fpos streampos; 23376: 23376: typedef fpos wstreampos; 23376: 23376: 23376: 23376: typedef fpos u16streampos; 23376: 23376: typedef fpos u32streampos; 23376: 23376: 23376: 23376: } 23376: # 41 "/usr/include/c++/8/iosfwd" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 74 "/usr/include/c++/8/iosfwd" 3 23376: class ios_base; 23376: 23376: template > 23376: class basic_ios; 23376: 23376: template > 23376: class basic_streambuf; 23376: 23376: template > 23376: class basic_istream; 23376: 23376: template > 23376: class basic_ostream; 23376: 23376: template > 23376: class basic_iostream; 23376: 23376: 23376: namespace __cxx11 { 23376: 23376: template, 23376: typename _Alloc = allocator<_CharT> > 23376: class basic_stringbuf; 23376: 23376: template, 23376: typename _Alloc = allocator<_CharT> > 23376: class basic_istringstream; 23376: 23376: template, 23376: typename _Alloc = allocator<_CharT> > 23376: class basic_ostringstream; 23376: 23376: template, 23376: typename _Alloc = allocator<_CharT> > 23376: class basic_stringstream; 23376: 23376: } 23376: 23376: template > 23376: class basic_filebuf; 23376: 23376: template > 23376: class basic_ifstream; 23376: 23376: template > 23376: class basic_ofstream; 23376: 23376: template > 23376: class basic_fstream; 23376: 23376: template > 23376: class istreambuf_iterator; 23376: 23376: template > 23376: class ostreambuf_iterator; 23376: 23376: 23376: 23376: typedef basic_ios ios; 23376: 23376: 23376: typedef basic_streambuf streambuf; 23376: 23376: 23376: typedef basic_istream istream; 23376: 23376: 23376: typedef basic_ostream ostream; 23376: 23376: 23376: typedef basic_iostream iostream; 23376: 23376: 23376: typedef basic_stringbuf stringbuf; 23376: 23376: 23376: typedef basic_istringstream istringstream; 23376: 23376: 23376: typedef basic_ostringstream ostringstream; 23376: 23376: 23376: typedef basic_stringstream stringstream; 23376: 23376: 23376: typedef basic_filebuf filebuf; 23376: 23376: 23376: typedef basic_ifstream ifstream; 23376: 23376: 23376: typedef basic_ofstream ofstream; 23376: 23376: 23376: typedef basic_fstream fstream; 23376: 23376: 23376: 23376: typedef basic_ios wios; 23376: 23376: 23376: typedef basic_streambuf wstreambuf; 23376: 23376: 23376: typedef basic_istream wistream; 23376: 23376: 23376: typedef basic_ostream wostream; 23376: 23376: 23376: typedef basic_iostream wiostream; 23376: 23376: 23376: typedef basic_stringbuf wstringbuf; 23376: 23376: 23376: typedef basic_istringstream wistringstream; 23376: 23376: 23376: typedef basic_ostringstream wostringstream; 23376: 23376: 23376: typedef basic_stringstream wstringstream; 23376: 23376: 23376: typedef basic_filebuf wfilebuf; 23376: 23376: 23376: typedef basic_ifstream wifstream; 23376: 23376: 23376: typedef basic_ofstream wofstream; 23376: 23376: 23376: typedef basic_fstream wfstream; 23376: 23376: 23376: 23376: 23376: } 23376: # 35 "/usr/include/gmpxx.h" 2 3 4 23376: 23376: # 1 "/usr/include/c++/8/cstring" 1 3 4 23376: # 39 "/usr/include/c++/8/cstring" 3 4 23376: 23376: # 40 "/usr/include/c++/8/cstring" 3 23376: 23376: 23376: # 1 "/usr/include/string.h" 1 3 4 23376: # 26 "/usr/include/string.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 23376: # 27 "/usr/include/string.h" 2 3 4 23376: 23376: extern "C" { 23376: 23376: 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 34 "/usr/include/string.h" 2 3 4 23376: # 42 "/usr/include/string.h" 3 4 23376: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 23376: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern void *memmove (void *__dest, const void *__src, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: 23376: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 23376: int __c, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: extern "C++" 23376: { 23376: extern void *memchr (void *__s, int __c, size_t __n) 23376: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: extern const void *memchr (const void *__s, int __c, size_t __n) 23376: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 23376: memchr (void *__s, int __c, size_t __n) throw () 23376: { 23376: return __builtin_memchr (__s, __c, __n); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 23376: memchr (const void *__s, int __c, size_t __n) throw () 23376: { 23376: return __builtin_memchr (__s, __c, __n); 23376: } 23376: 23376: } 23376: # 98 "/usr/include/string.h" 3 4 23376: extern "C++" void *rawmemchr (void *__s, int __c) 23376: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: extern "C++" const void *rawmemchr (const void *__s, int __c) 23376: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 23376: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 23376: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: # 121 "/usr/include/string.h" 3 4 23376: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: extern char *strncpy (char *__restrict __dest, 23376: const char *__restrict __src, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 23376: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int strcmp (const char *__s1, const char *__s2) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int strcoll (const char *__s1, const char *__s2) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: extern size_t strxfrm (char *__restrict __dest, 23376: const char *__restrict __src, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 23376: 23376: 23376: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 23376: locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); 23376: 23376: 23376: 23376: 23376: 23376: extern char *strdup (const char *__s) 23376: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern char *strndup (const char *__string, size_t __n) 23376: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 23376: # 203 "/usr/include/string.h" 3 4 23376: extern "C++" 23376: { 23376: extern char *strchr (char *__s, int __c) 23376: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: extern const char *strchr (const char *__s, int __c) 23376: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 23376: strchr (char *__s, int __c) throw () 23376: { 23376: return __builtin_strchr (__s, __c); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 23376: strchr (const char *__s, int __c) throw () 23376: { 23376: return __builtin_strchr (__s, __c); 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C++" 23376: { 23376: extern char *strrchr (char *__s, int __c) 23376: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: extern const char *strrchr (const char *__s, int __c) 23376: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 23376: strrchr (char *__s, int __c) throw () 23376: { 23376: return __builtin_strrchr (__s, __c); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 23376: strrchr (const char *__s, int __c) throw () 23376: { 23376: return __builtin_strrchr (__s, __c); 23376: } 23376: 23376: } 23376: # 260 "/usr/include/string.h" 3 4 23376: extern "C++" char *strchrnul (char *__s, int __c) 23376: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: extern "C++" const char *strchrnul (const char *__s, int __c) 23376: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: # 272 "/usr/include/string.h" 3 4 23376: extern size_t strcspn (const char *__s, const char *__reject) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern size_t strspn (const char *__s, const char *__accept) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern "C++" 23376: { 23376: extern char *strpbrk (char *__s, const char *__accept) 23376: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: extern const char *strpbrk (const char *__s, const char *__accept) 23376: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 23376: strpbrk (char *__s, const char *__accept) throw () 23376: { 23376: return __builtin_strpbrk (__s, __accept); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 23376: strpbrk (const char *__s, const char *__accept) throw () 23376: { 23376: return __builtin_strpbrk (__s, __accept); 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C++" 23376: { 23376: extern char *strstr (char *__haystack, const char *__needle) 23376: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: extern const char *strstr (const char *__haystack, const char *__needle) 23376: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 23376: strstr (char *__haystack, const char *__needle) throw () 23376: { 23376: return __builtin_strstr (__haystack, __needle); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 23376: strstr (const char *__haystack, const char *__needle) throw () 23376: { 23376: return __builtin_strstr (__haystack, __needle); 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: extern char *__strtok_r (char *__restrict __s, 23376: const char *__restrict __delim, 23376: char **__restrict __save_ptr) 23376: throw () __attribute__ ((__nonnull__ (2, 3))); 23376: 23376: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 23376: char **__restrict __save_ptr) 23376: throw () __attribute__ ((__nonnull__ (2, 3))); 23376: 23376: 23376: 23376: 23376: 23376: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 23376: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: extern "C++" const char *strcasestr (const char *__haystack, 23376: const char *__needle) 23376: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: # 368 "/usr/include/string.h" 3 4 23376: extern void *memmem (const void *__haystack, size_t __haystacklen, 23376: const void *__needle, size_t __needlelen) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); 23376: 23376: 23376: 23376: extern void *__mempcpy (void *__restrict __dest, 23376: const void *__restrict __src, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: extern void *mempcpy (void *__restrict __dest, 23376: const void *__restrict __src, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: extern size_t strlen (const char *__s) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: extern size_t strnlen (const char *__string, size_t __maxlen) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: extern char *strerror (int __errnum) throw (); 23376: # 420 "/usr/include/string.h" 3 4 23376: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 23376: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: extern char *strerror_l (int __errnum, locale_t __l) throw (); 23376: 23376: 23376: 23376: # 1 "/usr/include/strings.h" 1 3 4 23376: # 23 "/usr/include/strings.h" 3 4 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 24 "/usr/include/strings.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C" { 23376: 23376: 23376: 23376: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern void bcopy (const void *__src, void *__dest, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern "C++" 23376: { 23376: extern char *index (char *__s, int __c) 23376: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: extern const char *index (const char *__s, int __c) 23376: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 23376: index (char *__s, int __c) throw () 23376: { 23376: return __builtin_index (__s, __c); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 23376: index (const char *__s, int __c) throw () 23376: { 23376: return __builtin_index (__s, __c); 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C++" 23376: { 23376: extern char *rindex (char *__s, int __c) 23376: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: extern const char *rindex (const char *__s, int __c) 23376: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 23376: rindex (char *__s, int __c) throw () 23376: { 23376: return __builtin_rindex (__s, __c); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 23376: rindex (const char *__s, int __c) throw () 23376: { 23376: return __builtin_rindex (__s, __c); 23376: } 23376: 23376: } 23376: # 104 "/usr/include/strings.h" 3 4 23376: extern int ffs (int __i) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: 23376: extern int ffsl (long int __l) throw () __attribute__ ((__const__)); 23376: __extension__ extern int ffsll (long long int __ll) 23376: throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern int strcasecmp (const char *__s1, const char *__s2) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 23376: 23376: 23376: 23376: extern int strncasecmp_l (const char *__s1, const char *__s2, 23376: size_t __n, locale_t __loc) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 23376: 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/strings_fortified.h" 1 3 4 23376: # 22 "/usr/include/arm-linux-gnueabihf/bits/strings_fortified.h" 3 4 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 23376: __attribute__ ((__leaf__)) bcopy (const void *__src, void *__dest, size_t __len) throw () 23376: { 23376: (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 23376: __attribute__ ((__leaf__)) bzero (void *__dest, size_t __len) throw () 23376: { 23376: (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); 23376: } 23376: # 145 "/usr/include/strings.h" 2 3 4 23376: # 432 "/usr/include/string.h" 2 3 4 23376: 23376: 23376: 23376: extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern char *strsep (char **__restrict __stringp, 23376: const char *__restrict __delim) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: extern char *strsignal (int __sig) throw (); 23376: 23376: 23376: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: extern char *__stpncpy (char *__restrict __dest, 23376: const char *__restrict __src, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: extern char *stpncpy (char *__restrict __dest, 23376: const char *__restrict __src, size_t __n) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: extern int strverscmp (const char *__s1, const char *__s2) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C++" char *basename (char *__filename) 23376: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 23376: extern "C++" const char *basename (const char *__filename) 23376: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 23376: # 494 "/usr/include/string.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 1 3 4 23376: # 30 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 3 4 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 23376: __attribute__ ((__leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 23376: 23376: { 23376: return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 23376: __attribute__ ((__leaf__)) memmove (void *__dest, const void *__src, size_t __len) throw () 23376: { 23376: return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 23376: } 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 23376: __attribute__ ((__leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 23376: 23376: { 23376: return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 23376: } 23376: # 58 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 3 4 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 23376: __attribute__ ((__leaf__)) memset (void *__dest, int __ch, size_t __len) throw () 23376: { 23376: # 71 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 3 4 23376: return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); 23376: } 23376: 23376: 23376: 23376: 23376: void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 23376: __attribute__ ((__leaf__)) explicit_bzero (void *__dest, size_t __len) throw () 23376: { 23376: __explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); 23376: } 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 23376: __attribute__ ((__leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) throw () 23376: { 23376: return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 23376: } 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 23376: __attribute__ ((__leaf__)) stpcpy (char *__restrict __dest, const char *__restrict __src) throw () 23376: { 23376: return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 23376: } 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 23376: __attribute__ ((__leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 23376: 23376: { 23376: return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 23376: } 23376: 23376: 23376: extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, 23376: size_t __destlen) throw (); 23376: extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) throw () __asm__ ("" "stpncpy") 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 23376: __attribute__ ((__leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) throw () 23376: { 23376: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 23376: && (!__builtin_constant_p (__n) || __n > __builtin_object_size (__dest, 2 > 1))) 23376: return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); 23376: return __stpncpy_alias (__dest, __src, __n); 23376: } 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 23376: __attribute__ ((__leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) throw () 23376: { 23376: return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 23376: } 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 23376: __attribute__ ((__leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 23376: 23376: { 23376: return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 23376: } 23376: # 495 "/usr/include/string.h" 2 3 4 23376: 23376: 23376: 23376: } 23376: # 43 "/usr/include/c++/8/cstring" 2 3 23376: # 71 "/usr/include/c++/8/cstring" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: using ::memchr; 23376: using ::memcmp; 23376: using ::memcpy; 23376: using ::memmove; 23376: using ::memset; 23376: using ::strcat; 23376: using ::strcmp; 23376: using ::strcoll; 23376: using ::strcpy; 23376: using ::strcspn; 23376: using ::strerror; 23376: using ::strlen; 23376: using ::strncat; 23376: using ::strncmp; 23376: using ::strncpy; 23376: using ::strspn; 23376: using ::strtok; 23376: using ::strxfrm; 23376: using ::strchr; 23376: using ::strpbrk; 23376: using ::strrchr; 23376: using ::strstr; 23376: # 120 "/usr/include/c++/8/cstring" 3 23376: 23376: } 23376: # 37 "/usr/include/gmpxx.h" 2 3 4 23376: # 1 "/usr/include/c++/8/limits" 1 3 4 23376: # 40 "/usr/include/c++/8/limits" 3 4 23376: 23376: # 41 "/usr/include/c++/8/limits" 3 23376: # 158 "/usr/include/c++/8/limits" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: enum float_round_style 23376: { 23376: round_indeterminate = -1, 23376: round_toward_zero = 0, 23376: round_to_nearest = 1, 23376: round_toward_infinity = 2, 23376: round_toward_neg_infinity = 3 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: enum float_denorm_style 23376: { 23376: 23376: denorm_indeterminate = -1, 23376: 23376: denorm_absent = 0, 23376: 23376: denorm_present = 1 23376: }; 23376: # 202 "/usr/include/c++/8/limits" 3 23376: struct __numeric_limits_base 23376: { 23376: 23376: 23376: static constexpr bool is_specialized = false; 23376: 23376: 23376: 23376: 23376: static constexpr int digits = 0; 23376: 23376: 23376: static constexpr int digits10 = 0; 23376: 23376: 23376: 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: 23376: 23376: static constexpr bool is_signed = false; 23376: 23376: 23376: static constexpr bool is_integer = false; 23376: 23376: 23376: 23376: 23376: static constexpr bool is_exact = false; 23376: 23376: 23376: 23376: static constexpr int radix = 0; 23376: 23376: 23376: 23376: static constexpr int min_exponent = 0; 23376: 23376: 23376: 23376: static constexpr int min_exponent10 = 0; 23376: 23376: 23376: 23376: 23376: static constexpr int max_exponent = 0; 23376: 23376: 23376: 23376: static constexpr int max_exponent10 = 0; 23376: 23376: 23376: static constexpr bool has_infinity = false; 23376: 23376: 23376: 23376: static constexpr bool has_quiet_NaN = false; 23376: 23376: 23376: 23376: static constexpr bool has_signaling_NaN = false; 23376: 23376: 23376: static constexpr float_denorm_style has_denorm = denorm_absent; 23376: 23376: 23376: 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: 23376: 23376: static constexpr bool is_iec559 = false; 23376: 23376: 23376: 23376: 23376: static constexpr bool is_bounded = false; 23376: # 288 "/usr/include/c++/8/limits" 3 23376: static constexpr bool is_modulo = false; 23376: 23376: 23376: static constexpr bool traps = false; 23376: 23376: 23376: static constexpr bool tinyness_before = false; 23376: 23376: 23376: 23376: 23376: static constexpr float_round_style round_style = 23376: round_toward_zero; 23376: }; 23376: # 311 "/usr/include/c++/8/limits" 3 23376: template 23376: struct numeric_limits : public __numeric_limits_base 23376: { 23376: 23376: 23376: static constexpr _Tp 23376: min() noexcept { return _Tp(); } 23376: 23376: 23376: static constexpr _Tp 23376: max() noexcept { return _Tp(); } 23376: 23376: 23376: 23376: 23376: static constexpr _Tp 23376: lowest() noexcept { return _Tp(); } 23376: 23376: 23376: 23376: 23376: static constexpr _Tp 23376: epsilon() noexcept { return _Tp(); } 23376: 23376: 23376: static constexpr _Tp 23376: round_error() noexcept { return _Tp(); } 23376: 23376: 23376: static constexpr _Tp 23376: infinity() noexcept { return _Tp(); } 23376: 23376: 23376: 23376: static constexpr _Tp 23376: quiet_NaN() noexcept { return _Tp(); } 23376: 23376: 23376: 23376: static constexpr _Tp 23376: signaling_NaN() noexcept { return _Tp(); } 23376: 23376: 23376: 23376: 23376: static constexpr _Tp 23376: denorm_min() noexcept { return _Tp(); } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct numeric_limits 23376: : public numeric_limits<_Tp> { }; 23376: 23376: template 23376: struct numeric_limits 23376: : public numeric_limits<_Tp> { }; 23376: 23376: template 23376: struct numeric_limits 23376: : public numeric_limits<_Tp> { }; 23376: # 382 "/usr/include/c++/8/limits" 3 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr bool 23376: min() noexcept { return false; } 23376: 23376: static constexpr bool 23376: max() noexcept { return true; } 23376: 23376: 23376: static constexpr bool 23376: lowest() noexcept { return min(); } 23376: 23376: static constexpr int digits = 1; 23376: static constexpr int digits10 = 0; 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = false; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr bool 23376: epsilon() noexcept { return false; } 23376: 23376: static constexpr bool 23376: round_error() noexcept { return false; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr bool 23376: infinity() noexcept { return false; } 23376: 23376: static constexpr bool 23376: quiet_NaN() noexcept { return false; } 23376: 23376: static constexpr bool 23376: signaling_NaN() noexcept { return false; } 23376: 23376: static constexpr bool 23376: denorm_min() noexcept { return false; } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = false; 23376: 23376: 23376: 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr char 23376: min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } 23376: 23376: static constexpr char 23376: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 23376: 23376: 23376: static constexpr char 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 23376: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = ((char)(-1) < 0); 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr char 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr char 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr 23376: char infinity() noexcept { return char(); } 23376: 23376: static constexpr char 23376: quiet_NaN() noexcept { return char(); } 23376: 23376: static constexpr char 23376: signaling_NaN() noexcept { return char(); } 23376: 23376: static constexpr char 23376: denorm_min() noexcept { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = !is_signed; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr signed char 23376: min() noexcept { return -0x7f - 1; } 23376: 23376: static constexpr signed char 23376: max() noexcept { return 0x7f; } 23376: 23376: 23376: static constexpr signed char 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 23376: static constexpr int digits10 23376: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = true; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr signed char 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr signed char 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr signed char 23376: infinity() noexcept { return static_cast(0); } 23376: 23376: static constexpr signed char 23376: quiet_NaN() noexcept { return static_cast(0); } 23376: 23376: static constexpr signed char 23376: signaling_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr signed char 23376: denorm_min() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = false; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr unsigned char 23376: min() noexcept { return 0; } 23376: 23376: static constexpr unsigned char 23376: max() noexcept { return 0x7f * 2U + 1; } 23376: 23376: 23376: static constexpr unsigned char 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits 23376: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 23376: static constexpr int digits10 23376: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = false; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr unsigned char 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr unsigned char 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr unsigned char 23376: infinity() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned char 23376: quiet_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned char 23376: signaling_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned char 23376: denorm_min() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = true; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr wchar_t 23376: min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } 23376: 23376: static constexpr wchar_t 23376: max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } 23376: 23376: 23376: static constexpr wchar_t 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 23376: static constexpr int digits10 23376: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr wchar_t 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr wchar_t 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr wchar_t 23376: infinity() noexcept { return wchar_t(); } 23376: 23376: static constexpr wchar_t 23376: quiet_NaN() noexcept { return wchar_t(); } 23376: 23376: static constexpr wchar_t 23376: signaling_NaN() noexcept { return wchar_t(); } 23376: 23376: static constexpr wchar_t 23376: denorm_min() noexcept { return wchar_t(); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = !is_signed; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr char16_t 23376: min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } 23376: 23376: static constexpr char16_t 23376: max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } 23376: 23376: static constexpr char16_t 23376: lowest() noexcept { return min(); } 23376: 23376: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 23376: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 23376: static constexpr int max_digits10 = 0; 23376: static constexpr bool is_signed = ((char16_t)(-1) < 0); 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr char16_t 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr char16_t 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr char16_t 23376: infinity() noexcept { return char16_t(); } 23376: 23376: static constexpr char16_t 23376: quiet_NaN() noexcept { return char16_t(); } 23376: 23376: static constexpr char16_t 23376: signaling_NaN() noexcept { return char16_t(); } 23376: 23376: static constexpr char16_t 23376: denorm_min() noexcept { return char16_t(); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = !is_signed; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr char32_t 23376: min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } 23376: 23376: static constexpr char32_t 23376: max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } 23376: 23376: static constexpr char32_t 23376: lowest() noexcept { return min(); } 23376: 23376: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 23376: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 23376: static constexpr int max_digits10 = 0; 23376: static constexpr bool is_signed = ((char32_t)(-1) < 0); 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr char32_t 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr char32_t 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr char32_t 23376: infinity() noexcept { return char32_t(); } 23376: 23376: static constexpr char32_t 23376: quiet_NaN() noexcept { return char32_t(); } 23376: 23376: static constexpr char32_t 23376: signaling_NaN() noexcept { return char32_t(); } 23376: 23376: static constexpr char32_t 23376: denorm_min() noexcept { return char32_t(); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = !is_signed; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style = round_toward_zero; 23376: }; 23376: 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr short 23376: min() noexcept { return -0x7fff - 1; } 23376: 23376: static constexpr short 23376: max() noexcept { return 0x7fff; } 23376: 23376: 23376: static constexpr short 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 23376: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = true; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr short 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr short 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr short 23376: infinity() noexcept { return short(); } 23376: 23376: static constexpr short 23376: quiet_NaN() noexcept { return short(); } 23376: 23376: static constexpr short 23376: signaling_NaN() noexcept { return short(); } 23376: 23376: static constexpr short 23376: denorm_min() noexcept { return short(); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = false; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr unsigned short 23376: min() noexcept { return 0; } 23376: 23376: static constexpr unsigned short 23376: max() noexcept { return 0x7fff * 2U + 1; } 23376: 23376: 23376: static constexpr unsigned short 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits 23376: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 23376: static constexpr int digits10 23376: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = false; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr unsigned short 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr unsigned short 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr unsigned short 23376: infinity() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned short 23376: quiet_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned short 23376: signaling_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned short 23376: denorm_min() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = true; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr int 23376: min() noexcept { return -0x7fffffff - 1; } 23376: 23376: static constexpr int 23376: max() noexcept { return 0x7fffffff; } 23376: 23376: 23376: static constexpr int 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 23376: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = true; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr int 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr int 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr int 23376: infinity() noexcept { return static_cast(0); } 23376: 23376: static constexpr int 23376: quiet_NaN() noexcept { return static_cast(0); } 23376: 23376: static constexpr int 23376: signaling_NaN() noexcept { return static_cast(0); } 23376: 23376: static constexpr int 23376: denorm_min() noexcept { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = false; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr unsigned int 23376: min() noexcept { return 0; } 23376: 23376: static constexpr unsigned int 23376: max() noexcept { return 0x7fffffff * 2U + 1; } 23376: 23376: 23376: static constexpr unsigned int 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits 23376: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 23376: static constexpr int digits10 23376: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = false; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr unsigned int 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr unsigned int 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr unsigned int 23376: infinity() noexcept { return static_cast(0); } 23376: 23376: static constexpr unsigned int 23376: quiet_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned int 23376: signaling_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned int 23376: denorm_min() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = true; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr long 23376: min() noexcept { return -0x7fffffffL - 1; } 23376: 23376: static constexpr long 23376: max() noexcept { return 0x7fffffffL; } 23376: 23376: 23376: static constexpr long 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 23376: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = true; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr long 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr long 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr long 23376: infinity() noexcept { return static_cast(0); } 23376: 23376: static constexpr long 23376: quiet_NaN() noexcept { return static_cast(0); } 23376: 23376: static constexpr long 23376: signaling_NaN() noexcept { return static_cast(0); } 23376: 23376: static constexpr long 23376: denorm_min() noexcept { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = false; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr unsigned long 23376: min() noexcept { return 0; } 23376: 23376: static constexpr unsigned long 23376: max() noexcept { return 0x7fffffffL * 2UL + 1; } 23376: 23376: 23376: static constexpr unsigned long 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits 23376: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 23376: static constexpr int digits10 23376: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = false; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr unsigned long 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr unsigned long 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr unsigned long 23376: infinity() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned long 23376: quiet_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned long 23376: signaling_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned long 23376: denorm_min() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = true; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr long long 23376: min() noexcept { return -0x7fffffffffffffffLL - 1; } 23376: 23376: static constexpr long long 23376: max() noexcept { return 0x7fffffffffffffffLL; } 23376: 23376: 23376: static constexpr long long 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits 23376: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 23376: static constexpr int digits10 23376: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = true; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr long long 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr long long 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr long long 23376: infinity() noexcept { return static_cast(0); } 23376: 23376: static constexpr long long 23376: quiet_NaN() noexcept { return static_cast(0); } 23376: 23376: static constexpr long long 23376: signaling_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr long long 23376: denorm_min() noexcept { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = false; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr unsigned long long 23376: min() noexcept { return 0; } 23376: 23376: static constexpr unsigned long long 23376: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 23376: 23376: 23376: static constexpr unsigned long long 23376: lowest() noexcept { return min(); } 23376: 23376: 23376: static constexpr int digits 23376: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 23376: static constexpr int digits10 23376: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 23376: 23376: static constexpr int max_digits10 = 0; 23376: 23376: static constexpr bool is_signed = false; 23376: static constexpr bool is_integer = true; 23376: static constexpr bool is_exact = true; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr unsigned long long 23376: epsilon() noexcept { return 0; } 23376: 23376: static constexpr unsigned long long 23376: round_error() noexcept { return 0; } 23376: 23376: static constexpr int min_exponent = 0; 23376: static constexpr int min_exponent10 = 0; 23376: static constexpr int max_exponent = 0; 23376: static constexpr int max_exponent10 = 0; 23376: 23376: static constexpr bool has_infinity = false; 23376: static constexpr bool has_quiet_NaN = false; 23376: static constexpr bool has_signaling_NaN = false; 23376: static constexpr float_denorm_style has_denorm 23376: = denorm_absent; 23376: static constexpr bool has_denorm_loss = false; 23376: 23376: static constexpr unsigned long long 23376: infinity() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned long long 23376: quiet_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned long long 23376: signaling_NaN() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr unsigned long long 23376: denorm_min() noexcept 23376: { return static_cast(0); } 23376: 23376: static constexpr bool is_iec559 = false; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = true; 23376: 23376: static constexpr bool traps = true; 23376: static constexpr bool tinyness_before = false; 23376: static constexpr float_round_style round_style 23376: = round_toward_zero; 23376: }; 23376: # 1593 "/usr/include/c++/8/limits" 3 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr float 23376: min() noexcept { return 1.1754943508222875e-38F; } 23376: 23376: static constexpr float 23376: max() noexcept { return 3.4028234663852886e+38F; } 23376: 23376: 23376: static constexpr float 23376: lowest() noexcept { return -3.4028234663852886e+38F; } 23376: 23376: 23376: static constexpr int digits = 24; 23376: static constexpr int digits10 = 6; 23376: 23376: static constexpr int max_digits10 23376: = (2 + (24) * 643L / 2136); 23376: 23376: static constexpr bool is_signed = true; 23376: static constexpr bool is_integer = false; 23376: static constexpr bool is_exact = false; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr float 23376: epsilon() noexcept { return 1.1920928955078125e-7F; } 23376: 23376: static constexpr float 23376: round_error() noexcept { return 0.5F; } 23376: 23376: static constexpr int min_exponent = (-125); 23376: static constexpr int min_exponent10 = (-37); 23376: static constexpr int max_exponent = 128; 23376: static constexpr int max_exponent10 = 38; 23376: 23376: static constexpr bool has_infinity = 1; 23376: static constexpr bool has_quiet_NaN = 1; 23376: static constexpr bool has_signaling_NaN = has_quiet_NaN; 23376: static constexpr float_denorm_style has_denorm 23376: = bool(1) ? denorm_present : denorm_absent; 23376: static constexpr bool has_denorm_loss 23376: = false; 23376: 23376: static constexpr float 23376: infinity() noexcept { return __builtin_huge_valf(); } 23376: 23376: static constexpr float 23376: quiet_NaN() noexcept { return __builtin_nanf(""); } 23376: 23376: static constexpr float 23376: signaling_NaN() noexcept { return __builtin_nansf(""); } 23376: 23376: static constexpr float 23376: denorm_min() noexcept { return 1.4012984643248171e-45F; } 23376: 23376: static constexpr bool is_iec559 23376: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = false; 23376: 23376: static constexpr bool traps = false; 23376: static constexpr bool tinyness_before 23376: = false; 23376: static constexpr float_round_style round_style 23376: = round_to_nearest; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr double 23376: min() noexcept { return double(2.2250738585072014e-308L); } 23376: 23376: static constexpr double 23376: max() noexcept { return double(1.7976931348623157e+308L); } 23376: 23376: 23376: static constexpr double 23376: lowest() noexcept { return -double(1.7976931348623157e+308L); } 23376: 23376: 23376: static constexpr int digits = 53; 23376: static constexpr int digits10 = 15; 23376: 23376: static constexpr int max_digits10 23376: = (2 + (53) * 643L / 2136); 23376: 23376: static constexpr bool is_signed = true; 23376: static constexpr bool is_integer = false; 23376: static constexpr bool is_exact = false; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr double 23376: epsilon() noexcept { return double(2.2204460492503131e-16L); } 23376: 23376: static constexpr double 23376: round_error() noexcept { return 0.5; } 23376: 23376: static constexpr int min_exponent = (-1021); 23376: static constexpr int min_exponent10 = (-307); 23376: static constexpr int max_exponent = 1024; 23376: static constexpr int max_exponent10 = 308; 23376: 23376: static constexpr bool has_infinity = 1; 23376: static constexpr bool has_quiet_NaN = 1; 23376: static constexpr bool has_signaling_NaN = has_quiet_NaN; 23376: static constexpr float_denorm_style has_denorm 23376: = bool(1) ? denorm_present : denorm_absent; 23376: static constexpr bool has_denorm_loss 23376: = false; 23376: 23376: static constexpr double 23376: infinity() noexcept { return __builtin_huge_val(); } 23376: 23376: static constexpr double 23376: quiet_NaN() noexcept { return __builtin_nan(""); } 23376: 23376: static constexpr double 23376: signaling_NaN() noexcept { return __builtin_nans(""); } 23376: 23376: static constexpr double 23376: denorm_min() noexcept { return double(4.9406564584124654e-324L); } 23376: 23376: static constexpr bool is_iec559 23376: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = false; 23376: 23376: static constexpr bool traps = false; 23376: static constexpr bool tinyness_before 23376: = false; 23376: static constexpr float_round_style round_style 23376: = round_to_nearest; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: struct numeric_limits 23376: { 23376: static constexpr bool is_specialized = true; 23376: 23376: static constexpr long double 23376: min() noexcept { return 2.2250738585072014e-308L; } 23376: 23376: static constexpr long double 23376: max() noexcept { return 1.7976931348623157e+308L; } 23376: 23376: 23376: static constexpr long double 23376: lowest() noexcept { return -1.7976931348623157e+308L; } 23376: 23376: 23376: static constexpr int digits = 53; 23376: static constexpr int digits10 = 15; 23376: 23376: static constexpr int max_digits10 23376: = (2 + (53) * 643L / 2136); 23376: 23376: static constexpr bool is_signed = true; 23376: static constexpr bool is_integer = false; 23376: static constexpr bool is_exact = false; 23376: static constexpr int radix = 2; 23376: 23376: static constexpr long double 23376: epsilon() noexcept { return 2.2204460492503131e-16L; } 23376: 23376: static constexpr long double 23376: round_error() noexcept { return 0.5L; } 23376: 23376: static constexpr int min_exponent = (-1021); 23376: static constexpr int min_exponent10 = (-307); 23376: static constexpr int max_exponent = 1024; 23376: static constexpr int max_exponent10 = 308; 23376: 23376: static constexpr bool has_infinity = 1; 23376: static constexpr bool has_quiet_NaN = 1; 23376: static constexpr bool has_signaling_NaN = has_quiet_NaN; 23376: static constexpr float_denorm_style has_denorm 23376: = bool(1) ? denorm_present : denorm_absent; 23376: static constexpr bool has_denorm_loss 23376: = false; 23376: 23376: static constexpr long double 23376: infinity() noexcept { return __builtin_huge_vall(); } 23376: 23376: static constexpr long double 23376: quiet_NaN() noexcept { return __builtin_nanl(""); } 23376: 23376: static constexpr long double 23376: signaling_NaN() noexcept { return __builtin_nansl(""); } 23376: 23376: static constexpr long double 23376: denorm_min() noexcept { return 4.9406564584124654e-324L; } 23376: 23376: static constexpr bool is_iec559 23376: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 23376: static constexpr bool is_bounded = true; 23376: static constexpr bool is_modulo = false; 23376: 23376: static constexpr bool traps = false; 23376: static constexpr bool tinyness_before = 23376: false; 23376: static constexpr float_round_style round_style = 23376: round_to_nearest; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 38 "/usr/include/gmpxx.h" 2 3 4 23376: # 1 "/usr/include/c++/8/utility" 1 3 4 23376: # 58 "/usr/include/c++/8/utility" 3 4 23376: 23376: # 59 "/usr/include/c++/8/utility" 3 23376: # 69 "/usr/include/c++/8/utility" 3 23376: # 1 "/usr/include/c++/8/bits/stl_relops.h" 1 3 23376: # 67 "/usr/include/c++/8/bits/stl_relops.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: namespace rel_ops 23376: { 23376: # 85 "/usr/include/c++/8/bits/stl_relops.h" 3 23376: template 23376: inline bool 23376: operator!=(const _Tp& __x, const _Tp& __y) 23376: { return !(__x == __y); } 23376: # 98 "/usr/include/c++/8/bits/stl_relops.h" 3 23376: template 23376: inline bool 23376: operator>(const _Tp& __x, const _Tp& __y) 23376: { return __y < __x; } 23376: # 111 "/usr/include/c++/8/bits/stl_relops.h" 3 23376: template 23376: inline bool 23376: operator<=(const _Tp& __x, const _Tp& __y) 23376: { return !(__y < __x); } 23376: # 124 "/usr/include/c++/8/bits/stl_relops.h" 3 23376: template 23376: inline bool 23376: operator>=(const _Tp& __x, const _Tp& __y) 23376: { return !(__x < __y); } 23376: } 23376: 23376: 23376: } 23376: # 70 "/usr/include/c++/8/utility" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_pair.h" 1 3 23376: # 59 "/usr/include/c++/8/bits/stl_pair.h" 3 23376: # 1 "/usr/include/c++/8/bits/move.h" 1 3 23376: # 34 "/usr/include/c++/8/bits/move.h" 3 23376: # 1 "/usr/include/c++/8/bits/concept_check.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/concept_check.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/concept_check.h" 3 23376: # 35 "/usr/include/c++/8/bits/move.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline constexpr _Tp* 23376: __addressof(_Tp& __r) noexcept 23376: { return __builtin_addressof(__r); } 23376: 23376: 23376: 23376: 23376: } 23376: 23376: # 1 "/usr/include/c++/8/type_traits" 1 3 23376: # 32 "/usr/include/c++/8/type_traits" 3 23376: 23376: # 33 "/usr/include/c++/8/type_traits" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 56 "/usr/include/c++/8/type_traits" 3 23376: template 23376: struct integral_constant 23376: { 23376: static constexpr _Tp value = __v; 23376: typedef _Tp value_type; 23376: typedef integral_constant<_Tp, __v> type; 23376: constexpr operator value_type() const noexcept { return value; } 23376: 23376: 23376: 23376: 23376: constexpr value_type operator()() const noexcept { return value; } 23376: 23376: }; 23376: 23376: template 23376: constexpr _Tp integral_constant<_Tp, __v>::value; 23376: 23376: 23376: typedef integral_constant true_type; 23376: 23376: 23376: typedef integral_constant false_type; 23376: 23376: template 23376: using __bool_constant = integral_constant; 23376: # 91 "/usr/include/c++/8/type_traits" 3 23376: template 23376: struct conditional; 23376: 23376: template 23376: struct __or_; 23376: 23376: template<> 23376: struct __or_<> 23376: : public false_type 23376: { }; 23376: 23376: template 23376: struct __or_<_B1> 23376: : public _B1 23376: { }; 23376: 23376: template 23376: struct __or_<_B1, _B2> 23376: : public conditional<_B1::value, _B1, _B2>::type 23376: { }; 23376: 23376: template 23376: struct __or_<_B1, _B2, _B3, _Bn...> 23376: : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type 23376: { }; 23376: 23376: template 23376: struct __and_; 23376: 23376: template<> 23376: struct __and_<> 23376: : public true_type 23376: { }; 23376: 23376: template 23376: struct __and_<_B1> 23376: : public _B1 23376: { }; 23376: 23376: template 23376: struct __and_<_B1, _B2> 23376: : public conditional<_B1::value, _B2, _B1>::type 23376: { }; 23376: 23376: template 23376: struct __and_<_B1, _B2, _B3, _Bn...> 23376: : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type 23376: { }; 23376: 23376: template 23376: struct __not_ 23376: : public __bool_constant 23376: { }; 23376: # 180 "/usr/include/c++/8/type_traits" 3 23376: template 23376: struct __success_type 23376: { typedef _Tp type; }; 23376: 23376: struct __failure_type 23376: { }; 23376: 23376: 23376: 23376: template 23376: struct remove_cv; 23376: 23376: template 23376: struct __is_void_helper 23376: : public false_type { }; 23376: 23376: template<> 23376: struct __is_void_helper 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_void 23376: : public __is_void_helper::type>::type 23376: { }; 23376: 23376: template 23376: struct __is_integral_helper 23376: : public false_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_integral_helper 23376: : public true_type { }; 23376: # 312 "/usr/include/c++/8/type_traits" 3 23376: template 23376: struct is_integral 23376: : public __is_integral_helper::type>::type 23376: { }; 23376: 23376: template 23376: struct __is_floating_point_helper 23376: : public false_type { }; 23376: 23376: template<> 23376: struct __is_floating_point_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_floating_point_helper 23376: : public true_type { }; 23376: 23376: template<> 23376: struct __is_floating_point_helper 23376: : public true_type { }; 23376: # 340 "/usr/include/c++/8/type_traits" 3 23376: template 23376: struct is_floating_point 23376: : public __is_floating_point_helper::type>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_array 23376: : public false_type { }; 23376: 23376: template 23376: struct is_array<_Tp[_Size]> 23376: : public true_type { }; 23376: 23376: template 23376: struct is_array<_Tp[]> 23376: : public true_type { }; 23376: 23376: template 23376: struct __is_pointer_helper 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_pointer_helper<_Tp*> 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_pointer 23376: : public __is_pointer_helper::type>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_lvalue_reference 23376: : public false_type { }; 23376: 23376: template 23376: struct is_lvalue_reference<_Tp&> 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_rvalue_reference 23376: : public false_type { }; 23376: 23376: template 23376: struct is_rvalue_reference<_Tp&&> 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function; 23376: 23376: template 23376: struct __is_member_object_pointer_helper 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_member_object_pointer_helper<_Tp _Cp::*> 23376: : public integral_constant::value> { }; 23376: 23376: 23376: template 23376: struct is_member_object_pointer 23376: : public __is_member_object_pointer_helper< 23376: typename remove_cv<_Tp>::type>::type 23376: { }; 23376: 23376: template 23376: struct __is_member_function_pointer_helper 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_member_function_pointer_helper<_Tp _Cp::*> 23376: : public integral_constant::value> { }; 23376: 23376: 23376: template 23376: struct is_member_function_pointer 23376: : public __is_member_function_pointer_helper< 23376: typename remove_cv<_Tp>::type>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_enum 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: template 23376: struct is_union 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: template 23376: struct is_class 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: template 23376: struct is_function 23376: : public false_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) & > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) && > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) & > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) && > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) const > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) const & > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) const && > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) const > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) const & > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) const && > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) volatile > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) volatile & > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) volatile && > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) volatile > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) volatile & > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) volatile && > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) const volatile > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) const volatile & > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes...) const volatile && > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) const volatile > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) const volatile & > 23376: : public true_type { }; 23376: 23376: template 23376: struct is_function<_Res(_ArgTypes......) const volatile && > 23376: : public true_type { }; 23376: 23376: 23376: 23376: template 23376: struct __is_null_pointer_helper 23376: : public false_type { }; 23376: 23376: template<> 23376: struct __is_null_pointer_helper 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_null_pointer 23376: : public __is_null_pointer_helper::type>::type 23376: { }; 23376: 23376: 23376: template 23376: struct __is_nullptr_t 23376: : public is_null_pointer<_Tp> 23376: { }; 23376: 23376: 23376: 23376: 23376: template 23376: struct is_reference 23376: : public __or_, 23376: is_rvalue_reference<_Tp>>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_arithmetic 23376: : public __or_, is_floating_point<_Tp>>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_fundamental 23376: : public __or_, is_void<_Tp>, 23376: is_null_pointer<_Tp>>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_object 23376: : public __not_<__or_, is_reference<_Tp>, 23376: is_void<_Tp>>>::type 23376: { }; 23376: 23376: template 23376: struct is_member_pointer; 23376: 23376: 23376: template 23376: struct is_scalar 23376: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 23376: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_compound 23376: : public integral_constant::value> { }; 23376: 23376: template 23376: struct __is_member_pointer_helper 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_member_pointer_helper<_Tp _Cp::*> 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_member_pointer 23376: : public __is_member_pointer_helper::type>::type 23376: { }; 23376: 23376: 23376: 23376: template 23376: struct __is_referenceable 23376: : public __or_, is_reference<_Tp>>::type 23376: { }; 23376: 23376: template 23376: struct __is_referenceable<_Res(_Args...) > 23376: : public true_type 23376: { }; 23376: 23376: template 23376: struct __is_referenceable<_Res(_Args......) > 23376: : public true_type 23376: { }; 23376: 23376: 23376: 23376: 23376: template 23376: struct is_const 23376: : public false_type { }; 23376: 23376: template 23376: struct is_const<_Tp const> 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_volatile 23376: : public false_type { }; 23376: 23376: template 23376: struct is_volatile<_Tp volatile> 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_trivial 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: template 23376: struct is_trivially_copyable 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: template 23376: struct is_standard_layout 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: 23376: template 23376: struct is_pod 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: template 23376: struct is_literal_type 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: template 23376: struct is_empty 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: template 23376: struct is_polymorphic 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: 23376: 23376: template 23376: struct is_final 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: 23376: template 23376: struct is_abstract 23376: : public integral_constant 23376: { }; 23376: 23376: template::value> 23376: struct __is_signed_helper 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_signed_helper<_Tp, true> 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: template 23376: struct is_signed 23376: : public __is_signed_helper<_Tp>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_unsigned 23376: : public __and_, __not_>> 23376: { }; 23376: # 747 "/usr/include/c++/8/type_traits" 3 23376: template 23376: _Up 23376: __declval(int); 23376: 23376: template 23376: _Tp 23376: __declval(long); 23376: 23376: template 23376: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 23376: 23376: template 23376: struct extent; 23376: 23376: template 23376: struct remove_all_extents; 23376: 23376: template 23376: struct __is_array_known_bounds 23376: : public integral_constant::value > 0)> 23376: { }; 23376: 23376: template 23376: struct __is_array_unknown_bounds 23376: : public __and_, __not_>> 23376: { }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct __do_is_destructible_impl 23376: { 23376: template().~_Tp())> 23376: static true_type __test(int); 23376: 23376: template 23376: static false_type __test(...); 23376: }; 23376: 23376: template 23376: struct __is_destructible_impl 23376: : public __do_is_destructible_impl 23376: { 23376: typedef decltype(__test<_Tp>(0)) type; 23376: }; 23376: 23376: template, 23376: __is_array_unknown_bounds<_Tp>, 23376: is_function<_Tp>>::value, 23376: bool = __or_, is_scalar<_Tp>>::value> 23376: struct __is_destructible_safe; 23376: 23376: template 23376: struct __is_destructible_safe<_Tp, false, false> 23376: : public __is_destructible_impl::type>::type 23376: { }; 23376: 23376: template 23376: struct __is_destructible_safe<_Tp, true, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_destructible_safe<_Tp, false, true> 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_destructible 23376: : public __is_destructible_safe<_Tp>::type 23376: { }; 23376: 23376: 23376: 23376: 23376: 23376: struct __do_is_nt_destructible_impl 23376: { 23376: template 23376: static integral_constant().~_Tp())> 23376: __test(int); 23376: 23376: template 23376: static false_type __test(...); 23376: }; 23376: 23376: template 23376: struct __is_nt_destructible_impl 23376: : public __do_is_nt_destructible_impl 23376: { 23376: typedef decltype(__test<_Tp>(0)) type; 23376: }; 23376: 23376: template, 23376: __is_array_unknown_bounds<_Tp>, 23376: is_function<_Tp>>::value, 23376: bool = __or_, is_scalar<_Tp>>::value> 23376: struct __is_nt_destructible_safe; 23376: 23376: template 23376: struct __is_nt_destructible_safe<_Tp, false, false> 23376: : public __is_nt_destructible_impl::type>::type 23376: { }; 23376: 23376: template 23376: struct __is_nt_destructible_safe<_Tp, true, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_nt_destructible_safe<_Tp, false, true> 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_nothrow_destructible 23376: : public __is_nt_destructible_safe<_Tp>::type 23376: { }; 23376: 23376: struct __do_is_default_constructible_impl 23376: { 23376: template 23376: static true_type __test(int); 23376: 23376: template 23376: static false_type __test(...); 23376: }; 23376: 23376: template 23376: struct __is_default_constructible_impl 23376: : public __do_is_default_constructible_impl 23376: { 23376: typedef decltype(__test<_Tp>(0)) type; 23376: }; 23376: 23376: template 23376: struct __is_default_constructible_atom 23376: : public __and_<__not_>, 23376: __is_default_constructible_impl<_Tp>> 23376: { }; 23376: 23376: template::value> 23376: struct __is_default_constructible_safe; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __is_default_constructible_safe<_Tp, true> 23376: : public __and_<__is_array_known_bounds<_Tp>, 23376: __is_default_constructible_atom::type>> 23376: { }; 23376: 23376: template 23376: struct __is_default_constructible_safe<_Tp, false> 23376: : public __is_default_constructible_atom<_Tp>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_default_constructible 23376: : public __is_default_constructible_safe<_Tp>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_constructible 23376: : public __bool_constant<__is_constructible(_Tp, _Args...)> 23376: { }; 23376: 23376: template::value> 23376: struct __is_copy_constructible_impl; 23376: 23376: template 23376: struct __is_copy_constructible_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_copy_constructible_impl<_Tp, true> 23376: : public is_constructible<_Tp, const _Tp&> 23376: { }; 23376: 23376: 23376: template 23376: struct is_copy_constructible 23376: : public __is_copy_constructible_impl<_Tp> 23376: { }; 23376: 23376: template::value> 23376: struct __is_move_constructible_impl; 23376: 23376: template 23376: struct __is_move_constructible_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_move_constructible_impl<_Tp, true> 23376: : public is_constructible<_Tp, _Tp&&> 23376: { }; 23376: 23376: 23376: template 23376: struct is_move_constructible 23376: : public __is_move_constructible_impl<_Tp> 23376: { }; 23376: 23376: template 23376: struct __is_nt_default_constructible_atom 23376: : public integral_constant 23376: { }; 23376: 23376: template::value> 23376: struct __is_nt_default_constructible_impl; 23376: 23376: template 23376: struct __is_nt_default_constructible_impl<_Tp, true> 23376: : public __and_<__is_array_known_bounds<_Tp>, 23376: __is_nt_default_constructible_atom::type>> 23376: { }; 23376: 23376: template 23376: struct __is_nt_default_constructible_impl<_Tp, false> 23376: : public __is_nt_default_constructible_atom<_Tp> 23376: { }; 23376: 23376: 23376: template 23376: struct is_nothrow_default_constructible 23376: : public __and_, 23376: __is_nt_default_constructible_impl<_Tp>> 23376: { }; 23376: 23376: template 23376: struct __is_nt_constructible_impl 23376: : public integral_constant()...))> 23376: { }; 23376: 23376: template 23376: struct __is_nt_constructible_impl<_Tp, _Arg> 23376: : public integral_constant(declval<_Arg>()))> 23376: { }; 23376: 23376: template 23376: struct __is_nt_constructible_impl<_Tp> 23376: : public is_nothrow_default_constructible<_Tp> 23376: { }; 23376: 23376: 23376: template 23376: struct is_nothrow_constructible 23376: : public __and_, 23376: __is_nt_constructible_impl<_Tp, _Args...>> 23376: { }; 23376: 23376: template::value> 23376: struct __is_nothrow_copy_constructible_impl; 23376: 23376: template 23376: struct __is_nothrow_copy_constructible_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_nothrow_copy_constructible_impl<_Tp, true> 23376: : public is_nothrow_constructible<_Tp, const _Tp&> 23376: { }; 23376: 23376: 23376: template 23376: struct is_nothrow_copy_constructible 23376: : public __is_nothrow_copy_constructible_impl<_Tp> 23376: { }; 23376: 23376: template::value> 23376: struct __is_nothrow_move_constructible_impl; 23376: 23376: template 23376: struct __is_nothrow_move_constructible_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_nothrow_move_constructible_impl<_Tp, true> 23376: : public is_nothrow_constructible<_Tp, _Tp&&> 23376: { }; 23376: 23376: 23376: template 23376: struct is_nothrow_move_constructible 23376: : public __is_nothrow_move_constructible_impl<_Tp> 23376: { }; 23376: 23376: 23376: template 23376: struct is_assignable 23376: : public __bool_constant<__is_assignable(_Tp, _Up)> 23376: { }; 23376: 23376: template::value> 23376: struct __is_copy_assignable_impl; 23376: 23376: template 23376: struct __is_copy_assignable_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_copy_assignable_impl<_Tp, true> 23376: : public is_assignable<_Tp&, const _Tp&> 23376: { }; 23376: 23376: 23376: template 23376: struct is_copy_assignable 23376: : public __is_copy_assignable_impl<_Tp> 23376: { }; 23376: 23376: template::value> 23376: struct __is_move_assignable_impl; 23376: 23376: template 23376: struct __is_move_assignable_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_move_assignable_impl<_Tp, true> 23376: : public is_assignable<_Tp&, _Tp&&> 23376: { }; 23376: 23376: 23376: template 23376: struct is_move_assignable 23376: : public __is_move_assignable_impl<_Tp> 23376: { }; 23376: 23376: template 23376: struct __is_nt_assignable_impl 23376: : public integral_constant() = declval<_Up>())> 23376: { }; 23376: 23376: 23376: template 23376: struct is_nothrow_assignable 23376: : public __and_, 23376: __is_nt_assignable_impl<_Tp, _Up>> 23376: { }; 23376: 23376: template::value> 23376: struct __is_nt_copy_assignable_impl; 23376: 23376: template 23376: struct __is_nt_copy_assignable_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_nt_copy_assignable_impl<_Tp, true> 23376: : public is_nothrow_assignable<_Tp&, const _Tp&> 23376: { }; 23376: 23376: 23376: template 23376: struct is_nothrow_copy_assignable 23376: : public __is_nt_copy_assignable_impl<_Tp> 23376: { }; 23376: 23376: template::value> 23376: struct __is_nt_move_assignable_impl; 23376: 23376: template 23376: struct __is_nt_move_assignable_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_nt_move_assignable_impl<_Tp, true> 23376: : public is_nothrow_assignable<_Tp&, _Tp&&> 23376: { }; 23376: 23376: 23376: template 23376: struct is_nothrow_move_assignable 23376: : public __is_nt_move_assignable_impl<_Tp> 23376: { }; 23376: 23376: 23376: template 23376: struct is_trivially_constructible 23376: : public __and_, __bool_constant< 23376: __is_trivially_constructible(_Tp, _Args...)>>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_trivially_default_constructible 23376: : public is_trivially_constructible<_Tp>::type 23376: { }; 23376: 23376: struct __do_is_implicitly_default_constructible_impl 23376: { 23376: template 23376: static void __helper(const _Tp&); 23376: 23376: template 23376: static true_type __test(const _Tp&, 23376: decltype(__helper({}))* = 0); 23376: 23376: static false_type __test(...); 23376: }; 23376: 23376: template 23376: struct __is_implicitly_default_constructible_impl 23376: : public __do_is_implicitly_default_constructible_impl 23376: { 23376: typedef decltype(__test(declval<_Tp>())) type; 23376: }; 23376: 23376: template 23376: struct __is_implicitly_default_constructible_safe 23376: : public __is_implicitly_default_constructible_impl<_Tp>::type 23376: { }; 23376: 23376: template 23376: struct __is_implicitly_default_constructible 23376: : public __and_, 23376: __is_implicitly_default_constructible_safe<_Tp>> 23376: { }; 23376: 23376: 23376: 23376: template::value> 23376: struct __is_trivially_copy_constructible_impl; 23376: 23376: template 23376: struct __is_trivially_copy_constructible_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_trivially_copy_constructible_impl<_Tp, true> 23376: : public __and_, 23376: integral_constant> 23376: { }; 23376: 23376: template 23376: struct is_trivially_copy_constructible 23376: : public __is_trivially_copy_constructible_impl<_Tp> 23376: { }; 23376: 23376: 23376: 23376: template::value> 23376: struct __is_trivially_move_constructible_impl; 23376: 23376: template 23376: struct __is_trivially_move_constructible_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_trivially_move_constructible_impl<_Tp, true> 23376: : public __and_, 23376: integral_constant> 23376: { }; 23376: 23376: template 23376: struct is_trivially_move_constructible 23376: : public __is_trivially_move_constructible_impl<_Tp> 23376: { }; 23376: 23376: 23376: template 23376: struct is_trivially_assignable 23376: : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> 23376: { }; 23376: 23376: 23376: 23376: template::value> 23376: struct __is_trivially_copy_assignable_impl; 23376: 23376: template 23376: struct __is_trivially_copy_assignable_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_trivially_copy_assignable_impl<_Tp, true> 23376: : public __and_, 23376: integral_constant> 23376: { }; 23376: 23376: template 23376: struct is_trivially_copy_assignable 23376: : public __is_trivially_copy_assignable_impl<_Tp> 23376: { }; 23376: 23376: 23376: 23376: template::value> 23376: struct __is_trivially_move_assignable_impl; 23376: 23376: template 23376: struct __is_trivially_move_assignable_impl<_Tp, false> 23376: : public false_type { }; 23376: 23376: template 23376: struct __is_trivially_move_assignable_impl<_Tp, true> 23376: : public __and_, 23376: integral_constant> 23376: { }; 23376: 23376: template 23376: struct is_trivially_move_assignable 23376: : public __is_trivially_move_assignable_impl<_Tp> 23376: { }; 23376: 23376: 23376: template 23376: struct is_trivially_destructible 23376: : public __and_, integral_constant> 23376: { }; 23376: 23376: 23376: 23376: template 23376: struct has_virtual_destructor 23376: : public integral_constant 23376: { }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct alignment_of 23376: : public integral_constant { }; 23376: 23376: 23376: template 23376: struct rank 23376: : public integral_constant { }; 23376: 23376: template 23376: struct rank<_Tp[_Size]> 23376: : public integral_constant::value> { }; 23376: 23376: template 23376: struct rank<_Tp[]> 23376: : public integral_constant::value> { }; 23376: 23376: 23376: template 23376: struct extent 23376: : public integral_constant { }; 23376: 23376: template 23376: struct extent<_Tp[_Size], _Uint> 23376: : public integral_constant::value> 23376: { }; 23376: 23376: template 23376: struct extent<_Tp[], _Uint> 23376: : public integral_constant::value> 23376: { }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct is_same 23376: : public false_type { }; 23376: 23376: template 23376: struct is_same<_Tp, _Tp> 23376: : public true_type { }; 23376: 23376: 23376: template 23376: struct is_base_of 23376: : public integral_constant 23376: { }; 23376: 23376: template, is_function<_To>, 23376: is_array<_To>>::value> 23376: struct __is_convertible_helper 23376: { typedef typename is_void<_To>::type type; }; 23376: 23376: template 23376: class __is_convertible_helper<_From, _To, false> 23376: { 23376: template 23376: static void __test_aux(_To1); 23376: 23376: template(std::declval<_From1>()))> 23376: static true_type 23376: __test(int); 23376: 23376: template 23376: static false_type 23376: __test(...); 23376: 23376: public: 23376: typedef decltype(__test<_From, _To>(0)) type; 23376: }; 23376: 23376: 23376: 23376: template 23376: struct is_convertible 23376: : public __is_convertible_helper<_From, _To>::type 23376: { }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct remove_const 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct remove_const<_Tp const> 23376: { typedef _Tp type; }; 23376: 23376: 23376: template 23376: struct remove_volatile 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct remove_volatile<_Tp volatile> 23376: { typedef _Tp type; }; 23376: 23376: 23376: template 23376: struct remove_cv 23376: { 23376: typedef typename 23376: remove_const::type>::type type; 23376: }; 23376: 23376: 23376: template 23376: struct add_const 23376: { typedef _Tp const type; }; 23376: 23376: 23376: template 23376: struct add_volatile 23376: { typedef _Tp volatile type; }; 23376: 23376: 23376: template 23376: struct add_cv 23376: { 23376: typedef typename 23376: add_const::type>::type type; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: using remove_const_t = typename remove_const<_Tp>::type; 23376: 23376: 23376: template 23376: using remove_volatile_t = typename remove_volatile<_Tp>::type; 23376: 23376: 23376: template 23376: using remove_cv_t = typename remove_cv<_Tp>::type; 23376: 23376: 23376: template 23376: using add_const_t = typename add_const<_Tp>::type; 23376: 23376: 23376: template 23376: using add_volatile_t = typename add_volatile<_Tp>::type; 23376: 23376: 23376: template 23376: using add_cv_t = typename add_cv<_Tp>::type; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct remove_reference 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct remove_reference<_Tp&> 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct remove_reference<_Tp&&> 23376: { typedef _Tp type; }; 23376: 23376: template::value> 23376: struct __add_lvalue_reference_helper 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct __add_lvalue_reference_helper<_Tp, true> 23376: { typedef _Tp& type; }; 23376: 23376: 23376: template 23376: struct add_lvalue_reference 23376: : public __add_lvalue_reference_helper<_Tp> 23376: { }; 23376: 23376: template::value> 23376: struct __add_rvalue_reference_helper 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct __add_rvalue_reference_helper<_Tp, true> 23376: { typedef _Tp&& type; }; 23376: 23376: 23376: template 23376: struct add_rvalue_reference 23376: : public __add_rvalue_reference_helper<_Tp> 23376: { }; 23376: 23376: 23376: 23376: template 23376: using remove_reference_t = typename remove_reference<_Tp>::type; 23376: 23376: 23376: template 23376: using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; 23376: 23376: 23376: template 23376: using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __cv_selector; 23376: 23376: template 23376: struct __cv_selector<_Unqualified, false, false> 23376: { typedef _Unqualified __type; }; 23376: 23376: template 23376: struct __cv_selector<_Unqualified, false, true> 23376: { typedef volatile _Unqualified __type; }; 23376: 23376: template 23376: struct __cv_selector<_Unqualified, true, false> 23376: { typedef const _Unqualified __type; }; 23376: 23376: template 23376: struct __cv_selector<_Unqualified, true, true> 23376: { typedef const volatile _Unqualified __type; }; 23376: 23376: template::value, 23376: bool _IsVol = is_volatile<_Qualified>::value> 23376: class __match_cv_qualifiers 23376: { 23376: typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; 23376: 23376: public: 23376: typedef typename __match::__type __type; 23376: }; 23376: 23376: 23376: template 23376: struct __make_unsigned 23376: { typedef _Tp __type; }; 23376: 23376: template<> 23376: struct __make_unsigned 23376: { typedef unsigned char __type; }; 23376: 23376: template<> 23376: struct __make_unsigned 23376: { typedef unsigned char __type; }; 23376: 23376: template<> 23376: struct __make_unsigned 23376: { typedef unsigned short __type; }; 23376: 23376: template<> 23376: struct __make_unsigned 23376: { typedef unsigned int __type; }; 23376: 23376: template<> 23376: struct __make_unsigned 23376: { typedef unsigned long __type; }; 23376: 23376: template<> 23376: struct __make_unsigned 23376: { typedef unsigned long long __type; }; 23376: # 1590 "/usr/include/c++/8/type_traits" 3 23376: template::value, 23376: bool _IsEnum = is_enum<_Tp>::value> 23376: class __make_unsigned_selector; 23376: 23376: template 23376: class __make_unsigned_selector<_Tp, true, false> 23376: { 23376: typedef __make_unsigned::type> __unsignedt; 23376: typedef typename __unsignedt::__type __unsigned_type; 23376: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 23376: 23376: public: 23376: typedef typename __cv_unsigned::__type __type; 23376: }; 23376: 23376: template 23376: class __make_unsigned_selector<_Tp, false, true> 23376: { 23376: 23376: typedef unsigned char __smallest; 23376: static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); 23376: static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short); 23376: static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int); 23376: static const bool __b3 = sizeof(_Tp) <= sizeof(unsigned long); 23376: typedef conditional<__b3, unsigned long, unsigned long long> __cond3; 23376: typedef typename __cond3::type __cond3_type; 23376: typedef conditional<__b2, unsigned int, __cond3_type> __cond2; 23376: typedef typename __cond2::type __cond2_type; 23376: typedef conditional<__b1, unsigned short, __cond2_type> __cond1; 23376: typedef typename __cond1::type __cond1_type; 23376: 23376: typedef typename conditional<__b0, __smallest, __cond1_type>::type 23376: __unsigned_type; 23376: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 23376: 23376: public: 23376: typedef typename __cv_unsigned::__type __type; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct make_unsigned 23376: { typedef typename __make_unsigned_selector<_Tp>::__type type; }; 23376: 23376: 23376: template<> 23376: struct make_unsigned; 23376: 23376: 23376: 23376: template 23376: struct __make_signed 23376: { typedef _Tp __type; }; 23376: 23376: template<> 23376: struct __make_signed 23376: { typedef signed char __type; }; 23376: 23376: template<> 23376: struct __make_signed 23376: { typedef signed char __type; }; 23376: 23376: template<> 23376: struct __make_signed 23376: { typedef signed short __type; }; 23376: 23376: template<> 23376: struct __make_signed 23376: { typedef signed int __type; }; 23376: 23376: template<> 23376: struct __make_signed 23376: { typedef signed long __type; }; 23376: 23376: template<> 23376: struct __make_signed 23376: { typedef signed long long __type; }; 23376: # 1694 "/usr/include/c++/8/type_traits" 3 23376: template::value, 23376: bool _IsEnum = is_enum<_Tp>::value> 23376: class __make_signed_selector; 23376: 23376: template 23376: class __make_signed_selector<_Tp, true, false> 23376: { 23376: typedef __make_signed::type> __signedt; 23376: typedef typename __signedt::__type __signed_type; 23376: typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed; 23376: 23376: public: 23376: typedef typename __cv_signed::__type __type; 23376: }; 23376: 23376: template 23376: class __make_signed_selector<_Tp, false, true> 23376: { 23376: typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; 23376: 23376: public: 23376: typedef typename __make_signed_selector<__unsigned_type>::__type __type; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct make_signed 23376: { typedef typename __make_signed_selector<_Tp>::__type type; }; 23376: 23376: 23376: template<> 23376: struct make_signed; 23376: 23376: 23376: 23376: template 23376: using make_signed_t = typename make_signed<_Tp>::type; 23376: 23376: 23376: template 23376: using make_unsigned_t = typename make_unsigned<_Tp>::type; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct remove_extent 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct remove_extent<_Tp[_Size]> 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct remove_extent<_Tp[]> 23376: { typedef _Tp type; }; 23376: 23376: 23376: template 23376: struct remove_all_extents 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct remove_all_extents<_Tp[_Size]> 23376: { typedef typename remove_all_extents<_Tp>::type type; }; 23376: 23376: template 23376: struct remove_all_extents<_Tp[]> 23376: { typedef typename remove_all_extents<_Tp>::type type; }; 23376: 23376: 23376: 23376: template 23376: using remove_extent_t = typename remove_extent<_Tp>::type; 23376: 23376: 23376: template 23376: using remove_all_extents_t = typename remove_all_extents<_Tp>::type; 23376: 23376: 23376: 23376: 23376: template 23376: struct __remove_pointer_helper 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct __remove_pointer_helper<_Tp, _Up*> 23376: { typedef _Up type; }; 23376: 23376: 23376: template 23376: struct remove_pointer 23376: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 23376: { }; 23376: 23376: 23376: template, 23376: is_void<_Tp>>::value> 23376: struct __add_pointer_helper 23376: { typedef _Tp type; }; 23376: 23376: template 23376: struct __add_pointer_helper<_Tp, true> 23376: { typedef typename remove_reference<_Tp>::type* type; }; 23376: 23376: template 23376: struct add_pointer 23376: : public __add_pointer_helper<_Tp> 23376: { }; 23376: 23376: 23376: 23376: template 23376: using remove_pointer_t = typename remove_pointer<_Tp>::type; 23376: 23376: 23376: template 23376: using add_pointer_t = typename add_pointer<_Tp>::type; 23376: 23376: 23376: template 23376: struct __aligned_storage_msa 23376: { 23376: union __type 23376: { 23376: unsigned char __data[_Len]; 23376: struct __attribute__((__aligned__)) { } __align; 23376: }; 23376: }; 23376: # 1840 "/usr/include/c++/8/type_traits" 3 23376: template::__type)> 23376: struct aligned_storage 23376: { 23376: union type 23376: { 23376: unsigned char __data[_Len]; 23376: struct __attribute__((__aligned__((_Align)))) { } __align; 23376: }; 23376: }; 23376: 23376: template 23376: struct __strictest_alignment 23376: { 23376: static const size_t _S_alignment = 0; 23376: static const size_t _S_size = 0; 23376: }; 23376: 23376: template 23376: struct __strictest_alignment<_Tp, _Types...> 23376: { 23376: static const size_t _S_alignment = 23376: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 23376: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 23376: static const size_t _S_size = 23376: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 23376: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 23376: }; 23376: # 1879 "/usr/include/c++/8/type_traits" 3 23376: template 23376: struct aligned_union 23376: { 23376: private: 23376: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 23376: 23376: using __strictest = __strictest_alignment<_Types...>; 23376: static const size_t _S_len = _Len > __strictest::_S_size 23376: ? _Len : __strictest::_S_size; 23376: public: 23376: 23376: static const size_t alignment_value = __strictest::_S_alignment; 23376: 23376: typedef typename aligned_storage<_S_len, alignment_value>::type type; 23376: }; 23376: 23376: template 23376: const size_t aligned_union<_Len, _Types...>::alignment_value; 23376: 23376: 23376: 23376: template::value, 23376: bool _IsFunction = is_function<_Up>::value> 23376: struct __decay_selector; 23376: 23376: 23376: template 23376: struct __decay_selector<_Up, false, false> 23376: { typedef typename remove_cv<_Up>::type __type; }; 23376: 23376: template 23376: struct __decay_selector<_Up, true, false> 23376: { typedef typename remove_extent<_Up>::type* __type; }; 23376: 23376: template 23376: struct __decay_selector<_Up, false, true> 23376: { typedef typename add_pointer<_Up>::type __type; }; 23376: 23376: 23376: template 23376: class decay 23376: { 23376: typedef typename remove_reference<_Tp>::type __remove_type; 23376: 23376: public: 23376: typedef typename __decay_selector<__remove_type>::__type type; 23376: }; 23376: 23376: template 23376: class reference_wrapper; 23376: 23376: 23376: template 23376: struct __strip_reference_wrapper 23376: { 23376: typedef _Tp __type; 23376: }; 23376: 23376: template 23376: struct __strip_reference_wrapper > 23376: { 23376: typedef _Tp& __type; 23376: }; 23376: 23376: template 23376: struct __decay_and_strip 23376: { 23376: typedef typename __strip_reference_wrapper< 23376: typename decay<_Tp>::type>::__type __type; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct enable_if 23376: { }; 23376: 23376: 23376: template 23376: struct enable_if 23376: { typedef _Tp type; }; 23376: 23376: template 23376: using _Require = typename enable_if<__and_<_Cond...>::value>::type; 23376: 23376: 23376: 23376: template 23376: struct conditional 23376: { typedef _Iftrue type; }; 23376: 23376: 23376: template 23376: struct conditional 23376: { typedef _Iffalse type; }; 23376: 23376: 23376: template 23376: struct common_type; 23376: 23376: 23376: 23376: struct __do_common_type_impl 23376: { 23376: template 23376: static __success_type() 23376: : std::declval<_Up>())>::type> _S_test(int); 23376: 23376: template 23376: static __failure_type _S_test(...); 23376: }; 23376: 23376: template 23376: struct __common_type_impl 23376: : private __do_common_type_impl 23376: { 23376: typedef decltype(_S_test<_Tp, _Up>(0)) type; 23376: }; 23376: 23376: struct __do_member_type_wrapper 23376: { 23376: template 23376: static __success_type _S_test(int); 23376: 23376: template 23376: static __failure_type _S_test(...); 23376: }; 23376: 23376: template 23376: struct __member_type_wrapper 23376: : private __do_member_type_wrapper 23376: { 23376: typedef decltype(_S_test<_Tp>(0)) type; 23376: }; 23376: 23376: template 23376: struct __expanded_common_type_wrapper 23376: { 23376: typedef common_type type; 23376: }; 23376: 23376: template 23376: struct __expanded_common_type_wrapper<__failure_type, _Args...> 23376: { typedef __failure_type type; }; 23376: 23376: template 23376: struct common_type<_Tp> 23376: { typedef typename decay<_Tp>::type type; }; 23376: 23376: template 23376: struct common_type<_Tp, _Up> 23376: : public __common_type_impl<_Tp, _Up>::type 23376: { }; 23376: 23376: template 23376: struct common_type<_Tp, _Up, _Vp...> 23376: : public __expanded_common_type_wrapper>::type, _Vp...>::type 23376: { }; 23376: 23376: 23376: template 23376: struct underlying_type 23376: { 23376: typedef __underlying_type(_Tp) type; 23376: }; 23376: 23376: template 23376: struct __declval_protector 23376: { 23376: static const bool __stop = false; 23376: }; 23376: 23376: template 23376: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 23376: { 23376: static_assert(__declval_protector<_Tp>::__stop, 23376: "declval() must not be used!"); 23376: return __declval<_Tp>(0); 23376: } 23376: # 2072 "/usr/include/c++/8/type_traits" 3 23376: template<> 23376: struct __make_unsigned 23376: { 23376: using __type 23376: = typename __make_unsigned_selector::__type; 23376: }; 23376: 23376: template<> 23376: struct __make_signed 23376: { 23376: using __type 23376: = typename __make_signed_selector::__type; 23376: }; 23376: 23376: 23376: template<> 23376: struct __make_unsigned 23376: { 23376: using __type 23376: = typename __make_unsigned_selector::__type; 23376: }; 23376: 23376: template<> 23376: struct __make_signed 23376: { 23376: using __type 23376: = typename __make_signed_selector::__type; 23376: }; 23376: 23376: template<> 23376: struct __make_unsigned 23376: { 23376: using __type 23376: = typename __make_unsigned_selector::__type; 23376: }; 23376: 23376: template<> 23376: struct __make_signed 23376: { 23376: using __type 23376: = typename __make_signed_selector::__type; 23376: }; 23376: 23376: 23376: 23376: template 23376: class result_of; 23376: 23376: 23376: 23376: 23376: 23376: struct __invoke_memfun_ref { }; 23376: struct __invoke_memfun_deref { }; 23376: struct __invoke_memobj_ref { }; 23376: struct __invoke_memobj_deref { }; 23376: struct __invoke_other { }; 23376: 23376: 23376: template 23376: struct __result_of_success : __success_type<_Tp> 23376: { using __invoke_type = _Tag; }; 23376: 23376: 23376: struct __result_of_memfun_ref_impl 23376: { 23376: template 23376: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 23376: ), __invoke_memfun_ref> _S_test(int); 23376: 23376: template 23376: static __failure_type _S_test(...); 23376: }; 23376: 23376: template 23376: struct __result_of_memfun_ref 23376: : private __result_of_memfun_ref_impl 23376: { 23376: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 23376: }; 23376: 23376: 23376: struct __result_of_memfun_deref_impl 23376: { 23376: template 23376: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 23376: ), __invoke_memfun_deref> _S_test(int); 23376: 23376: template 23376: static __failure_type _S_test(...); 23376: }; 23376: 23376: template 23376: struct __result_of_memfun_deref 23376: : private __result_of_memfun_deref_impl 23376: { 23376: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 23376: }; 23376: 23376: 23376: struct __result_of_memobj_ref_impl 23376: { 23376: template 23376: static __result_of_success().*std::declval<_Fp>() 23376: ), __invoke_memobj_ref> _S_test(int); 23376: 23376: template 23376: static __failure_type _S_test(...); 23376: }; 23376: 23376: template 23376: struct __result_of_memobj_ref 23376: : private __result_of_memobj_ref_impl 23376: { 23376: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 23376: }; 23376: 23376: 23376: struct __result_of_memobj_deref_impl 23376: { 23376: template 23376: static __result_of_success()).*std::declval<_Fp>() 23376: ), __invoke_memobj_deref> _S_test(int); 23376: 23376: template 23376: static __failure_type _S_test(...); 23376: }; 23376: 23376: template 23376: struct __result_of_memobj_deref 23376: : private __result_of_memobj_deref_impl 23376: { 23376: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 23376: }; 23376: 23376: template 23376: struct __result_of_memobj; 23376: 23376: template 23376: struct __result_of_memobj<_Res _Class::*, _Arg> 23376: { 23376: typedef typename remove_cv::type>::type _Argval; 23376: typedef _Res _Class::* _MemPtr; 23376: typedef typename conditional<__or_, 23376: is_base_of<_Class, _Argval>>::value, 23376: __result_of_memobj_ref<_MemPtr, _Arg>, 23376: __result_of_memobj_deref<_MemPtr, _Arg> 23376: >::type::type type; 23376: }; 23376: 23376: template 23376: struct __result_of_memfun; 23376: 23376: template 23376: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 23376: { 23376: typedef typename remove_cv::type>::type _Argval; 23376: typedef _Res _Class::* _MemPtr; 23376: typedef typename conditional<__or_, 23376: is_base_of<_Class, _Argval>>::value, 23376: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 23376: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 23376: >::type::type type; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template::type> 23376: struct __inv_unwrap 23376: { 23376: using type = _Tp; 23376: }; 23376: 23376: template 23376: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 23376: { 23376: using type = _Up&; 23376: }; 23376: 23376: template 23376: struct __result_of_impl 23376: { 23376: typedef __failure_type type; 23376: }; 23376: 23376: template 23376: struct __result_of_impl 23376: : public __result_of_memobj::type, 23376: typename __inv_unwrap<_Arg>::type> 23376: { }; 23376: 23376: template 23376: struct __result_of_impl 23376: : public __result_of_memfun::type, 23376: typename __inv_unwrap<_Arg>::type, _Args...> 23376: { }; 23376: 23376: 23376: struct __result_of_other_impl 23376: { 23376: template 23376: static __result_of_success()(std::declval<_Args>()...) 23376: ), __invoke_other> _S_test(int); 23376: 23376: template 23376: static __failure_type _S_test(...); 23376: }; 23376: 23376: template 23376: struct __result_of_impl 23376: : private __result_of_other_impl 23376: { 23376: typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; 23376: }; 23376: 23376: 23376: template 23376: struct __invoke_result 23376: : public __result_of_impl< 23376: is_member_object_pointer< 23376: typename remove_reference<_Functor>::type 23376: >::value, 23376: is_member_function_pointer< 23376: typename remove_reference<_Functor>::type 23376: >::value, 23376: _Functor, _ArgTypes... 23376: >::type 23376: { }; 23376: 23376: template 23376: struct result_of<_Functor(_ArgTypes...)> 23376: : public __invoke_result<_Functor, _ArgTypes...> 23376: { }; 23376: 23376: 23376: 23376: template::__type)> 23376: using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; 23376: 23376: template 23376: using aligned_union_t = typename aligned_union<_Len, _Types...>::type; 23376: 23376: 23376: template 23376: using decay_t = typename decay<_Tp>::type; 23376: 23376: 23376: template 23376: using enable_if_t = typename enable_if<_Cond, _Tp>::type; 23376: 23376: 23376: template 23376: using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; 23376: 23376: 23376: template 23376: using common_type_t = typename common_type<_Tp...>::type; 23376: 23376: 23376: template 23376: using underlying_type_t = typename underlying_type<_Tp>::type; 23376: 23376: 23376: template 23376: using result_of_t = typename result_of<_Tp>::type; 23376: 23376: 23376: 23376: template 23376: using __enable_if_t = typename enable_if<_Cond, _Tp>::type; 23376: 23376: 23376: template using __void_t = void; 23376: 23376: 23376: 23376: 23376: template using void_t = void; 23376: 23376: 23376: 23376: template class _Op, typename... _Args> 23376: struct __detector 23376: { 23376: using value_t = false_type; 23376: using type = _Default; 23376: }; 23376: 23376: 23376: template class _Op, 23376: typename... _Args> 23376: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 23376: { 23376: using value_t = true_type; 23376: using type = _Op<_Args...>; 23376: }; 23376: 23376: 23376: template class _Op, 23376: typename... _Args> 23376: using __detected_or = __detector<_Default, void, _Op, _Args...>; 23376: 23376: 23376: template class _Op, 23376: typename... _Args> 23376: using __detected_or_t 23376: = typename __detected_or<_Default, _Op, _Args...>::type; 23376: # 2408 "/usr/include/c++/8/type_traits" 3 23376: template 23376: struct __is_swappable; 23376: 23376: template 23376: struct __is_nothrow_swappable; 23376: 23376: template 23376: class tuple; 23376: 23376: template 23376: struct __is_tuple_like_impl : false_type 23376: { }; 23376: 23376: template 23376: struct __is_tuple_like_impl> : true_type 23376: { }; 23376: 23376: 23376: template 23376: struct __is_tuple_like 23376: : public __is_tuple_like_impl::type>::type>::type 23376: { }; 23376: 23376: template 23376: inline 23376: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 23376: is_move_constructible<_Tp>, 23376: is_move_assignable<_Tp>>::value>::type 23376: swap(_Tp&, _Tp&) 23376: noexcept(__and_, 23376: is_nothrow_move_assignable<_Tp>>::value); 23376: 23376: template 23376: inline 23376: typename enable_if<__is_swappable<_Tp>::value>::type 23376: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 23376: noexcept(__is_nothrow_swappable<_Tp>::value); 23376: 23376: namespace __swappable_details { 23376: using std::swap; 23376: 23376: struct __do_is_swappable_impl 23376: { 23376: template(), std::declval<_Tp&>()))> 23376: static true_type __test(int); 23376: 23376: template 23376: static false_type __test(...); 23376: }; 23376: 23376: struct __do_is_nothrow_swappable_impl 23376: { 23376: template 23376: static __bool_constant< 23376: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 23376: > __test(int); 23376: 23376: template 23376: static false_type __test(...); 23376: }; 23376: 23376: } 23376: 23376: template 23376: struct __is_swappable_impl 23376: : public __swappable_details::__do_is_swappable_impl 23376: { 23376: typedef decltype(__test<_Tp>(0)) type; 23376: }; 23376: 23376: template 23376: struct __is_nothrow_swappable_impl 23376: : public __swappable_details::__do_is_nothrow_swappable_impl 23376: { 23376: typedef decltype(__test<_Tp>(0)) type; 23376: }; 23376: 23376: template 23376: struct __is_swappable 23376: : public __is_swappable_impl<_Tp>::type 23376: { }; 23376: 23376: template 23376: struct __is_nothrow_swappable 23376: : public __is_nothrow_swappable_impl<_Tp>::type 23376: { }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct is_swappable 23376: : public __is_swappable_impl<_Tp>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_nothrow_swappable 23376: : public __is_nothrow_swappable_impl<_Tp>::type 23376: { }; 23376: 23376: 23376: 23376: template 23376: constexpr bool is_swappable_v = 23376: is_swappable<_Tp>::value; 23376: 23376: 23376: template 23376: constexpr bool is_nothrow_swappable_v = 23376: is_nothrow_swappable<_Tp>::value; 23376: 23376: 23376: namespace __swappable_with_details { 23376: using std::swap; 23376: 23376: struct __do_is_swappable_with_impl 23376: { 23376: template(), std::declval<_Up>())), 23376: typename 23376: = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> 23376: static true_type __test(int); 23376: 23376: template 23376: static false_type __test(...); 23376: }; 23376: 23376: struct __do_is_nothrow_swappable_with_impl 23376: { 23376: template 23376: static __bool_constant< 23376: noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) 23376: && 23376: noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) 23376: > __test(int); 23376: 23376: template 23376: static false_type __test(...); 23376: }; 23376: 23376: } 23376: 23376: template 23376: struct __is_swappable_with_impl 23376: : public __swappable_with_details::__do_is_swappable_with_impl 23376: { 23376: typedef decltype(__test<_Tp, _Up>(0)) type; 23376: }; 23376: 23376: 23376: template 23376: struct __is_swappable_with_impl<_Tp&, _Tp&> 23376: : public __swappable_details::__do_is_swappable_impl 23376: { 23376: typedef decltype(__test<_Tp&>(0)) type; 23376: }; 23376: 23376: template 23376: struct __is_nothrow_swappable_with_impl 23376: : public __swappable_with_details::__do_is_nothrow_swappable_with_impl 23376: { 23376: typedef decltype(__test<_Tp, _Up>(0)) type; 23376: }; 23376: 23376: 23376: template 23376: struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> 23376: : public __swappable_details::__do_is_nothrow_swappable_impl 23376: { 23376: typedef decltype(__test<_Tp&>(0)) type; 23376: }; 23376: 23376: 23376: template 23376: struct is_swappable_with 23376: : public __is_swappable_with_impl<_Tp, _Up>::type 23376: { }; 23376: 23376: 23376: template 23376: struct is_nothrow_swappable_with 23376: : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type 23376: { }; 23376: 23376: 23376: 23376: template 23376: constexpr bool is_swappable_with_v = 23376: is_swappable_with<_Tp, _Up>::value; 23376: 23376: 23376: template 23376: constexpr bool is_nothrow_swappable_with_v = 23376: is_nothrow_swappable_with<_Tp, _Up>::value; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __is_invocable_impl : false_type { }; 23376: 23376: template 23376: struct __is_invocable_impl<_Result, _Ret, __void_t> 23376: : __or_, is_convertible>::type 23376: { }; 23376: 23376: template 23376: struct __is_invocable 23376: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 23376: { }; 23376: 23376: template 23376: constexpr bool __call_is_nt(__invoke_memfun_ref) 23376: { 23376: using _Up = typename __inv_unwrap<_Tp>::type; 23376: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 23376: std::declval<_Args>()...)); 23376: } 23376: 23376: template 23376: constexpr bool __call_is_nt(__invoke_memfun_deref) 23376: { 23376: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 23376: std::declval<_Args>()...)); 23376: } 23376: 23376: template 23376: constexpr bool __call_is_nt(__invoke_memobj_ref) 23376: { 23376: using _Up = typename __inv_unwrap<_Tp>::type; 23376: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 23376: } 23376: 23376: template 23376: constexpr bool __call_is_nt(__invoke_memobj_deref) 23376: { 23376: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 23376: } 23376: 23376: template 23376: constexpr bool __call_is_nt(__invoke_other) 23376: { 23376: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 23376: } 23376: 23376: template 23376: struct __call_is_nothrow 23376: : __bool_constant< 23376: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 23376: > 23376: { }; 23376: 23376: template 23376: using __call_is_nothrow_ 23376: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 23376: 23376: 23376: template 23376: struct __is_nothrow_invocable 23376: : __and_<__is_invocable<_Fn, _Args...>, 23376: __call_is_nothrow_<_Fn, _Args...>>::type 23376: { }; 23376: 23376: struct __nonesuch { 23376: __nonesuch() = delete; 23376: ~__nonesuch() = delete; 23376: __nonesuch(__nonesuch const&) = delete; 23376: void operator=(__nonesuch const&) = delete; 23376: }; 23376: # 2973 "/usr/include/c++/8/type_traits" 3 23376: 23376: } 23376: # 56 "/usr/include/c++/8/bits/move.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 72 "/usr/include/c++/8/bits/move.h" 3 23376: template 23376: constexpr _Tp&& 23376: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 23376: { return static_cast<_Tp&&>(__t); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: constexpr _Tp&& 23376: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 23376: { 23376: static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" 23376: " substituting _Tp is an lvalue reference type"); 23376: return static_cast<_Tp&&>(__t); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: constexpr typename std::remove_reference<_Tp>::type&& 23376: move(_Tp&& __t) noexcept 23376: { return static_cast::type&&>(__t); } 23376: 23376: 23376: template 23376: struct __move_if_noexcept_cond 23376: : public __and_<__not_>, 23376: is_copy_constructible<_Tp>>::type { }; 23376: # 116 "/usr/include/c++/8/bits/move.h" 3 23376: template 23376: constexpr typename 23376: conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type 23376: move_if_noexcept(_Tp& __x) noexcept 23376: { return std::move(__x); } 23376: # 136 "/usr/include/c++/8/bits/move.h" 3 23376: template 23376: inline _Tp* 23376: addressof(_Tp& __r) noexcept 23376: { return std::__addressof(__r); } 23376: 23376: 23376: 23376: template 23376: const _Tp* addressof(const _Tp&&) = delete; 23376: 23376: 23376: template 23376: inline _Tp 23376: __exchange(_Tp& __obj, _Up&& __new_val) 23376: { 23376: _Tp __old_val = std::move(__obj); 23376: __obj = std::forward<_Up>(__new_val); 23376: return __old_val; 23376: } 23376: # 176 "/usr/include/c++/8/bits/move.h" 3 23376: template 23376: inline 23376: 23376: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 23376: is_move_constructible<_Tp>, 23376: is_move_assignable<_Tp>>::value>::type 23376: swap(_Tp& __a, _Tp& __b) 23376: noexcept(__and_, 23376: is_nothrow_move_assignable<_Tp>>::value) 23376: 23376: 23376: 23376: 23376: { 23376: 23376: 23376: 23376: _Tp __tmp = std::move(__a); 23376: __a = std::move(__b); 23376: __b = std::move(__tmp); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline 23376: 23376: typename enable_if<__is_swappable<_Tp>::value>::type 23376: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 23376: noexcept(__is_nothrow_swappable<_Tp>::value) 23376: 23376: 23376: 23376: 23376: { 23376: for (size_t __n = 0; __n < _Nm; ++__n) 23376: swap(__a[__n], __b[__n]); 23376: } 23376: 23376: 23376: 23376: } 23376: # 60 "/usr/include/c++/8/bits/stl_pair.h" 2 3 23376: 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 76 "/usr/include/c++/8/bits/stl_pair.h" 3 23376: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 23376: 23376: 23376: constexpr piecewise_construct_t piecewise_construct = 23376: piecewise_construct_t(); 23376: 23376: 23376: template 23376: class tuple; 23376: 23376: template 23376: struct _Index_tuple; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct _PCC 23376: { 23376: template 23376: static constexpr bool _ConstructiblePair() 23376: { 23376: return __and_, 23376: is_constructible<_T2, const _U2&>>::value; 23376: } 23376: 23376: template 23376: static constexpr bool _ImplicitlyConvertiblePair() 23376: { 23376: return __and_, 23376: is_convertible>::value; 23376: } 23376: 23376: template 23376: static constexpr bool _MoveConstructiblePair() 23376: { 23376: return __and_, 23376: is_constructible<_T2, _U2&&>>::value; 23376: } 23376: 23376: template 23376: static constexpr bool _ImplicitlyMoveConvertiblePair() 23376: { 23376: return __and_, 23376: is_convertible<_U2&&, _T2>>::value; 23376: } 23376: 23376: template 23376: static constexpr bool _CopyMovePair() 23376: { 23376: using __do_converts = __and_, 23376: is_convertible<_U2&&, _T2>>; 23376: using __converts = typename conditional<__implicit, 23376: __do_converts, 23376: __not_<__do_converts>>::type; 23376: return __and_, 23376: is_constructible<_T2, _U2&&>, 23376: __converts 23376: >::value; 23376: } 23376: 23376: template 23376: static constexpr bool _MoveCopyPair() 23376: { 23376: using __do_converts = __and_, 23376: is_convertible>; 23376: using __converts = typename conditional<__implicit, 23376: __do_converts, 23376: __not_<__do_converts>>::type; 23376: return __and_, 23376: is_constructible<_T2, const _U2&&>, 23376: __converts 23376: >::value; 23376: } 23376: }; 23376: 23376: template 23376: struct _PCC 23376: { 23376: template 23376: static constexpr bool _ConstructiblePair() 23376: { 23376: return false; 23376: } 23376: 23376: template 23376: static constexpr bool _ImplicitlyConvertiblePair() 23376: { 23376: return false; 23376: } 23376: 23376: template 23376: static constexpr bool _MoveConstructiblePair() 23376: { 23376: return false; 23376: } 23376: 23376: template 23376: static constexpr bool _ImplicitlyMoveConvertiblePair() 23376: { 23376: return false; 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: struct __nonesuch_no_braces : std::__nonesuch { 23376: explicit __nonesuch_no_braces(const __nonesuch&) = delete; 23376: }; 23376: 23376: 23376: template class __pair_base 23376: { 23376: 23376: template friend struct pair; 23376: __pair_base() = default; 23376: ~__pair_base() = default; 23376: __pair_base(const __pair_base&) = default; 23376: __pair_base& operator=(const __pair_base&) = delete; 23376: 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct pair 23376: : private __pair_base<_T1, _T2> 23376: { 23376: typedef _T1 first_type; 23376: typedef _T2 second_type; 23376: 23376: _T1 first; 23376: _T2 second; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template , 23376: __is_implicitly_default_constructible<_U2>> 23376: ::value, bool>::type = true> 23376: 23376: constexpr pair() 23376: : first(), second() { } 23376: 23376: 23376: template , 23376: is_default_constructible<_U2>, 23376: __not_< 23376: __and_<__is_implicitly_default_constructible<_U1>, 23376: __is_implicitly_default_constructible<_U2>>>> 23376: ::value, bool>::type = false> 23376: explicit constexpr pair() 23376: : first(), second() { } 23376: # 252 "/usr/include/c++/8/bits/stl_pair.h" 3 23376: using _PCCP = _PCC; 23376: 23376: template() 23376: && _PCCP::template 23376: _ImplicitlyConvertiblePair<_U1, _U2>(), 23376: bool>::type=true> 23376: constexpr pair(const _T1& __a, const _T2& __b) 23376: : first(__a), second(__b) { } 23376: 23376: template() 23376: && !_PCCP::template 23376: _ImplicitlyConvertiblePair<_U1, _U2>(), 23376: bool>::type=false> 23376: explicit constexpr pair(const _T1& __a, const _T2& __b) 23376: : first(__a), second(__b) { } 23376: # 280 "/usr/include/c++/8/bits/stl_pair.h" 3 23376: template 23376: using _PCCFP = _PCC::value 23376: || !is_same<_T2, _U2>::value, 23376: _T1, _T2>; 23376: 23376: template::template 23376: _ConstructiblePair<_U1, _U2>() 23376: && _PCCFP<_U1, _U2>::template 23376: _ImplicitlyConvertiblePair<_U1, _U2>(), 23376: bool>::type=true> 23376: constexpr pair(const pair<_U1, _U2>& __p) 23376: : first(__p.first), second(__p.second) { } 23376: 23376: template::template 23376: _ConstructiblePair<_U1, _U2>() 23376: && !_PCCFP<_U1, _U2>::template 23376: _ImplicitlyConvertiblePair<_U1, _U2>(), 23376: bool>::type=false> 23376: explicit constexpr pair(const pair<_U1, _U2>& __p) 23376: : first(__p.first), second(__p.second) { } 23376: 23376: constexpr pair(const pair&) = default; 23376: constexpr pair(pair&&) = default; 23376: 23376: 23376: template(), 23376: bool>::type=true> 23376: constexpr pair(_U1&& __x, const _T2& __y) 23376: : first(std::forward<_U1>(__x)), second(__y) { } 23376: 23376: template(), 23376: bool>::type=false> 23376: explicit constexpr pair(_U1&& __x, const _T2& __y) 23376: : first(std::forward<_U1>(__x)), second(__y) { } 23376: 23376: template(), 23376: bool>::type=true> 23376: constexpr pair(const _T1& __x, _U2&& __y) 23376: : first(__x), second(std::forward<_U2>(__y)) { } 23376: 23376: template(), 23376: bool>::type=false> 23376: explicit pair(const _T1& __x, _U2&& __y) 23376: : first(__x), second(std::forward<_U2>(__y)) { } 23376: 23376: template() 23376: && _PCCP::template 23376: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 23376: bool>::type=true> 23376: constexpr pair(_U1&& __x, _U2&& __y) 23376: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 23376: 23376: template() 23376: && !_PCCP::template 23376: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 23376: bool>::type=false> 23376: explicit constexpr pair(_U1&& __x, _U2&& __y) 23376: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 23376: 23376: 23376: template::template 23376: _MoveConstructiblePair<_U1, _U2>() 23376: && _PCCFP<_U1, _U2>::template 23376: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 23376: bool>::type=true> 23376: constexpr pair(pair<_U1, _U2>&& __p) 23376: : first(std::forward<_U1>(__p.first)), 23376: second(std::forward<_U2>(__p.second)) { } 23376: 23376: template::template 23376: _MoveConstructiblePair<_U1, _U2>() 23376: && !_PCCFP<_U1, _U2>::template 23376: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 23376: bool>::type=false> 23376: explicit constexpr pair(pair<_U1, _U2>&& __p) 23376: : first(std::forward<_U1>(__p.first)), 23376: second(std::forward<_U2>(__p.second)) { } 23376: 23376: template 23376: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 23376: 23376: pair& 23376: operator=(typename conditional< 23376: __and_, 23376: is_copy_assignable<_T2>>::value, 23376: const pair&, const __nonesuch_no_braces&>::type __p) 23376: { 23376: first = __p.first; 23376: second = __p.second; 23376: return *this; 23376: } 23376: 23376: pair& 23376: operator=(typename conditional< 23376: __and_, 23376: is_move_assignable<_T2>>::value, 23376: pair&&, __nonesuch_no_braces&&>::type __p) 23376: noexcept(__and_, 23376: is_nothrow_move_assignable<_T2>>::value) 23376: { 23376: first = std::forward(__p.first); 23376: second = std::forward(__p.second); 23376: return *this; 23376: } 23376: 23376: template 23376: typename enable_if<__and_, 23376: is_assignable<_T2&, const _U2&>>::value, 23376: pair&>::type 23376: operator=(const pair<_U1, _U2>& __p) 23376: { 23376: first = __p.first; 23376: second = __p.second; 23376: return *this; 23376: } 23376: 23376: template 23376: typename enable_if<__and_, 23376: is_assignable<_T2&, _U2&&>>::value, 23376: pair&>::type 23376: operator=(pair<_U1, _U2>&& __p) 23376: { 23376: first = std::forward<_U1>(__p.first); 23376: second = std::forward<_U2>(__p.second); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(pair& __p) 23376: noexcept(__and_<__is_nothrow_swappable<_T1>, 23376: __is_nothrow_swappable<_T2>>::value) 23376: { 23376: using std::swap; 23376: swap(first, __p.first); 23376: swap(second, __p.second); 23376: } 23376: 23376: private: 23376: template 23376: pair(tuple<_Args1...>&, tuple<_Args2...>&, 23376: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 23376: 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline constexpr bool 23376: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 23376: { return __x.first == __y.first && __x.second == __y.second; } 23376: 23376: 23376: template 23376: inline constexpr bool 23376: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 23376: { return __x.first < __y.first 23376: || (!(__y.first < __x.first) && __x.second < __y.second); } 23376: 23376: 23376: template 23376: inline constexpr bool 23376: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 23376: { return !(__x == __y); } 23376: 23376: 23376: template 23376: inline constexpr bool 23376: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 23376: { return __y < __x; } 23376: 23376: 23376: template 23376: inline constexpr bool 23376: operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 23376: { return !(__y < __x); } 23376: 23376: 23376: template 23376: inline constexpr bool 23376: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 23376: { return !(__x < __y); } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline 23376: 23376: 23376: typename enable_if<__and_<__is_swappable<_T1>, 23376: __is_swappable<_T2>>::value>::type 23376: 23376: 23376: 23376: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 23376: noexcept(noexcept(__x.swap(__y))) 23376: { __x.swap(__y); } 23376: 23376: 23376: template 23376: typename enable_if, 23376: __is_swappable<_T2>>::value>::type 23376: swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; 23376: # 521 "/usr/include/c++/8/bits/stl_pair.h" 3 23376: template 23376: constexpr pair::__type, 23376: typename __decay_and_strip<_T2>::__type> 23376: make_pair(_T1&& __x, _T2&& __y) 23376: { 23376: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 23376: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 23376: typedef pair<__ds_type1, __ds_type2> __pair_type; 23376: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 23376: } 23376: # 540 "/usr/include/c++/8/bits/stl_pair.h" 3 23376: 23376: } 23376: # 71 "/usr/include/c++/8/utility" 2 3 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/initializer_list" 1 3 23376: # 33 "/usr/include/c++/8/initializer_list" 3 23376: 23376: # 34 "/usr/include/c++/8/initializer_list" 3 23376: 23376: 23376: 23376: 23376: 23376: #pragma GCC visibility push(default) 23376: 23376: 23376: 23376: namespace std 23376: { 23376: 23376: template 23376: class initializer_list 23376: { 23376: public: 23376: typedef _E value_type; 23376: typedef const _E& reference; 23376: typedef const _E& const_reference; 23376: typedef size_t size_type; 23376: typedef const _E* iterator; 23376: typedef const _E* const_iterator; 23376: 23376: private: 23376: iterator _M_array; 23376: size_type _M_len; 23376: 23376: 23376: constexpr initializer_list(const_iterator __a, size_type __l) 23376: : _M_array(__a), _M_len(__l) { } 23376: 23376: public: 23376: constexpr initializer_list() noexcept 23376: : _M_array(0), _M_len(0) { } 23376: 23376: 23376: constexpr size_type 23376: size() const noexcept { return _M_len; } 23376: 23376: 23376: constexpr const_iterator 23376: begin() const noexcept { return _M_array; } 23376: 23376: 23376: constexpr const_iterator 23376: end() const noexcept { return begin() + size(); } 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: constexpr const _Tp* 23376: begin(initializer_list<_Tp> __ils) noexcept 23376: { return __ils.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: constexpr const _Tp* 23376: end(initializer_list<_Tp> __ils) noexcept 23376: { return __ils.end(); } 23376: } 23376: 23376: #pragma GCC visibility pop 23376: # 77 "/usr/include/c++/8/utility" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: struct tuple_size; 23376: 23376: 23376: 23376: 23376: 23376: template::type, 23376: typename = typename enable_if::value>::type, 23376: size_t = tuple_size<_Tp>::value> 23376: using __enable_if_has_tuple_size = _Tp; 23376: 23376: template 23376: struct tuple_size> 23376: : public tuple_size<_Tp> { }; 23376: 23376: template 23376: struct tuple_size> 23376: : public tuple_size<_Tp> { }; 23376: 23376: template 23376: struct tuple_size> 23376: : public tuple_size<_Tp> { }; 23376: 23376: 23376: template 23376: struct tuple_element; 23376: 23376: 23376: template 23376: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 23376: 23376: template 23376: struct tuple_element<__i, const _Tp> 23376: { 23376: typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; 23376: }; 23376: 23376: template 23376: struct tuple_element<__i, volatile _Tp> 23376: { 23376: typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; 23376: }; 23376: 23376: template 23376: struct tuple_element<__i, const volatile _Tp> 23376: { 23376: typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: using tuple_element_t = typename tuple_element<__i, _Tp>::type; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __is_tuple_like_impl> : true_type 23376: { }; 23376: 23376: 23376: template 23376: struct tuple_size> 23376: : public integral_constant { }; 23376: 23376: 23376: template 23376: struct tuple_element<0, std::pair<_Tp1, _Tp2>> 23376: { typedef _Tp1 type; }; 23376: 23376: 23376: template 23376: struct tuple_element<1, std::pair<_Tp1, _Tp2>> 23376: { typedef _Tp2 type; }; 23376: 23376: template 23376: struct __pair_get; 23376: 23376: template<> 23376: struct __pair_get<0> 23376: { 23376: template 23376: static constexpr _Tp1& 23376: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 23376: { return __pair.first; } 23376: 23376: template 23376: static constexpr _Tp1&& 23376: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 23376: { return std::forward<_Tp1>(__pair.first); } 23376: 23376: template 23376: static constexpr const _Tp1& 23376: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 23376: { return __pair.first; } 23376: 23376: template 23376: static constexpr const _Tp1&& 23376: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 23376: { return std::forward(__pair.first); } 23376: }; 23376: 23376: template<> 23376: struct __pair_get<1> 23376: { 23376: template 23376: static constexpr _Tp2& 23376: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 23376: { return __pair.second; } 23376: 23376: template 23376: static constexpr _Tp2&& 23376: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 23376: { return std::forward<_Tp2>(__pair.second); } 23376: 23376: template 23376: static constexpr const _Tp2& 23376: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 23376: { return __pair.second; } 23376: 23376: template 23376: static constexpr const _Tp2&& 23376: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 23376: { return std::forward(__pair.second); } 23376: }; 23376: 23376: template 23376: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 23376: get(std::pair<_Tp1, _Tp2>& __in) noexcept 23376: { return __pair_get<_Int>::__get(__in); } 23376: 23376: template 23376: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 23376: get(std::pair<_Tp1, _Tp2>&& __in) noexcept 23376: { return __pair_get<_Int>::__move_get(std::move(__in)); } 23376: 23376: template 23376: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 23376: get(const std::pair<_Tp1, _Tp2>& __in) noexcept 23376: { return __pair_get<_Int>::__const_get(__in); } 23376: 23376: template 23376: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 23376: get(const std::pair<_Tp1, _Tp2>&& __in) noexcept 23376: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: constexpr _Tp& 23376: get(pair<_Tp, _Up>& __p) noexcept 23376: { return __p.first; } 23376: 23376: template 23376: constexpr const _Tp& 23376: get(const pair<_Tp, _Up>& __p) noexcept 23376: { return __p.first; } 23376: 23376: template 23376: constexpr _Tp&& 23376: get(pair<_Tp, _Up>&& __p) noexcept 23376: { return std::move(__p.first); } 23376: 23376: template 23376: constexpr const _Tp&& 23376: get(const pair<_Tp, _Up>&& __p) noexcept 23376: { return std::move(__p.first); } 23376: 23376: template 23376: constexpr _Tp& 23376: get(pair<_Up, _Tp>& __p) noexcept 23376: { return __p.second; } 23376: 23376: template 23376: constexpr const _Tp& 23376: get(const pair<_Up, _Tp>& __p) noexcept 23376: { return __p.second; } 23376: 23376: template 23376: constexpr _Tp&& 23376: get(pair<_Up, _Tp>&& __p) noexcept 23376: { return std::move(__p.second); } 23376: 23376: template 23376: constexpr const _Tp&& 23376: get(const pair<_Up, _Tp>&& __p) noexcept 23376: { return std::move(__p.second); } 23376: 23376: 23376: 23376: 23376: template 23376: inline _Tp 23376: exchange(_Tp& __obj, _Up&& __new_val) 23376: { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } 23376: 23376: 23376: 23376: 23376: template struct _Index_tuple { }; 23376: # 298 "/usr/include/c++/8/utility" 3 23376: template 23376: struct _Build_index_tuple 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: using __type = _Index_tuple<__integer_pack(_Num)...>; 23376: 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct integer_sequence 23376: { 23376: typedef _Tp value_type; 23376: static constexpr size_t size() noexcept { return sizeof...(_Idx); } 23376: }; 23376: 23376: 23376: template 23376: using make_integer_sequence 23376: 23376: 23376: 23376: = integer_sequence<_Tp, __integer_pack(_Num)...>; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: using index_sequence = integer_sequence; 23376: 23376: 23376: template 23376: using make_index_sequence = make_integer_sequence; 23376: 23376: 23376: template 23376: using index_sequence_for = make_index_sequence; 23376: # 393 "/usr/include/c++/8/utility" 3 23376: 23376: } 23376: # 39 "/usr/include/gmpxx.h" 2 3 4 23376: # 1 "/usr/include/c++/8/algorithm" 1 3 4 23376: # 58 "/usr/include/c++/8/algorithm" 3 4 23376: 23376: # 59 "/usr/include/c++/8/algorithm" 3 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/stl_algobase.h" 1 3 23376: # 60 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: # 1 "/usr/include/c++/8/bits/functexcept.h" 1 3 23376: # 40 "/usr/include/c++/8/bits/functexcept.h" 3 23376: # 1 "/usr/include/c++/8/bits/exception_defines.h" 1 3 23376: # 41 "/usr/include/c++/8/bits/functexcept.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: void 23376: __throw_bad_exception(void) __attribute__((__noreturn__)); 23376: 23376: 23376: void 23376: __throw_bad_alloc(void) __attribute__((__noreturn__)); 23376: 23376: 23376: void 23376: __throw_bad_cast(void) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_bad_typeid(void) __attribute__((__noreturn__)); 23376: 23376: 23376: void 23376: __throw_logic_error(const char*) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_domain_error(const char*) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_invalid_argument(const char*) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_length_error(const char*) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_out_of_range(const char*) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) 23376: __attribute__((__format__(__gnu_printf__, 1, 2))); 23376: 23376: void 23376: __throw_runtime_error(const char*) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_range_error(const char*) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_overflow_error(const char*) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_underflow_error(const char*) __attribute__((__noreturn__)); 23376: 23376: 23376: void 23376: __throw_ios_failure(const char*) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_system_error(int) __attribute__((__noreturn__)); 23376: 23376: void 23376: __throw_future_error(int) __attribute__((__noreturn__)); 23376: 23376: 23376: void 23376: __throw_bad_function_call() __attribute__((__noreturn__)); 23376: 23376: 23376: } 23376: # 61 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 23376: # 1 "/usr/include/c++/8/bits/cpp_type_traits.h" 1 3 23376: # 35 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 23376: 23376: # 36 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 23376: # 67 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 23376: extern "C++" { 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: struct __true_type { }; 23376: struct __false_type { }; 23376: 23376: template 23376: struct __truth_type 23376: { typedef __false_type __type; }; 23376: 23376: template<> 23376: struct __truth_type 23376: { typedef __true_type __type; }; 23376: 23376: 23376: 23376: template 23376: struct __traitor 23376: { 23376: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 23376: typedef typename __truth_type<__value>::__type __type; 23376: }; 23376: 23376: 23376: template 23376: struct __are_same 23376: { 23376: enum { __value = 0 }; 23376: typedef __false_type __type; 23376: }; 23376: 23376: template 23376: struct __are_same<_Tp, _Tp> 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: 23376: template 23376: struct __is_void 23376: { 23376: enum { __value = 0 }; 23376: typedef __false_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_void 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct __is_integer 23376: { 23376: enum { __value = 0 }; 23376: typedef __false_type __type; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_integer 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: # 278 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 23376: template 23376: struct __is_floating 23376: { 23376: enum { __value = 0 }; 23376: typedef __false_type __type; 23376: }; 23376: 23376: 23376: template<> 23376: struct __is_floating 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_floating 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_floating 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct __is_pointer 23376: { 23376: enum { __value = 0 }; 23376: typedef __false_type __type; 23376: }; 23376: 23376: template 23376: struct __is_pointer<_Tp*> 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct __is_arithmetic 23376: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 23376: { }; 23376: 23376: 23376: 23376: 23376: template 23376: struct __is_scalar 23376: : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > 23376: { }; 23376: 23376: 23376: 23376: 23376: template 23376: struct __is_char 23376: { 23376: enum { __value = 0 }; 23376: typedef __false_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_char 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: 23376: template<> 23376: struct __is_char 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: 23376: template 23376: struct __is_byte 23376: { 23376: enum { __value = 0 }; 23376: typedef __false_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_byte 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_byte 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template<> 23376: struct __is_byte 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: # 408 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 23376: template 23376: struct __is_move_iterator 23376: { 23376: enum { __value = 0 }; 23376: typedef __false_type __type; 23376: }; 23376: 23376: 23376: 23376: template 23376: inline _Iterator 23376: __miter_base(_Iterator __it) 23376: { return __it; } 23376: 23376: 23376: } 23376: } 23376: # 62 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 23376: # 1 "/usr/include/c++/8/ext/type_traits.h" 1 3 23376: # 32 "/usr/include/c++/8/ext/type_traits.h" 3 23376: 23376: # 33 "/usr/include/c++/8/ext/type_traits.h" 3 23376: 23376: 23376: 23376: 23376: extern "C++" { 23376: 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: struct __enable_if 23376: { }; 23376: 23376: template 23376: struct __enable_if 23376: { typedef _Tp __type; }; 23376: 23376: 23376: 23376: template 23376: struct __conditional_type 23376: { typedef _Iftrue __type; }; 23376: 23376: template 23376: struct __conditional_type 23376: { typedef _Iffalse __type; }; 23376: 23376: 23376: 23376: template 23376: struct __add_unsigned 23376: { 23376: private: 23376: typedef __enable_if::__value, _Tp> __if_type; 23376: 23376: public: 23376: typedef typename __if_type::__type __type; 23376: }; 23376: 23376: template<> 23376: struct __add_unsigned 23376: { typedef unsigned char __type; }; 23376: 23376: template<> 23376: struct __add_unsigned 23376: { typedef unsigned char __type; }; 23376: 23376: template<> 23376: struct __add_unsigned 23376: { typedef unsigned short __type; }; 23376: 23376: template<> 23376: struct __add_unsigned 23376: { typedef unsigned int __type; }; 23376: 23376: template<> 23376: struct __add_unsigned 23376: { typedef unsigned long __type; }; 23376: 23376: template<> 23376: struct __add_unsigned 23376: { typedef unsigned long long __type; }; 23376: 23376: 23376: template<> 23376: struct __add_unsigned; 23376: 23376: template<> 23376: struct __add_unsigned; 23376: 23376: 23376: 23376: template 23376: struct __remove_unsigned 23376: { 23376: private: 23376: typedef __enable_if::__value, _Tp> __if_type; 23376: 23376: public: 23376: typedef typename __if_type::__type __type; 23376: }; 23376: 23376: template<> 23376: struct __remove_unsigned 23376: { typedef signed char __type; }; 23376: 23376: template<> 23376: struct __remove_unsigned 23376: { typedef signed char __type; }; 23376: 23376: template<> 23376: struct __remove_unsigned 23376: { typedef short __type; }; 23376: 23376: template<> 23376: struct __remove_unsigned 23376: { typedef int __type; }; 23376: 23376: template<> 23376: struct __remove_unsigned 23376: { typedef long __type; }; 23376: 23376: template<> 23376: struct __remove_unsigned 23376: { typedef long long __type; }; 23376: 23376: 23376: template<> 23376: struct __remove_unsigned; 23376: 23376: template<> 23376: struct __remove_unsigned; 23376: 23376: 23376: 23376: template 23376: inline bool 23376: __is_null_pointer(_Type* __ptr) 23376: { return __ptr == 0; } 23376: 23376: template 23376: inline bool 23376: __is_null_pointer(_Type) 23376: { return false; } 23376: 23376: 23376: inline bool 23376: __is_null_pointer(std::nullptr_t) 23376: { return true; } 23376: 23376: 23376: 23376: template::__value> 23376: struct __promote 23376: { typedef double __type; }; 23376: 23376: 23376: 23376: 23376: template 23376: struct __promote<_Tp, false> 23376: { }; 23376: 23376: template<> 23376: struct __promote 23376: { typedef long double __type; }; 23376: 23376: template<> 23376: struct __promote 23376: { typedef double __type; }; 23376: 23376: template<> 23376: struct __promote 23376: { typedef float __type; }; 23376: 23376: template::__type, 23376: typename _Up2 = typename __promote<_Up>::__type> 23376: struct __promote_2 23376: { 23376: typedef __typeof__(_Tp2() + _Up2()) __type; 23376: }; 23376: 23376: template::__type, 23376: typename _Up2 = typename __promote<_Up>::__type, 23376: typename _Vp2 = typename __promote<_Vp>::__type> 23376: struct __promote_3 23376: { 23376: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 23376: }; 23376: 23376: template::__type, 23376: typename _Up2 = typename __promote<_Up>::__type, 23376: typename _Vp2 = typename __promote<_Vp>::__type, 23376: typename _Wp2 = typename __promote<_Wp>::__type> 23376: struct __promote_4 23376: { 23376: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 23376: }; 23376: 23376: 23376: } 23376: } 23376: # 63 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 23376: # 1 "/usr/include/c++/8/ext/numeric_traits.h" 1 3 23376: # 32 "/usr/include/c++/8/ext/numeric_traits.h" 3 23376: 23376: # 33 "/usr/include/c++/8/ext/numeric_traits.h" 3 23376: 23376: 23376: 23376: 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 54 "/usr/include/c++/8/ext/numeric_traits.h" 3 23376: template 23376: struct __numeric_traits_integer 23376: { 23376: 23376: static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); 23376: static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); 23376: 23376: 23376: 23376: static const bool __is_signed = ((_Value)(-1) < 0); 23376: static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); 23376: }; 23376: 23376: template 23376: const _Value __numeric_traits_integer<_Value>::__min; 23376: 23376: template 23376: const _Value __numeric_traits_integer<_Value>::__max; 23376: 23376: template 23376: const bool __numeric_traits_integer<_Value>::__is_signed; 23376: 23376: template 23376: const int __numeric_traits_integer<_Value>::__digits; 23376: # 99 "/usr/include/c++/8/ext/numeric_traits.h" 3 23376: template 23376: struct __numeric_traits_floating 23376: { 23376: 23376: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 53) * 643L / 2136); 23376: 23376: 23376: static const bool __is_signed = true; 23376: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 15); 23376: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 308); 23376: }; 23376: 23376: template 23376: const int __numeric_traits_floating<_Value>::__max_digits10; 23376: 23376: template 23376: const bool __numeric_traits_floating<_Value>::__is_signed; 23376: 23376: template 23376: const int __numeric_traits_floating<_Value>::__digits10; 23376: 23376: template 23376: const int __numeric_traits_floating<_Value>::__max_exponent10; 23376: 23376: template 23376: struct __numeric_traits 23376: : public __conditional_type::__value, 23376: __numeric_traits_integer<_Value>, 23376: __numeric_traits_floating<_Value> >::__type 23376: { }; 23376: 23376: 23376: } 23376: # 64 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 23376: 23376: # 1 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 1 3 23376: # 62 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 23376: 23376: # 63 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 89 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 23376: struct input_iterator_tag { }; 23376: 23376: 23376: struct output_iterator_tag { }; 23376: 23376: 23376: struct forward_iterator_tag : public input_iterator_tag { }; 23376: 23376: 23376: 23376: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 23376: 23376: 23376: 23376: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 23376: # 116 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 23376: template 23376: struct iterator 23376: { 23376: 23376: typedef _Category iterator_category; 23376: 23376: typedef _Tp value_type; 23376: 23376: typedef _Distance difference_type; 23376: 23376: typedef _Pointer pointer; 23376: 23376: typedef _Reference reference; 23376: }; 23376: # 143 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 23376: template> 23376: struct __iterator_traits { }; 23376: 23376: template 23376: struct __iterator_traits<_Iterator, 23376: __void_t> 23376: { 23376: typedef typename _Iterator::iterator_category iterator_category; 23376: typedef typename _Iterator::value_type value_type; 23376: typedef typename _Iterator::difference_type difference_type; 23376: typedef typename _Iterator::pointer pointer; 23376: typedef typename _Iterator::reference reference; 23376: }; 23376: 23376: template 23376: struct iterator_traits 23376: : public __iterator_traits<_Iterator> { }; 23376: # 177 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 23376: template 23376: struct iterator_traits<_Tp*> 23376: { 23376: typedef random_access_iterator_tag iterator_category; 23376: typedef _Tp value_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef _Tp* pointer; 23376: typedef _Tp& reference; 23376: }; 23376: 23376: 23376: template 23376: struct iterator_traits 23376: { 23376: typedef random_access_iterator_tag iterator_category; 23376: typedef _Tp value_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef const _Tp* pointer; 23376: typedef const _Tp& reference; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline constexpr 23376: typename iterator_traits<_Iter>::iterator_category 23376: __iterator_category(const _Iter&) 23376: { return typename iterator_traits<_Iter>::iterator_category(); } 23376: # 231 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 23376: template 23376: using _RequireInputIter = typename 23376: enable_if::iterator_category, 23376: input_iterator_tag>::value>::type; 23376: 23376: 23376: 23376: } 23376: # 66 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 1 3 23376: # 62 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 23376: 23376: # 63 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 23376: 23376: 23376: # 1 "/usr/include/c++/8/debug/assertions.h" 1 3 23376: # 66 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: template struct _List_iterator; 23376: template struct _List_const_iterator; 23376: 23376: 23376: template 23376: inline constexpr 23376: typename iterator_traits<_InputIterator>::difference_type 23376: __distance(_InputIterator __first, _InputIterator __last, 23376: input_iterator_tag) 23376: { 23376: 23376: 23376: 23376: typename iterator_traits<_InputIterator>::difference_type __n = 0; 23376: while (__first != __last) 23376: { 23376: ++__first; 23376: ++__n; 23376: } 23376: return __n; 23376: } 23376: 23376: template 23376: inline constexpr 23376: typename iterator_traits<_RandomAccessIterator>::difference_type 23376: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: random_access_iterator_tag) 23376: { 23376: 23376: 23376: 23376: return __last - __first; 23376: } 23376: 23376: 23376: 23376: template 23376: ptrdiff_t 23376: __distance(std::_List_iterator<_Tp>, 23376: std::_List_iterator<_Tp>, 23376: input_iterator_tag); 23376: 23376: template 23376: ptrdiff_t 23376: __distance(std::_List_const_iterator<_Tp>, 23376: std::_List_const_iterator<_Tp>, 23376: input_iterator_tag); 23376: # 135 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 23376: template 23376: inline 23376: typename iterator_traits<_InputIterator>::difference_type 23376: distance(_InputIterator __first, _InputIterator __last) 23376: { 23376: 23376: return std::__distance(__first, __last, 23376: std::__iterator_category(__first)); 23376: } 23376: 23376: template 23376: inline constexpr void 23376: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 23376: { 23376: 23376: 23376: ; 23376: while (__n--) 23376: ++__i; 23376: } 23376: 23376: template 23376: inline constexpr void 23376: __advance(_BidirectionalIterator& __i, _Distance __n, 23376: bidirectional_iterator_tag) 23376: { 23376: 23376: 23376: 23376: if (__n > 0) 23376: while (__n--) 23376: ++__i; 23376: else 23376: while (__n++) 23376: --__i; 23376: } 23376: 23376: template 23376: inline constexpr void 23376: __advance(_RandomAccessIterator& __i, _Distance __n, 23376: random_access_iterator_tag) 23376: { 23376: 23376: 23376: 23376: if (__builtin_constant_p(__n) && __n == 1) 23376: ++__i; 23376: else if (__builtin_constant_p(__n) && __n == -1) 23376: --__i; 23376: else 23376: __i += __n; 23376: } 23376: # 200 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 23376: template 23376: inline void 23376: advance(_InputIterator& __i, _Distance __n) 23376: { 23376: 23376: typename iterator_traits<_InputIterator>::difference_type __d = __n; 23376: std::__advance(__i, __d, std::__iterator_category(__i)); 23376: } 23376: 23376: 23376: 23376: template 23376: inline _InputIterator 23376: next(_InputIterator __x, typename 23376: iterator_traits<_InputIterator>::difference_type __n = 1) 23376: { 23376: 23376: 23376: std::advance(__x, __n); 23376: return __x; 23376: } 23376: 23376: template 23376: inline _BidirectionalIterator 23376: prev(_BidirectionalIterator __x, typename 23376: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 23376: { 23376: 23376: 23376: 23376: std::advance(__x, -__n); 23376: return __x; 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: # 67 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_iterator.h" 1 3 23376: # 66 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: # 1 "/usr/include/c++/8/bits/ptr_traits.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/ptr_traits.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: class __undefined; 23376: 23376: 23376: template 23376: struct __get_first_arg 23376: { using type = __undefined; }; 23376: 23376: template class _Template, typename _Tp, 23376: typename... _Types> 23376: struct __get_first_arg<_Template<_Tp, _Types...>> 23376: { using type = _Tp; }; 23376: 23376: template 23376: using __get_first_arg_t = typename __get_first_arg<_Tp>::type; 23376: 23376: 23376: template 23376: struct __replace_first_arg 23376: { }; 23376: 23376: template class _Template, typename _Up, 23376: typename _Tp, typename... _Types> 23376: struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> 23376: { using type = _Template<_Up, _Types...>; }; 23376: 23376: template 23376: using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; 23376: 23376: template 23376: using __make_not_void 23376: = typename conditional::value, __undefined, _Tp>::type; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct pointer_traits 23376: { 23376: private: 23376: template 23376: using __element_type = typename _Tp::element_type; 23376: 23376: template 23376: using __difference_type = typename _Tp::difference_type; 23376: 23376: template 23376: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 23376: 23376: template 23376: struct __rebind<_Tp, _Up, __void_t>> 23376: { using type = typename _Tp::template rebind<_Up>; }; 23376: 23376: public: 23376: 23376: using pointer = _Ptr; 23376: 23376: 23376: using element_type 23376: = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>; 23376: 23376: 23376: using difference_type 23376: = __detected_or_t; 23376: 23376: 23376: template 23376: using rebind = typename __rebind<_Ptr, _Up>::type; 23376: 23376: static _Ptr 23376: pointer_to(__make_not_void& __e) 23376: { return _Ptr::pointer_to(__e); } 23376: 23376: static_assert(!is_same::value, 23376: "pointer type defines element_type or is like SomePointer"); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct pointer_traits<_Tp*> 23376: { 23376: 23376: typedef _Tp* pointer; 23376: 23376: typedef _Tp element_type; 23376: 23376: typedef ptrdiff_t difference_type; 23376: 23376: template 23376: using rebind = _Up*; 23376: 23376: 23376: 23376: 23376: 23376: 23376: static pointer 23376: pointer_to(__make_not_void& __r) noexcept 23376: { return std::addressof(__r); } 23376: }; 23376: 23376: 23376: template 23376: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 23376: 23376: template 23376: constexpr _Tp* 23376: __to_address(_Tp* __ptr) noexcept 23376: { 23376: static_assert(!std::is_function<_Tp>::value, "not a function pointer"); 23376: return __ptr; 23376: } 23376: 23376: 23376: template 23376: constexpr typename std::pointer_traits<_Ptr>::element_type* 23376: __to_address(const _Ptr& __ptr) 23376: { return std::__to_address(__ptr.operator->()); } 23376: # 198 "/usr/include/c++/8/bits/ptr_traits.h" 3 23376: 23376: } 23376: # 67 "/usr/include/c++/8/bits/stl_iterator.h" 2 3 23376: 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 100 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: class reverse_iterator 23376: : public iterator::iterator_category, 23376: typename iterator_traits<_Iterator>::value_type, 23376: typename iterator_traits<_Iterator>::difference_type, 23376: typename iterator_traits<_Iterator>::pointer, 23376: typename iterator_traits<_Iterator>::reference> 23376: { 23376: protected: 23376: _Iterator current; 23376: 23376: typedef iterator_traits<_Iterator> __traits_type; 23376: 23376: public: 23376: typedef _Iterator iterator_type; 23376: typedef typename __traits_type::difference_type difference_type; 23376: typedef typename __traits_type::pointer pointer; 23376: typedef typename __traits_type::reference reference; 23376: # 126 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: 23376: reverse_iterator() : current() { } 23376: 23376: 23376: 23376: 23376: explicit 23376: reverse_iterator(iterator_type __x) : current(__x) { } 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator(const reverse_iterator& __x) 23376: : current(__x.current) { } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: 23376: reverse_iterator(const reverse_iterator<_Iter>& __x) 23376: : current(__x.base()) { } 23376: 23376: 23376: 23376: 23376: iterator_type 23376: base() const 23376: { return current; } 23376: # 168 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: reference 23376: operator*() const 23376: { 23376: _Iterator __tmp = current; 23376: return *--__tmp; 23376: } 23376: # 182 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: pointer 23376: operator->() const 23376: { return std::__addressof(operator*()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator& 23376: operator++() 23376: { 23376: --current; 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: operator++(int) 23376: { 23376: reverse_iterator __tmp = *this; 23376: --current; 23376: return __tmp; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator& 23376: operator--() 23376: { 23376: ++current; 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: operator--(int) 23376: { 23376: reverse_iterator __tmp = *this; 23376: ++current; 23376: return __tmp; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: operator+(difference_type __n) const 23376: { return reverse_iterator(current - __n); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator& 23376: operator+=(difference_type __n) 23376: { 23376: current -= __n; 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: operator-(difference_type __n) const 23376: { return reverse_iterator(current + __n); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator& 23376: operator-=(difference_type __n) 23376: { 23376: current += __n; 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reference 23376: operator[](difference_type __n) const 23376: { return *(*this + __n); } 23376: }; 23376: # 300 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: inline bool 23376: operator==(const reverse_iterator<_Iterator>& __x, 23376: const reverse_iterator<_Iterator>& __y) 23376: { return __x.base() == __y.base(); } 23376: 23376: template 23376: inline bool 23376: operator<(const reverse_iterator<_Iterator>& __x, 23376: const reverse_iterator<_Iterator>& __y) 23376: { return __y.base() < __x.base(); } 23376: 23376: template 23376: inline bool 23376: operator!=(const reverse_iterator<_Iterator>& __x, 23376: const reverse_iterator<_Iterator>& __y) 23376: { return !(__x == __y); } 23376: 23376: template 23376: inline bool 23376: operator>(const reverse_iterator<_Iterator>& __x, 23376: const reverse_iterator<_Iterator>& __y) 23376: { return __y < __x; } 23376: 23376: template 23376: inline bool 23376: operator<=(const reverse_iterator<_Iterator>& __x, 23376: const reverse_iterator<_Iterator>& __y) 23376: { return !(__y < __x); } 23376: 23376: template 23376: inline bool 23376: operator>=(const reverse_iterator<_Iterator>& __x, 23376: const reverse_iterator<_Iterator>& __y) 23376: { return !(__x < __y); } 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const reverse_iterator<_IteratorL>& __x, 23376: const reverse_iterator<_IteratorR>& __y) 23376: { return __x.base() == __y.base(); } 23376: 23376: template 23376: inline bool 23376: operator<(const reverse_iterator<_IteratorL>& __x, 23376: const reverse_iterator<_IteratorR>& __y) 23376: { return __y.base() < __x.base(); } 23376: 23376: template 23376: inline bool 23376: operator!=(const reverse_iterator<_IteratorL>& __x, 23376: const reverse_iterator<_IteratorR>& __y) 23376: { return !(__x == __y); } 23376: 23376: template 23376: inline bool 23376: operator>(const reverse_iterator<_IteratorL>& __x, 23376: const reverse_iterator<_IteratorR>& __y) 23376: { return __y < __x; } 23376: 23376: template 23376: inline bool 23376: operator<=(const reverse_iterator<_IteratorL>& __x, 23376: const reverse_iterator<_IteratorR>& __y) 23376: { return !(__y < __x); } 23376: 23376: template 23376: inline bool 23376: operator>=(const reverse_iterator<_IteratorL>& __x, 23376: const reverse_iterator<_IteratorR>& __y) 23376: { return !(__x < __y); } 23376: # 390 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: inline auto 23376: operator-(const reverse_iterator<_IteratorL>& __x, 23376: const reverse_iterator<_IteratorR>& __y) 23376: -> decltype(__y.base() - __x.base()) 23376: { return __y.base() - __x.base(); } 23376: 23376: 23376: template 23376: inline reverse_iterator<_Iterator> 23376: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 23376: const reverse_iterator<_Iterator>& __x) 23376: { return reverse_iterator<_Iterator>(__x.base() - __n); } 23376: 23376: 23376: 23376: template 23376: inline reverse_iterator<_Iterator> 23376: __make_reverse_iterator(_Iterator __i) 23376: { return reverse_iterator<_Iterator>(__i); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline reverse_iterator<_Iterator> 23376: make_reverse_iterator(_Iterator __i) 23376: { return reverse_iterator<_Iterator>(__i); } 23376: 23376: 23376: 23376: 23376: template 23376: auto 23376: __niter_base(reverse_iterator<_Iterator> __it) 23376: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 23376: { return __make_reverse_iterator(__niter_base(__it.base())); } 23376: 23376: template 23376: struct __is_move_iterator > 23376: : __is_move_iterator<_Iterator> 23376: { }; 23376: 23376: template 23376: auto 23376: __miter_base(reverse_iterator<_Iterator> __it) 23376: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 23376: { return __make_reverse_iterator(__miter_base(__it.base())); } 23376: # 454 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: class back_insert_iterator 23376: : public iterator 23376: { 23376: protected: 23376: _Container* container; 23376: 23376: public: 23376: 23376: typedef _Container container_type; 23376: 23376: 23376: explicit 23376: back_insert_iterator(_Container& __x) 23376: : container(std::__addressof(__x)) { } 23376: # 489 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: back_insert_iterator& 23376: operator=(const typename _Container::value_type& __value) 23376: { 23376: container->push_back(__value); 23376: return *this; 23376: } 23376: 23376: back_insert_iterator& 23376: operator=(typename _Container::value_type&& __value) 23376: { 23376: container->push_back(std::move(__value)); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: back_insert_iterator& 23376: operator*() 23376: { return *this; } 23376: 23376: 23376: back_insert_iterator& 23376: operator++() 23376: { return *this; } 23376: 23376: 23376: back_insert_iterator 23376: operator++(int) 23376: { return *this; } 23376: }; 23376: # 531 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: inline back_insert_iterator<_Container> 23376: back_inserter(_Container& __x) 23376: { return back_insert_iterator<_Container>(__x); } 23376: # 546 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: class front_insert_iterator 23376: : public iterator 23376: { 23376: protected: 23376: _Container* container; 23376: 23376: public: 23376: 23376: typedef _Container container_type; 23376: 23376: 23376: explicit front_insert_iterator(_Container& __x) 23376: : container(std::__addressof(__x)) { } 23376: # 580 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: front_insert_iterator& 23376: operator=(const typename _Container::value_type& __value) 23376: { 23376: container->push_front(__value); 23376: return *this; 23376: } 23376: 23376: front_insert_iterator& 23376: operator=(typename _Container::value_type&& __value) 23376: { 23376: container->push_front(std::move(__value)); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: front_insert_iterator& 23376: operator*() 23376: { return *this; } 23376: 23376: 23376: front_insert_iterator& 23376: operator++() 23376: { return *this; } 23376: 23376: 23376: front_insert_iterator 23376: operator++(int) 23376: { return *this; } 23376: }; 23376: # 622 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: inline front_insert_iterator<_Container> 23376: front_inserter(_Container& __x) 23376: { return front_insert_iterator<_Container>(__x); } 23376: # 641 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: class insert_iterator 23376: : public iterator 23376: { 23376: protected: 23376: _Container* container; 23376: typename _Container::iterator iter; 23376: 23376: public: 23376: 23376: typedef _Container container_type; 23376: 23376: 23376: 23376: 23376: 23376: insert_iterator(_Container& __x, typename _Container::iterator __i) 23376: : container(std::__addressof(__x)), iter(__i) {} 23376: # 692 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: insert_iterator& 23376: operator=(const typename _Container::value_type& __value) 23376: { 23376: iter = container->insert(iter, __value); 23376: ++iter; 23376: return *this; 23376: } 23376: 23376: insert_iterator& 23376: operator=(typename _Container::value_type&& __value) 23376: { 23376: iter = container->insert(iter, std::move(__value)); 23376: ++iter; 23376: return *this; 23376: } 23376: 23376: 23376: 23376: insert_iterator& 23376: operator*() 23376: { return *this; } 23376: 23376: 23376: insert_iterator& 23376: operator++() 23376: { return *this; } 23376: 23376: 23376: insert_iterator& 23376: operator++(int) 23376: { return *this; } 23376: }; 23376: # 737 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: inline insert_iterator<_Container> 23376: inserter(_Container& __x, _Iterator __i) 23376: { 23376: return insert_iterator<_Container>(__x, 23376: typename _Container::iterator(__i)); 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 761 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: using std::iterator_traits; 23376: using std::iterator; 23376: template 23376: class __normal_iterator 23376: { 23376: protected: 23376: _Iterator _M_current; 23376: 23376: typedef iterator_traits<_Iterator> __traits_type; 23376: 23376: public: 23376: typedef _Iterator iterator_type; 23376: typedef typename __traits_type::iterator_category iterator_category; 23376: typedef typename __traits_type::value_type value_type; 23376: typedef typename __traits_type::difference_type difference_type; 23376: typedef typename __traits_type::reference reference; 23376: typedef typename __traits_type::pointer pointer; 23376: 23376: constexpr __normal_iterator() noexcept 23376: : _M_current(_Iterator()) { } 23376: 23376: explicit 23376: __normal_iterator(const _Iterator& __i) noexcept 23376: : _M_current(__i) { } 23376: 23376: 23376: template 23376: __normal_iterator(const __normal_iterator<_Iter, 23376: typename __enable_if< 23376: (std::__are_same<_Iter, typename _Container::pointer>::__value), 23376: _Container>::__type>& __i) noexcept 23376: : _M_current(__i.base()) { } 23376: 23376: 23376: reference 23376: operator*() const noexcept 23376: { return *_M_current; } 23376: 23376: pointer 23376: operator->() const noexcept 23376: { return _M_current; } 23376: 23376: __normal_iterator& 23376: operator++() noexcept 23376: { 23376: ++_M_current; 23376: return *this; 23376: } 23376: 23376: __normal_iterator 23376: operator++(int) noexcept 23376: { return __normal_iterator(_M_current++); } 23376: 23376: 23376: __normal_iterator& 23376: operator--() noexcept 23376: { 23376: --_M_current; 23376: return *this; 23376: } 23376: 23376: __normal_iterator 23376: operator--(int) noexcept 23376: { return __normal_iterator(_M_current--); } 23376: 23376: 23376: reference 23376: operator[](difference_type __n) const noexcept 23376: { return _M_current[__n]; } 23376: 23376: __normal_iterator& 23376: operator+=(difference_type __n) noexcept 23376: { _M_current += __n; return *this; } 23376: 23376: __normal_iterator 23376: operator+(difference_type __n) const noexcept 23376: { return __normal_iterator(_M_current + __n); } 23376: 23376: __normal_iterator& 23376: operator-=(difference_type __n) noexcept 23376: { _M_current -= __n; return *this; } 23376: 23376: __normal_iterator 23376: operator-(difference_type __n) const noexcept 23376: { return __normal_iterator(_M_current - __n); } 23376: 23376: const _Iterator& 23376: base() const noexcept 23376: { return _M_current; } 23376: }; 23376: # 861 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: inline bool 23376: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 23376: const __normal_iterator<_IteratorR, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() == __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 23376: const __normal_iterator<_Iterator, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() == __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 23376: const __normal_iterator<_IteratorR, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() != __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 23376: const __normal_iterator<_Iterator, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() != __rhs.base(); } 23376: 23376: 23376: template 23376: inline bool 23376: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 23376: const __normal_iterator<_IteratorR, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() < __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 23376: const __normal_iterator<_Iterator, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() < __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 23376: const __normal_iterator<_IteratorR, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() > __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 23376: const __normal_iterator<_Iterator, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() > __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 23376: const __normal_iterator<_IteratorR, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() <= __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 23376: const __normal_iterator<_Iterator, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() <= __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 23376: const __normal_iterator<_IteratorR, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() >= __rhs.base(); } 23376: 23376: template 23376: inline bool 23376: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 23376: const __normal_iterator<_Iterator, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() >= __rhs.base(); } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: 23376: 23376: inline auto 23376: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 23376: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 23376: -> decltype(__lhs.base() - __rhs.base()) 23376: 23376: 23376: 23376: 23376: 23376: { return __lhs.base() - __rhs.base(); } 23376: 23376: template 23376: inline typename __normal_iterator<_Iterator, _Container>::difference_type 23376: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 23376: const __normal_iterator<_Iterator, _Container>& __rhs) 23376: noexcept 23376: { return __lhs.base() - __rhs.base(); } 23376: 23376: template 23376: inline __normal_iterator<_Iterator, _Container> 23376: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 23376: __n, const __normal_iterator<_Iterator, _Container>& __i) 23376: noexcept 23376: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 23376: 23376: 23376: } 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: _Iterator 23376: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 23376: { return __it.base(); } 23376: # 1006 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: template 23376: class move_iterator 23376: { 23376: protected: 23376: _Iterator _M_current; 23376: 23376: typedef iterator_traits<_Iterator> __traits_type; 23376: typedef typename __traits_type::reference __base_ref; 23376: 23376: public: 23376: typedef _Iterator iterator_type; 23376: typedef typename __traits_type::iterator_category iterator_category; 23376: typedef typename __traits_type::value_type value_type; 23376: typedef typename __traits_type::difference_type difference_type; 23376: 23376: typedef _Iterator pointer; 23376: 23376: 23376: typedef typename conditional::value, 23376: typename remove_reference<__base_ref>::type&&, 23376: __base_ref>::type reference; 23376: 23376: 23376: move_iterator() 23376: : _M_current() { } 23376: 23376: explicit 23376: move_iterator(iterator_type __i) 23376: : _M_current(__i) { } 23376: 23376: template 23376: 23376: move_iterator(const move_iterator<_Iter>& __i) 23376: : _M_current(__i.base()) { } 23376: 23376: iterator_type 23376: base() const 23376: { return _M_current; } 23376: 23376: reference 23376: operator*() const 23376: { return static_cast(*_M_current); } 23376: 23376: pointer 23376: operator->() const 23376: { return _M_current; } 23376: 23376: move_iterator& 23376: operator++() 23376: { 23376: ++_M_current; 23376: return *this; 23376: } 23376: 23376: move_iterator 23376: operator++(int) 23376: { 23376: move_iterator __tmp = *this; 23376: ++_M_current; 23376: return __tmp; 23376: } 23376: 23376: move_iterator& 23376: operator--() 23376: { 23376: --_M_current; 23376: return *this; 23376: } 23376: 23376: move_iterator 23376: operator--(int) 23376: { 23376: move_iterator __tmp = *this; 23376: --_M_current; 23376: return __tmp; 23376: } 23376: 23376: move_iterator 23376: operator+(difference_type __n) const 23376: { return move_iterator(_M_current + __n); } 23376: 23376: move_iterator& 23376: operator+=(difference_type __n) 23376: { 23376: _M_current += __n; 23376: return *this; 23376: } 23376: 23376: move_iterator 23376: operator-(difference_type __n) const 23376: { return move_iterator(_M_current - __n); } 23376: 23376: move_iterator& 23376: operator-=(difference_type __n) 23376: { 23376: _M_current -= __n; 23376: return *this; 23376: } 23376: 23376: reference 23376: operator[](difference_type __n) const 23376: { return std::move(_M_current[__n]); } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const move_iterator<_IteratorL>& __x, 23376: const move_iterator<_IteratorR>& __y) 23376: { return __x.base() == __y.base(); } 23376: 23376: template 23376: inline bool 23376: operator==(const move_iterator<_Iterator>& __x, 23376: const move_iterator<_Iterator>& __y) 23376: { return __x.base() == __y.base(); } 23376: 23376: template 23376: inline bool 23376: operator!=(const move_iterator<_IteratorL>& __x, 23376: const move_iterator<_IteratorR>& __y) 23376: { return !(__x == __y); } 23376: 23376: template 23376: inline bool 23376: operator!=(const move_iterator<_Iterator>& __x, 23376: const move_iterator<_Iterator>& __y) 23376: { return !(__x == __y); } 23376: 23376: template 23376: inline bool 23376: operator<(const move_iterator<_IteratorL>& __x, 23376: const move_iterator<_IteratorR>& __y) 23376: { return __x.base() < __y.base(); } 23376: 23376: template 23376: inline bool 23376: operator<(const move_iterator<_Iterator>& __x, 23376: const move_iterator<_Iterator>& __y) 23376: { return __x.base() < __y.base(); } 23376: 23376: template 23376: inline bool 23376: operator<=(const move_iterator<_IteratorL>& __x, 23376: const move_iterator<_IteratorR>& __y) 23376: { return !(__y < __x); } 23376: 23376: template 23376: inline bool 23376: operator<=(const move_iterator<_Iterator>& __x, 23376: const move_iterator<_Iterator>& __y) 23376: { return !(__y < __x); } 23376: 23376: template 23376: inline bool 23376: operator>(const move_iterator<_IteratorL>& __x, 23376: const move_iterator<_IteratorR>& __y) 23376: { return __y < __x; } 23376: 23376: template 23376: inline bool 23376: operator>(const move_iterator<_Iterator>& __x, 23376: const move_iterator<_Iterator>& __y) 23376: { return __y < __x; } 23376: 23376: template 23376: inline bool 23376: operator>=(const move_iterator<_IteratorL>& __x, 23376: const move_iterator<_IteratorR>& __y) 23376: { return !(__x < __y); } 23376: 23376: template 23376: inline bool 23376: operator>=(const move_iterator<_Iterator>& __x, 23376: const move_iterator<_Iterator>& __y) 23376: { return !(__x < __y); } 23376: 23376: 23376: template 23376: inline auto 23376: operator-(const move_iterator<_IteratorL>& __x, 23376: const move_iterator<_IteratorR>& __y) 23376: -> decltype(__x.base() - __y.base()) 23376: { return __x.base() - __y.base(); } 23376: 23376: template 23376: inline move_iterator<_Iterator> 23376: operator+(typename move_iterator<_Iterator>::difference_type __n, 23376: const move_iterator<_Iterator>& __x) 23376: { return __x + __n; } 23376: 23376: template 23376: inline move_iterator<_Iterator> 23376: make_move_iterator(_Iterator __i) 23376: { return move_iterator<_Iterator>(__i); } 23376: 23376: template::value_type>::value, 23376: _Iterator, move_iterator<_Iterator>>::type> 23376: inline _ReturnType 23376: __make_move_if_noexcept_iterator(_Iterator __i) 23376: { return _ReturnType(__i); } 23376: 23376: 23376: 23376: template::value, 23376: const _Tp*, move_iterator<_Tp*>>::type> 23376: inline _ReturnType 23376: __make_move_if_noexcept_iterator(_Tp* __i) 23376: { return _ReturnType(__i); } 23376: 23376: 23376: 23376: template 23376: auto 23376: __niter_base(move_iterator<_Iterator> __it) 23376: -> decltype(make_move_iterator(__niter_base(__it.base()))) 23376: { return make_move_iterator(__niter_base(__it.base())); } 23376: 23376: template 23376: struct __is_move_iterator > 23376: { 23376: enum { __value = 1 }; 23376: typedef __true_type __type; 23376: }; 23376: 23376: template 23376: auto 23376: __miter_base(move_iterator<_Iterator> __it) 23376: -> decltype(__miter_base(__it.base())) 23376: { return __miter_base(__it.base()); } 23376: # 1271 "/usr/include/c++/8/bits/stl_iterator.h" 3 23376: 23376: } 23376: # 68 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 23376: 23376: # 1 "/usr/include/c++/8/debug/debug.h" 1 3 23376: # 48 "/usr/include/c++/8/debug/debug.h" 3 23376: namespace std 23376: { 23376: namespace __debug { } 23376: } 23376: 23376: 23376: 23376: 23376: namespace __gnu_debug 23376: { 23376: using namespace std::__debug; 23376: } 23376: # 70 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 23376: 23376: # 1 "/usr/include/c++/8/bits/predefined_ops.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/predefined_ops.h" 3 23376: namespace __gnu_cxx 23376: { 23376: namespace __ops 23376: { 23376: struct _Iter_less_iter 23376: { 23376: template 23376: constexpr 23376: bool 23376: operator()(_Iterator1 __it1, _Iterator2 __it2) const 23376: { return *__it1 < *__it2; } 23376: }; 23376: 23376: constexpr 23376: inline _Iter_less_iter 23376: __iter_less_iter() 23376: { return _Iter_less_iter(); } 23376: 23376: struct _Iter_less_val 23376: { 23376: 23376: constexpr _Iter_less_val() = default; 23376: 23376: 23376: 23376: 23376: explicit 23376: _Iter_less_val(_Iter_less_iter) { } 23376: 23376: template 23376: bool 23376: operator()(_Iterator __it, _Value& __val) const 23376: { return *__it < __val; } 23376: }; 23376: 23376: inline _Iter_less_val 23376: __iter_less_val() 23376: { return _Iter_less_val(); } 23376: 23376: inline _Iter_less_val 23376: __iter_comp_val(_Iter_less_iter) 23376: { return _Iter_less_val(); } 23376: 23376: struct _Val_less_iter 23376: { 23376: 23376: constexpr _Val_less_iter() = default; 23376: 23376: 23376: 23376: 23376: explicit 23376: _Val_less_iter(_Iter_less_iter) { } 23376: 23376: template 23376: bool 23376: operator()(_Value& __val, _Iterator __it) const 23376: { return __val < *__it; } 23376: }; 23376: 23376: inline _Val_less_iter 23376: __val_less_iter() 23376: { return _Val_less_iter(); } 23376: 23376: inline _Val_less_iter 23376: __val_comp_iter(_Iter_less_iter) 23376: { return _Val_less_iter(); } 23376: 23376: struct _Iter_equal_to_iter 23376: { 23376: template 23376: bool 23376: operator()(_Iterator1 __it1, _Iterator2 __it2) const 23376: { return *__it1 == *__it2; } 23376: }; 23376: 23376: inline _Iter_equal_to_iter 23376: __iter_equal_to_iter() 23376: { return _Iter_equal_to_iter(); } 23376: 23376: struct _Iter_equal_to_val 23376: { 23376: template 23376: bool 23376: operator()(_Iterator __it, _Value& __val) const 23376: { return *__it == __val; } 23376: }; 23376: 23376: inline _Iter_equal_to_val 23376: __iter_equal_to_val() 23376: { return _Iter_equal_to_val(); } 23376: 23376: inline _Iter_equal_to_val 23376: __iter_comp_val(_Iter_equal_to_iter) 23376: { return _Iter_equal_to_val(); } 23376: 23376: template 23376: struct _Iter_comp_iter 23376: { 23376: _Compare _M_comp; 23376: 23376: explicit constexpr 23376: _Iter_comp_iter(_Compare __comp) 23376: : _M_comp(std::move(__comp)) 23376: { } 23376: 23376: template 23376: constexpr 23376: bool 23376: operator()(_Iterator1 __it1, _Iterator2 __it2) 23376: { return bool(_M_comp(*__it1, *__it2)); } 23376: }; 23376: 23376: template 23376: constexpr 23376: inline _Iter_comp_iter<_Compare> 23376: __iter_comp_iter(_Compare __comp) 23376: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 23376: 23376: template 23376: struct _Iter_comp_val 23376: { 23376: _Compare _M_comp; 23376: 23376: explicit 23376: _Iter_comp_val(_Compare __comp) 23376: : _M_comp(std::move(__comp)) 23376: { } 23376: 23376: explicit 23376: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 23376: : _M_comp(__comp._M_comp) 23376: { } 23376: 23376: 23376: explicit 23376: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 23376: : _M_comp(std::move(__comp._M_comp)) 23376: { } 23376: 23376: 23376: template 23376: bool 23376: operator()(_Iterator __it, _Value& __val) 23376: { return bool(_M_comp(*__it, __val)); } 23376: }; 23376: 23376: template 23376: inline _Iter_comp_val<_Compare> 23376: __iter_comp_val(_Compare __comp) 23376: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 23376: 23376: template 23376: inline _Iter_comp_val<_Compare> 23376: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 23376: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 23376: 23376: template 23376: struct _Val_comp_iter 23376: { 23376: _Compare _M_comp; 23376: 23376: explicit 23376: _Val_comp_iter(_Compare __comp) 23376: : _M_comp(std::move(__comp)) 23376: { } 23376: 23376: explicit 23376: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 23376: : _M_comp(__comp._M_comp) 23376: { } 23376: 23376: 23376: explicit 23376: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 23376: : _M_comp(std::move(__comp._M_comp)) 23376: { } 23376: 23376: 23376: template 23376: bool 23376: operator()(_Value& __val, _Iterator __it) 23376: { return bool(_M_comp(__val, *__it)); } 23376: }; 23376: 23376: template 23376: inline _Val_comp_iter<_Compare> 23376: __val_comp_iter(_Compare __comp) 23376: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 23376: 23376: template 23376: inline _Val_comp_iter<_Compare> 23376: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 23376: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 23376: 23376: template 23376: struct _Iter_equals_val 23376: { 23376: _Value& _M_value; 23376: 23376: explicit 23376: _Iter_equals_val(_Value& __value) 23376: : _M_value(__value) 23376: { } 23376: 23376: template 23376: bool 23376: operator()(_Iterator __it) 23376: { return *__it == _M_value; } 23376: }; 23376: 23376: template 23376: inline _Iter_equals_val<_Value> 23376: __iter_equals_val(_Value& __val) 23376: { return _Iter_equals_val<_Value>(__val); } 23376: 23376: template 23376: struct _Iter_equals_iter 23376: { 23376: _Iterator1 _M_it1; 23376: 23376: explicit 23376: _Iter_equals_iter(_Iterator1 __it1) 23376: : _M_it1(__it1) 23376: { } 23376: 23376: template 23376: bool 23376: operator()(_Iterator2 __it2) 23376: { return *__it2 == *_M_it1; } 23376: }; 23376: 23376: template 23376: inline _Iter_equals_iter<_Iterator> 23376: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 23376: { return _Iter_equals_iter<_Iterator>(__it); } 23376: 23376: template 23376: struct _Iter_pred 23376: { 23376: _Predicate _M_pred; 23376: 23376: explicit 23376: _Iter_pred(_Predicate __pred) 23376: : _M_pred(std::move(__pred)) 23376: { } 23376: 23376: template 23376: bool 23376: operator()(_Iterator __it) 23376: { return bool(_M_pred(*__it)); } 23376: }; 23376: 23376: template 23376: inline _Iter_pred<_Predicate> 23376: __pred_iter(_Predicate __pred) 23376: { return _Iter_pred<_Predicate>(std::move(__pred)); } 23376: 23376: template 23376: struct _Iter_comp_to_val 23376: { 23376: _Compare _M_comp; 23376: _Value& _M_value; 23376: 23376: _Iter_comp_to_val(_Compare __comp, _Value& __value) 23376: : _M_comp(std::move(__comp)), _M_value(__value) 23376: { } 23376: 23376: template 23376: bool 23376: operator()(_Iterator __it) 23376: { return bool(_M_comp(*__it, _M_value)); } 23376: }; 23376: 23376: template 23376: _Iter_comp_to_val<_Compare, _Value> 23376: __iter_comp_val(_Compare __comp, _Value &__val) 23376: { 23376: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 23376: } 23376: 23376: template 23376: struct _Iter_comp_to_iter 23376: { 23376: _Compare _M_comp; 23376: _Iterator1 _M_it1; 23376: 23376: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 23376: : _M_comp(std::move(__comp)), _M_it1(__it1) 23376: { } 23376: 23376: template 23376: bool 23376: operator()(_Iterator2 __it2) 23376: { return bool(_M_comp(*__it2, *_M_it1)); } 23376: }; 23376: 23376: template 23376: inline _Iter_comp_to_iter<_Compare, _Iterator> 23376: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 23376: { 23376: return _Iter_comp_to_iter<_Compare, _Iterator>( 23376: std::move(__comp._M_comp), __it); 23376: } 23376: 23376: template 23376: struct _Iter_negate 23376: { 23376: _Predicate _M_pred; 23376: 23376: explicit 23376: _Iter_negate(_Predicate __pred) 23376: : _M_pred(std::move(__pred)) 23376: { } 23376: 23376: template 23376: bool 23376: operator()(_Iterator __it) 23376: { return !bool(_M_pred(*__it)); } 23376: }; 23376: 23376: template 23376: inline _Iter_negate<_Predicate> 23376: __negate(_Iter_pred<_Predicate> __pred) 23376: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 23376: 23376: } 23376: } 23376: # 72 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 118 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline void 23376: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 23376: { 23376: 23376: 23376: 23376: 23376: # 148 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: swap(*__a, *__b); 23376: 23376: } 23376: # 164 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: _ForwardIterator2 23376: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: for (; __first1 != __last1; ++__first1, (void)++__first2) 23376: std::iter_swap(__first1, __first2); 23376: return __first2; 23376: } 23376: # 192 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: constexpr 23376: inline const _Tp& 23376: min(const _Tp& __a, const _Tp& __b) 23376: { 23376: 23376: 23376: 23376: if (__b < __a) 23376: return __b; 23376: return __a; 23376: } 23376: # 216 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: constexpr 23376: inline const _Tp& 23376: max(const _Tp& __a, const _Tp& __b) 23376: { 23376: 23376: 23376: 23376: if (__a < __b) 23376: return __b; 23376: return __a; 23376: } 23376: # 240 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: constexpr 23376: inline const _Tp& 23376: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 23376: { 23376: 23376: if (__comp(__b, __a)) 23376: return __b; 23376: return __a; 23376: } 23376: # 262 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: constexpr 23376: inline const _Tp& 23376: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 23376: { 23376: 23376: if (__comp(__a, __b)) 23376: return __b; 23376: return __a; 23376: } 23376: 23376: 23376: 23376: template 23376: inline _Iterator 23376: __niter_base(_Iterator __it) 23376: { return __it; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __copy_move 23376: { 23376: template 23376: static _OI 23376: __copy_m(_II __first, _II __last, _OI __result) 23376: { 23376: for (; __first != __last; ++__result, (void)++__first) 23376: *__result = *__first; 23376: return __result; 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct __copy_move 23376: { 23376: template 23376: static _OI 23376: __copy_m(_II __first, _II __last, _OI __result) 23376: { 23376: for (; __first != __last; ++__result, (void)++__first) 23376: *__result = std::move(*__first); 23376: return __result; 23376: } 23376: }; 23376: 23376: 23376: template<> 23376: struct __copy_move 23376: { 23376: template 23376: static _OI 23376: __copy_m(_II __first, _II __last, _OI __result) 23376: { 23376: typedef typename iterator_traits<_II>::difference_type _Distance; 23376: for(_Distance __n = __last - __first; __n > 0; --__n) 23376: { 23376: *__result = *__first; 23376: ++__first; 23376: ++__result; 23376: } 23376: return __result; 23376: } 23376: }; 23376: 23376: 23376: template<> 23376: struct __copy_move 23376: { 23376: template 23376: static _OI 23376: __copy_m(_II __first, _II __last, _OI __result) 23376: { 23376: typedef typename iterator_traits<_II>::difference_type _Distance; 23376: for(_Distance __n = __last - __first; __n > 0; --__n) 23376: { 23376: *__result = std::move(*__first); 23376: ++__first; 23376: ++__result; 23376: } 23376: return __result; 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct __copy_move<_IsMove, true, random_access_iterator_tag> 23376: { 23376: template 23376: static _Tp* 23376: __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) 23376: { 23376: 23376: using __assignable = conditional<_IsMove, 23376: is_move_assignable<_Tp>, 23376: is_copy_assignable<_Tp>>; 23376: 23376: static_assert( __assignable::type::value, "type is not assignable" ); 23376: 23376: const ptrdiff_t _Num = __last - __first; 23376: if (_Num) 23376: __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); 23376: return __result + _Num; 23376: } 23376: }; 23376: 23376: template 23376: inline _OI 23376: __copy_move_a(_II __first, _II __last, _OI __result) 23376: { 23376: typedef typename iterator_traits<_II>::value_type _ValueTypeI; 23376: typedef typename iterator_traits<_OI>::value_type _ValueTypeO; 23376: typedef typename iterator_traits<_II>::iterator_category _Category; 23376: const bool __simple = (__is_trivial(_ValueTypeI) 23376: && __is_pointer<_II>::__value 23376: && __is_pointer<_OI>::__value 23376: && __are_same<_ValueTypeI, _ValueTypeO>::__value); 23376: 23376: return std::__copy_move<_IsMove, __simple, 23376: _Category>::__copy_m(__first, __last, __result); 23376: } 23376: 23376: 23376: 23376: template 23376: struct char_traits; 23376: 23376: template 23376: class istreambuf_iterator; 23376: 23376: template 23376: class ostreambuf_iterator; 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 23376: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 23376: __copy_move_a2(_CharT*, _CharT*, 23376: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 23376: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 23376: __copy_move_a2(const _CharT*, const _CharT*, 23376: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 23376: _CharT*>::__type 23376: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 23376: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 23376: 23376: template 23376: inline _OI 23376: __copy_move_a2(_II __first, _II __last, _OI __result) 23376: { 23376: return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first), 23376: std::__niter_base(__last), 23376: std::__niter_base(__result))); 23376: } 23376: # 444 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline _OI 23376: copy(_II __first, _II __last, _OI __result) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return (std::__copy_move_a2<__is_move_iterator<_II>::__value> 23376: (std::__miter_base(__first), std::__miter_base(__last), 23376: __result)); 23376: } 23376: # 477 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline _OI 23376: move(_II __first, _II __last, _OI __result) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__copy_move_a2(std::__miter_base(__first), 23376: std::__miter_base(__last), __result); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __copy_move_backward 23376: { 23376: template 23376: static _BI2 23376: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 23376: { 23376: while (__first != __last) 23376: *--__result = *--__last; 23376: return __result; 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct __copy_move_backward 23376: { 23376: template 23376: static _BI2 23376: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 23376: { 23376: while (__first != __last) 23376: *--__result = std::move(*--__last); 23376: return __result; 23376: } 23376: }; 23376: 23376: 23376: template<> 23376: struct __copy_move_backward 23376: { 23376: template 23376: static _BI2 23376: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 23376: { 23376: typename iterator_traits<_BI1>::difference_type __n; 23376: for (__n = __last - __first; __n > 0; --__n) 23376: *--__result = *--__last; 23376: return __result; 23376: } 23376: }; 23376: 23376: 23376: template<> 23376: struct __copy_move_backward 23376: { 23376: template 23376: static _BI2 23376: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 23376: { 23376: typename iterator_traits<_BI1>::difference_type __n; 23376: for (__n = __last - __first; __n > 0; --__n) 23376: *--__result = std::move(*--__last); 23376: return __result; 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> 23376: { 23376: template 23376: static _Tp* 23376: __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) 23376: { 23376: 23376: using __assignable = conditional<_IsMove, 23376: is_move_assignable<_Tp>, 23376: is_copy_assignable<_Tp>>; 23376: 23376: static_assert( __assignable::type::value, "type is not assignable" ); 23376: 23376: const ptrdiff_t _Num = __last - __first; 23376: if (_Num) 23376: __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); 23376: return __result - _Num; 23376: } 23376: }; 23376: 23376: template 23376: inline _BI2 23376: __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) 23376: { 23376: typedef typename iterator_traits<_BI1>::value_type _ValueType1; 23376: typedef typename iterator_traits<_BI2>::value_type _ValueType2; 23376: typedef typename iterator_traits<_BI1>::iterator_category _Category; 23376: const bool __simple = (__is_trivial(_ValueType1) 23376: && __is_pointer<_BI1>::__value 23376: && __is_pointer<_BI2>::__value 23376: && __are_same<_ValueType1, _ValueType2>::__value); 23376: 23376: return std::__copy_move_backward<_IsMove, __simple, 23376: _Category>::__copy_move_b(__first, 23376: __last, 23376: __result); 23376: } 23376: 23376: template 23376: inline _BI2 23376: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 23376: { 23376: return _BI2(std::__copy_move_backward_a<_IsMove> 23376: (std::__niter_base(__first), std::__niter_base(__last), 23376: std::__niter_base(__result))); 23376: } 23376: # 620 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline _BI2 23376: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> 23376: (std::__miter_base(__first), std::__miter_base(__last), 23376: __result)); 23376: } 23376: # 656 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline _BI2 23376: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__copy_move_backward_a2(std::__miter_base(__first), 23376: std::__miter_base(__last), 23376: __result); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline typename 23376: __gnu_cxx::__enable_if::__value, void>::__type 23376: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __value) 23376: { 23376: for (; __first != __last; ++__first) 23376: *__first = __value; 23376: } 23376: 23376: template 23376: inline typename 23376: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type 23376: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __value) 23376: { 23376: const _Tp __tmp = __value; 23376: for (; __first != __last; ++__first) 23376: *__first = __tmp; 23376: } 23376: 23376: 23376: template 23376: inline typename 23376: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type 23376: __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) 23376: { 23376: const _Tp __tmp = __c; 23376: if (const size_t __len = __last - __first) 23376: __builtin_memset(__first, static_cast(__tmp), __len); 23376: } 23376: # 722 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline void 23376: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 23376: { 23376: 23376: 23376: 23376: ; 23376: 23376: std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), 23376: __value); 23376: } 23376: 23376: template 23376: inline typename 23376: __gnu_cxx::__enable_if::__value, _OutputIterator>::__type 23376: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 23376: { 23376: for (__decltype(__n + 0) __niter = __n; 23376: __niter > 0; --__niter, (void) ++__first) 23376: *__first = __value; 23376: return __first; 23376: } 23376: 23376: template 23376: inline typename 23376: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type 23376: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 23376: { 23376: const _Tp __tmp = __value; 23376: for (__decltype(__n + 0) __niter = __n; 23376: __niter > 0; --__niter, (void) ++__first) 23376: *__first = __tmp; 23376: return __first; 23376: } 23376: 23376: template 23376: inline typename 23376: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type 23376: __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) 23376: { 23376: std::__fill_a(__first, __first + __n, __c); 23376: return __first + __n; 23376: } 23376: # 782 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline _OI 23376: fill_n(_OI __first, _Size __n, const _Tp& __value) 23376: { 23376: 23376: 23376: 23376: return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value)); 23376: } 23376: 23376: template 23376: struct __equal 23376: { 23376: template 23376: static bool 23376: equal(_II1 __first1, _II1 __last1, _II2 __first2) 23376: { 23376: for (; __first1 != __last1; ++__first1, (void) ++__first2) 23376: if (!(*__first1 == *__first2)) 23376: return false; 23376: return true; 23376: } 23376: }; 23376: 23376: template<> 23376: struct __equal 23376: { 23376: template 23376: static bool 23376: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 23376: { 23376: if (const size_t __len = (__last1 - __first1)) 23376: return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len); 23376: return true; 23376: } 23376: }; 23376: 23376: template 23376: inline bool 23376: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 23376: { 23376: typedef typename iterator_traits<_II1>::value_type _ValueType1; 23376: typedef typename iterator_traits<_II2>::value_type _ValueType2; 23376: const bool __simple = ((__is_integer<_ValueType1>::__value 23376: || __is_pointer<_ValueType1>::__value) 23376: && __is_pointer<_II1>::__value 23376: && __is_pointer<_II2>::__value 23376: && __are_same<_ValueType1, _ValueType2>::__value); 23376: 23376: return std::__equal<__simple>::equal(__first1, __last1, __first2); 23376: } 23376: 23376: template 23376: struct __lc_rai 23376: { 23376: template 23376: static _II1 23376: __newlast1(_II1, _II1 __last1, _II2, _II2) 23376: { return __last1; } 23376: 23376: template 23376: static bool 23376: __cnd2(_II __first, _II __last) 23376: { return __first != __last; } 23376: }; 23376: 23376: template<> 23376: struct __lc_rai 23376: { 23376: template 23376: static _RAI1 23376: __newlast1(_RAI1 __first1, _RAI1 __last1, 23376: _RAI2 __first2, _RAI2 __last2) 23376: { 23376: const typename iterator_traits<_RAI1>::difference_type 23376: __diff1 = __last1 - __first1; 23376: const typename iterator_traits<_RAI2>::difference_type 23376: __diff2 = __last2 - __first2; 23376: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 23376: } 23376: 23376: template 23376: static bool 23376: __cnd2(_RAI, _RAI) 23376: { return true; } 23376: }; 23376: 23376: template 23376: bool 23376: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 23376: _II2 __first2, _II2 __last2, 23376: _Compare __comp) 23376: { 23376: typedef typename iterator_traits<_II1>::iterator_category _Category1; 23376: typedef typename iterator_traits<_II2>::iterator_category _Category2; 23376: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 23376: 23376: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 23376: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 23376: ++__first1, (void)++__first2) 23376: { 23376: if (__comp(__first1, __first2)) 23376: return true; 23376: if (__comp(__first2, __first1)) 23376: return false; 23376: } 23376: return __first1 == __last1 && __first2 != __last2; 23376: } 23376: 23376: template 23376: struct __lexicographical_compare 23376: { 23376: template 23376: static bool __lc(_II1, _II1, _II2, _II2); 23376: }; 23376: 23376: template 23376: template 23376: bool 23376: __lexicographical_compare<_BoolType>:: 23376: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 23376: { 23376: return std::__lexicographical_compare_impl(__first1, __last1, 23376: __first2, __last2, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: 23376: template<> 23376: struct __lexicographical_compare 23376: { 23376: template 23376: static bool 23376: __lc(const _Tp* __first1, const _Tp* __last1, 23376: const _Up* __first2, const _Up* __last2) 23376: { 23376: const size_t __len1 = __last1 - __first1; 23376: const size_t __len2 = __last2 - __first2; 23376: if (const size_t __len = std::min(__len1, __len2)) 23376: if (int __result = __builtin_memcmp(__first1, __first2, __len)) 23376: return __result < 0; 23376: return __len1 < __len2; 23376: } 23376: }; 23376: 23376: template 23376: inline bool 23376: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 23376: _II2 __first2, _II2 __last2) 23376: { 23376: typedef typename iterator_traits<_II1>::value_type _ValueType1; 23376: typedef typename iterator_traits<_II2>::value_type _ValueType2; 23376: const bool __simple = 23376: (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value 23376: && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed 23376: && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed 23376: && __is_pointer<_II1>::__value 23376: && __is_pointer<_II2>::__value); 23376: 23376: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 23376: __first2, __last2); 23376: } 23376: 23376: template 23376: _ForwardIterator 23376: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val, _Compare __comp) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::difference_type 23376: _DistanceType; 23376: 23376: _DistanceType __len = std::distance(__first, __last); 23376: 23376: while (__len > 0) 23376: { 23376: _DistanceType __half = __len >> 1; 23376: _ForwardIterator __middle = __first; 23376: std::advance(__middle, __half); 23376: if (__comp(__middle, __val)) 23376: { 23376: __first = __middle; 23376: ++__first; 23376: __len = __len - __half - 1; 23376: } 23376: else 23376: __len = __half; 23376: } 23376: return __first; 23376: } 23376: # 982 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline _ForwardIterator 23376: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__lower_bound(__first, __last, __val, 23376: __gnu_cxx::__ops::__iter_less_val()); 23376: } 23376: 23376: 23376: 23376: inline constexpr int 23376: __lg(int __n) 23376: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 23376: 23376: inline constexpr unsigned 23376: __lg(unsigned __n) 23376: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 23376: 23376: inline constexpr long 23376: __lg(long __n) 23376: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 23376: 23376: inline constexpr unsigned long 23376: __lg(unsigned long __n) 23376: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 23376: 23376: inline constexpr long long 23376: __lg(long long __n) 23376: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 23376: 23376: inline constexpr unsigned long long 23376: __lg(unsigned long long __n) 23376: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 23376: 23376: 23376: # 1037 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline bool 23376: equal(_II1 __first1, _II1 __last1, _II2 __first2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__equal_aux(std::__niter_base(__first1), 23376: std::__niter_base(__last1), 23376: std::__niter_base(__first2)); 23376: } 23376: # 1069 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline bool 23376: equal(_IIter1 __first1, _IIter1 __last1, 23376: _IIter2 __first2, _BinaryPredicate __binary_pred) 23376: { 23376: 23376: 23376: 23376: ; 23376: 23376: for (; __first1 != __last1; ++__first1, (void)++__first2) 23376: if (!bool(__binary_pred(*__first1, *__first2))) 23376: return false; 23376: return true; 23376: } 23376: 23376: 23376: 23376: template 23376: inline bool 23376: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 23376: { 23376: using _RATag = random_access_iterator_tag; 23376: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 23376: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 23376: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 23376: if (_RAIters()) 23376: { 23376: auto __d1 = std::distance(__first1, __last1); 23376: auto __d2 = std::distance(__first2, __last2); 23376: if (__d1 != __d2) 23376: return false; 23376: return std::equal(__first1, __last1, __first2); 23376: } 23376: 23376: for (; __first1 != __last1 && __first2 != __last2; 23376: ++__first1, (void)++__first2) 23376: if (!(*__first1 == *__first2)) 23376: return false; 23376: return __first1 == __last1 && __first2 == __last2; 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 23376: _BinaryPredicate __binary_pred) 23376: { 23376: using _RATag = random_access_iterator_tag; 23376: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 23376: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 23376: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 23376: if (_RAIters()) 23376: { 23376: auto __d1 = std::distance(__first1, __last1); 23376: auto __d2 = std::distance(__first2, __last2); 23376: if (__d1 != __d2) 23376: return false; 23376: return std::equal(__first1, __last1, __first2, 23376: __binary_pred); 23376: } 23376: 23376: for (; __first1 != __last1 && __first2 != __last2; 23376: ++__first1, (void)++__first2) 23376: if (!bool(__binary_pred(*__first1, *__first2))) 23376: return false; 23376: return __first1 == __last1 && __first2 == __last2; 23376: } 23376: # 1156 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline bool 23376: equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__equal4(__first1, __last1, __first2, __last2); 23376: } 23376: # 1188 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline bool 23376: equal(_IIter1 __first1, _IIter1 __last1, 23376: _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) 23376: { 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__equal4(__first1, __last1, __first2, __last2, 23376: __binary_pred); 23376: } 23376: # 1219 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline bool 23376: lexicographical_compare(_II1 __first1, _II1 __last1, 23376: _II2 __first2, _II2 __last2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__lexicographical_compare_aux(std::__niter_base(__first1), 23376: std::__niter_base(__last1), 23376: std::__niter_base(__first2), 23376: std::__niter_base(__last2)); 23376: } 23376: # 1255 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline bool 23376: lexicographical_compare(_II1 __first1, _II1 __last1, 23376: _II2 __first2, _II2 __last2, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__lexicographical_compare_impl 23376: (__first1, __last1, __first2, __last2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: pair<_InputIterator1, _InputIterator2> 23376: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 23376: { 23376: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 23376: { 23376: ++__first1; 23376: ++__first2; 23376: } 23376: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 23376: } 23376: # 1298 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline pair<_InputIterator1, _InputIterator2> 23376: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__mismatch(__first1, __last1, __first2, 23376: __gnu_cxx::__ops::__iter_equal_to_iter()); 23376: } 23376: # 1331 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline pair<_InputIterator1, _InputIterator2> 23376: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 23376: { 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__mismatch(__first1, __last1, __first2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 23376: } 23376: 23376: 23376: 23376: template 23376: pair<_InputIterator1, _InputIterator2> 23376: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _BinaryPredicate __binary_pred) 23376: { 23376: while (__first1 != __last1 && __first2 != __last2 23376: && __binary_pred(__first1, __first2)) 23376: { 23376: ++__first1; 23376: ++__first2; 23376: } 23376: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 23376: } 23376: # 1378 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline pair<_InputIterator1, _InputIterator2> 23376: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__mismatch(__first1, __last1, __first2, __last2, 23376: __gnu_cxx::__ops::__iter_equal_to_iter()); 23376: } 23376: # 1413 "/usr/include/c++/8/bits/stl_algobase.h" 3 23376: template 23376: inline pair<_InputIterator1, _InputIterator2> 23376: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _BinaryPredicate __binary_pred) 23376: { 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__mismatch(__first1, __last1, __first2, __last2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: # 62 "/usr/include/c++/8/algorithm" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_algo.h" 1 3 23376: # 59 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: # 1 "/usr/include/c++/8/cstdlib" 1 3 23376: # 39 "/usr/include/c++/8/cstdlib" 3 23376: 23376: # 40 "/usr/include/c++/8/cstdlib" 3 23376: # 75 "/usr/include/c++/8/cstdlib" 3 23376: # 1 "/usr/include/stdlib.h" 1 3 4 23376: # 25 "/usr/include/stdlib.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 23376: # 26 "/usr/include/stdlib.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 32 "/usr/include/stdlib.h" 2 3 4 23376: 23376: extern "C" { 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/waitflags.h" 1 3 4 23376: # 52 "/usr/include/arm-linux-gnueabihf/bits/waitflags.h" 3 4 23376: typedef enum 23376: { 23376: P_ALL, 23376: P_PID, 23376: P_PGID 23376: } idtype_t; 23376: # 40 "/usr/include/stdlib.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/waitstatus.h" 1 3 4 23376: # 41 "/usr/include/stdlib.h" 2 3 4 23376: # 55 "/usr/include/stdlib.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/floatn.h" 1 3 4 23376: # 56 "/usr/include/stdlib.h" 2 3 4 23376: 23376: 23376: typedef struct 23376: { 23376: int quot; 23376: int rem; 23376: } div_t; 23376: 23376: 23376: 23376: typedef struct 23376: { 23376: long int quot; 23376: long int rem; 23376: } ldiv_t; 23376: 23376: 23376: 23376: 23376: 23376: __extension__ typedef struct 23376: { 23376: long long int quot; 23376: long long int rem; 23376: } lldiv_t; 23376: # 97 "/usr/include/stdlib.h" 3 4 23376: extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: extern double atof (const char *__nptr) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: extern int atoi (const char *__nptr) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: extern long int atol (const char *__nptr) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: __extension__ extern long long int atoll (const char *__nptr) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: extern double strtod (const char *__restrict __nptr, 23376: char **__restrict __endptr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern float strtof (const char *__restrict __nptr, 23376: char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: extern long double strtold (const char *__restrict __nptr, 23376: char **__restrict __endptr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: # 140 "/usr/include/stdlib.h" 3 4 23376: extern _Float32 strtof32 (const char *__restrict __nptr, 23376: char **__restrict __endptr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern _Float64 strtof64 (const char *__restrict __nptr, 23376: char **__restrict __endptr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: # 158 "/usr/include/stdlib.h" 3 4 23376: extern _Float32x strtof32x (const char *__restrict __nptr, 23376: char **__restrict __endptr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: # 176 "/usr/include/stdlib.h" 3 4 23376: extern long int strtol (const char *__restrict __nptr, 23376: char **__restrict __endptr, int __base) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: extern unsigned long int strtoul (const char *__restrict __nptr, 23376: char **__restrict __endptr, int __base) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: __extension__ 23376: extern long long int strtoq (const char *__restrict __nptr, 23376: char **__restrict __endptr, int __base) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: __extension__ 23376: extern unsigned long long int strtouq (const char *__restrict __nptr, 23376: char **__restrict __endptr, int __base) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: __extension__ 23376: extern long long int strtoll (const char *__restrict __nptr, 23376: char **__restrict __endptr, int __base) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: __extension__ 23376: extern unsigned long long int strtoull (const char *__restrict __nptr, 23376: char **__restrict __endptr, int __base) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: extern int strfromd (char *__dest, size_t __size, const char *__format, 23376: double __f) 23376: throw () __attribute__ ((__nonnull__ (3))); 23376: 23376: extern int strfromf (char *__dest, size_t __size, const char *__format, 23376: float __f) 23376: throw () __attribute__ ((__nonnull__ (3))); 23376: 23376: extern int strfroml (char *__dest, size_t __size, const char *__format, 23376: long double __f) 23376: throw () __attribute__ ((__nonnull__ (3))); 23376: # 232 "/usr/include/stdlib.h" 3 4 23376: extern int strfromf32 (char *__dest, size_t __size, const char * __format, 23376: _Float32 __f) 23376: throw () __attribute__ ((__nonnull__ (3))); 23376: 23376: 23376: 23376: extern int strfromf64 (char *__dest, size_t __size, const char * __format, 23376: _Float64 __f) 23376: throw () __attribute__ ((__nonnull__ (3))); 23376: # 250 "/usr/include/stdlib.h" 3 4 23376: extern int strfromf32x (char *__dest, size_t __size, const char * __format, 23376: _Float32x __f) 23376: throw () __attribute__ ((__nonnull__ (3))); 23376: # 274 "/usr/include/stdlib.h" 3 4 23376: extern long int strtol_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, int __base, 23376: locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); 23376: 23376: extern unsigned long int strtoul_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, 23376: int __base, locale_t __loc) 23376: throw () __attribute__ ((__nonnull__ (1, 4))); 23376: 23376: __extension__ 23376: extern long long int strtoll_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, int __base, 23376: locale_t __loc) 23376: throw () __attribute__ ((__nonnull__ (1, 4))); 23376: 23376: __extension__ 23376: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, 23376: int __base, locale_t __loc) 23376: throw () __attribute__ ((__nonnull__ (1, 4))); 23376: 23376: extern double strtod_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, locale_t __loc) 23376: throw () __attribute__ ((__nonnull__ (1, 3))); 23376: 23376: extern float strtof_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, locale_t __loc) 23376: throw () __attribute__ ((__nonnull__ (1, 3))); 23376: 23376: extern long double strtold_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, 23376: locale_t __loc) 23376: throw () __attribute__ ((__nonnull__ (1, 3))); 23376: # 316 "/usr/include/stdlib.h" 3 4 23376: extern _Float32 strtof32_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, 23376: locale_t __loc) 23376: throw () __attribute__ ((__nonnull__ (1, 3))); 23376: 23376: 23376: 23376: extern _Float64 strtof64_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, 23376: locale_t __loc) 23376: throw () __attribute__ ((__nonnull__ (1, 3))); 23376: # 337 "/usr/include/stdlib.h" 3 4 23376: extern _Float32x strtof32x_l (const char *__restrict __nptr, 23376: char **__restrict __endptr, 23376: locale_t __loc) 23376: throw () __attribute__ ((__nonnull__ (1, 3))); 23376: # 360 "/usr/include/stdlib.h" 3 4 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: __attribute__ ((__leaf__)) atoi (const char *__nptr) throw () 23376: { 23376: return (int) strtol (__nptr, (char **) __null, 10); 23376: } 23376: extern __inline __attribute__ ((__gnu_inline__)) long int 23376: __attribute__ ((__leaf__)) atol (const char *__nptr) throw () 23376: { 23376: return strtol (__nptr, (char **) __null, 10); 23376: } 23376: 23376: 23376: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 23376: __attribute__ ((__leaf__)) atoll (const char *__nptr) throw () 23376: { 23376: return strtoll (__nptr, (char **) __null, 10); 23376: } 23376: # 385 "/usr/include/stdlib.h" 3 4 23376: extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: extern long int a64l (const char *__s) 23376: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/sys/types.h" 1 3 4 23376: # 27 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 23376: extern "C" { 23376: 23376: 23376: 23376: 23376: 23376: typedef __u_char u_char; 23376: typedef __u_short u_short; 23376: typedef __u_int u_int; 23376: typedef __u_long u_long; 23376: typedef __quad_t quad_t; 23376: typedef __u_quad_t u_quad_t; 23376: typedef __fsid_t fsid_t; 23376: 23376: 23376: typedef __loff_t loff_t; 23376: 23376: 23376: 23376: 23376: typedef __ino_t ino_t; 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef __ino64_t ino64_t; 23376: 23376: 23376: 23376: 23376: typedef __dev_t dev_t; 23376: 23376: 23376: 23376: 23376: typedef __gid_t gid_t; 23376: 23376: 23376: 23376: 23376: typedef __mode_t mode_t; 23376: 23376: 23376: 23376: 23376: typedef __nlink_t nlink_t; 23376: 23376: 23376: 23376: 23376: typedef __uid_t uid_t; 23376: 23376: 23376: 23376: 23376: 23376: typedef __off_t off_t; 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef __off64_t off64_t; 23376: 23376: 23376: 23376: 23376: typedef __pid_t pid_t; 23376: 23376: 23376: 23376: 23376: 23376: typedef __id_t id_t; 23376: 23376: 23376: 23376: 23376: typedef __ssize_t ssize_t; 23376: 23376: 23376: 23376: 23376: 23376: typedef __daddr_t daddr_t; 23376: typedef __caddr_t caddr_t; 23376: 23376: 23376: 23376: 23376: 23376: typedef __key_t key_t; 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/clock_t.h" 1 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef __clock_t clock_t; 23376: # 127 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/clockid_t.h" 1 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef __clockid_t clockid_t; 23376: # 129 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/time_t.h" 1 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef __time_t time_t; 23376: # 130 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/timer_t.h" 1 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef __timer_t timer_t; 23376: # 131 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 23376: 23376: 23376: 23376: typedef __useconds_t useconds_t; 23376: 23376: 23376: 23376: typedef __suseconds_t suseconds_t; 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 145 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 23376: 23376: 23376: 23376: typedef unsigned long int ulong; 23376: typedef unsigned short int ushort; 23376: typedef unsigned int uint; 23376: # 177 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 23376: typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); 23376: typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); 23376: typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); 23376: typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); 23376: 23376: typedef int register_t __attribute__ ((__mode__ (__word__))); 23376: # 193 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 23376: # 1 "/usr/include/endian.h" 1 3 4 23376: # 36 "/usr/include/endian.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/endian.h" 1 3 4 23376: # 37 "/usr/include/endian.h" 2 3 4 23376: # 60 "/usr/include/endian.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 1 3 4 23376: # 33 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 3 4 23376: static __inline __uint16_t 23376: __bswap_16 (__uint16_t __bsx) 23376: { 23376: 23376: return __builtin_bswap16 (__bsx); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: static __inline __uint32_t 23376: __bswap_32 (__uint32_t __bsx) 23376: { 23376: 23376: return __builtin_bswap32 (__bsx); 23376: 23376: 23376: 23376: } 23376: # 69 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 3 4 23376: __extension__ static __inline __uint64_t 23376: __bswap_64 (__uint64_t __bsx) 23376: { 23376: 23376: return __builtin_bswap64 (__bsx); 23376: 23376: 23376: 23376: } 23376: # 61 "/usr/include/endian.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/uintn-identity.h" 1 3 4 23376: # 32 "/usr/include/arm-linux-gnueabihf/bits/uintn-identity.h" 3 4 23376: static __inline __uint16_t 23376: __uint16_identity (__uint16_t __x) 23376: { 23376: return __x; 23376: } 23376: 23376: static __inline __uint32_t 23376: __uint32_identity (__uint32_t __x) 23376: { 23376: return __x; 23376: } 23376: 23376: static __inline __uint64_t 23376: __uint64_identity (__uint64_t __x) 23376: { 23376: return __x; 23376: } 23376: # 62 "/usr/include/endian.h" 2 3 4 23376: # 194 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/sys/select.h" 1 3 4 23376: # 30 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/select.h" 1 3 4 23376: # 31 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h" 1 3 4 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__sigset_t.h" 1 3 4 23376: 23376: 23376: 23376: 23376: typedef struct 23376: { 23376: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 23376: } __sigset_t; 23376: # 5 "/usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h" 2 3 4 23376: 23376: 23376: typedef __sigset_t sigset_t; 23376: # 34 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_timeval.h" 1 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct timeval 23376: { 23376: __time_t tv_sec; 23376: __suseconds_t tv_usec; 23376: }; 23376: # 38 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_timespec.h" 1 3 4 23376: # 9 "/usr/include/arm-linux-gnueabihf/bits/types/struct_timespec.h" 3 4 23376: struct timespec 23376: { 23376: __time_t tv_sec; 23376: __syscall_slong_t tv_nsec; 23376: }; 23376: # 40 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 23376: # 49 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 23376: typedef long int __fd_mask; 23376: # 59 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 23376: typedef struct 23376: { 23376: 23376: 23376: 23376: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 23376: 23376: 23376: 23376: 23376: 23376: } fd_set; 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef __fd_mask fd_mask; 23376: # 91 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 23376: extern "C" { 23376: # 101 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 23376: extern int select (int __nfds, fd_set *__restrict __readfds, 23376: fd_set *__restrict __writefds, 23376: fd_set *__restrict __exceptfds, 23376: struct timeval *__restrict __timeout); 23376: # 113 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 23376: extern int pselect (int __nfds, fd_set *__restrict __readfds, 23376: fd_set *__restrict __writefds, 23376: fd_set *__restrict __exceptfds, 23376: const struct timespec *__restrict __timeout, 23376: const __sigset_t *__restrict __sigmask); 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/select2.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/select2.h" 3 4 23376: extern long int __fdelt_chk (long int __d); 23376: extern long int __fdelt_warn (long int __d) 23376: __attribute__((__warning__ ("bit outside of fd_set selected"))); 23376: # 124 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 23376: 23376: 23376: } 23376: # 197 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: typedef __blksize_t blksize_t; 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef __blkcnt_t blkcnt_t; 23376: 23376: 23376: 23376: typedef __fsblkcnt_t fsblkcnt_t; 23376: 23376: 23376: 23376: typedef __fsfilcnt_t fsfilcnt_t; 23376: # 236 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 23376: typedef __blkcnt64_t blkcnt64_t; 23376: typedef __fsblkcnt64_t fsblkcnt64_t; 23376: typedef __fsfilcnt64_t fsfilcnt64_t; 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 1 3 4 23376: # 23 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 1 3 4 23376: # 77 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h" 1 3 4 23376: # 43 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h" 3 4 23376: struct __pthread_rwlock_arch_t 23376: { 23376: unsigned int __readers; 23376: unsigned int __writers; 23376: unsigned int __wrphase_futex; 23376: unsigned int __writers_futex; 23376: unsigned int __pad3; 23376: unsigned int __pad4; 23376: # 61 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h" 3 4 23376: unsigned char __flags; 23376: unsigned char __shared; 23376: unsigned char __pad1; 23376: unsigned char __pad2; 23376: 23376: int __cur_writer; 23376: }; 23376: # 78 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 2 3 4 23376: # 88 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 23376: typedef struct __pthread_internal_slist 23376: { 23376: struct __pthread_internal_slist *__next; 23376: } __pthread_slist_t; 23376: # 118 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 23376: struct __pthread_mutex_s 23376: { 23376: int __lock ; 23376: unsigned int __count; 23376: int __owner; 23376: # 148 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 23376: int __kind; 23376: 23376: 23376: unsigned int __nusers; 23376: 23376: 23376: 23376: 23376: 23376: 23376: __extension__ union 23376: { 23376: int __spins; 23376: __pthread_slist_t __list; 23376: }; 23376: 23376: 23376: 23376: }; 23376: 23376: 23376: 23376: 23376: struct __pthread_cond_s 23376: { 23376: __extension__ union 23376: { 23376: __extension__ unsigned long long int __wseq; 23376: struct 23376: { 23376: unsigned int __low; 23376: unsigned int __high; 23376: } __wseq32; 23376: }; 23376: __extension__ union 23376: { 23376: __extension__ unsigned long long int __g1_start; 23376: struct 23376: { 23376: unsigned int __low; 23376: unsigned int __high; 23376: } __g1_start32; 23376: }; 23376: unsigned int __g_refs[2] ; 23376: unsigned int __g_size[2]; 23376: unsigned int __g1_orig_size; 23376: unsigned int __wrefs; 23376: unsigned int __g_signals[2]; 23376: }; 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 2 3 4 23376: 23376: 23376: 23376: typedef unsigned long int pthread_t; 23376: 23376: 23376: 23376: 23376: typedef union 23376: { 23376: char __size[4]; 23376: int __align; 23376: } pthread_mutexattr_t; 23376: 23376: 23376: 23376: 23376: typedef union 23376: { 23376: char __size[4]; 23376: int __align; 23376: } pthread_condattr_t; 23376: 23376: 23376: 23376: typedef unsigned int pthread_key_t; 23376: 23376: 23376: 23376: typedef int pthread_once_t; 23376: 23376: 23376: union pthread_attr_t 23376: { 23376: char __size[36]; 23376: long int __align; 23376: }; 23376: 23376: typedef union pthread_attr_t pthread_attr_t; 23376: 23376: 23376: 23376: 23376: typedef union 23376: { 23376: struct __pthread_mutex_s __data; 23376: char __size[24]; 23376: long int __align; 23376: } pthread_mutex_t; 23376: 23376: 23376: typedef union 23376: { 23376: struct __pthread_cond_s __data; 23376: char __size[48]; 23376: __extension__ long long int __align; 23376: } pthread_cond_t; 23376: 23376: 23376: 23376: 23376: 23376: typedef union 23376: { 23376: struct __pthread_rwlock_arch_t __data; 23376: char __size[32]; 23376: long int __align; 23376: } pthread_rwlock_t; 23376: 23376: typedef union 23376: { 23376: char __size[8]; 23376: long int __align; 23376: } pthread_rwlockattr_t; 23376: 23376: 23376: 23376: 23376: 23376: typedef volatile int pthread_spinlock_t; 23376: 23376: 23376: 23376: 23376: typedef union 23376: { 23376: char __size[20]; 23376: long int __align; 23376: } pthread_barrier_t; 23376: 23376: typedef union 23376: { 23376: char __size[4]; 23376: int __align; 23376: } pthread_barrierattr_t; 23376: # 245 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 23376: 23376: 23376: } 23376: # 395 "/usr/include/stdlib.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long int random (void) throw (); 23376: 23376: 23376: extern void srandom (unsigned int __seed) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern char *initstate (unsigned int __seed, char *__statebuf, 23376: size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct random_data 23376: { 23376: int32_t *fptr; 23376: int32_t *rptr; 23376: int32_t *state; 23376: int rand_type; 23376: int rand_deg; 23376: int rand_sep; 23376: int32_t *end_ptr; 23376: }; 23376: 23376: extern int random_r (struct random_data *__restrict __buf, 23376: int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 23376: size_t __statelen, 23376: struct random_data *__restrict __buf) 23376: throw () __attribute__ ((__nonnull__ (2, 4))); 23376: 23376: extern int setstate_r (char *__restrict __statebuf, 23376: struct random_data *__restrict __buf) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: 23376: extern int rand (void) throw (); 23376: 23376: extern void srand (unsigned int __seed) throw (); 23376: 23376: 23376: 23376: extern int rand_r (unsigned int *__seed) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern double drand48 (void) throw (); 23376: extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern long int lrand48 (void) throw (); 23376: extern long int nrand48 (unsigned short int __xsubi[3]) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern long int mrand48 (void) throw (); 23376: extern long int jrand48 (unsigned short int __xsubi[3]) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern void srand48 (long int __seedval) throw (); 23376: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: struct drand48_data 23376: { 23376: unsigned short int __x[3]; 23376: unsigned short int __old_x[3]; 23376: unsigned short int __c; 23376: unsigned short int __init; 23376: __extension__ unsigned long long int __a; 23376: 23376: }; 23376: 23376: 23376: extern int drand48_r (struct drand48_data *__restrict __buffer, 23376: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: extern int erand48_r (unsigned short int __xsubi[3], 23376: struct drand48_data *__restrict __buffer, 23376: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int lrand48_r (struct drand48_data *__restrict __buffer, 23376: long int *__restrict __result) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: extern int nrand48_r (unsigned short int __xsubi[3], 23376: struct drand48_data *__restrict __buffer, 23376: long int *__restrict __result) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int mrand48_r (struct drand48_data *__restrict __buffer, 23376: long int *__restrict __result) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: extern int jrand48_r (unsigned short int __xsubi[3], 23376: struct drand48_data *__restrict __buffer, 23376: long int *__restrict __result) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: extern int seed48_r (unsigned short int __seed16v[3], 23376: struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: extern int lcong48_r (unsigned short int __param[7], 23376: struct drand48_data *__buffer) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 23376: 23376: extern void *calloc (size_t __nmemb, size_t __size) 23376: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern void *realloc (void *__ptr, size_t __size) 23376: throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 23376: throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: extern void free (void *__ptr) throw (); 23376: 23376: 23376: # 1 "/usr/include/alloca.h" 1 3 4 23376: # 24 "/usr/include/alloca.h" 3 4 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 25 "/usr/include/alloca.h" 2 3 4 23376: 23376: extern "C" { 23376: 23376: 23376: 23376: 23376: 23376: extern void *alloca (size_t __size) throw (); 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 567 "/usr/include/stdlib.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 23376: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern void *aligned_alloc (size_t __alignment, size_t __size) 23376: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: extern void abort (void) throw () __attribute__ ((__noreturn__)); 23376: 23376: 23376: 23376: extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: extern "C++" int at_quick_exit (void (*__func) (void)) 23376: throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 23376: # 607 "/usr/include/stdlib.h" 3 4 23376: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: extern void exit (int __status) throw () __attribute__ ((__noreturn__)); 23376: 23376: 23376: 23376: 23376: 23376: extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); 23376: 23376: 23376: 23376: 23376: 23376: extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); 23376: 23376: 23376: 23376: 23376: extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern char *secure_getenv (const char *__name) 23376: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: extern int setenv (const char *__name, const char *__value, int __replace) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int clearenv (void) throw (); 23376: # 672 "/usr/include/stdlib.h" 3 4 23376: extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); 23376: # 685 "/usr/include/stdlib.h" 3 4 23376: extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 695 "/usr/include/stdlib.h" 3 4 23376: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 707 "/usr/include/stdlib.h" 3 4 23376: extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 717 "/usr/include/stdlib.h" 3 4 23376: extern int mkstemps64 (char *__template, int __suffixlen) 23376: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 728 "/usr/include/stdlib.h" 3 4 23376: extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 739 "/usr/include/stdlib.h" 3 4 23376: extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 749 "/usr/include/stdlib.h" 3 4 23376: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 759 "/usr/include/stdlib.h" 3 4 23376: extern int mkostemps (char *__template, int __suffixlen, int __flags) 23376: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 771 "/usr/include/stdlib.h" 3 4 23376: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 23376: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 781 "/usr/include/stdlib.h" 3 4 23376: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: extern char *canonicalize_file_name (const char *__name) 23376: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 797 "/usr/include/stdlib.h" 3 4 23376: extern char *realpath (const char *__restrict __name, 23376: char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef int (*__compar_fn_t) (const void *, const void *); 23376: 23376: 23376: typedef __compar_fn_t comparison_fn_t; 23376: 23376: 23376: 23376: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 23376: 23376: 23376: 23376: 23376: extern void *bsearch (const void *__key, const void *__base, 23376: size_t __nmemb, size_t __size, __compar_fn_t __compar) 23376: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h" 1 3 4 23376: # 19 "/usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h" 3 4 23376: extern __inline __attribute__ ((__gnu_inline__)) void * 23376: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 23376: __compar_fn_t __compar) 23376: { 23376: size_t __l, __u, __idx; 23376: const void *__p; 23376: int __comparison; 23376: 23376: __l = 0; 23376: __u = __nmemb; 23376: while (__l < __u) 23376: { 23376: __idx = (__l + __u) / 2; 23376: __p = (void *) (((const char *) __base) + (__idx * __size)); 23376: __comparison = (*__compar) (__key, __p); 23376: if (__comparison < 0) 23376: __u = __idx; 23376: else if (__comparison > 0) 23376: __l = __idx + 1; 23376: else 23376: return (void *) __p; 23376: } 23376: 23376: return __null; 23376: } 23376: # 823 "/usr/include/stdlib.h" 2 3 4 23376: 23376: 23376: 23376: 23376: extern void qsort (void *__base, size_t __nmemb, size_t __size, 23376: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 23376: 23376: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 23376: __compar_d_fn_t __compar, void *__arg) 23376: __attribute__ ((__nonnull__ (1, 4))); 23376: 23376: 23376: 23376: 23376: extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 23376: extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: __extension__ extern long long int llabs (long long int __x) 23376: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern div_t div (int __numer, int __denom) 23376: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 23376: extern ldiv_t ldiv (long int __numer, long int __denom) 23376: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: __extension__ extern lldiv_t lldiv (long long int __numer, 23376: long long int __denom) 23376: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 23376: # 869 "/usr/include/stdlib.h" 3 4 23376: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 23376: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 23376: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern char *gcvt (double __value, int __ndigit, char *__buf) 23376: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern char *qecvt (long double __value, int __ndigit, 23376: int *__restrict __decpt, int *__restrict __sign) 23376: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 23376: extern char *qfcvt (long double __value, int __ndigit, 23376: int *__restrict __decpt, int *__restrict __sign) 23376: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 23376: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 23376: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 23376: int *__restrict __sign, char *__restrict __buf, 23376: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 23376: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 23376: int *__restrict __sign, char *__restrict __buf, 23376: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 23376: 23376: extern int qecvt_r (long double __value, int __ndigit, 23376: int *__restrict __decpt, int *__restrict __sign, 23376: char *__restrict __buf, size_t __len) 23376: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 23376: extern int qfcvt_r (long double __value, int __ndigit, 23376: int *__restrict __decpt, int *__restrict __sign, 23376: char *__restrict __buf, size_t __len) 23376: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 23376: 23376: 23376: 23376: 23376: 23376: extern int mblen (const char *__s, size_t __n) throw (); 23376: 23376: 23376: extern int mbtowc (wchar_t *__restrict __pwc, 23376: const char *__restrict __s, size_t __n) throw (); 23376: 23376: 23376: extern int wctomb (char *__s, wchar_t __wchar) throw (); 23376: 23376: 23376: 23376: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 23376: const char *__restrict __s, size_t __n) throw (); 23376: 23376: extern size_t wcstombs (char *__restrict __s, 23376: const wchar_t *__restrict __pwcs, size_t __n) 23376: throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 23376: # 954 "/usr/include/stdlib.h" 3 4 23376: extern int getsubopt (char **__restrict __optionp, 23376: char *const *__restrict __tokens, 23376: char **__restrict __valuep) 23376: throw () __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int grantpt (int __fd) throw (); 23376: 23376: 23376: 23376: extern int unlockpt (int __fd) throw (); 23376: 23376: 23376: 23376: 23376: extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: extern int getpt (void); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int getloadavg (double __loadavg[], int __nelem) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: # 1010 "/usr/include/stdlib.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib-float.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/stdlib-float.h" 3 4 23376: extern __inline __attribute__ ((__gnu_inline__)) double 23376: __attribute__ ((__leaf__)) atof (const char *__nptr) throw () 23376: { 23376: return strtod (__nptr, (char **) __null); 23376: } 23376: # 1011 "/usr/include/stdlib.h" 2 3 4 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib.h" 1 3 4 23376: # 23 "/usr/include/arm-linux-gnueabihf/bits/stdlib.h" 3 4 23376: extern char *__realpath_chk (const char *__restrict __name, 23376: char *__restrict __resolved, 23376: size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); 23376: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") 23376: 23376: __attribute__ ((__warn_unused_result__)); 23376: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)) 23376: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 23376: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) throw () 23376: { 23376: if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) 23376: { 23376: 23376: 23376: 23376: 23376: return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); 23376: } 23376: 23376: return __realpath_alias (__name, __resolved); 23376: } 23376: 23376: 23376: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 23376: size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); 23376: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") 23376: 23376: __attribute__ ((__nonnull__ (2))); 23376: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") 23376: 23376: 23376: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) throw () 23376: { 23376: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__buflen)) 23376: return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 23376: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 23376: return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 23376: } 23376: return __ptsname_r_alias (__fd, __buf, __buflen); 23376: } 23376: 23376: 23376: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 23376: throw () __attribute__ ((__warn_unused_result__)); 23376: extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") 23376: __attribute__ ((__warn_unused_result__)); 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 23376: __attribute__ ((__leaf__)) wctomb (char *__s, wchar_t __wchar) throw () 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 23376: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 23376: return __wctomb_alias (__s, __wchar); 23376: } 23376: 23376: 23376: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 23376: const char *__restrict __src, 23376: size_t __len, size_t __dstlen) throw (); 23376: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs") 23376: 23376: 23376: ; 23376: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") 23376: 23376: 23376: 23376: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 23376: __attribute__ ((__leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () 23376: 23376: { 23376: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__len)) 23376: return __mbstowcs_chk (__dst, __src, __len, 23376: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 23376: 23376: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 23376: return __mbstowcs_chk_warn (__dst, __src, __len, 23376: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 23376: } 23376: return __mbstowcs_alias (__dst, __src, __len); 23376: } 23376: 23376: 23376: extern size_t __wcstombs_chk (char *__restrict __dst, 23376: const wchar_t *__restrict __src, 23376: size_t __len, size_t __dstlen) throw (); 23376: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs") 23376: 23376: 23376: ; 23376: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") 23376: 23376: 23376: 23376: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 23376: __attribute__ ((__leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () 23376: 23376: { 23376: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__len)) 23376: return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 23376: if (__len > __builtin_object_size (__dst, 2 > 1)) 23376: return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 23376: } 23376: return __wcstombs_alias (__dst, __src, __len); 23376: } 23376: # 1015 "/usr/include/stdlib.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 76 "/usr/include/c++/8/cstdlib" 2 3 23376: 23376: # 1 "/usr/include/c++/8/bits/std_abs.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/std_abs.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/std_abs.h" 3 23376: # 46 "/usr/include/c++/8/bits/std_abs.h" 3 23376: extern "C++" 23376: { 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: using ::abs; 23376: 23376: 23376: inline long 23376: abs(long __i) { return __builtin_labs(__i); } 23376: 23376: 23376: 23376: inline long long 23376: abs(long long __x) { return __builtin_llabs (__x); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: inline constexpr double 23376: abs(double __x) 23376: { return __builtin_fabs(__x); } 23376: 23376: inline constexpr float 23376: abs(float __x) 23376: { return __builtin_fabsf(__x); } 23376: 23376: inline constexpr long double 23376: abs(long double __x) 23376: { return __builtin_fabsl(__x); } 23376: # 106 "/usr/include/c++/8/bits/std_abs.h" 3 23376: 23376: } 23376: } 23376: # 78 "/usr/include/c++/8/cstdlib" 2 3 23376: # 121 "/usr/include/c++/8/cstdlib" 3 23376: extern "C++" 23376: { 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: using ::div_t; 23376: using ::ldiv_t; 23376: 23376: using ::abort; 23376: 23376: 23376: 23376: using ::atexit; 23376: 23376: 23376: using ::at_quick_exit; 23376: 23376: 23376: using ::atof; 23376: using ::atoi; 23376: using ::atol; 23376: using ::bsearch; 23376: using ::calloc; 23376: using ::div; 23376: using ::exit; 23376: using ::free; 23376: using ::getenv; 23376: using ::labs; 23376: using ::ldiv; 23376: using ::malloc; 23376: 23376: using ::mblen; 23376: using ::mbstowcs; 23376: using ::mbtowc; 23376: 23376: using ::qsort; 23376: 23376: 23376: using ::quick_exit; 23376: 23376: 23376: using ::rand; 23376: using ::realloc; 23376: using ::srand; 23376: using ::strtod; 23376: using ::strtol; 23376: using ::strtoul; 23376: using ::system; 23376: 23376: using ::wcstombs; 23376: using ::wctomb; 23376: 23376: 23376: 23376: inline ldiv_t 23376: div(long __i, long __j) { return ldiv(__i, __j); } 23376: 23376: 23376: 23376: 23376: } 23376: # 195 "/usr/include/c++/8/cstdlib" 3 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: using ::lldiv_t; 23376: 23376: 23376: 23376: 23376: 23376: using ::_Exit; 23376: 23376: 23376: 23376: using ::llabs; 23376: 23376: inline lldiv_t 23376: div(long long __n, long long __d) 23376: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 23376: 23376: using ::lldiv; 23376: # 227 "/usr/include/c++/8/cstdlib" 3 23376: using ::atoll; 23376: using ::strtoll; 23376: using ::strtoull; 23376: 23376: using ::strtof; 23376: using ::strtold; 23376: 23376: 23376: } 23376: 23376: namespace std 23376: { 23376: 23376: using ::__gnu_cxx::lldiv_t; 23376: 23376: using ::__gnu_cxx::_Exit; 23376: 23376: using ::__gnu_cxx::llabs; 23376: using ::__gnu_cxx::div; 23376: using ::__gnu_cxx::lldiv; 23376: 23376: using ::__gnu_cxx::atoll; 23376: using ::__gnu_cxx::strtof; 23376: using ::__gnu_cxx::strtoll; 23376: using ::__gnu_cxx::strtoull; 23376: using ::__gnu_cxx::strtold; 23376: } 23376: 23376: 23376: 23376: } 23376: # 60 "/usr/include/c++/8/bits/stl_algo.h" 2 3 23376: # 1 "/usr/include/c++/8/bits/algorithmfwd.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/algorithmfwd.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/algorithmfwd.h" 3 23376: # 42 "/usr/include/c++/8/bits/algorithmfwd.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 195 "/usr/include/c++/8/bits/algorithmfwd.h" 3 23376: template 23376: bool 23376: all_of(_IIter, _IIter, _Predicate); 23376: 23376: template 23376: bool 23376: any_of(_IIter, _IIter, _Predicate); 23376: 23376: 23376: template 23376: bool 23376: binary_search(_FIter, _FIter, const _Tp&); 23376: 23376: template 23376: bool 23376: binary_search(_FIter, _FIter, const _Tp&, _Compare); 23376: # 224 "/usr/include/c++/8/bits/algorithmfwd.h" 3 23376: template 23376: _OIter 23376: copy(_IIter, _IIter, _OIter); 23376: 23376: template 23376: _BIter2 23376: copy_backward(_BIter1, _BIter1, _BIter2); 23376: 23376: 23376: template 23376: _OIter 23376: copy_if(_IIter, _IIter, _OIter, _Predicate); 23376: 23376: template 23376: _OIter 23376: copy_n(_IIter, _Size, _OIter); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: pair<_FIter, _FIter> 23376: equal_range(_FIter, _FIter, const _Tp&); 23376: 23376: template 23376: pair<_FIter, _FIter> 23376: equal_range(_FIter, _FIter, const _Tp&, _Compare); 23376: 23376: template 23376: void 23376: fill(_FIter, _FIter, const _Tp&); 23376: 23376: template 23376: _OIter 23376: fill_n(_OIter, _Size, const _Tp&); 23376: 23376: 23376: 23376: template 23376: _FIter1 23376: find_end(_FIter1, _FIter1, _FIter2, _FIter2); 23376: 23376: template 23376: _FIter1 23376: find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _IIter 23376: find_if_not(_IIter, _IIter, _Predicate); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool 23376: includes(_IIter1, _IIter1, _IIter2, _IIter2); 23376: 23376: template 23376: bool 23376: includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 23376: 23376: template 23376: void 23376: inplace_merge(_BIter, _BIter, _BIter); 23376: 23376: template 23376: void 23376: inplace_merge(_BIter, _BIter, _BIter, _Compare); 23376: 23376: 23376: template 23376: bool 23376: is_heap(_RAIter, _RAIter); 23376: 23376: template 23376: bool 23376: is_heap(_RAIter, _RAIter, _Compare); 23376: 23376: template 23376: _RAIter 23376: is_heap_until(_RAIter, _RAIter); 23376: 23376: template 23376: _RAIter 23376: is_heap_until(_RAIter, _RAIter, _Compare); 23376: 23376: template 23376: bool 23376: is_partitioned(_IIter, _IIter, _Predicate); 23376: 23376: template 23376: bool 23376: is_permutation(_FIter1, _FIter1, _FIter2); 23376: 23376: template 23376: bool 23376: is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); 23376: 23376: template 23376: bool 23376: is_sorted(_FIter, _FIter); 23376: 23376: template 23376: bool 23376: is_sorted(_FIter, _FIter, _Compare); 23376: 23376: template 23376: _FIter 23376: is_sorted_until(_FIter, _FIter); 23376: 23376: template 23376: _FIter 23376: is_sorted_until(_FIter, _FIter, _Compare); 23376: 23376: 23376: template 23376: void 23376: iter_swap(_FIter1, _FIter2); 23376: 23376: template 23376: _FIter 23376: lower_bound(_FIter, _FIter, const _Tp&); 23376: 23376: template 23376: _FIter 23376: lower_bound(_FIter, _FIter, const _Tp&, _Compare); 23376: 23376: template 23376: void 23376: make_heap(_RAIter, _RAIter); 23376: 23376: template 23376: void 23376: make_heap(_RAIter, _RAIter, _Compare); 23376: 23376: template 23376: constexpr 23376: const _Tp& 23376: max(const _Tp&, const _Tp&); 23376: 23376: template 23376: constexpr 23376: const _Tp& 23376: max(const _Tp&, const _Tp&, _Compare); 23376: 23376: 23376: 23376: 23376: template 23376: constexpr 23376: const _Tp& 23376: min(const _Tp&, const _Tp&); 23376: 23376: template 23376: constexpr 23376: const _Tp& 23376: min(const _Tp&, const _Tp&, _Compare); 23376: 23376: 23376: 23376: 23376: template 23376: constexpr 23376: pair 23376: minmax(const _Tp&, const _Tp&); 23376: 23376: template 23376: constexpr 23376: pair 23376: minmax(const _Tp&, const _Tp&, _Compare); 23376: 23376: template 23376: constexpr 23376: pair<_FIter, _FIter> 23376: minmax_element(_FIter, _FIter); 23376: 23376: template 23376: constexpr 23376: pair<_FIter, _FIter> 23376: minmax_element(_FIter, _FIter, _Compare); 23376: 23376: template 23376: constexpr 23376: _Tp 23376: min(initializer_list<_Tp>); 23376: 23376: template 23376: constexpr 23376: _Tp 23376: min(initializer_list<_Tp>, _Compare); 23376: 23376: template 23376: constexpr 23376: _Tp 23376: max(initializer_list<_Tp>); 23376: 23376: template 23376: constexpr 23376: _Tp 23376: max(initializer_list<_Tp>, _Compare); 23376: 23376: template 23376: constexpr 23376: pair<_Tp, _Tp> 23376: minmax(initializer_list<_Tp>); 23376: 23376: template 23376: constexpr 23376: pair<_Tp, _Tp> 23376: minmax(initializer_list<_Tp>, _Compare); 23376: 23376: 23376: 23376: 23376: template 23376: bool 23376: next_permutation(_BIter, _BIter); 23376: 23376: template 23376: bool 23376: next_permutation(_BIter, _BIter, _Compare); 23376: 23376: 23376: template 23376: bool 23376: none_of(_IIter, _IIter, _Predicate); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _RAIter 23376: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); 23376: 23376: template 23376: _RAIter 23376: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); 23376: 23376: 23376: 23376: 23376: template 23376: pair<_OIter1, _OIter2> 23376: partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); 23376: 23376: template 23376: _FIter 23376: partition_point(_FIter, _FIter, _Predicate); 23376: 23376: 23376: template 23376: void 23376: pop_heap(_RAIter, _RAIter); 23376: 23376: template 23376: void 23376: pop_heap(_RAIter, _RAIter, _Compare); 23376: 23376: template 23376: bool 23376: prev_permutation(_BIter, _BIter); 23376: 23376: template 23376: bool 23376: prev_permutation(_BIter, _BIter, _Compare); 23376: 23376: template 23376: void 23376: push_heap(_RAIter, _RAIter); 23376: 23376: template 23376: void 23376: push_heap(_RAIter, _RAIter, _Compare); 23376: 23376: 23376: 23376: template 23376: _FIter 23376: remove(_FIter, _FIter, const _Tp&); 23376: 23376: template 23376: _FIter 23376: remove_if(_FIter, _FIter, _Predicate); 23376: 23376: template 23376: _OIter 23376: remove_copy(_IIter, _IIter, _OIter, const _Tp&); 23376: 23376: template 23376: _OIter 23376: remove_copy_if(_IIter, _IIter, _OIter, _Predicate); 23376: 23376: 23376: 23376: template 23376: _OIter 23376: replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); 23376: 23376: template 23376: _OIter 23376: replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); 23376: 23376: 23376: 23376: template 23376: void 23376: reverse(_BIter, _BIter); 23376: 23376: template 23376: _OIter 23376: reverse_copy(_BIter, _BIter, _OIter); 23376: 23376: inline namespace _V2 23376: { 23376: template 23376: _FIter 23376: rotate(_FIter, _FIter, _FIter); 23376: } 23376: 23376: template 23376: _OIter 23376: rotate_copy(_FIter, _FIter, _FIter, _OIter); 23376: # 565 "/usr/include/c++/8/bits/algorithmfwd.h" 3 23376: template 23376: void 23376: shuffle(_RAIter, _RAIter, _UGenerator&&); 23376: 23376: 23376: template 23376: void 23376: sort_heap(_RAIter, _RAIter); 23376: 23376: template 23376: void 23376: sort_heap(_RAIter, _RAIter, _Compare); 23376: 23376: template 23376: _BIter 23376: stable_partition(_BIter, _BIter, _Predicate); 23376: # 594 "/usr/include/c++/8/bits/algorithmfwd.h" 3 23376: template 23376: _FIter2 23376: swap_ranges(_FIter1, _FIter1, _FIter2); 23376: 23376: 23376: 23376: template 23376: _FIter 23376: unique(_FIter, _FIter); 23376: 23376: template 23376: _FIter 23376: unique(_FIter, _FIter, _BinaryPredicate); 23376: 23376: 23376: 23376: template 23376: _FIter 23376: upper_bound(_FIter, _FIter, const _Tp&); 23376: 23376: template 23376: _FIter 23376: upper_bound(_FIter, _FIter, const _Tp&, _Compare); 23376: 23376: 23376: 23376: template 23376: _FIter 23376: adjacent_find(_FIter, _FIter); 23376: 23376: template 23376: _FIter 23376: adjacent_find(_FIter, _FIter, _BinaryPredicate); 23376: 23376: template 23376: typename iterator_traits<_IIter>::difference_type 23376: count(_IIter, _IIter, const _Tp&); 23376: 23376: template 23376: typename iterator_traits<_IIter>::difference_type 23376: count_if(_IIter, _IIter, _Predicate); 23376: 23376: template 23376: bool 23376: equal(_IIter1, _IIter1, _IIter2); 23376: 23376: template 23376: bool 23376: equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 23376: 23376: template 23376: _IIter 23376: find(_IIter, _IIter, const _Tp&); 23376: 23376: template 23376: _FIter1 23376: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); 23376: 23376: template 23376: _FIter1 23376: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 23376: 23376: template 23376: _IIter 23376: find_if(_IIter, _IIter, _Predicate); 23376: 23376: template 23376: _Funct 23376: for_each(_IIter, _IIter, _Funct); 23376: 23376: template 23376: void 23376: generate(_FIter, _FIter, _Generator); 23376: 23376: template 23376: _OIter 23376: generate_n(_OIter, _Size, _Generator); 23376: 23376: template 23376: bool 23376: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); 23376: 23376: template 23376: bool 23376: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 23376: 23376: template 23376: constexpr 23376: _FIter 23376: max_element(_FIter, _FIter); 23376: 23376: template 23376: constexpr 23376: _FIter 23376: max_element(_FIter, _FIter, _Compare); 23376: 23376: template 23376: _OIter 23376: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 23376: 23376: template 23376: _OIter 23376: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 23376: 23376: template 23376: constexpr 23376: _FIter 23376: min_element(_FIter, _FIter); 23376: 23376: template 23376: constexpr 23376: _FIter 23376: min_element(_FIter, _FIter, _Compare); 23376: 23376: template 23376: pair<_IIter1, _IIter2> 23376: mismatch(_IIter1, _IIter1, _IIter2); 23376: 23376: template 23376: pair<_IIter1, _IIter2> 23376: mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 23376: 23376: template 23376: void 23376: nth_element(_RAIter, _RAIter, _RAIter); 23376: 23376: template 23376: void 23376: nth_element(_RAIter, _RAIter, _RAIter, _Compare); 23376: 23376: template 23376: void 23376: partial_sort(_RAIter, _RAIter, _RAIter); 23376: 23376: template 23376: void 23376: partial_sort(_RAIter, _RAIter, _RAIter, _Compare); 23376: 23376: template 23376: _BIter 23376: partition(_BIter, _BIter, _Predicate); 23376: 23376: template 23376: void 23376: random_shuffle(_RAIter, _RAIter); 23376: 23376: template 23376: void 23376: random_shuffle(_RAIter, _RAIter, 23376: 23376: _Generator&&); 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: replace(_FIter, _FIter, const _Tp&, const _Tp&); 23376: 23376: template 23376: void 23376: replace_if(_FIter, _FIter, _Predicate, const _Tp&); 23376: 23376: template 23376: _FIter1 23376: search(_FIter1, _FIter1, _FIter2, _FIter2); 23376: 23376: template 23376: _FIter1 23376: search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 23376: 23376: template 23376: _FIter 23376: search_n(_FIter, _FIter, _Size, const _Tp&); 23376: 23376: template 23376: _FIter 23376: search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); 23376: 23376: template 23376: _OIter 23376: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 23376: 23376: template 23376: _OIter 23376: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 23376: 23376: template 23376: _OIter 23376: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 23376: 23376: template 23376: _OIter 23376: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 23376: 23376: template 23376: _OIter 23376: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 23376: 23376: template 23376: _OIter 23376: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, 23376: _OIter, _Compare); 23376: 23376: template 23376: _OIter 23376: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 23376: 23376: template 23376: _OIter 23376: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 23376: 23376: template 23376: void 23376: sort(_RAIter, _RAIter); 23376: 23376: template 23376: void 23376: sort(_RAIter, _RAIter, _Compare); 23376: 23376: template 23376: void 23376: stable_sort(_RAIter, _RAIter); 23376: 23376: template 23376: void 23376: stable_sort(_RAIter, _RAIter, _Compare); 23376: 23376: template 23376: _OIter 23376: transform(_IIter, _IIter, _OIter, _UnaryOperation); 23376: 23376: template 23376: _OIter 23376: transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); 23376: 23376: template 23376: _OIter 23376: unique_copy(_IIter, _IIter, _OIter); 23376: 23376: template 23376: _OIter 23376: unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); 23376: 23376: 23376: 23376: } 23376: # 61 "/usr/include/c++/8/bits/stl_algo.h" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_heap.h" 1 3 23376: # 62 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _Distance 23376: __is_heap_until(_RandomAccessIterator __first, _Distance __n, 23376: _Compare& __comp) 23376: { 23376: _Distance __parent = 0; 23376: for (_Distance __child = 1; __child < __n; ++__child) 23376: { 23376: if (__comp(__first + __parent, __first + __child)) 23376: return __child; 23376: if ((__child & 1) == 0) 23376: ++__parent; 23376: } 23376: return __n; 23376: } 23376: 23376: 23376: 23376: template 23376: inline bool 23376: __is_heap(_RandomAccessIterator __first, _Distance __n) 23376: { 23376: __gnu_cxx::__ops::_Iter_less_iter __comp; 23376: return std::__is_heap_until(__first, __n, __comp) == __n; 23376: } 23376: 23376: template 23376: inline bool 23376: __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) 23376: { 23376: typedef __decltype(__comp) _Cmp; 23376: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 23376: return std::__is_heap_until(__first, __n, __cmp) == __n; 23376: } 23376: 23376: template 23376: inline bool 23376: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { return std::__is_heap(__first, std::distance(__first, __last)); } 23376: 23376: template 23376: inline bool 23376: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: return std::__is_heap(__first, std::move(__comp), 23376: std::distance(__first, __last)); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: __push_heap(_RandomAccessIterator __first, 23376: _Distance __holeIndex, _Distance __topIndex, _Tp __value, 23376: _Compare& __comp) 23376: { 23376: _Distance __parent = (__holeIndex - 1) / 2; 23376: while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) 23376: { 23376: *(__first + __holeIndex) = std::move(*(__first + __parent)); 23376: __holeIndex = __parent; 23376: __parent = (__holeIndex - 1) / 2; 23376: } 23376: *(__first + __holeIndex) = std::move(__value); 23376: } 23376: # 152 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline void 23376: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { 23376: typedef typename iterator_traits<_RandomAccessIterator>::value_type 23376: _ValueType; 23376: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 23376: _DistanceType; 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: __gnu_cxx::__ops::_Iter_less_val __comp; 23376: _ValueType __value = std::move(*(__last - 1)); 23376: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 23376: _DistanceType(0), std::move(__value), __comp); 23376: } 23376: # 187 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline void 23376: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: typedef typename iterator_traits<_RandomAccessIterator>::value_type 23376: _ValueType; 23376: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 23376: _DistanceType; 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 23376: __cmp(std::move(__comp)); 23376: _ValueType __value = std::move(*(__last - 1)); 23376: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 23376: _DistanceType(0), std::move(__value), __cmp); 23376: } 23376: 23376: template 23376: void 23376: __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, 23376: _Distance __len, _Tp __value, _Compare __comp) 23376: { 23376: const _Distance __topIndex = __holeIndex; 23376: _Distance __secondChild = __holeIndex; 23376: while (__secondChild < (__len - 1) / 2) 23376: { 23376: __secondChild = 2 * (__secondChild + 1); 23376: if (__comp(__first + __secondChild, 23376: __first + (__secondChild - 1))) 23376: __secondChild--; 23376: *(__first + __holeIndex) = std::move(*(__first + __secondChild)); 23376: __holeIndex = __secondChild; 23376: } 23376: if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) 23376: { 23376: __secondChild = 2 * (__secondChild + 1); 23376: *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) 23376: ; 23376: __holeIndex = __secondChild - 1; 23376: } 23376: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 23376: __cmp(std::move(__comp)); 23376: std::__push_heap(__first, __holeIndex, __topIndex, 23376: std::move(__value), __cmp); 23376: } 23376: 23376: template 23376: inline void 23376: __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _RandomAccessIterator __result, _Compare& __comp) 23376: { 23376: typedef typename iterator_traits<_RandomAccessIterator>::value_type 23376: _ValueType; 23376: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 23376: _DistanceType; 23376: 23376: _ValueType __value = std::move(*__result); 23376: *__result = std::move(*__first); 23376: std::__adjust_heap(__first, _DistanceType(0), 23376: _DistanceType(__last - __first), 23376: std::move(__value), __comp); 23376: } 23376: # 269 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline void 23376: pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: if (__last - __first > 1) 23376: { 23376: --__last; 23376: __gnu_cxx::__ops::_Iter_less_iter __comp; 23376: std::__pop_heap(__first, __last, __last, __comp); 23376: } 23376: } 23376: # 302 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline void 23376: pop_heap(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: if (__last - __first > 1) 23376: { 23376: typedef __decltype(__comp) _Cmp; 23376: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 23376: --__last; 23376: std::__pop_heap(__first, __last, __last, __cmp); 23376: } 23376: } 23376: 23376: template 23376: void 23376: __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare& __comp) 23376: { 23376: typedef typename iterator_traits<_RandomAccessIterator>::value_type 23376: _ValueType; 23376: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 23376: _DistanceType; 23376: 23376: if (__last - __first < 2) 23376: return; 23376: 23376: const _DistanceType __len = __last - __first; 23376: _DistanceType __parent = (__len - 2) / 2; 23376: while (true) 23376: { 23376: _ValueType __value = std::move(*(__first + __parent)); 23376: std::__adjust_heap(__first, __parent, __len, std::move(__value), 23376: __comp); 23376: if (__parent == 0) 23376: return; 23376: __parent--; 23376: } 23376: } 23376: # 358 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline void 23376: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: __gnu_cxx::__ops::_Iter_less_iter __comp; 23376: std::__make_heap(__first, __last, __comp); 23376: } 23376: # 384 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline void 23376: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: typedef __decltype(__comp) _Cmp; 23376: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 23376: std::__make_heap(__first, __last, __cmp); 23376: } 23376: 23376: template 23376: void 23376: __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare& __comp) 23376: { 23376: while (__last - __first > 1) 23376: { 23376: --__last; 23376: std::__pop_heap(__first, __last, __last, __comp); 23376: } 23376: } 23376: # 420 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline void 23376: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: __gnu_cxx::__ops::_Iter_less_iter __comp; 23376: std::__sort_heap(__first, __last, __comp); 23376: } 23376: # 447 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline void 23376: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: typedef __decltype(__comp) _Cmp; 23376: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 23376: std::__sort_heap(__first, __last, __cmp); 23376: } 23376: # 475 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline _RandomAccessIterator 23376: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: __gnu_cxx::__ops::_Iter_less_iter __comp; 23376: return __first + 23376: std::__is_heap_until(__first, std::distance(__first, __last), __comp); 23376: } 23376: # 503 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline _RandomAccessIterator 23376: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: typedef __decltype(__comp) _Cmp; 23376: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 23376: return __first 23376: + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); 23376: } 23376: # 527 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline bool 23376: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { return std::is_heap_until(__first, __last) == __last; } 23376: # 540 "/usr/include/c++/8/bits/stl_heap.h" 3 23376: template 23376: inline bool 23376: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: const auto __dist = std::distance(__first, __last); 23376: typedef __decltype(__comp) _Cmp; 23376: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 23376: return std::__is_heap_until(__first, __dist, __cmp) == __dist; 23376: } 23376: 23376: 23376: 23376: } 23376: # 62 "/usr/include/c++/8/bits/stl_algo.h" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_tempbuf.h" 1 3 23376: # 60 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 23376: # 1 "/usr/include/c++/8/bits/stl_construct.h" 1 3 23376: # 59 "/usr/include/c++/8/bits/stl_construct.h" 3 23376: # 1 "/usr/include/c++/8/new" 1 3 23376: # 37 "/usr/include/c++/8/new" 3 23376: 23376: # 38 "/usr/include/c++/8/new" 3 23376: 23376: 23376: # 1 "/usr/include/c++/8/exception" 1 3 23376: # 33 "/usr/include/c++/8/exception" 3 23376: 23376: # 34 "/usr/include/c++/8/exception" 3 23376: 23376: #pragma GCC visibility push(default) 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/exception.h" 1 3 23376: # 34 "/usr/include/c++/8/bits/exception.h" 3 23376: 23376: # 35 "/usr/include/c++/8/bits/exception.h" 3 23376: 23376: #pragma GCC visibility push(default) 23376: 23376: 23376: 23376: extern "C++" { 23376: 23376: namespace std 23376: { 23376: # 60 "/usr/include/c++/8/bits/exception.h" 3 23376: class exception 23376: { 23376: public: 23376: exception() noexcept { } 23376: virtual ~exception() noexcept; 23376: 23376: 23376: 23376: virtual const char* 23376: what() const noexcept; 23376: }; 23376: 23376: } 23376: 23376: } 23376: 23376: #pragma GCC visibility pop 23376: # 39 "/usr/include/c++/8/exception" 2 3 23376: 23376: extern "C++" { 23376: 23376: namespace std 23376: { 23376: 23376: 23376: class bad_exception : public exception 23376: { 23376: public: 23376: bad_exception() noexcept { } 23376: 23376: 23376: 23376: virtual ~bad_exception() noexcept; 23376: 23376: 23376: virtual const char* 23376: what() const noexcept; 23376: }; 23376: 23376: 23376: typedef void (*terminate_handler) (); 23376: 23376: 23376: typedef void (*unexpected_handler) (); 23376: 23376: 23376: terminate_handler set_terminate(terminate_handler) noexcept; 23376: 23376: 23376: 23376: terminate_handler get_terminate() noexcept; 23376: 23376: 23376: 23376: 23376: void terminate() noexcept __attribute__ ((__noreturn__)); 23376: 23376: 23376: unexpected_handler set_unexpected(unexpected_handler) noexcept; 23376: 23376: 23376: 23376: unexpected_handler get_unexpected() noexcept; 23376: 23376: 23376: 23376: 23376: void unexpected() __attribute__ ((__noreturn__)); 23376: # 101 "/usr/include/c++/8/exception" 3 23376: 23376: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: int uncaught_exceptions() noexcept __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: } 23376: 23376: namespace __gnu_cxx 23376: { 23376: 23376: # 133 "/usr/include/c++/8/exception" 3 23376: void __verbose_terminate_handler(); 23376: 23376: 23376: } 23376: 23376: } 23376: 23376: #pragma GCC visibility pop 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/exception_ptr.h" 1 3 23376: # 34 "/usr/include/c++/8/bits/exception_ptr.h" 3 23376: #pragma GCC visibility push(default) 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 1 3 23376: # 34 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 23376: 23376: # 35 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 23376: 23376: #pragma GCC visibility push(default) 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 149 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 23376: typedef int ptrdiff_t; 23376: # 426 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 23376: typedef struct { 23376: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 23376: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 23376: # 437 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 23376: } max_align_t; 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef decltype(nullptr) nullptr_t; 23376: # 39 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 2 3 23376: # 50 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 23376: namespace std 23376: { 23376: class type_info; 23376: } 23376: 23376: namespace __cxxabiv1 23376: { 23376: struct __cxa_refcounted_exception; 23376: 23376: extern "C" 23376: { 23376: 23376: void* 23376: __cxa_allocate_exception(size_t) noexcept; 23376: 23376: void 23376: __cxa_free_exception(void*) noexcept; 23376: 23376: 23376: __cxa_refcounted_exception* 23376: __cxa_init_primary_exception(void *object, std::type_info *tinfo, 23376: void ( *dest) (void *)) noexcept; 23376: 23376: } 23376: } 23376: 23376: 23376: 23376: #pragma GCC visibility pop 23376: # 39 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 23376: # 1 "/usr/include/c++/8/typeinfo" 1 3 23376: # 32 "/usr/include/c++/8/typeinfo" 3 23376: 23376: # 33 "/usr/include/c++/8/typeinfo" 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/hash_bytes.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/hash_bytes.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/hash_bytes.h" 3 23376: 23376: 23376: 23376: namespace std 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: size_t 23376: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 23376: 23376: 23376: 23376: 23376: 23376: size_t 23376: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 23376: 23376: 23376: } 23376: # 37 "/usr/include/c++/8/typeinfo" 2 3 23376: 23376: 23376: #pragma GCC visibility push(default) 23376: 23376: extern "C++" { 23376: 23376: namespace __cxxabiv1 23376: { 23376: class __class_type_info; 23376: } 23376: # 80 "/usr/include/c++/8/typeinfo" 3 23376: namespace std 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: class type_info 23376: { 23376: public: 23376: 23376: 23376: 23376: 23376: virtual ~type_info(); 23376: 23376: 23376: 23376: const char* name() const noexcept 23376: { return __name[0] == '*' ? __name + 1 : __name; } 23376: 23376: 23376: 23376: 23376: 23376: bool before(const type_info& __arg) const noexcept; 23376: bool operator==(const type_info& __arg) const noexcept; 23376: # 136 "/usr/include/c++/8/typeinfo" 3 23376: bool operator!=(const type_info& __arg) const noexcept 23376: { return !operator==(__arg); } 23376: 23376: 23376: size_t hash_code() const noexcept 23376: { 23376: 23376: return _Hash_bytes(name(), __builtin_strlen(name()), 23376: static_cast(0xc70f6907UL)); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: virtual bool __is_pointer_p() const; 23376: 23376: 23376: virtual bool __is_function_p() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 23376: unsigned __outer) const; 23376: 23376: 23376: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 23376: void **__obj_ptr) const; 23376: 23376: protected: 23376: const char *__name; 23376: 23376: explicit type_info(const char *__n): __name(__n) { } 23376: 23376: private: 23376: 23376: type_info& operator=(const type_info&); 23376: type_info(const type_info&); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: class bad_cast : public exception 23376: { 23376: public: 23376: bad_cast() noexcept { } 23376: 23376: 23376: 23376: virtual ~bad_cast() noexcept; 23376: 23376: 23376: virtual const char* what() const noexcept; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: class bad_typeid : public exception 23376: { 23376: public: 23376: bad_typeid () noexcept { } 23376: 23376: 23376: 23376: virtual ~bad_typeid() noexcept; 23376: 23376: 23376: virtual const char* what() const noexcept; 23376: }; 23376: } 23376: 23376: } 23376: 23376: #pragma GCC visibility pop 23376: # 40 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 23376: # 1 "/usr/include/c++/8/new" 1 3 23376: # 41 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 23376: 23376: extern "C++" { 23376: 23376: namespace std 23376: { 23376: class type_info; 23376: 23376: 23376: 23376: 23376: 23376: namespace __exception_ptr 23376: { 23376: class exception_ptr; 23376: } 23376: 23376: using __exception_ptr::exception_ptr; 23376: 23376: 23376: 23376: 23376: 23376: exception_ptr current_exception() noexcept; 23376: 23376: template 23376: exception_ptr make_exception_ptr(_Ex) noexcept; 23376: 23376: 23376: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 23376: 23376: namespace __exception_ptr 23376: { 23376: using std::rethrow_exception; 23376: 23376: 23376: 23376: 23376: 23376: class exception_ptr 23376: { 23376: void* _M_exception_object; 23376: 23376: explicit exception_ptr(void* __e) noexcept; 23376: 23376: void _M_addref() noexcept; 23376: void _M_release() noexcept; 23376: 23376: void *_M_get() const noexcept __attribute__ ((__pure__)); 23376: 23376: friend exception_ptr std::current_exception() noexcept; 23376: friend void std::rethrow_exception(exception_ptr); 23376: template 23376: friend exception_ptr std::make_exception_ptr(_Ex) noexcept; 23376: 23376: public: 23376: exception_ptr() noexcept; 23376: 23376: exception_ptr(const exception_ptr&) noexcept; 23376: 23376: 23376: exception_ptr(nullptr_t) noexcept 23376: : _M_exception_object(0) 23376: { } 23376: 23376: exception_ptr(exception_ptr&& __o) noexcept 23376: : _M_exception_object(__o._M_exception_object) 23376: { __o._M_exception_object = 0; } 23376: # 117 "/usr/include/c++/8/bits/exception_ptr.h" 3 23376: exception_ptr& 23376: operator=(const exception_ptr&) noexcept; 23376: 23376: 23376: exception_ptr& 23376: operator=(exception_ptr&& __o) noexcept 23376: { 23376: exception_ptr(static_cast(__o)).swap(*this); 23376: return *this; 23376: } 23376: 23376: 23376: ~exception_ptr() noexcept; 23376: 23376: void 23376: swap(exception_ptr&) noexcept; 23376: # 144 "/usr/include/c++/8/bits/exception_ptr.h" 3 23376: explicit operator bool() const 23376: { return _M_exception_object; } 23376: 23376: 23376: friend bool 23376: operator==(const exception_ptr&, const exception_ptr&) 23376: noexcept __attribute__ ((__pure__)); 23376: 23376: const class std::type_info* 23376: __cxa_exception_type() const noexcept 23376: __attribute__ ((__pure__)); 23376: }; 23376: 23376: bool 23376: operator==(const exception_ptr&, const exception_ptr&) 23376: noexcept __attribute__ ((__pure__)); 23376: 23376: bool 23376: operator!=(const exception_ptr&, const exception_ptr&) 23376: noexcept __attribute__ ((__pure__)); 23376: 23376: inline void 23376: swap(exception_ptr& __lhs, exception_ptr& __rhs) 23376: { __lhs.swap(__rhs); } 23376: 23376: template 23376: inline void 23376: __dest_thunk(void* __x) 23376: { static_cast<_Ex*>(__x)->~_Ex(); } 23376: 23376: } 23376: 23376: 23376: template 23376: exception_ptr 23376: make_exception_ptr(_Ex __ex) noexcept 23376: { 23376: 23376: void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); 23376: (void) __cxxabiv1::__cxa_init_primary_exception( 23376: __e, const_cast(&typeid(__ex)), 23376: __exception_ptr::__dest_thunk<_Ex>); 23376: try 23376: { 23376: ::new (__e) _Ex(__ex); 23376: return exception_ptr(__e); 23376: } 23376: catch(...) 23376: { 23376: __cxxabiv1::__cxa_free_exception(__e); 23376: return current_exception(); 23376: } 23376: # 208 "/usr/include/c++/8/bits/exception_ptr.h" 3 23376: } 23376: 23376: 23376: } 23376: 23376: } 23376: 23376: #pragma GCC visibility pop 23376: # 144 "/usr/include/c++/8/exception" 2 3 23376: # 1 "/usr/include/c++/8/bits/nested_exception.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/nested_exception.h" 3 23376: #pragma GCC visibility push(default) 23376: # 42 "/usr/include/c++/8/bits/nested_exception.h" 3 23376: extern "C++" { 23376: 23376: namespace std 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: class nested_exception 23376: { 23376: exception_ptr _M_ptr; 23376: 23376: public: 23376: nested_exception() noexcept : _M_ptr(current_exception()) { } 23376: 23376: nested_exception(const nested_exception&) noexcept = default; 23376: 23376: nested_exception& operator=(const nested_exception&) noexcept = default; 23376: 23376: virtual ~nested_exception() noexcept; 23376: 23376: [[noreturn]] 23376: void 23376: rethrow_nested() const 23376: { 23376: if (_M_ptr) 23376: rethrow_exception(_M_ptr); 23376: std::terminate(); 23376: } 23376: 23376: exception_ptr 23376: nested_ptr() const noexcept 23376: { return _M_ptr; } 23376: }; 23376: 23376: template 23376: struct _Nested_exception : public _Except, public nested_exception 23376: { 23376: explicit _Nested_exception(const _Except& __ex) 23376: : _Except(__ex) 23376: { } 23376: 23376: explicit _Nested_exception(_Except&& __ex) 23376: : _Except(static_cast<_Except&&>(__ex)) 23376: { } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: [[noreturn]] 23376: inline void 23376: __throw_with_nested_impl(_Tp&& __t, true_type) 23376: { 23376: using _Up = typename remove_reference<_Tp>::type; 23376: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 23376: } 23376: 23376: template 23376: [[noreturn]] 23376: inline void 23376: __throw_with_nested_impl(_Tp&& __t, false_type) 23376: { throw std::forward<_Tp>(__t); } 23376: 23376: 23376: 23376: template 23376: [[noreturn]] 23376: inline void 23376: throw_with_nested(_Tp&& __t) 23376: { 23376: using _Up = typename decay<_Tp>::type; 23376: using _CopyConstructible 23376: = __and_, is_move_constructible<_Up>>; 23376: static_assert(_CopyConstructible::value, 23376: "throw_with_nested argument must be CopyConstructible"); 23376: using __nest = __and_, __bool_constant, 23376: __not_>>; 23376: std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); 23376: } 23376: 23376: 23376: template 23376: using __rethrow_if_nested_cond = typename enable_if< 23376: __and_, 23376: __or_<__not_>, 23376: is_convertible<_Tp*, nested_exception*>>>::value 23376: >::type; 23376: 23376: 23376: template 23376: inline __rethrow_if_nested_cond<_Ex> 23376: __rethrow_if_nested_impl(const _Ex* __ptr) 23376: { 23376: if (auto __ne_ptr = dynamic_cast(__ptr)) 23376: __ne_ptr->rethrow_nested(); 23376: } 23376: 23376: 23376: inline void 23376: __rethrow_if_nested_impl(const void*) 23376: { } 23376: 23376: 23376: template 23376: inline void 23376: rethrow_if_nested(const _Ex& __ex) 23376: { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } 23376: 23376: 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: #pragma GCC visibility pop 23376: # 145 "/usr/include/c++/8/exception" 2 3 23376: # 41 "/usr/include/c++/8/new" 2 3 23376: 23376: #pragma GCC visibility push(default) 23376: 23376: extern "C++" { 23376: 23376: namespace std 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: class bad_alloc : public exception 23376: { 23376: public: 23376: bad_alloc() throw() { } 23376: 23376: 23376: 23376: virtual ~bad_alloc() throw(); 23376: 23376: 23376: virtual const char* what() const throw(); 23376: }; 23376: 23376: 23376: class bad_array_new_length : public bad_alloc 23376: { 23376: public: 23376: bad_array_new_length() throw() { } 23376: 23376: 23376: 23376: virtual ~bad_array_new_length() throw(); 23376: 23376: 23376: virtual const char* what() const throw(); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct nothrow_t 23376: { 23376: 23376: explicit nothrow_t() = default; 23376: 23376: }; 23376: 23376: extern const nothrow_t nothrow; 23376: 23376: 23376: 23376: typedef void (*new_handler)(); 23376: 23376: 23376: 23376: new_handler set_new_handler(new_handler) throw(); 23376: 23376: 23376: 23376: new_handler get_new_handler() noexcept; 23376: 23376: } 23376: # 120 "/usr/include/c++/8/new" 3 23376: void* operator new(std::size_t) 23376: __attribute__((__externally_visible__)); 23376: void* operator new[](std::size_t) 23376: __attribute__((__externally_visible__)); 23376: void operator delete(void*) noexcept 23376: __attribute__((__externally_visible__)); 23376: void operator delete[](void*) noexcept 23376: __attribute__((__externally_visible__)); 23376: 23376: void operator delete(void*, std::size_t) noexcept 23376: __attribute__((__externally_visible__)); 23376: void operator delete[](void*, std::size_t) noexcept 23376: __attribute__((__externally_visible__)); 23376: 23376: void* operator new(std::size_t, const std::nothrow_t&) noexcept 23376: __attribute__((__externally_visible__)); 23376: void* operator new[](std::size_t, const std::nothrow_t&) noexcept 23376: __attribute__((__externally_visible__)); 23376: void operator delete(void*, const std::nothrow_t&) noexcept 23376: __attribute__((__externally_visible__)); 23376: void operator delete[](void*, const std::nothrow_t&) noexcept 23376: __attribute__((__externally_visible__)); 23376: # 168 "/usr/include/c++/8/new" 3 23376: inline void* operator new(std::size_t, void* __p) noexcept 23376: { return __p; } 23376: inline void* operator new[](std::size_t, void* __p) noexcept 23376: { return __p; } 23376: 23376: 23376: inline void operator delete (void*, void*) noexcept { } 23376: inline void operator delete[](void*, void*) noexcept { } 23376: 23376: } 23376: # 216 "/usr/include/c++/8/new" 3 23376: #pragma GCC visibility pop 23376: # 60 "/usr/include/c++/8/bits/stl_construct.h" 2 3 23376: 23376: # 1 "/usr/include/c++/8/ext/alloc_traits.h" 1 3 23376: # 32 "/usr/include/c++/8/ext/alloc_traits.h" 3 23376: 23376: # 33 "/usr/include/c++/8/ext/alloc_traits.h" 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/alloc_traits.h" 1 3 23376: # 41 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: struct __allocator_traits_base 23376: { 23376: template 23376: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 23376: 23376: template 23376: struct __rebind<_Tp, _Up, 23376: __void_t::other>> 23376: { using type = typename _Tp::template rebind<_Up>::other; }; 23376: 23376: protected: 23376: template 23376: using __pointer = typename _Tp::pointer; 23376: template 23376: using __c_pointer = typename _Tp::const_pointer; 23376: template 23376: using __v_pointer = typename _Tp::void_pointer; 23376: template 23376: using __cv_pointer = typename _Tp::const_void_pointer; 23376: template 23376: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 23376: template 23376: using __pocma = typename _Tp::propagate_on_container_move_assignment; 23376: template 23376: using __pocs = typename _Tp::propagate_on_container_swap; 23376: template 23376: using __equal = typename _Tp::is_always_equal; 23376: }; 23376: 23376: template 23376: using __alloc_rebind 23376: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct allocator_traits : __allocator_traits_base 23376: { 23376: 23376: typedef _Alloc allocator_type; 23376: 23376: typedef typename _Alloc::value_type value_type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: using pointer = __detected_or_t; 23376: 23376: private: 23376: 23376: template class _Func, typename _Tp, typename = void> 23376: struct _Ptr 23376: { 23376: using type = typename pointer_traits::template rebind<_Tp>; 23376: }; 23376: 23376: template class _Func, typename _Tp> 23376: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 23376: { 23376: using type = _Func<_Alloc>; 23376: }; 23376: 23376: 23376: template 23376: struct _Diff 23376: { using type = typename pointer_traits<_PtrT>::difference_type; }; 23376: 23376: template 23376: struct _Diff<_A2, _PtrT, __void_t> 23376: { using type = typename _A2::difference_type; }; 23376: 23376: 23376: template 23376: struct _Size : make_unsigned<_DiffT> { }; 23376: 23376: template 23376: struct _Size<_A2, _DiffT, __void_t> 23376: { using type = typename _A2::size_type; }; 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: using void_pointer = typename _Ptr<__v_pointer, void>::type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: using difference_type = typename _Diff<_Alloc, pointer>::type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: using size_type = typename _Size<_Alloc, difference_type>::type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: using propagate_on_container_copy_assignment 23376: = __detected_or_t; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: using propagate_on_container_move_assignment 23376: = __detected_or_t; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: using propagate_on_container_swap 23376: = __detected_or_t; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: using is_always_equal 23376: = __detected_or_t::type, __equal, _Alloc>; 23376: 23376: template 23376: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 23376: template 23376: using rebind_traits = allocator_traits>; 23376: 23376: private: 23376: template 23376: static auto 23376: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) 23376: -> decltype(__a.allocate(__n, __hint)) 23376: { return __a.allocate(__n, __hint); } 23376: 23376: template 23376: static pointer 23376: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) 23376: { return __a.allocate(__n); } 23376: 23376: template 23376: struct __construct_helper 23376: { 23376: template()->construct( 23376: std::declval<_Tp*>(), std::declval<_Args>()...))> 23376: static true_type __test(int); 23376: 23376: template 23376: static false_type __test(...); 23376: 23376: using type = decltype(__test<_Alloc>(0)); 23376: }; 23376: 23376: template 23376: using __has_construct 23376: = typename __construct_helper<_Tp, _Args...>::type; 23376: 23376: template 23376: static _Require<__has_construct<_Tp, _Args...>> 23376: _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 23376: { __a.construct(__p, std::forward<_Args>(__args)...); } 23376: 23376: template 23376: static 23376: _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, 23376: is_constructible<_Tp, _Args...>>> 23376: _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 23376: { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } 23376: 23376: template 23376: static auto 23376: _S_destroy(_Alloc2& __a, _Tp* __p, int) 23376: -> decltype(__a.destroy(__p)) 23376: { __a.destroy(__p); } 23376: 23376: template 23376: static void 23376: _S_destroy(_Alloc2&, _Tp* __p, ...) 23376: { __p->~_Tp(); } 23376: 23376: template 23376: static auto 23376: _S_max_size(_Alloc2& __a, int) 23376: -> decltype(__a.max_size()) 23376: { return __a.max_size(); } 23376: 23376: template 23376: static size_type 23376: _S_max_size(_Alloc2&, ...) 23376: { 23376: 23376: 23376: return __gnu_cxx::__numeric_traits::__max 23376: / sizeof(value_type); 23376: } 23376: 23376: template 23376: static auto 23376: _S_select(_Alloc2& __a, int) 23376: -> decltype(__a.select_on_container_copy_construction()) 23376: { return __a.select_on_container_copy_construction(); } 23376: 23376: template 23376: static _Alloc2 23376: _S_select(_Alloc2& __a, ...) 23376: { return __a; } 23376: 23376: public: 23376: # 299 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: static pointer 23376: allocate(_Alloc& __a, size_type __n) 23376: { return __a.allocate(__n); } 23376: # 314 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: static pointer 23376: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 23376: { return _S_allocate(__a, __n, __hint, 0); } 23376: # 326 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: static void 23376: deallocate(_Alloc& __a, pointer __p, size_type __n) 23376: { __a.deallocate(__p, __n); } 23376: # 341 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: template 23376: static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 23376: -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 23376: { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 23376: # 354 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: template 23376: static void destroy(_Alloc& __a, _Tp* __p) 23376: { _S_destroy(__a, __p, 0); } 23376: # 366 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: static size_type max_size(const _Alloc& __a) noexcept 23376: { return _S_max_size(__a, 0); } 23376: # 377 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: static _Alloc 23376: select_on_container_copy_construction(const _Alloc& __rhs) 23376: { return _S_select(__rhs, 0); } 23376: }; 23376: 23376: 23376: template 23376: struct allocator_traits> 23376: { 23376: 23376: using allocator_type = allocator<_Tp>; 23376: 23376: using value_type = _Tp; 23376: 23376: 23376: using pointer = _Tp*; 23376: 23376: 23376: using const_pointer = const _Tp*; 23376: 23376: 23376: using void_pointer = void*; 23376: 23376: 23376: using const_void_pointer = const void*; 23376: 23376: 23376: using difference_type = std::ptrdiff_t; 23376: 23376: 23376: using size_type = std::size_t; 23376: 23376: 23376: using propagate_on_container_copy_assignment = false_type; 23376: 23376: 23376: using propagate_on_container_move_assignment = true_type; 23376: 23376: 23376: using propagate_on_container_swap = false_type; 23376: 23376: 23376: using is_always_equal = true_type; 23376: 23376: template 23376: using rebind_alloc = allocator<_Up>; 23376: 23376: template 23376: using rebind_traits = allocator_traits>; 23376: # 434 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: static pointer 23376: allocate(allocator_type& __a, size_type __n) 23376: { return __a.allocate(__n); } 23376: # 448 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: static pointer 23376: allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) 23376: { return __a.allocate(__n, __hint); } 23376: # 460 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: static void 23376: deallocate(allocator_type& __a, pointer __p, size_type __n) 23376: { __a.deallocate(__p, __n); } 23376: # 472 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: template 23376: static void 23376: construct(allocator_type& __a, _Up* __p, _Args&&... __args) 23376: { __a.construct(__p, std::forward<_Args>(__args)...); } 23376: # 484 "/usr/include/c++/8/bits/alloc_traits.h" 3 23376: template 23376: static void 23376: destroy(allocator_type& __a, _Up* __p) 23376: { __a.destroy(__p); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: static size_type 23376: max_size(const allocator_type& __a) noexcept 23376: { return __a.max_size(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: static allocator_type 23376: select_on_container_copy_construction(const allocator_type& __rhs) 23376: { return __rhs; } 23376: }; 23376: 23376: 23376: template 23376: inline void 23376: __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) 23376: { __one = __two; } 23376: 23376: template 23376: inline void 23376: __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) 23376: { } 23376: 23376: template 23376: inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 23376: { 23376: typedef allocator_traits<_Alloc> __traits; 23376: typedef typename __traits::propagate_on_container_copy_assignment __pocca; 23376: __do_alloc_on_copy(__one, __two, __pocca()); 23376: } 23376: 23376: template 23376: inline _Alloc __alloc_on_copy(const _Alloc& __a) 23376: { 23376: typedef allocator_traits<_Alloc> __traits; 23376: return __traits::select_on_container_copy_construction(__a); 23376: } 23376: 23376: template 23376: inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) 23376: { __one = std::move(__two); } 23376: 23376: template 23376: inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) 23376: { } 23376: 23376: template 23376: inline void __alloc_on_move(_Alloc& __one, _Alloc& __two) 23376: { 23376: typedef allocator_traits<_Alloc> __traits; 23376: typedef typename __traits::propagate_on_container_move_assignment __pocma; 23376: __do_alloc_on_move(__one, __two, __pocma()); 23376: } 23376: 23376: template 23376: inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) 23376: { 23376: using std::swap; 23376: swap(__one, __two); 23376: } 23376: 23376: template 23376: inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) 23376: { } 23376: 23376: template 23376: inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two) 23376: { 23376: typedef allocator_traits<_Alloc> __traits; 23376: typedef typename __traits::propagate_on_container_swap __pocs; 23376: __do_alloc_on_swap(__one, __two, __pocs()); 23376: } 23376: 23376: template 23376: class __is_copy_insertable_impl 23376: { 23376: typedef allocator_traits<_Alloc> _Traits; 23376: 23376: template(), 23376: std::declval<_Up*>(), 23376: std::declval()))> 23376: static true_type 23376: _M_select(int); 23376: 23376: template 23376: static false_type 23376: _M_select(...); 23376: 23376: public: 23376: typedef decltype(_M_select(0)) type; 23376: }; 23376: 23376: 23376: template 23376: struct __is_copy_insertable 23376: : __is_copy_insertable_impl<_Alloc>::type 23376: { }; 23376: 23376: 23376: template 23376: struct __is_copy_insertable> 23376: : is_copy_constructible<_Tp> 23376: { }; 23376: 23376: 23376: template 23376: struct __is_allocator : false_type { }; 23376: 23376: template 23376: struct __is_allocator<_Alloc, 23376: __void_t().allocate(size_t{}))>> 23376: : true_type { }; 23376: 23376: template 23376: using _RequireAllocator 23376: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 23376: 23376: 23376: } 23376: # 37 "/usr/include/c++/8/ext/alloc_traits.h" 2 3 23376: 23376: 23376: 23376: 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __alloc_traits 23376: 23376: : std::allocator_traits<_Alloc> 23376: 23376: { 23376: typedef _Alloc allocator_type; 23376: 23376: typedef std::allocator_traits<_Alloc> _Base_type; 23376: typedef typename _Base_type::value_type value_type; 23376: typedef typename _Base_type::pointer pointer; 23376: typedef typename _Base_type::const_pointer const_pointer; 23376: typedef typename _Base_type::size_type size_type; 23376: typedef typename _Base_type::difference_type difference_type; 23376: 23376: typedef value_type& reference; 23376: typedef const value_type& const_reference; 23376: using _Base_type::allocate; 23376: using _Base_type::deallocate; 23376: using _Base_type::construct; 23376: using _Base_type::destroy; 23376: using _Base_type::max_size; 23376: 23376: private: 23376: template 23376: using __is_custom_pointer 23376: = std::__and_, 23376: std::__not_>>; 23376: 23376: public: 23376: 23376: template 23376: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 23376: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 23376: { 23376: _Base_type::construct(__a, std::__to_address(__p), 23376: std::forward<_Args>(__args)...); 23376: } 23376: 23376: 23376: template 23376: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 23376: destroy(_Alloc& __a, _Ptr __p) 23376: { _Base_type::destroy(__a, std::__to_address(__p)); } 23376: 23376: static _Alloc _S_select_on_copy(const _Alloc& __a) 23376: { return _Base_type::select_on_container_copy_construction(__a); } 23376: 23376: static void _S_on_swap(_Alloc& __a, _Alloc& __b) 23376: { std::__alloc_on_swap(__a, __b); } 23376: 23376: static constexpr bool _S_propagate_on_copy_assign() 23376: { return _Base_type::propagate_on_container_copy_assignment::value; } 23376: 23376: static constexpr bool _S_propagate_on_move_assign() 23376: { return _Base_type::propagate_on_container_move_assignment::value; } 23376: 23376: static constexpr bool _S_propagate_on_swap() 23376: { return _Base_type::propagate_on_container_swap::value; } 23376: 23376: static constexpr bool _S_always_equal() 23376: { return _Base_type::is_always_equal::value; } 23376: 23376: static constexpr bool _S_nothrow_move() 23376: { return _S_propagate_on_move_assign() || _S_always_equal(); } 23376: 23376: template 23376: struct rebind 23376: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 23376: # 158 "/usr/include/c++/8/ext/alloc_traits.h" 3 23376: }; 23376: 23376: 23376: } 23376: # 62 "/usr/include/c++/8/bits/stl_construct.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: _Construct(_T1* __p, _Args&&... __args) 23376: { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } 23376: # 87 "/usr/include/c++/8/bits/stl_construct.h" 3 23376: template 23376: inline void 23376: _Construct_novalue(_T1* __p) 23376: { ::new(static_cast(__p)) _T1; } 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: _Destroy(_Tp* __pointer) 23376: { __pointer->~_Tp(); } 23376: 23376: template 23376: struct _Destroy_aux 23376: { 23376: template 23376: static void 23376: __destroy(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: for (; __first != __last; ++__first) 23376: std::_Destroy(std::__addressof(*__first)); 23376: } 23376: }; 23376: 23376: template<> 23376: struct _Destroy_aux 23376: { 23376: template 23376: static void 23376: __destroy(_ForwardIterator, _ForwardIterator) { } 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _Value_type; 23376: 23376: 23376: static_assert(is_destructible<_Value_type>::value, 23376: "value type is destructible"); 23376: 23376: std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 23376: __destroy(__first, __last); 23376: } 23376: 23376: template 23376: struct _Destroy_n_aux 23376: { 23376: template 23376: static _ForwardIterator 23376: __destroy_n(_ForwardIterator __first, _Size __count) 23376: { 23376: for (; __count > 0; (void)++__first, --__count) 23376: std::_Destroy(std::__addressof(*__first)); 23376: return __first; 23376: } 23376: }; 23376: 23376: template<> 23376: struct _Destroy_n_aux 23376: { 23376: template 23376: static _ForwardIterator 23376: __destroy_n(_ForwardIterator __first, _Size __count) 23376: { 23376: std::advance(__first, __count); 23376: return __first; 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline _ForwardIterator 23376: _Destroy_n(_ForwardIterator __first, _Size __count) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _Value_type; 23376: 23376: 23376: static_assert(is_destructible<_Value_type>::value, 23376: "value type is destructible"); 23376: 23376: return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: 23376: __destroy_n(__first, __count); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 23376: _Allocator& __alloc) 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 23376: for (; __first != __last; ++__first) 23376: __traits::destroy(__alloc, std::__addressof(*__first)); 23376: } 23376: 23376: template 23376: inline void 23376: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 23376: allocator<_Tp>&) 23376: { 23376: _Destroy(__first, __last); 23376: } 23376: # 232 "/usr/include/c++/8/bits/stl_construct.h" 3 23376: 23376: } 23376: # 61 "/usr/include/c++/8/bits/stl_tempbuf.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 83 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 23376: template 23376: pair<_Tp*, ptrdiff_t> 23376: get_temporary_buffer(ptrdiff_t __len) noexcept 23376: { 23376: const ptrdiff_t __max = 23376: __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 23376: if (__len > __max) 23376: __len = __max; 23376: 23376: while (__len > 0) 23376: { 23376: _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 23376: std::nothrow)); 23376: if (__tmp != 0) 23376: return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); 23376: __len /= 2; 23376: } 23376: return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); 23376: } 23376: # 110 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 23376: template 23376: inline void 23376: return_temporary_buffer(_Tp* __p) 23376: { ::operator delete(__p, std::nothrow); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: class _Temporary_buffer 23376: { 23376: 23376: 23376: 23376: public: 23376: typedef _Tp value_type; 23376: typedef value_type* pointer; 23376: typedef pointer iterator; 23376: typedef ptrdiff_t size_type; 23376: 23376: protected: 23376: size_type _M_original_len; 23376: size_type _M_len; 23376: pointer _M_buffer; 23376: 23376: public: 23376: 23376: size_type 23376: size() const 23376: { return _M_len; } 23376: 23376: 23376: size_type 23376: requested_size() const 23376: { return _M_original_len; } 23376: 23376: 23376: iterator 23376: begin() 23376: { return _M_buffer; } 23376: 23376: 23376: iterator 23376: end() 23376: { return _M_buffer + _M_len; } 23376: 23376: 23376: 23376: 23376: 23376: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); 23376: 23376: ~_Temporary_buffer() 23376: { 23376: std::_Destroy(_M_buffer, _M_buffer + _M_len); 23376: std::return_temporary_buffer(_M_buffer); 23376: } 23376: 23376: private: 23376: 23376: _Temporary_buffer(const _Temporary_buffer&); 23376: 23376: void 23376: operator=(const _Temporary_buffer&); 23376: }; 23376: 23376: 23376: template 23376: struct __uninitialized_construct_buf_dispatch 23376: { 23376: template 23376: static void 23376: __ucr(_Pointer __first, _Pointer __last, 23376: _ForwardIterator __seed) 23376: { 23376: if(__first == __last) 23376: return; 23376: 23376: _Pointer __cur = __first; 23376: try 23376: { 23376: std::_Construct(std::__addressof(*__first), 23376: std::move(*__seed)); 23376: _Pointer __prev = __cur; 23376: ++__cur; 23376: for(; __cur != __last; ++__cur, ++__prev) 23376: std::_Construct(std::__addressof(*__cur), 23376: std::move(*__prev)); 23376: *__seed = std::move(*__prev); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur); 23376: throw; 23376: } 23376: } 23376: }; 23376: 23376: template<> 23376: struct __uninitialized_construct_buf_dispatch 23376: { 23376: template 23376: static void 23376: __ucr(_Pointer, _Pointer, _ForwardIterator) { } 23376: }; 23376: # 229 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 23376: template 23376: inline void 23376: __uninitialized_construct_buf(_Pointer __first, _Pointer __last, 23376: _ForwardIterator __seed) 23376: { 23376: typedef typename std::iterator_traits<_Pointer>::value_type 23376: _ValueType; 23376: 23376: std::__uninitialized_construct_buf_dispatch< 23376: __has_trivial_constructor(_ValueType)>:: 23376: __ucr(__first, __last, __seed); 23376: } 23376: 23376: template 23376: _Temporary_buffer<_ForwardIterator, _Tp>:: 23376: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) 23376: : _M_original_len(std::distance(__first, __last)), 23376: _M_len(0), _M_buffer(0) 23376: { 23376: try 23376: { 23376: std::pair __p(std::get_temporary_buffer< 23376: value_type>(_M_original_len)); 23376: _M_buffer = __p.first; 23376: _M_len = __p.second; 23376: if (_M_buffer) 23376: std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len, 23376: __first); 23376: } 23376: catch(...) 23376: { 23376: std::return_temporary_buffer(_M_buffer); 23376: _M_buffer = 0; 23376: _M_len = 0; 23376: throw; 23376: } 23376: } 23376: 23376: 23376: } 23376: # 63 "/usr/include/c++/8/bits/stl_algo.h" 2 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/uniform_int_dist.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: namespace __detail 23376: { 23376: 23376: template 23376: inline bool 23376: _Power_of_2(_Tp __x) 23376: { 23376: return ((__x - 1) & __x) == 0; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: class uniform_int_distribution 23376: { 23376: static_assert(std::is_integral<_IntType>::value, 23376: "template argument must be an integral type"); 23376: 23376: public: 23376: 23376: typedef _IntType result_type; 23376: 23376: struct param_type 23376: { 23376: typedef uniform_int_distribution<_IntType> distribution_type; 23376: 23376: explicit 23376: param_type(_IntType __a = 0, 23376: _IntType __b = std::numeric_limits<_IntType>::max()) 23376: : _M_a(__a), _M_b(__b) 23376: { 23376: ; 23376: } 23376: 23376: result_type 23376: a() const 23376: { return _M_a; } 23376: 23376: result_type 23376: b() const 23376: { return _M_b; } 23376: 23376: friend bool 23376: operator==(const param_type& __p1, const param_type& __p2) 23376: { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } 23376: 23376: friend bool 23376: operator!=(const param_type& __p1, const param_type& __p2) 23376: { return !(__p1 == __p2); } 23376: 23376: private: 23376: _IntType _M_a; 23376: _IntType _M_b; 23376: }; 23376: 23376: public: 23376: 23376: 23376: 23376: explicit 23376: uniform_int_distribution(_IntType __a = 0, 23376: _IntType __b = std::numeric_limits<_IntType>::max()) 23376: : _M_param(__a, __b) 23376: { } 23376: 23376: explicit 23376: uniform_int_distribution(const param_type& __p) 23376: : _M_param(__p) 23376: { } 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: reset() { } 23376: 23376: result_type 23376: a() const 23376: { return _M_param.a(); } 23376: 23376: result_type 23376: b() const 23376: { return _M_param.b(); } 23376: 23376: 23376: 23376: 23376: param_type 23376: param() const 23376: { return _M_param; } 23376: 23376: 23376: 23376: 23376: 23376: void 23376: param(const param_type& __param) 23376: { _M_param = __param; } 23376: 23376: 23376: 23376: 23376: result_type 23376: min() const 23376: { return this->a(); } 23376: 23376: 23376: 23376: 23376: result_type 23376: max() const 23376: { return this->b(); } 23376: 23376: 23376: 23376: 23376: template 23376: result_type 23376: operator()(_UniformRandomNumberGenerator& __urng) 23376: { return this->operator()(__urng, _M_param); } 23376: 23376: template 23376: result_type 23376: operator()(_UniformRandomNumberGenerator& __urng, 23376: const param_type& __p); 23376: 23376: template 23376: void 23376: __generate(_ForwardIterator __f, _ForwardIterator __t, 23376: _UniformRandomNumberGenerator& __urng) 23376: { this->__generate(__f, __t, __urng, _M_param); } 23376: 23376: template 23376: void 23376: __generate(_ForwardIterator __f, _ForwardIterator __t, 23376: _UniformRandomNumberGenerator& __urng, 23376: const param_type& __p) 23376: { this->__generate_impl(__f, __t, __urng, __p); } 23376: 23376: template 23376: void 23376: __generate(result_type* __f, result_type* __t, 23376: _UniformRandomNumberGenerator& __urng, 23376: const param_type& __p) 23376: { this->__generate_impl(__f, __t, __urng, __p); } 23376: 23376: 23376: 23376: 23376: 23376: friend bool 23376: operator==(const uniform_int_distribution& __d1, 23376: const uniform_int_distribution& __d2) 23376: { return __d1._M_param == __d2._M_param; } 23376: 23376: private: 23376: template 23376: void 23376: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 23376: _UniformRandomNumberGenerator& __urng, 23376: const param_type& __p); 23376: 23376: param_type _M_param; 23376: }; 23376: 23376: template 23376: template 23376: typename uniform_int_distribution<_IntType>::result_type 23376: uniform_int_distribution<_IntType>:: 23376: operator()(_UniformRandomNumberGenerator& __urng, 23376: const param_type& __param) 23376: { 23376: typedef typename _UniformRandomNumberGenerator::result_type 23376: _Gresult_type; 23376: typedef typename std::make_unsigned::type __utype; 23376: typedef typename std::common_type<_Gresult_type, __utype>::type 23376: __uctype; 23376: 23376: const __uctype __urngmin = __urng.min(); 23376: const __uctype __urngmax = __urng.max(); 23376: const __uctype __urngrange = __urngmax - __urngmin; 23376: const __uctype __urange 23376: = __uctype(__param.b()) - __uctype(__param.a()); 23376: 23376: __uctype __ret; 23376: 23376: if (__urngrange > __urange) 23376: { 23376: 23376: const __uctype __uerange = __urange + 1; 23376: const __uctype __scaling = __urngrange / __uerange; 23376: const __uctype __past = __uerange * __scaling; 23376: do 23376: __ret = __uctype(__urng()) - __urngmin; 23376: while (__ret >= __past); 23376: __ret /= __scaling; 23376: } 23376: else if (__urngrange < __urange) 23376: { 23376: # 264 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 23376: __uctype __tmp; 23376: do 23376: { 23376: const __uctype __uerngrange = __urngrange + 1; 23376: __tmp = (__uerngrange * operator() 23376: (__urng, param_type(0, __urange / __uerngrange))); 23376: __ret = __tmp + (__uctype(__urng()) - __urngmin); 23376: } 23376: while (__ret > __urange || __ret < __tmp); 23376: } 23376: else 23376: __ret = __uctype(__urng()) - __urngmin; 23376: 23376: return __ret + __param.a(); 23376: } 23376: 23376: 23376: template 23376: template 23376: void 23376: uniform_int_distribution<_IntType>:: 23376: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 23376: _UniformRandomNumberGenerator& __urng, 23376: const param_type& __param) 23376: { 23376: 23376: typedef typename _UniformRandomNumberGenerator::result_type 23376: _Gresult_type; 23376: typedef typename std::make_unsigned::type __utype; 23376: typedef typename std::common_type<_Gresult_type, __utype>::type 23376: __uctype; 23376: 23376: const __uctype __urngmin = __urng.min(); 23376: const __uctype __urngmax = __urng.max(); 23376: const __uctype __urngrange = __urngmax - __urngmin; 23376: const __uctype __urange 23376: = __uctype(__param.b()) - __uctype(__param.a()); 23376: 23376: __uctype __ret; 23376: 23376: if (__urngrange > __urange) 23376: { 23376: if (__detail::_Power_of_2(__urngrange + 1) 23376: && __detail::_Power_of_2(__urange + 1)) 23376: { 23376: while (__f != __t) 23376: { 23376: __ret = __uctype(__urng()) - __urngmin; 23376: *__f++ = (__ret & __urange) + __param.a(); 23376: } 23376: } 23376: else 23376: { 23376: 23376: const __uctype __uerange = __urange + 1; 23376: const __uctype __scaling = __urngrange / __uerange; 23376: const __uctype __past = __uerange * __scaling; 23376: while (__f != __t) 23376: { 23376: do 23376: __ret = __uctype(__urng()) - __urngmin; 23376: while (__ret >= __past); 23376: *__f++ = __ret / __scaling + __param.a(); 23376: } 23376: } 23376: } 23376: else if (__urngrange < __urange) 23376: { 23376: # 348 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 23376: __uctype __tmp; 23376: while (__f != __t) 23376: { 23376: do 23376: { 23376: const __uctype __uerngrange = __urngrange + 1; 23376: __tmp = (__uerngrange * operator() 23376: (__urng, param_type(0, __urange / __uerngrange))); 23376: __ret = __tmp + (__uctype(__urng()) - __urngmin); 23376: } 23376: while (__ret > __urange || __ret < __tmp); 23376: *__f++ = __ret; 23376: } 23376: } 23376: else 23376: while (__f != __t) 23376: *__f++ = __uctype(__urng()) - __urngmin + __param.a(); 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: # 67 "/usr/include/c++/8/bits/stl_algo.h" 2 3 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: void 23376: __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, 23376: _Iterator __c, _Compare __comp) 23376: { 23376: if (__comp(__a, __b)) 23376: { 23376: if (__comp(__b, __c)) 23376: std::iter_swap(__result, __b); 23376: else if (__comp(__a, __c)) 23376: std::iter_swap(__result, __c); 23376: else 23376: std::iter_swap(__result, __a); 23376: } 23376: else if (__comp(__a, __c)) 23376: std::iter_swap(__result, __a); 23376: else if (__comp(__b, __c)) 23376: std::iter_swap(__result, __c); 23376: else 23376: std::iter_swap(__result, __b); 23376: } 23376: 23376: 23376: template 23376: inline _InputIterator 23376: __find_if(_InputIterator __first, _InputIterator __last, 23376: _Predicate __pred, input_iterator_tag) 23376: { 23376: while (__first != __last && !__pred(__first)) 23376: ++__first; 23376: return __first; 23376: } 23376: 23376: 23376: template 23376: _RandomAccessIterator 23376: __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Predicate __pred, random_access_iterator_tag) 23376: { 23376: typename iterator_traits<_RandomAccessIterator>::difference_type 23376: __trip_count = (__last - __first) >> 2; 23376: 23376: for (; __trip_count > 0; --__trip_count) 23376: { 23376: if (__pred(__first)) 23376: return __first; 23376: ++__first; 23376: 23376: if (__pred(__first)) 23376: return __first; 23376: ++__first; 23376: 23376: if (__pred(__first)) 23376: return __first; 23376: ++__first; 23376: 23376: if (__pred(__first)) 23376: return __first; 23376: ++__first; 23376: } 23376: 23376: switch (__last - __first) 23376: { 23376: case 3: 23376: if (__pred(__first)) 23376: return __first; 23376: ++__first; 23376: case 2: 23376: if (__pred(__first)) 23376: return __first; 23376: ++__first; 23376: case 1: 23376: if (__pred(__first)) 23376: return __first; 23376: ++__first; 23376: case 0: 23376: default: 23376: return __last; 23376: } 23376: } 23376: 23376: template 23376: inline _Iterator 23376: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 23376: { 23376: return __find_if(__first, __last, __pred, 23376: std::__iterator_category(__first)); 23376: } 23376: 23376: 23376: template 23376: inline _InputIterator 23376: __find_if_not(_InputIterator __first, _InputIterator __last, 23376: _Predicate __pred) 23376: { 23376: return std::__find_if(__first, __last, 23376: __gnu_cxx::__ops::__negate(__pred), 23376: std::__iterator_category(__first)); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: _InputIterator 23376: __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) 23376: { 23376: for (; __len; --__len, (void) ++__first) 23376: if (!__pred(__first)) 23376: break; 23376: return __first; 23376: } 23376: # 202 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _ForwardIterator1 23376: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 23376: _BinaryPredicate __predicate) 23376: { 23376: 23376: if (__first1 == __last1 || __first2 == __last2) 23376: return __first1; 23376: 23376: 23376: _ForwardIterator2 __p1(__first2); 23376: if (++__p1 == __last2) 23376: return std::__find_if(__first1, __last1, 23376: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 23376: 23376: 23376: _ForwardIterator2 __p; 23376: _ForwardIterator1 __current = __first1; 23376: 23376: for (;;) 23376: { 23376: __first1 = 23376: std::__find_if(__first1, __last1, 23376: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 23376: 23376: if (__first1 == __last1) 23376: return __last1; 23376: 23376: __p = __p1; 23376: __current = __first1; 23376: if (++__current == __last1) 23376: return __last1; 23376: 23376: while (__predicate(__current, __p)) 23376: { 23376: if (++__p == __last2) 23376: return __first1; 23376: if (++__current == __last1) 23376: return __last1; 23376: } 23376: ++__first1; 23376: } 23376: return __first1; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _ForwardIterator 23376: __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, 23376: _Integer __count, _UnaryPredicate __unary_pred, 23376: std::forward_iterator_tag) 23376: { 23376: __first = std::__find_if(__first, __last, __unary_pred); 23376: while (__first != __last) 23376: { 23376: typename iterator_traits<_ForwardIterator>::difference_type 23376: __n = __count; 23376: _ForwardIterator __i = __first; 23376: ++__i; 23376: while (__i != __last && __n != 1 && __unary_pred(__i)) 23376: { 23376: ++__i; 23376: --__n; 23376: } 23376: if (__n == 1) 23376: return __first; 23376: if (__i == __last) 23376: return __last; 23376: __first = std::__find_if(++__i, __last, __unary_pred); 23376: } 23376: return __last; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _RandomAccessIter 23376: __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, 23376: _Integer __count, _UnaryPredicate __unary_pred, 23376: std::random_access_iterator_tag) 23376: { 23376: typedef typename std::iterator_traits<_RandomAccessIter>::difference_type 23376: _DistanceType; 23376: 23376: _DistanceType __tailSize = __last - __first; 23376: _DistanceType __remainder = __count; 23376: 23376: while (__remainder <= __tailSize) 23376: { 23376: __first += __remainder; 23376: __tailSize -= __remainder; 23376: 23376: 23376: _RandomAccessIter __backTrack = __first; 23376: while (__unary_pred(--__backTrack)) 23376: { 23376: if (--__remainder == 0) 23376: return (__first - __count); 23376: } 23376: __remainder = __count + 1 - (__first - __backTrack); 23376: } 23376: return __last; 23376: } 23376: 23376: template 23376: _ForwardIterator 23376: __search_n(_ForwardIterator __first, _ForwardIterator __last, 23376: _Integer __count, 23376: _UnaryPredicate __unary_pred) 23376: { 23376: if (__count <= 0) 23376: return __first; 23376: 23376: if (__count == 1) 23376: return std::__find_if(__first, __last, __unary_pred); 23376: 23376: return std::__search_n_aux(__first, __last, __count, __unary_pred, 23376: std::__iterator_category(__first)); 23376: } 23376: 23376: 23376: template 23376: _ForwardIterator1 23376: __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 23376: forward_iterator_tag, forward_iterator_tag, 23376: _BinaryPredicate __comp) 23376: { 23376: if (__first2 == __last2) 23376: return __last1; 23376: 23376: _ForwardIterator1 __result = __last1; 23376: while (1) 23376: { 23376: _ForwardIterator1 __new_result 23376: = std::__search(__first1, __last1, __first2, __last2, __comp); 23376: if (__new_result == __last1) 23376: return __result; 23376: else 23376: { 23376: __result = __new_result; 23376: __first1 = __new_result; 23376: ++__first1; 23376: } 23376: } 23376: } 23376: 23376: 23376: template 23376: _BidirectionalIterator1 23376: __find_end(_BidirectionalIterator1 __first1, 23376: _BidirectionalIterator1 __last1, 23376: _BidirectionalIterator2 __first2, 23376: _BidirectionalIterator2 __last2, 23376: bidirectional_iterator_tag, bidirectional_iterator_tag, 23376: _BinaryPredicate __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; 23376: typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; 23376: 23376: _RevIterator1 __rlast1(__first1); 23376: _RevIterator2 __rlast2(__first2); 23376: _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, 23376: _RevIterator2(__last2), __rlast2, 23376: __comp); 23376: 23376: if (__rresult == __rlast1) 23376: return __last1; 23376: else 23376: { 23376: _BidirectionalIterator1 __result = __rresult.base(); 23376: std::advance(__result, -std::distance(__first2, __last2)); 23376: return __result; 23376: } 23376: } 23376: # 423 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator1 23376: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__find_end(__first1, __last1, __first2, __last2, 23376: std::__iterator_category(__first1), 23376: std::__iterator_category(__first2), 23376: __gnu_cxx::__ops::__iter_equal_to_iter()); 23376: } 23376: # 471 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator1 23376: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 23376: _BinaryPredicate __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__find_end(__first1, __last1, __first2, __last2, 23376: std::__iterator_category(__first1), 23376: std::__iterator_category(__first2), 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: # 506 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 23376: { return __last == std::find_if_not(__first, __last, __pred); } 23376: # 523 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 23376: { return __last == std::find_if(__first, __last, __pred); } 23376: # 541 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 23376: { return !std::none_of(__first, __last, __pred); } 23376: # 556 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _InputIterator 23376: find_if_not(_InputIterator __first, _InputIterator __last, 23376: _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: return std::__find_if_not(__first, __last, 23376: __gnu_cxx::__ops::__pred_iter(__pred)); 23376: } 23376: # 580 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: is_partitioned(_InputIterator __first, _InputIterator __last, 23376: _Predicate __pred) 23376: { 23376: __first = std::find_if_not(__first, __last, __pred); 23376: if (__first == __last) 23376: return true; 23376: ++__first; 23376: return std::none_of(__first, __last, __pred); 23376: } 23376: # 601 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _ForwardIterator 23376: partition_point(_ForwardIterator __first, _ForwardIterator __last, 23376: _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: typedef typename iterator_traits<_ForwardIterator>::difference_type 23376: _DistanceType; 23376: 23376: _DistanceType __len = std::distance(__first, __last); 23376: _DistanceType __half; 23376: _ForwardIterator __middle; 23376: 23376: while (__len > 0) 23376: { 23376: __half = __len >> 1; 23376: __middle = __first; 23376: std::advance(__middle, __half); 23376: if (__pred(*__middle)) 23376: { 23376: __first = __middle; 23376: ++__first; 23376: __len = __len - __half - 1; 23376: } 23376: else 23376: __len = __half; 23376: } 23376: return __first; 23376: } 23376: 23376: 23376: template 23376: _OutputIterator 23376: __remove_copy_if(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, _Predicate __pred) 23376: { 23376: for (; __first != __last; ++__first) 23376: if (!__pred(__first)) 23376: { 23376: *__result = *__first; 23376: ++__result; 23376: } 23376: return __result; 23376: } 23376: # 668 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: remove_copy(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, const _Tp& __value) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__remove_copy_if(__first, __last, __result, 23376: __gnu_cxx::__ops::__iter_equals_val(__value)); 23376: } 23376: # 700 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: remove_copy_if(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__remove_copy_if(__first, __last, __result, 23376: __gnu_cxx::__ops::__pred_iter(__pred)); 23376: } 23376: # 734 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _OutputIterator 23376: copy_if(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: for (; __first != __last; ++__first) 23376: if (__pred(*__first)) 23376: { 23376: *__result = *__first; 23376: ++__result; 23376: } 23376: return __result; 23376: } 23376: 23376: template 23376: _OutputIterator 23376: __copy_n(_InputIterator __first, _Size __n, 23376: _OutputIterator __result, input_iterator_tag) 23376: { 23376: if (__n > 0) 23376: { 23376: while (true) 23376: { 23376: *__result = *__first; 23376: ++__result; 23376: if (--__n > 0) 23376: ++__first; 23376: else 23376: break; 23376: } 23376: } 23376: return __result; 23376: } 23376: 23376: template 23376: inline _OutputIterator 23376: __copy_n(_RandomAccessIterator __first, _Size __n, 23376: _OutputIterator __result, random_access_iterator_tag) 23376: { return std::copy(__first, __first + __n, __result); } 23376: # 797 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: return std::__copy_n(__first, __n, __result, 23376: std::__iterator_category(__first)); 23376: } 23376: # 825 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: pair<_OutputIterator1, _OutputIterator2> 23376: partition_copy(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator1 __out_true, _OutputIterator2 __out_false, 23376: _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: for (; __first != __last; ++__first) 23376: if (__pred(*__first)) 23376: { 23376: *__out_true = *__first; 23376: ++__out_true; 23376: } 23376: else 23376: { 23376: *__out_false = *__first; 23376: ++__out_false; 23376: } 23376: 23376: return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); 23376: } 23376: 23376: 23376: template 23376: _ForwardIterator 23376: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 23376: _Predicate __pred) 23376: { 23376: __first = std::__find_if(__first, __last, __pred); 23376: if (__first == __last) 23376: return __first; 23376: _ForwardIterator __result = __first; 23376: ++__first; 23376: for (; __first != __last; ++__first) 23376: if (!__pred(__first)) 23376: { 23376: *__result = std::move(*__first); 23376: ++__result; 23376: } 23376: return __result; 23376: } 23376: # 894 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: remove(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __value) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__remove_if(__first, __last, 23376: __gnu_cxx::__ops::__iter_equals_val(__value)); 23376: } 23376: # 927 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: remove_if(_ForwardIterator __first, _ForwardIterator __last, 23376: _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__remove_if(__first, __last, 23376: __gnu_cxx::__ops::__pred_iter(__pred)); 23376: } 23376: 23376: template 23376: _ForwardIterator 23376: __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 23376: _BinaryPredicate __binary_pred) 23376: { 23376: if (__first == __last) 23376: return __last; 23376: _ForwardIterator __next = __first; 23376: while (++__next != __last) 23376: { 23376: if (__binary_pred(__first, __next)) 23376: return __first; 23376: __first = __next; 23376: } 23376: return __last; 23376: } 23376: 23376: template 23376: _ForwardIterator 23376: __unique(_ForwardIterator __first, _ForwardIterator __last, 23376: _BinaryPredicate __binary_pred) 23376: { 23376: 23376: __first = std::__adjacent_find(__first, __last, __binary_pred); 23376: if (__first == __last) 23376: return __last; 23376: 23376: 23376: _ForwardIterator __dest = __first; 23376: ++__first; 23376: while (++__first != __last) 23376: if (!__binary_pred(__dest, __first)) 23376: *++__dest = std::move(*__first); 23376: return ++__dest; 23376: } 23376: # 993 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: unique(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__unique(__first, __last, 23376: __gnu_cxx::__ops::__iter_equal_to_iter()); 23376: } 23376: # 1023 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: unique(_ForwardIterator __first, _ForwardIterator __last, 23376: _BinaryPredicate __binary_pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__unique(__first, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _OutputIterator 23376: __unique_copy(_ForwardIterator __first, _ForwardIterator __last, 23376: _OutputIterator __result, _BinaryPredicate __binary_pred, 23376: forward_iterator_tag, output_iterator_tag) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: _ForwardIterator __next = __first; 23376: *__result = *__first; 23376: while (++__next != __last) 23376: if (!__binary_pred(__first, __next)) 23376: { 23376: __first = __next; 23376: *++__result = *__first; 23376: } 23376: return ++__result; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _OutputIterator 23376: __unique_copy(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, _BinaryPredicate __binary_pred, 23376: input_iterator_tag, output_iterator_tag) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: typename iterator_traits<_InputIterator>::value_type __value = *__first; 23376: __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) 23376: __rebound_pred 23376: = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); 23376: *__result = __value; 23376: while (++__first != __last) 23376: if (!__rebound_pred(__first, __value)) 23376: { 23376: __value = *__first; 23376: *++__result = __value; 23376: } 23376: return ++__result; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _ForwardIterator 23376: __unique_copy(_InputIterator __first, _InputIterator __last, 23376: _ForwardIterator __result, _BinaryPredicate __binary_pred, 23376: input_iterator_tag, forward_iterator_tag) 23376: { 23376: 23376: 23376: 23376: 23376: *__result = *__first; 23376: while (++__first != __last) 23376: if (!__binary_pred(__result, __first)) 23376: *++__result = *__first; 23376: return ++__result; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, 23376: bidirectional_iterator_tag) 23376: { 23376: while (true) 23376: if (__first == __last || __first == --__last) 23376: return; 23376: else 23376: { 23376: std::iter_swap(__first, __last); 23376: ++__first; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: random_access_iterator_tag) 23376: { 23376: if (__first == __last) 23376: return; 23376: --__last; 23376: while (__first < __last) 23376: { 23376: std::iter_swap(__first, __last); 23376: ++__first; 23376: --__last; 23376: } 23376: } 23376: # 1178 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) 23376: { 23376: 23376: 23376: 23376: ; 23376: std::__reverse(__first, __last, std::__iterator_category(__first)); 23376: } 23376: # 1205 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _OutputIterator 23376: reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, 23376: _OutputIterator __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: while (__first != __last) 23376: { 23376: --__last; 23376: *__result = *__last; 23376: ++__result; 23376: } 23376: return __result; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _EuclideanRingElement 23376: __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) 23376: { 23376: while (__n != 0) 23376: { 23376: _EuclideanRingElement __t = __m % __n; 23376: __m = __n; 23376: __n = __t; 23376: } 23376: return __m; 23376: } 23376: 23376: inline namespace _V2 23376: { 23376: 23376: 23376: template 23376: _ForwardIterator 23376: __rotate(_ForwardIterator __first, 23376: _ForwardIterator __middle, 23376: _ForwardIterator __last, 23376: forward_iterator_tag) 23376: { 23376: if (__first == __middle) 23376: return __last; 23376: else if (__last == __middle) 23376: return __first; 23376: 23376: _ForwardIterator __first2 = __middle; 23376: do 23376: { 23376: std::iter_swap(__first, __first2); 23376: ++__first; 23376: ++__first2; 23376: if (__first == __middle) 23376: __middle = __first2; 23376: } 23376: while (__first2 != __last); 23376: 23376: _ForwardIterator __ret = __first; 23376: 23376: __first2 = __middle; 23376: 23376: while (__first2 != __last) 23376: { 23376: std::iter_swap(__first, __first2); 23376: ++__first; 23376: ++__first2; 23376: if (__first == __middle) 23376: __middle = __first2; 23376: else if (__first2 == __last) 23376: __first2 = __middle; 23376: } 23376: return __ret; 23376: } 23376: 23376: 23376: template 23376: _BidirectionalIterator 23376: __rotate(_BidirectionalIterator __first, 23376: _BidirectionalIterator __middle, 23376: _BidirectionalIterator __last, 23376: bidirectional_iterator_tag) 23376: { 23376: 23376: 23376: 23376: 23376: if (__first == __middle) 23376: return __last; 23376: else if (__last == __middle) 23376: return __first; 23376: 23376: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 23376: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 23376: 23376: while (__first != __middle && __middle != __last) 23376: { 23376: std::iter_swap(__first, --__last); 23376: ++__first; 23376: } 23376: 23376: if (__first == __middle) 23376: { 23376: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 23376: return __last; 23376: } 23376: else 23376: { 23376: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 23376: return __first; 23376: } 23376: } 23376: 23376: 23376: template 23376: _RandomAccessIterator 23376: __rotate(_RandomAccessIterator __first, 23376: _RandomAccessIterator __middle, 23376: _RandomAccessIterator __last, 23376: random_access_iterator_tag) 23376: { 23376: 23376: 23376: 23376: 23376: if (__first == __middle) 23376: return __last; 23376: else if (__last == __middle) 23376: return __first; 23376: 23376: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 23376: _Distance; 23376: typedef typename iterator_traits<_RandomAccessIterator>::value_type 23376: _ValueType; 23376: 23376: _Distance __n = __last - __first; 23376: _Distance __k = __middle - __first; 23376: 23376: if (__k == __n - __k) 23376: { 23376: std::swap_ranges(__first, __middle, __middle); 23376: return __middle; 23376: } 23376: 23376: _RandomAccessIterator __p = __first; 23376: _RandomAccessIterator __ret = __first + (__last - __middle); 23376: 23376: for (;;) 23376: { 23376: if (__k < __n - __k) 23376: { 23376: if (__is_pod(_ValueType) && __k == 1) 23376: { 23376: _ValueType __t = std::move(*__p); 23376: std::move(__p + 1, __p + __n, __p); 23376: *(__p + __n - 1) = std::move(__t); 23376: return __ret; 23376: } 23376: _RandomAccessIterator __q = __p + __k; 23376: for (_Distance __i = 0; __i < __n - __k; ++ __i) 23376: { 23376: std::iter_swap(__p, __q); 23376: ++__p; 23376: ++__q; 23376: } 23376: __n %= __k; 23376: if (__n == 0) 23376: return __ret; 23376: std::swap(__n, __k); 23376: __k = __n - __k; 23376: } 23376: else 23376: { 23376: __k = __n - __k; 23376: if (__is_pod(_ValueType) && __k == 1) 23376: { 23376: _ValueType __t = std::move(*(__p + __n - 1)); 23376: std::move_backward(__p, __p + __n - 1, __p + __n); 23376: *__p = std::move(__t); 23376: return __ret; 23376: } 23376: _RandomAccessIterator __q = __p + __n; 23376: __p = __q - __k; 23376: for (_Distance __i = 0; __i < __n - __k; ++ __i) 23376: { 23376: --__p; 23376: --__q; 23376: std::iter_swap(__p, __q); 23376: } 23376: __n %= __k; 23376: if (__n == 0) 23376: return __ret; 23376: std::swap(__n, __k); 23376: } 23376: } 23376: } 23376: # 1432 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: rotate(_ForwardIterator __first, _ForwardIterator __middle, 23376: _ForwardIterator __last) 23376: { 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__rotate(__first, __middle, __last, 23376: std::__iterator_category(__first)); 23376: } 23376: 23376: } 23376: # 1469 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, 23376: _ForwardIterator __last, _OutputIterator __result) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::copy(__first, __middle, 23376: std::copy(__middle, __last, __result)); 23376: } 23376: 23376: 23376: template 23376: _ForwardIterator 23376: __partition(_ForwardIterator __first, _ForwardIterator __last, 23376: _Predicate __pred, forward_iterator_tag) 23376: { 23376: if (__first == __last) 23376: return __first; 23376: 23376: while (__pred(*__first)) 23376: if (++__first == __last) 23376: return __first; 23376: 23376: _ForwardIterator __next = __first; 23376: 23376: while (++__next != __last) 23376: if (__pred(*__next)) 23376: { 23376: std::iter_swap(__first, __next); 23376: ++__first; 23376: } 23376: 23376: return __first; 23376: } 23376: 23376: 23376: template 23376: _BidirectionalIterator 23376: __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, 23376: _Predicate __pred, bidirectional_iterator_tag) 23376: { 23376: while (true) 23376: { 23376: while (true) 23376: if (__first == __last) 23376: return __first; 23376: else if (__pred(*__first)) 23376: ++__first; 23376: else 23376: break; 23376: --__last; 23376: while (true) 23376: if (__first == __last) 23376: return __first; 23376: else if (!bool(__pred(*__last))) 23376: --__last; 23376: else 23376: break; 23376: std::iter_swap(__first, __last); 23376: ++__first; 23376: } 23376: } 23376: # 1546 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _ForwardIterator 23376: __stable_partition_adaptive(_ForwardIterator __first, 23376: _ForwardIterator __last, 23376: _Predicate __pred, _Distance __len, 23376: _Pointer __buffer, 23376: _Distance __buffer_size) 23376: { 23376: if (__len == 1) 23376: return __first; 23376: 23376: if (__len <= __buffer_size) 23376: { 23376: _ForwardIterator __result1 = __first; 23376: _Pointer __result2 = __buffer; 23376: 23376: 23376: 23376: 23376: *__result2 = std::move(*__first); 23376: ++__result2; 23376: ++__first; 23376: for (; __first != __last; ++__first) 23376: if (__pred(__first)) 23376: { 23376: *__result1 = std::move(*__first); 23376: ++__result1; 23376: } 23376: else 23376: { 23376: *__result2 = std::move(*__first); 23376: ++__result2; 23376: } 23376: 23376: std::move(__buffer, __result2, __result1); 23376: return __result1; 23376: } 23376: 23376: _ForwardIterator __middle = __first; 23376: std::advance(__middle, __len / 2); 23376: _ForwardIterator __left_split = 23376: std::__stable_partition_adaptive(__first, __middle, __pred, 23376: __len / 2, __buffer, 23376: __buffer_size); 23376: 23376: 23376: 23376: _Distance __right_len = __len - __len / 2; 23376: _ForwardIterator __right_split = 23376: std::__find_if_not_n(__middle, __right_len, __pred); 23376: 23376: if (__right_len) 23376: __right_split = 23376: std::__stable_partition_adaptive(__right_split, __last, __pred, 23376: __right_len, 23376: __buffer, __buffer_size); 23376: 23376: std::rotate(__left_split, __middle, __right_split); 23376: std::advance(__left_split, std::distance(__middle, __right_split)); 23376: return __left_split; 23376: } 23376: 23376: template 23376: _ForwardIterator 23376: __stable_partition(_ForwardIterator __first, _ForwardIterator __last, 23376: _Predicate __pred) 23376: { 23376: __first = std::__find_if_not(__first, __last, __pred); 23376: 23376: if (__first == __last) 23376: return __first; 23376: 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType; 23376: typedef typename iterator_traits<_ForwardIterator>::difference_type 23376: _DistanceType; 23376: 23376: _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last); 23376: return 23376: std::__stable_partition_adaptive(__first, __last, __pred, 23376: _DistanceType(__buf.requested_size()), 23376: __buf.begin(), 23376: _DistanceType(__buf.size())); 23376: } 23376: # 1649 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: stable_partition(_ForwardIterator __first, _ForwardIterator __last, 23376: _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__stable_partition(__first, __last, 23376: __gnu_cxx::__ops::__pred_iter(__pred)); 23376: } 23376: 23376: 23376: template 23376: void 23376: __heap_select(_RandomAccessIterator __first, 23376: _RandomAccessIterator __middle, 23376: _RandomAccessIterator __last, _Compare __comp) 23376: { 23376: std::__make_heap(__first, __middle, __comp); 23376: for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) 23376: if (__comp(__i, __first)) 23376: std::__pop_heap(__first, __middle, __i, __comp); 23376: } 23376: 23376: 23376: 23376: template 23376: _RandomAccessIterator 23376: __partial_sort_copy(_InputIterator __first, _InputIterator __last, 23376: _RandomAccessIterator __result_first, 23376: _RandomAccessIterator __result_last, 23376: _Compare __comp) 23376: { 23376: typedef typename iterator_traits<_InputIterator>::value_type 23376: _InputValueType; 23376: typedef iterator_traits<_RandomAccessIterator> _RItTraits; 23376: typedef typename _RItTraits::difference_type _DistanceType; 23376: 23376: if (__result_first == __result_last) 23376: return __result_last; 23376: _RandomAccessIterator __result_real_last = __result_first; 23376: while (__first != __last && __result_real_last != __result_last) 23376: { 23376: *__result_real_last = *__first; 23376: ++__result_real_last; 23376: ++__first; 23376: } 23376: 23376: std::__make_heap(__result_first, __result_real_last, __comp); 23376: while (__first != __last) 23376: { 23376: if (__comp(__first, __result_first)) 23376: std::__adjust_heap(__result_first, _DistanceType(0), 23376: _DistanceType(__result_real_last 23376: - __result_first), 23376: _InputValueType(*__first), __comp); 23376: ++__first; 23376: } 23376: std::__sort_heap(__result_first, __result_real_last, __comp); 23376: return __result_real_last; 23376: } 23376: # 1735 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _RandomAccessIterator 23376: partial_sort_copy(_InputIterator __first, _InputIterator __last, 23376: _RandomAccessIterator __result_first, 23376: _RandomAccessIterator __result_last) 23376: { 23376: # 1749 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__partial_sort_copy(__first, __last, 23376: __result_first, __result_last, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 1784 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _RandomAccessIterator 23376: partial_sort_copy(_InputIterator __first, _InputIterator __last, 23376: _RandomAccessIterator __result_first, 23376: _RandomAccessIterator __result_last, 23376: _Compare __comp) 23376: { 23376: # 1800 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__partial_sort_copy(__first, __last, 23376: __result_first, __result_last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: 23376: template 23376: void 23376: __unguarded_linear_insert(_RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: typename iterator_traits<_RandomAccessIterator>::value_type 23376: __val = std::move(*__last); 23376: _RandomAccessIterator __next = __last; 23376: --__next; 23376: while (__comp(__val, __next)) 23376: { 23376: *__last = std::move(*__next); 23376: __last = __next; 23376: --__next; 23376: } 23376: *__last = std::move(__val); 23376: } 23376: 23376: 23376: template 23376: void 23376: __insertion_sort(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, _Compare __comp) 23376: { 23376: if (__first == __last) return; 23376: 23376: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 23376: { 23376: if (__comp(__i, __first)) 23376: { 23376: typename iterator_traits<_RandomAccessIterator>::value_type 23376: __val = std::move(*__i); 23376: std::move_backward(__first, __i, __i + 1); 23376: *__first = std::move(__val); 23376: } 23376: else 23376: std::__unguarded_linear_insert(__i, 23376: __gnu_cxx::__ops::__val_comp_iter(__comp)); 23376: } 23376: } 23376: 23376: 23376: template 23376: inline void 23376: __unguarded_insertion_sort(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, _Compare __comp) 23376: { 23376: for (_RandomAccessIterator __i = __first; __i != __last; ++__i) 23376: std::__unguarded_linear_insert(__i, 23376: __gnu_cxx::__ops::__val_comp_iter(__comp)); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: enum { _S_threshold = 16 }; 23376: 23376: 23376: template 23376: void 23376: __final_insertion_sort(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, _Compare __comp) 23376: { 23376: if (__last - __first > int(_S_threshold)) 23376: { 23376: std::__insertion_sort(__first, __first + int(_S_threshold), __comp); 23376: std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, 23376: __comp); 23376: } 23376: else 23376: std::__insertion_sort(__first, __last, __comp); 23376: } 23376: 23376: 23376: template 23376: _RandomAccessIterator 23376: __unguarded_partition(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, 23376: _RandomAccessIterator __pivot, _Compare __comp) 23376: { 23376: while (true) 23376: { 23376: while (__comp(__first, __pivot)) 23376: ++__first; 23376: --__last; 23376: while (__comp(__pivot, __last)) 23376: --__last; 23376: if (!(__first < __last)) 23376: return __first; 23376: std::iter_swap(__first, __last); 23376: ++__first; 23376: } 23376: } 23376: 23376: 23376: template 23376: inline _RandomAccessIterator 23376: __unguarded_partition_pivot(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, _Compare __comp) 23376: { 23376: _RandomAccessIterator __mid = __first + (__last - __first) / 2; 23376: std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, 23376: __comp); 23376: return std::__unguarded_partition(__first + 1, __last, __first, __comp); 23376: } 23376: 23376: template 23376: inline void 23376: __partial_sort(_RandomAccessIterator __first, 23376: _RandomAccessIterator __middle, 23376: _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: std::__heap_select(__first, __middle, __last, __comp); 23376: std::__sort_heap(__first, __middle, __comp); 23376: } 23376: 23376: 23376: template 23376: void 23376: __introsort_loop(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, 23376: _Size __depth_limit, _Compare __comp) 23376: { 23376: while (__last - __first > int(_S_threshold)) 23376: { 23376: if (__depth_limit == 0) 23376: { 23376: std::__partial_sort(__first, __last, __last, __comp); 23376: return; 23376: } 23376: --__depth_limit; 23376: _RandomAccessIterator __cut = 23376: std::__unguarded_partition_pivot(__first, __last, __comp); 23376: std::__introsort_loop(__cut, __last, __depth_limit, __comp); 23376: __last = __cut; 23376: } 23376: } 23376: 23376: 23376: 23376: template 23376: inline void 23376: __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: if (__first != __last) 23376: { 23376: std::__introsort_loop(__first, __last, 23376: std::__lg(__last - __first) * 2, 23376: __comp); 23376: std::__final_insertion_sort(__first, __last, __comp); 23376: } 23376: } 23376: 23376: template 23376: void 23376: __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, 23376: _RandomAccessIterator __last, _Size __depth_limit, 23376: _Compare __comp) 23376: { 23376: while (__last - __first > 3) 23376: { 23376: if (__depth_limit == 0) 23376: { 23376: std::__heap_select(__first, __nth + 1, __last, __comp); 23376: 23376: std::iter_swap(__first, __nth); 23376: return; 23376: } 23376: --__depth_limit; 23376: _RandomAccessIterator __cut = 23376: std::__unguarded_partition_pivot(__first, __last, __comp); 23376: if (__cut <= __nth) 23376: __first = __cut; 23376: else 23376: __last = __cut; 23376: } 23376: std::__insertion_sort(__first, __last, __comp); 23376: } 23376: # 2021 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__lower_bound(__first, __last, __val, 23376: __gnu_cxx::__ops::__iter_comp_val(__comp)); 23376: } 23376: 23376: template 23376: _ForwardIterator 23376: __upper_bound(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val, _Compare __comp) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::difference_type 23376: _DistanceType; 23376: 23376: _DistanceType __len = std::distance(__first, __last); 23376: 23376: while (__len > 0) 23376: { 23376: _DistanceType __half = __len >> 1; 23376: _ForwardIterator __middle = __first; 23376: std::advance(__middle, __half); 23376: if (__comp(__val, __middle)) 23376: __len = __half; 23376: else 23376: { 23376: __first = __middle; 23376: ++__first; 23376: __len = __len - __half - 1; 23376: } 23376: } 23376: return __first; 23376: } 23376: # 2075 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__upper_bound(__first, __last, __val, 23376: __gnu_cxx::__ops::__val_less_iter()); 23376: } 23376: # 2105 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__upper_bound(__first, __last, __val, 23376: __gnu_cxx::__ops::__val_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: pair<_ForwardIterator, _ForwardIterator> 23376: __equal_range(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val, 23376: _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::difference_type 23376: _DistanceType; 23376: 23376: _DistanceType __len = std::distance(__first, __last); 23376: 23376: while (__len > 0) 23376: { 23376: _DistanceType __half = __len >> 1; 23376: _ForwardIterator __middle = __first; 23376: std::advance(__middle, __half); 23376: if (__comp_it_val(__middle, __val)) 23376: { 23376: __first = __middle; 23376: ++__first; 23376: __len = __len - __half - 1; 23376: } 23376: else if (__comp_val_it(__val, __middle)) 23376: __len = __half; 23376: else 23376: { 23376: _ForwardIterator __left 23376: = std::__lower_bound(__first, __middle, __val, __comp_it_val); 23376: std::advance(__first, __len); 23376: _ForwardIterator __right 23376: = std::__upper_bound(++__middle, __first, __val, __comp_val_it); 23376: return pair<_ForwardIterator, _ForwardIterator>(__left, __right); 23376: } 23376: } 23376: return pair<_ForwardIterator, _ForwardIterator>(__first, __first); 23376: } 23376: # 2176 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline pair<_ForwardIterator, _ForwardIterator> 23376: equal_range(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__equal_range(__first, __last, __val, 23376: __gnu_cxx::__ops::__iter_less_val(), 23376: __gnu_cxx::__ops::__val_less_iter()); 23376: } 23376: # 2212 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline pair<_ForwardIterator, _ForwardIterator> 23376: equal_range(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: ; 23376: 23376: return std::__equal_range(__first, __last, __val, 23376: __gnu_cxx::__ops::__iter_comp_val(__comp), 23376: __gnu_cxx::__ops::__val_comp_iter(__comp)); 23376: } 23376: # 2245 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: bool 23376: binary_search(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: _ForwardIterator __i 23376: = std::__lower_bound(__first, __last, __val, 23376: __gnu_cxx::__ops::__iter_less_val()); 23376: return __i != __last && !(__val < *__i); 23376: } 23376: # 2278 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: bool 23376: binary_search(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __val, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: ; 23376: 23376: _ForwardIterator __i 23376: = std::__lower_bound(__first, __last, __val, 23376: __gnu_cxx::__ops::__iter_comp_val(__comp)); 23376: return __i != __last && !bool(__comp(__val, *__i)); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: while (__first1 != __last1 && __first2 != __last2) 23376: { 23376: if (__comp(__first2, __first1)) 23376: { 23376: *__result = std::move(*__first2); 23376: ++__first2; 23376: } 23376: else 23376: { 23376: *__result = std::move(*__first1); 23376: ++__first1; 23376: } 23376: ++__result; 23376: } 23376: if (__first1 != __last1) 23376: std::move(__first1, __last1, __result); 23376: } 23376: 23376: 23376: template 23376: void 23376: __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, 23376: _BidirectionalIterator1 __last1, 23376: _BidirectionalIterator2 __first2, 23376: _BidirectionalIterator2 __last2, 23376: _BidirectionalIterator3 __result, 23376: _Compare __comp) 23376: { 23376: if (__first1 == __last1) 23376: { 23376: std::move_backward(__first2, __last2, __result); 23376: return; 23376: } 23376: else if (__first2 == __last2) 23376: return; 23376: 23376: --__last1; 23376: --__last2; 23376: while (true) 23376: { 23376: if (__comp(__last2, __last1)) 23376: { 23376: *--__result = std::move(*__last1); 23376: if (__first1 == __last1) 23376: { 23376: std::move_backward(__first2, ++__last2, __result); 23376: return; 23376: } 23376: --__last1; 23376: } 23376: else 23376: { 23376: *--__result = std::move(*__last2); 23376: if (__first2 == __last2) 23376: return; 23376: --__last2; 23376: } 23376: } 23376: } 23376: 23376: 23376: template 23376: _BidirectionalIterator1 23376: __rotate_adaptive(_BidirectionalIterator1 __first, 23376: _BidirectionalIterator1 __middle, 23376: _BidirectionalIterator1 __last, 23376: _Distance __len1, _Distance __len2, 23376: _BidirectionalIterator2 __buffer, 23376: _Distance __buffer_size) 23376: { 23376: _BidirectionalIterator2 __buffer_end; 23376: if (__len1 > __len2 && __len2 <= __buffer_size) 23376: { 23376: if (__len2) 23376: { 23376: __buffer_end = std::move(__middle, __last, __buffer); 23376: std::move_backward(__first, __middle, __last); 23376: return std::move(__buffer, __buffer_end, __first); 23376: } 23376: else 23376: return __first; 23376: } 23376: else if (__len1 <= __buffer_size) 23376: { 23376: if (__len1) 23376: { 23376: __buffer_end = std::move(__first, __middle, __buffer); 23376: std::move(__middle, __last, __first); 23376: return std::move_backward(__buffer, __buffer_end, __last); 23376: } 23376: else 23376: return __last; 23376: } 23376: else 23376: { 23376: std::rotate(__first, __middle, __last); 23376: std::advance(__first, std::distance(__middle, __last)); 23376: return __first; 23376: } 23376: } 23376: 23376: 23376: template 23376: void 23376: __merge_adaptive(_BidirectionalIterator __first, 23376: _BidirectionalIterator __middle, 23376: _BidirectionalIterator __last, 23376: _Distance __len1, _Distance __len2, 23376: _Pointer __buffer, _Distance __buffer_size, 23376: _Compare __comp) 23376: { 23376: if (__len1 <= __len2 && __len1 <= __buffer_size) 23376: { 23376: _Pointer __buffer_end = std::move(__first, __middle, __buffer); 23376: std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, 23376: __first, __comp); 23376: } 23376: else if (__len2 <= __buffer_size) 23376: { 23376: _Pointer __buffer_end = std::move(__middle, __last, __buffer); 23376: std::__move_merge_adaptive_backward(__first, __middle, __buffer, 23376: __buffer_end, __last, __comp); 23376: } 23376: else 23376: { 23376: _BidirectionalIterator __first_cut = __first; 23376: _BidirectionalIterator __second_cut = __middle; 23376: _Distance __len11 = 0; 23376: _Distance __len22 = 0; 23376: if (__len1 > __len2) 23376: { 23376: __len11 = __len1 / 2; 23376: std::advance(__first_cut, __len11); 23376: __second_cut 23376: = std::__lower_bound(__middle, __last, *__first_cut, 23376: __gnu_cxx::__ops::__iter_comp_val(__comp)); 23376: __len22 = std::distance(__middle, __second_cut); 23376: } 23376: else 23376: { 23376: __len22 = __len2 / 2; 23376: std::advance(__second_cut, __len22); 23376: __first_cut 23376: = std::__upper_bound(__first, __middle, *__second_cut, 23376: __gnu_cxx::__ops::__val_comp_iter(__comp)); 23376: __len11 = std::distance(__first, __first_cut); 23376: } 23376: 23376: _BidirectionalIterator __new_middle 23376: = std::__rotate_adaptive(__first_cut, __middle, __second_cut, 23376: __len1 - __len11, __len22, __buffer, 23376: __buffer_size); 23376: std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, 23376: __len22, __buffer, __buffer_size, __comp); 23376: std::__merge_adaptive(__new_middle, __second_cut, __last, 23376: __len1 - __len11, 23376: __len2 - __len22, __buffer, 23376: __buffer_size, __comp); 23376: } 23376: } 23376: 23376: 23376: template 23376: void 23376: __merge_without_buffer(_BidirectionalIterator __first, 23376: _BidirectionalIterator __middle, 23376: _BidirectionalIterator __last, 23376: _Distance __len1, _Distance __len2, 23376: _Compare __comp) 23376: { 23376: if (__len1 == 0 || __len2 == 0) 23376: return; 23376: 23376: if (__len1 + __len2 == 2) 23376: { 23376: if (__comp(__middle, __first)) 23376: std::iter_swap(__first, __middle); 23376: return; 23376: } 23376: 23376: _BidirectionalIterator __first_cut = __first; 23376: _BidirectionalIterator __second_cut = __middle; 23376: _Distance __len11 = 0; 23376: _Distance __len22 = 0; 23376: if (__len1 > __len2) 23376: { 23376: __len11 = __len1 / 2; 23376: std::advance(__first_cut, __len11); 23376: __second_cut 23376: = std::__lower_bound(__middle, __last, *__first_cut, 23376: __gnu_cxx::__ops::__iter_comp_val(__comp)); 23376: __len22 = std::distance(__middle, __second_cut); 23376: } 23376: else 23376: { 23376: __len22 = __len2 / 2; 23376: std::advance(__second_cut, __len22); 23376: __first_cut 23376: = std::__upper_bound(__first, __middle, *__second_cut, 23376: __gnu_cxx::__ops::__val_comp_iter(__comp)); 23376: __len11 = std::distance(__first, __first_cut); 23376: } 23376: 23376: std::rotate(__first_cut, __middle, __second_cut); 23376: _BidirectionalIterator __new_middle = __first_cut; 23376: std::advance(__new_middle, std::distance(__middle, __second_cut)); 23376: std::__merge_without_buffer(__first, __first_cut, __new_middle, 23376: __len11, __len22, __comp); 23376: std::__merge_without_buffer(__new_middle, __second_cut, __last, 23376: __len1 - __len11, __len2 - __len22, __comp); 23376: } 23376: 23376: template 23376: void 23376: __inplace_merge(_BidirectionalIterator __first, 23376: _BidirectionalIterator __middle, 23376: _BidirectionalIterator __last, 23376: _Compare __comp) 23376: { 23376: typedef typename iterator_traits<_BidirectionalIterator>::value_type 23376: _ValueType; 23376: typedef typename iterator_traits<_BidirectionalIterator>::difference_type 23376: _DistanceType; 23376: 23376: if (__first == __middle || __middle == __last) 23376: return; 23376: 23376: const _DistanceType __len1 = std::distance(__first, __middle); 23376: const _DistanceType __len2 = std::distance(__middle, __last); 23376: 23376: typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; 23376: _TmpBuf __buf(__first, __last); 23376: 23376: if (__buf.begin() == 0) 23376: std::__merge_without_buffer 23376: (__first, __middle, __last, __len1, __len2, __comp); 23376: else 23376: std::__merge_adaptive 23376: (__first, __middle, __last, __len1, __len2, __buf.begin(), 23376: _DistanceType(__buf.size()), __comp); 23376: } 23376: # 2572 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: inplace_merge(_BidirectionalIterator __first, 23376: _BidirectionalIterator __middle, 23376: _BidirectionalIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: std::__inplace_merge(__first, __middle, __last, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 2613 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: inplace_merge(_BidirectionalIterator __first, 23376: _BidirectionalIterator __middle, 23376: _BidirectionalIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: std::__inplace_merge(__first, __middle, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: 23376: 23376: template 23376: _OutputIterator 23376: __move_merge(_InputIterator __first1, _InputIterator __last1, 23376: _InputIterator __first2, _InputIterator __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: while (__first1 != __last1 && __first2 != __last2) 23376: { 23376: if (__comp(__first2, __first1)) 23376: { 23376: *__result = std::move(*__first2); 23376: ++__first2; 23376: } 23376: else 23376: { 23376: *__result = std::move(*__first1); 23376: ++__first1; 23376: } 23376: ++__result; 23376: } 23376: return std::move(__first2, __last2, std::move(__first1, __last1, __result)) 23376: 23376: ; 23376: } 23376: 23376: template 23376: void 23376: __merge_sort_loop(_RandomAccessIterator1 __first, 23376: _RandomAccessIterator1 __last, 23376: _RandomAccessIterator2 __result, _Distance __step_size, 23376: _Compare __comp) 23376: { 23376: const _Distance __two_step = 2 * __step_size; 23376: 23376: while (__last - __first >= __two_step) 23376: { 23376: __result = std::__move_merge(__first, __first + __step_size, 23376: __first + __step_size, 23376: __first + __two_step, 23376: __result, __comp); 23376: __first += __two_step; 23376: } 23376: __step_size = std::min(_Distance(__last - __first), __step_size); 23376: 23376: std::__move_merge(__first, __first + __step_size, 23376: __first + __step_size, __last, __result, __comp); 23376: } 23376: 23376: template 23376: void 23376: __chunk_insertion_sort(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, 23376: _Distance __chunk_size, _Compare __comp) 23376: { 23376: while (__last - __first >= __chunk_size) 23376: { 23376: std::__insertion_sort(__first, __first + __chunk_size, __comp); 23376: __first += __chunk_size; 23376: } 23376: std::__insertion_sort(__first, __last, __comp); 23376: } 23376: 23376: enum { _S_chunk_size = 7 }; 23376: 23376: template 23376: void 23376: __merge_sort_with_buffer(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, 23376: _Pointer __buffer, _Compare __comp) 23376: { 23376: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 23376: _Distance; 23376: 23376: const _Distance __len = __last - __first; 23376: const _Pointer __buffer_last = __buffer + __len; 23376: 23376: _Distance __step_size = _S_chunk_size; 23376: std::__chunk_insertion_sort(__first, __last, __step_size, __comp); 23376: 23376: while (__step_size < __len) 23376: { 23376: std::__merge_sort_loop(__first, __last, __buffer, 23376: __step_size, __comp); 23376: __step_size *= 2; 23376: std::__merge_sort_loop(__buffer, __buffer_last, __first, 23376: __step_size, __comp); 23376: __step_size *= 2; 23376: } 23376: } 23376: 23376: template 23376: void 23376: __stable_sort_adaptive(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, 23376: _Pointer __buffer, _Distance __buffer_size, 23376: _Compare __comp) 23376: { 23376: const _Distance __len = (__last - __first + 1) / 2; 23376: const _RandomAccessIterator __middle = __first + __len; 23376: if (__len > __buffer_size) 23376: { 23376: std::__stable_sort_adaptive(__first, __middle, __buffer, 23376: __buffer_size, __comp); 23376: std::__stable_sort_adaptive(__middle, __last, __buffer, 23376: __buffer_size, __comp); 23376: } 23376: else 23376: { 23376: std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); 23376: std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); 23376: } 23376: std::__merge_adaptive(__first, __middle, __last, 23376: _Distance(__middle - __first), 23376: _Distance(__last - __middle), 23376: __buffer, __buffer_size, 23376: __comp); 23376: } 23376: 23376: 23376: template 23376: void 23376: __inplace_stable_sort(_RandomAccessIterator __first, 23376: _RandomAccessIterator __last, _Compare __comp) 23376: { 23376: if (__last - __first < 15) 23376: { 23376: std::__insertion_sort(__first, __last, __comp); 23376: return; 23376: } 23376: _RandomAccessIterator __middle = __first + (__last - __first) / 2; 23376: std::__inplace_stable_sort(__first, __middle, __comp); 23376: std::__inplace_stable_sort(__middle, __last, __comp); 23376: std::__merge_without_buffer(__first, __middle, __last, 23376: __middle - __first, 23376: __last - __middle, 23376: __comp); 23376: } 23376: # 2785 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: bool 23376: __includes(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _Compare __comp) 23376: { 23376: while (__first1 != __last1 && __first2 != __last2) 23376: if (__comp(__first2, __first1)) 23376: return false; 23376: else if (__comp(__first1, __first2)) 23376: ++__first1; 23376: else 23376: { 23376: ++__first1; 23376: ++__first2; 23376: } 23376: 23376: return __first2 == __last2; 23376: } 23376: # 2824 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: includes(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__includes(__first1, __last1, __first2, __last2, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 2868 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: includes(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__includes(__first1, __last1, __first2, __last2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: # 2903 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: bool 23376: __next_permutation(_BidirectionalIterator __first, 23376: _BidirectionalIterator __last, _Compare __comp) 23376: { 23376: if (__first == __last) 23376: return false; 23376: _BidirectionalIterator __i = __first; 23376: ++__i; 23376: if (__i == __last) 23376: return false; 23376: __i = __last; 23376: --__i; 23376: 23376: for(;;) 23376: { 23376: _BidirectionalIterator __ii = __i; 23376: --__i; 23376: if (__comp(__i, __ii)) 23376: { 23376: _BidirectionalIterator __j = __last; 23376: while (!__comp(__i, --__j)) 23376: {} 23376: std::iter_swap(__i, __j); 23376: std::__reverse(__ii, __last, 23376: std::__iterator_category(__first)); 23376: return true; 23376: } 23376: if (__i == __first) 23376: { 23376: std::__reverse(__first, __last, 23376: std::__iterator_category(__first)); 23376: return false; 23376: } 23376: } 23376: } 23376: # 2952 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: next_permutation(_BidirectionalIterator __first, 23376: _BidirectionalIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__next_permutation 23376: (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 2984 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: next_permutation(_BidirectionalIterator __first, 23376: _BidirectionalIterator __last, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__next_permutation 23376: (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: bool 23376: __prev_permutation(_BidirectionalIterator __first, 23376: _BidirectionalIterator __last, _Compare __comp) 23376: { 23376: if (__first == __last) 23376: return false; 23376: _BidirectionalIterator __i = __first; 23376: ++__i; 23376: if (__i == __last) 23376: return false; 23376: __i = __last; 23376: --__i; 23376: 23376: for(;;) 23376: { 23376: _BidirectionalIterator __ii = __i; 23376: --__i; 23376: if (__comp(__ii, __i)) 23376: { 23376: _BidirectionalIterator __j = __last; 23376: while (!__comp(--__j, __i)) 23376: {} 23376: std::iter_swap(__i, __j); 23376: std::__reverse(__ii, __last, 23376: std::__iterator_category(__first)); 23376: return true; 23376: } 23376: if (__i == __first) 23376: { 23376: std::__reverse(__first, __last, 23376: std::__iterator_category(__first)); 23376: return false; 23376: } 23376: } 23376: } 23376: # 3052 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: prev_permutation(_BidirectionalIterator __first, 23376: _BidirectionalIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__prev_permutation(__first, __last, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 3084 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: prev_permutation(_BidirectionalIterator __first, 23376: _BidirectionalIterator __last, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__prev_permutation(__first, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: _OutputIterator 23376: __replace_copy_if(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, 23376: _Predicate __pred, const _Tp& __new_value) 23376: { 23376: for (; __first != __last; ++__first, (void)++__result) 23376: if (__pred(__first)) 23376: *__result = __new_value; 23376: else 23376: *__result = *__first; 23376: return __result; 23376: } 23376: # 3134 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: replace_copy(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, 23376: const _Tp& __old_value, const _Tp& __new_value) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__replace_copy_if(__first, __last, __result, 23376: __gnu_cxx::__ops::__iter_equals_val(__old_value), 23376: __new_value); 23376: } 23376: # 3168 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: replace_copy_if(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, 23376: _Predicate __pred, const _Tp& __new_value) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__replace_copy_if(__first, __last, __result, 23376: __gnu_cxx::__ops::__pred_iter(__pred), 23376: __new_value); 23376: } 23376: 23376: template 23376: typename iterator_traits<_InputIterator>::difference_type 23376: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 23376: { 23376: typename iterator_traits<_InputIterator>::difference_type __n = 0; 23376: for (; __first != __last; ++__first) 23376: if (__pred(__first)) 23376: ++__n; 23376: return __n; 23376: } 23376: # 3207 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: is_sorted(_ForwardIterator __first, _ForwardIterator __last) 23376: { return std::is_sorted_until(__first, __last) == __last; } 23376: # 3221 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: is_sorted(_ForwardIterator __first, _ForwardIterator __last, 23376: _Compare __comp) 23376: { return std::is_sorted_until(__first, __last, __comp) == __last; } 23376: 23376: template 23376: _ForwardIterator 23376: __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 23376: _Compare __comp) 23376: { 23376: if (__first == __last) 23376: return __last; 23376: 23376: _ForwardIterator __next = __first; 23376: for (++__next; __next != __last; __first = __next, (void)++__next) 23376: if (__comp(__next, __first)) 23376: return __next; 23376: return __next; 23376: } 23376: # 3250 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__is_sorted_until(__first, __last, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 3274 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__is_sorted_until(__first, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: # 3299 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: constexpr 23376: inline pair 23376: minmax(const _Tp& __a, const _Tp& __b) 23376: { 23376: 23376: 23376: 23376: return __b < __a ? pair(__b, __a) 23376: : pair(__a, __b); 23376: } 23376: # 3320 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: constexpr 23376: inline pair 23376: minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) 23376: { 23376: return __comp(__b, __a) ? pair(__b, __a) 23376: : pair(__a, __b); 23376: } 23376: 23376: template 23376: constexpr 23376: pair<_ForwardIterator, _ForwardIterator> 23376: __minmax_element(_ForwardIterator __first, _ForwardIterator __last, 23376: _Compare __comp) 23376: { 23376: _ForwardIterator __next = __first; 23376: if (__first == __last 23376: || ++__next == __last) 23376: return std::make_pair(__first, __first); 23376: 23376: _ForwardIterator __min{}, __max{}; 23376: if (__comp(__next, __first)) 23376: { 23376: __min = __next; 23376: __max = __first; 23376: } 23376: else 23376: { 23376: __min = __first; 23376: __max = __next; 23376: } 23376: 23376: __first = __next; 23376: ++__first; 23376: 23376: while (__first != __last) 23376: { 23376: __next = __first; 23376: if (++__next == __last) 23376: { 23376: if (__comp(__first, __min)) 23376: __min = __first; 23376: else if (!__comp(__first, __max)) 23376: __max = __first; 23376: break; 23376: } 23376: 23376: if (__comp(__next, __first)) 23376: { 23376: if (__comp(__next, __min)) 23376: __min = __next; 23376: if (!__comp(__first, __max)) 23376: __max = __first; 23376: } 23376: else 23376: { 23376: if (__comp(__first, __min)) 23376: __min = __first; 23376: if (!__comp(__next, __max)) 23376: __max = __next; 23376: } 23376: 23376: __first = __next; 23376: ++__first; 23376: } 23376: 23376: return std::make_pair(__min, __max); 23376: } 23376: # 3400 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: constexpr 23376: inline pair<_ForwardIterator, _ForwardIterator> 23376: minmax_element(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__minmax_element(__first, __last, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 3428 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: constexpr 23376: inline pair<_ForwardIterator, _ForwardIterator> 23376: minmax_element(_ForwardIterator __first, _ForwardIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__minmax_element(__first, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: 23376: template 23376: constexpr 23376: inline _Tp 23376: min(initializer_list<_Tp> __l) 23376: { return *std::min_element(__l.begin(), __l.end()); } 23376: 23376: template 23376: constexpr 23376: inline _Tp 23376: min(initializer_list<_Tp> __l, _Compare __comp) 23376: { return *std::min_element(__l.begin(), __l.end(), __comp); } 23376: 23376: template 23376: constexpr 23376: inline _Tp 23376: max(initializer_list<_Tp> __l) 23376: { return *std::max_element(__l.begin(), __l.end()); } 23376: 23376: template 23376: constexpr 23376: inline _Tp 23376: max(initializer_list<_Tp> __l, _Compare __comp) 23376: { return *std::max_element(__l.begin(), __l.end(), __comp); } 23376: 23376: template 23376: constexpr 23376: inline pair<_Tp, _Tp> 23376: minmax(initializer_list<_Tp> __l) 23376: { 23376: pair __p = 23376: std::minmax_element(__l.begin(), __l.end()); 23376: return std::make_pair(*__p.first, *__p.second); 23376: } 23376: 23376: template 23376: constexpr 23376: inline pair<_Tp, _Tp> 23376: minmax(initializer_list<_Tp> __l, _Compare __comp) 23376: { 23376: pair __p = 23376: std::minmax_element(__l.begin(), __l.end(), __comp); 23376: return std::make_pair(*__p.first, *__p.second); 23376: } 23376: 23376: template 23376: bool 23376: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _BinaryPredicate __pred) 23376: { 23376: 23376: 23376: for (; __first1 != __last1; ++__first1, (void)++__first2) 23376: if (!__pred(__first1, __first2)) 23376: break; 23376: 23376: if (__first1 == __last1) 23376: return true; 23376: 23376: 23376: 23376: _ForwardIterator2 __last2 = __first2; 23376: std::advance(__last2, std::distance(__first1, __last1)); 23376: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 23376: { 23376: if (__scan != std::__find_if(__first1, __scan, 23376: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 23376: continue; 23376: 23376: auto __matches 23376: = std::__count_if(__first2, __last2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 23376: if (0 == __matches || 23376: std::__count_if(__scan, __last1, 23376: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 23376: != __matches) 23376: return false; 23376: } 23376: return true; 23376: } 23376: # 3540 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__is_permutation(__first1, __last1, __first2, 23376: __gnu_cxx::__ops::__iter_equal_to_iter()); 23376: } 23376: # 3571 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _BinaryPredicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__is_permutation(__first1, __last1, __first2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 23376: } 23376: 23376: 23376: template 23376: bool 23376: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 23376: _BinaryPredicate __pred) 23376: { 23376: using _Cat1 23376: = typename iterator_traits<_ForwardIterator1>::iterator_category; 23376: using _Cat2 23376: = typename iterator_traits<_ForwardIterator2>::iterator_category; 23376: using _It1_is_RA = is_same<_Cat1, random_access_iterator_tag>; 23376: using _It2_is_RA = is_same<_Cat2, random_access_iterator_tag>; 23376: constexpr bool __ra_iters = _It1_is_RA() && _It2_is_RA(); 23376: if (__ra_iters) 23376: { 23376: auto __d1 = std::distance(__first1, __last1); 23376: auto __d2 = std::distance(__first2, __last2); 23376: if (__d1 != __d2) 23376: return false; 23376: } 23376: 23376: 23376: 23376: for (; __first1 != __last1 && __first2 != __last2; 23376: ++__first1, (void)++__first2) 23376: if (!__pred(__first1, __first2)) 23376: break; 23376: 23376: if (__ra_iters) 23376: { 23376: if (__first1 == __last1) 23376: return true; 23376: } 23376: else 23376: { 23376: auto __d1 = std::distance(__first1, __last1); 23376: auto __d2 = std::distance(__first2, __last2); 23376: if (__d1 == 0 && __d2 == 0) 23376: return true; 23376: if (__d1 != __d2) 23376: return false; 23376: } 23376: 23376: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 23376: { 23376: if (__scan != std::__find_if(__first1, __scan, 23376: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 23376: continue; 23376: 23376: auto __matches = std::__count_if(__first2, __last2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 23376: if (0 == __matches 23376: || std::__count_if(__scan, __last1, 23376: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 23376: != __matches) 23376: return false; 23376: } 23376: return true; 23376: } 23376: # 3664 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 23376: { 23376: ; 23376: ; 23376: 23376: return 23376: std::__is_permutation(__first1, __last1, __first2, __last2, 23376: __gnu_cxx::__ops::__iter_equal_to_iter()); 23376: } 23376: # 3691 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline bool 23376: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 23376: _BinaryPredicate __pred) 23376: { 23376: ; 23376: ; 23376: 23376: return std::__is_permutation(__first1, __last1, __first2, __last2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 23376: } 23376: # 3767 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: pair<_IntType, _IntType> 23376: __gen_two_uniform_ints(_IntType __b0, _IntType __b1, 23376: _UniformRandomBitGenerator&& __g) 23376: { 23376: _IntType __x 23376: = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); 23376: return std::make_pair(__x / __b1, __x % __b1); 23376: } 23376: # 3789 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: void 23376: shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _UniformRandomNumberGenerator&& __g) 23376: { 23376: 23376: 23376: 23376: ; 23376: 23376: if (__first == __last) 23376: return; 23376: 23376: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 23376: _DistanceType; 23376: 23376: typedef typename std::make_unsigned<_DistanceType>::type __ud_type; 23376: typedef typename std::uniform_int_distribution<__ud_type> __distr_type; 23376: typedef typename __distr_type::param_type __p_type; 23376: 23376: typedef typename remove_reference<_UniformRandomNumberGenerator>::type 23376: _Gen; 23376: typedef typename common_type::type 23376: __uc_type; 23376: 23376: const __uc_type __urngrange = __g.max() - __g.min(); 23376: const __uc_type __urange = __uc_type(__last - __first); 23376: 23376: if (__urngrange / __urange >= __urange) 23376: 23376: { 23376: _RandomAccessIterator __i = __first + 1; 23376: 23376: 23376: 23376: 23376: 23376: if ((__urange % 2) == 0) 23376: { 23376: __distr_type __d{0, 1}; 23376: std::iter_swap(__i++, __first + __d(__g)); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: while (__i != __last) 23376: { 23376: const __uc_type __swap_range = __uc_type(__i - __first) + 1; 23376: 23376: const pair<__uc_type, __uc_type> __pospos = 23376: __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); 23376: 23376: std::iter_swap(__i++, __first + __pospos.first); 23376: std::iter_swap(__i++, __first + __pospos.second); 23376: } 23376: 23376: return; 23376: } 23376: 23376: __distr_type __d; 23376: 23376: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 23376: std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: # 3874 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _Function 23376: for_each(_InputIterator __first, _InputIterator __last, _Function __f) 23376: { 23376: 23376: 23376: ; 23376: for (; __first != __last; ++__first) 23376: __f(*__first); 23376: return __f; 23376: } 23376: # 3895 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _InputIterator 23376: find(_InputIterator __first, _InputIterator __last, 23376: const _Tp& __val) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: return std::__find_if(__first, __last, 23376: __gnu_cxx::__ops::__iter_equals_val(__val)); 23376: } 23376: # 3919 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _InputIterator 23376: find_if(_InputIterator __first, _InputIterator __last, 23376: _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__find_if(__first, __last, 23376: __gnu_cxx::__ops::__pred_iter(__pred)); 23376: } 23376: # 3950 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _InputIterator 23376: find_first_of(_InputIterator __first1, _InputIterator __last1, 23376: _ForwardIterator __first2, _ForwardIterator __last2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: for (; __first1 != __last1; ++__first1) 23376: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 23376: if (*__first1 == *__iter) 23376: return __first1; 23376: return __last1; 23376: } 23376: # 3990 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _InputIterator 23376: find_first_of(_InputIterator __first1, _InputIterator __last1, 23376: _ForwardIterator __first2, _ForwardIterator __last2, 23376: _BinaryPredicate __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: for (; __first1 != __last1; ++__first1) 23376: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 23376: if (__comp(*__first1, *__iter)) 23376: return __first1; 23376: return __last1; 23376: } 23376: # 4022 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: adjacent_find(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__adjacent_find(__first, __last, 23376: __gnu_cxx::__ops::__iter_equal_to_iter()); 23376: } 23376: # 4047 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 23376: _BinaryPredicate __binary_pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__adjacent_find(__first, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 23376: } 23376: # 4072 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline typename iterator_traits<_InputIterator>::difference_type 23376: count(_InputIterator __first, _InputIterator __last, const _Tp& __value) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__count_if(__first, __last, 23376: __gnu_cxx::__ops::__iter_equals_val(__value)); 23376: } 23376: # 4095 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline typename iterator_traits<_InputIterator>::difference_type 23376: count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__count_if(__first, __last, 23376: __gnu_cxx::__ops::__pred_iter(__pred)); 23376: } 23376: # 4135 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator1 23376: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__search(__first1, __last1, __first2, __last2, 23376: __gnu_cxx::__ops::__iter_equal_to_iter()); 23376: } 23376: # 4174 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator1 23376: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 23376: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 23376: _BinaryPredicate __predicate) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__search(__first1, __last1, __first2, __last2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 23376: } 23376: # 4209 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: search_n(_ForwardIterator __first, _ForwardIterator __last, 23376: _Integer __count, const _Tp& __val) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__search_n(__first, __last, __count, 23376: __gnu_cxx::__ops::__iter_equals_val(__val)); 23376: } 23376: # 4242 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: search_n(_ForwardIterator __first, _ForwardIterator __last, 23376: _Integer __count, const _Tp& __val, 23376: _BinaryPredicate __binary_pred) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__search_n(__first, __last, __count, 23376: __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); 23376: } 23376: # 4290 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _OutputIterator 23376: transform(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, _UnaryOperation __unary_op) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: for (; __first != __last; ++__first, (void)++__result) 23376: *__result = __unary_op(*__first); 23376: return __result; 23376: } 23376: # 4327 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _OutputIterator 23376: transform(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _OutputIterator __result, 23376: _BinaryOperation __binary_op) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) 23376: *__result = __binary_op(*__first1, *__first2); 23376: return __result; 23376: } 23376: # 4360 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: void 23376: replace(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __old_value, const _Tp& __new_value) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: for (; __first != __last; ++__first) 23376: if (*__first == __old_value) 23376: *__first = __new_value; 23376: } 23376: # 4392 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: void 23376: replace_if(_ForwardIterator __first, _ForwardIterator __last, 23376: _Predicate __pred, const _Tp& __new_value) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: for (; __first != __last; ++__first) 23376: if (__pred(*__first)) 23376: *__first = __new_value; 23376: } 23376: # 4424 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: void 23376: generate(_ForwardIterator __first, _ForwardIterator __last, 23376: _Generator __gen) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: for (; __first != __last; ++__first) 23376: *__first = __gen(); 23376: } 23376: # 4455 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: _OutputIterator 23376: generate_n(_OutputIterator __first, _Size __n, _Generator __gen) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: for (__decltype(__n + 0) __niter = __n; 23376: __niter > 0; --__niter, (void) ++__first) 23376: *__first = __gen(); 23376: return __first; 23376: } 23376: # 4491 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: unique_copy(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: if (__first == __last) 23376: return __result; 23376: return std::__unique_copy(__first, __last, __result, 23376: __gnu_cxx::__ops::__iter_equal_to_iter(), 23376: std::__iterator_category(__first), 23376: std::__iterator_category(__result)); 23376: } 23376: # 4531 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: unique_copy(_InputIterator __first, _InputIterator __last, 23376: _OutputIterator __result, 23376: _BinaryPredicate __binary_pred) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: if (__first == __last) 23376: return __result; 23376: return std::__unique_copy(__first, __last, __result, 23376: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), 23376: std::__iterator_category(__first), 23376: std::__iterator_category(__result)); 23376: } 23376: # 4564 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { 23376: 23376: 23376: 23376: ; 23376: 23376: if (__first != __last) 23376: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 23376: { 23376: 23376: _RandomAccessIterator __j = __first 23376: + std::rand() % ((__i - __first) + 1); 23376: if (__i != __j) 23376: std::iter_swap(__i, __j); 23376: } 23376: } 23376: # 4599 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: void 23376: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: 23376: _RandomNumberGenerator&& __rand) 23376: 23376: 23376: 23376: { 23376: 23376: 23376: 23376: ; 23376: 23376: if (__first == __last) 23376: return; 23376: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 23376: { 23376: _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); 23376: if (__i != __j) 23376: std::iter_swap(__i, __j); 23376: } 23376: } 23376: # 4639 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _ForwardIterator 23376: partition(_ForwardIterator __first, _ForwardIterator __last, 23376: _Predicate __pred) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: 23376: return std::__partition(__first, __last, __pred, 23376: std::__iterator_category(__first)); 23376: } 23376: # 4672 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: partial_sort(_RandomAccessIterator __first, 23376: _RandomAccessIterator __middle, 23376: _RandomAccessIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: std::__partial_sort(__first, __middle, __last, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 4710 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: partial_sort(_RandomAccessIterator __first, 23376: _RandomAccessIterator __middle, 23376: _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: std::__partial_sort(__first, __middle, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: # 4746 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 23376: _RandomAccessIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: if (__first == __last || __nth == __last) 23376: return; 23376: 23376: std::__introselect(__first, __nth, __last, 23376: std::__lg(__last - __first) * 2, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 4785 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 23376: _RandomAccessIterator __last, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: if (__first == __last || __nth == __last) 23376: return; 23376: 23376: std::__introselect(__first, __nth, __last, 23376: std::__lg(__last - __first) * 2, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: # 4822 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 4852 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: _OutputIterator 23376: __merge(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: while (__first1 != __last1 && __first2 != __last2) 23376: { 23376: if (__comp(__first2, __first1)) 23376: { 23376: *__result = *__first2; 23376: ++__first2; 23376: } 23376: else 23376: { 23376: *__result = *__first1; 23376: ++__first1; 23376: } 23376: ++__result; 23376: } 23376: return std::copy(__first2, __last2, 23376: std::copy(__first1, __last1, __result)); 23376: } 23376: # 4913 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: merge(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__merge(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 4963 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: merge(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__merge(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: inline void 23376: __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: typedef typename iterator_traits<_RandomAccessIterator>::value_type 23376: _ValueType; 23376: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 23376: _DistanceType; 23376: 23376: typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; 23376: _TmpBuf __buf(__first, __last); 23376: 23376: if (__buf.begin() == 0) 23376: std::__inplace_stable_sort(__first, __last, __comp); 23376: else 23376: std::__stable_sort_adaptive(__first, __last, __buf.begin(), 23376: _DistanceType(__buf.size()), __comp); 23376: } 23376: # 5027 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: std::__stable_sort(__first, __last, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 5061 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline void 23376: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: std::__stable_sort(__first, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: _OutputIterator 23376: __set_union(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: while (__first1 != __last1 && __first2 != __last2) 23376: { 23376: if (__comp(__first1, __first2)) 23376: { 23376: *__result = *__first1; 23376: ++__first1; 23376: } 23376: else if (__comp(__first2, __first1)) 23376: { 23376: *__result = *__first2; 23376: ++__first2; 23376: } 23376: else 23376: { 23376: *__result = *__first1; 23376: ++__first1; 23376: ++__first2; 23376: } 23376: ++__result; 23376: } 23376: return std::copy(__first2, __last2, 23376: std::copy(__first1, __last1, __result)); 23376: } 23376: # 5130 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__set_union(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 5180 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__set_union(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: _OutputIterator 23376: __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: while (__first1 != __last1 && __first2 != __last2) 23376: if (__comp(__first1, __first2)) 23376: ++__first1; 23376: else if (__comp(__first2, __first1)) 23376: ++__first2; 23376: else 23376: { 23376: *__result = *__first1; 23376: ++__first1; 23376: ++__first2; 23376: ++__result; 23376: } 23376: return __result; 23376: } 23376: # 5251 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__set_intersection(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 5300 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__set_intersection(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: _OutputIterator 23376: __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: while (__first1 != __last1 && __first2 != __last2) 23376: if (__comp(__first1, __first2)) 23376: { 23376: *__result = *__first1; 23376: ++__first1; 23376: ++__result; 23376: } 23376: else if (__comp(__first2, __first1)) 23376: ++__first2; 23376: else 23376: { 23376: ++__first1; 23376: ++__first2; 23376: } 23376: return std::copy(__first1, __last1, __result); 23376: } 23376: # 5373 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__set_difference(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 5424 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__set_difference(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: _OutputIterator 23376: __set_symmetric_difference(_InputIterator1 __first1, 23376: _InputIterator1 __last1, 23376: _InputIterator2 __first2, 23376: _InputIterator2 __last2, 23376: _OutputIterator __result, 23376: _Compare __comp) 23376: { 23376: while (__first1 != __last1 && __first2 != __last2) 23376: if (__comp(__first1, __first2)) 23376: { 23376: *__result = *__first1; 23376: ++__first1; 23376: ++__result; 23376: } 23376: else if (__comp(__first2, __first1)) 23376: { 23376: *__result = *__first2; 23376: ++__first2; 23376: ++__result; 23376: } 23376: else 23376: { 23376: ++__first1; 23376: ++__first2; 23376: } 23376: return std::copy(__first2, __last2, 23376: std::copy(__first1, __last1, __result)); 23376: } 23376: # 5503 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__set_symmetric_difference(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 5554 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: inline _OutputIterator 23376: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 23376: _InputIterator2 __first2, _InputIterator2 __last2, 23376: _OutputIterator __result, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: ; 23376: ; 23376: 23376: return std::__set_symmetric_difference(__first1, __last1, 23376: __first2, __last2, __result, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: constexpr 23376: _ForwardIterator 23376: __min_element(_ForwardIterator __first, _ForwardIterator __last, 23376: _Compare __comp) 23376: { 23376: if (__first == __last) 23376: return __first; 23376: _ForwardIterator __result = __first; 23376: while (++__first != __last) 23376: if (__comp(__first, __result)) 23376: __result = __first; 23376: return __result; 23376: } 23376: # 5607 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: constexpr 23376: _ForwardIterator 23376: inline min_element(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__min_element(__first, __last, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 5632 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: constexpr 23376: inline _ForwardIterator 23376: min_element(_ForwardIterator __first, _ForwardIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__min_element(__first, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: template 23376: constexpr 23376: _ForwardIterator 23376: __max_element(_ForwardIterator __first, _ForwardIterator __last, 23376: _Compare __comp) 23376: { 23376: if (__first == __last) return __first; 23376: _ForwardIterator __result = __first; 23376: while (++__first != __last) 23376: if (__comp(__result, __first)) 23376: __result = __first; 23376: return __result; 23376: } 23376: # 5671 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: constexpr 23376: inline _ForwardIterator 23376: max_element(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__max_element(__first, __last, 23376: __gnu_cxx::__ops::__iter_less_iter()); 23376: } 23376: # 5696 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: template 23376: constexpr 23376: inline _ForwardIterator 23376: max_element(_ForwardIterator __first, _ForwardIterator __last, 23376: _Compare __comp) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: ; 23376: ; 23376: 23376: return std::__max_element(__first, __last, 23376: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 23376: } 23376: 23376: 23376: 23376: template 23376: _RandomAccessIterator 23376: __sample(_InputIterator __first, _InputIterator __last, input_iterator_tag, 23376: _RandomAccessIterator __out, random_access_iterator_tag, 23376: _Size __n, _UniformRandomBitGenerator&& __g) 23376: { 23376: using __distrib_type = uniform_int_distribution<_Size>; 23376: using __param_type = typename __distrib_type::param_type; 23376: __distrib_type __d{}; 23376: _Size __sample_sz = 0; 23376: while (__first != __last && __sample_sz != __n) 23376: { 23376: __out[__sample_sz++] = *__first; 23376: ++__first; 23376: } 23376: for (auto __pop_sz = __sample_sz; __first != __last; 23376: ++__first, (void) ++__pop_sz) 23376: { 23376: const auto __k = __d(__g, __param_type{0, __pop_sz}); 23376: if (__k < __n) 23376: __out[__k] = *__first; 23376: } 23376: return __out + __sample_sz; 23376: } 23376: 23376: 23376: template 23376: _OutputIterator 23376: __sample(_ForwardIterator __first, _ForwardIterator __last, 23376: forward_iterator_tag, 23376: _OutputIterator __out, _Cat, 23376: _Size __n, _UniformRandomBitGenerator&& __g) 23376: { 23376: using __distrib_type = uniform_int_distribution<_Size>; 23376: using __param_type = typename __distrib_type::param_type; 23376: using _USize = make_unsigned_t<_Size>; 23376: using _Gen = remove_reference_t<_UniformRandomBitGenerator>; 23376: using __uc_type = common_type_t; 23376: 23376: __distrib_type __d{}; 23376: _Size __unsampled_sz = std::distance(__first, __last); 23376: __n = std::min(__n, __unsampled_sz); 23376: 23376: 23376: 23376: 23376: const __uc_type __urngrange = __g.max() - __g.min(); 23376: if (__urngrange / __uc_type(__unsampled_sz) >= __uc_type(__unsampled_sz)) 23376: 23376: 23376: { 23376: while (__n != 0 && __unsampled_sz >= 2) 23376: { 23376: const pair<_Size, _Size> __p = 23376: __gen_two_uniform_ints(__unsampled_sz, __unsampled_sz - 1, __g); 23376: 23376: --__unsampled_sz; 23376: if (__p.first < __n) 23376: { 23376: *__out++ = *__first; 23376: --__n; 23376: } 23376: 23376: ++__first; 23376: 23376: if (__n == 0) break; 23376: 23376: --__unsampled_sz; 23376: if (__p.second < __n) 23376: { 23376: *__out++ = *__first; 23376: --__n; 23376: } 23376: 23376: ++__first; 23376: } 23376: } 23376: 23376: 23376: 23376: for (; __n != 0; ++__first) 23376: if (__d(__g, __param_type{0, --__unsampled_sz}) < __n) 23376: { 23376: *__out++ = *__first; 23376: --__n; 23376: } 23376: return __out; 23376: } 23376: # 5839 "/usr/include/c++/8/bits/stl_algo.h" 3 23376: 23376: 23376: } 23376: # 63 "/usr/include/c++/8/algorithm" 2 3 23376: # 40 "/usr/include/gmpxx.h" 2 3 4 23376: # 1 "/usr/include/c++/8/string" 1 3 4 23376: # 36 "/usr/include/c++/8/string" 3 4 23376: 23376: # 37 "/usr/include/c++/8/string" 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/char_traits.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/char_traits.h" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/char_traits.h" 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/cwchar" 1 3 23376: # 39 "/usr/include/c++/8/cwchar" 3 23376: 23376: # 40 "/usr/include/c++/8/cwchar" 3 23376: # 42 "/usr/include/c++/8/bits/char_traits.h" 2 3 23376: 23376: 23376: 23376: 23376: 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 61 "/usr/include/c++/8/bits/char_traits.h" 3 23376: template 23376: struct _Char_types 23376: { 23376: typedef unsigned long int_type; 23376: typedef std::streampos pos_type; 23376: typedef std::streamoff off_type; 23376: typedef std::mbstate_t state_type; 23376: }; 23376: # 86 "/usr/include/c++/8/bits/char_traits.h" 3 23376: template 23376: struct char_traits 23376: { 23376: typedef _CharT char_type; 23376: typedef typename _Char_types<_CharT>::int_type int_type; 23376: typedef typename _Char_types<_CharT>::pos_type pos_type; 23376: typedef typename _Char_types<_CharT>::off_type off_type; 23376: typedef typename _Char_types<_CharT>::state_type state_type; 23376: 23376: static constexpr void 23376: assign(char_type& __c1, const char_type& __c2) 23376: { __c1 = __c2; } 23376: 23376: static constexpr bool 23376: eq(const char_type& __c1, const char_type& __c2) 23376: { return __c1 == __c2; } 23376: 23376: static constexpr bool 23376: lt(const char_type& __c1, const char_type& __c2) 23376: { return __c1 < __c2; } 23376: 23376: static constexpr int 23376: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 23376: 23376: static constexpr std::size_t 23376: length(const char_type* __s); 23376: 23376: static constexpr const char_type* 23376: find(const char_type* __s, std::size_t __n, const char_type& __a); 23376: 23376: static char_type* 23376: move(char_type* __s1, const char_type* __s2, std::size_t __n); 23376: 23376: static char_type* 23376: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 23376: 23376: static char_type* 23376: assign(char_type* __s, std::size_t __n, char_type __a); 23376: 23376: static constexpr char_type 23376: to_char_type(const int_type& __c) 23376: { return static_cast(__c); } 23376: 23376: static constexpr int_type 23376: to_int_type(const char_type& __c) 23376: { return static_cast(__c); } 23376: 23376: static constexpr bool 23376: eq_int_type(const int_type& __c1, const int_type& __c2) 23376: { return __c1 == __c2; } 23376: 23376: static constexpr int_type 23376: eof() 23376: { return static_cast(-1); } 23376: 23376: static constexpr int_type 23376: not_eof(const int_type& __c) 23376: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 23376: }; 23376: 23376: template 23376: constexpr int 23376: char_traits<_CharT>:: 23376: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 23376: { 23376: for (std::size_t __i = 0; __i < __n; ++__i) 23376: if (lt(__s1[__i], __s2[__i])) 23376: return -1; 23376: else if (lt(__s2[__i], __s1[__i])) 23376: return 1; 23376: return 0; 23376: } 23376: 23376: template 23376: constexpr std::size_t 23376: char_traits<_CharT>:: 23376: length(const char_type* __p) 23376: { 23376: std::size_t __i = 0; 23376: while (!eq(__p[__i], char_type())) 23376: ++__i; 23376: return __i; 23376: } 23376: 23376: template 23376: constexpr const typename char_traits<_CharT>::char_type* 23376: char_traits<_CharT>:: 23376: find(const char_type* __s, std::size_t __n, const char_type& __a) 23376: { 23376: for (std::size_t __i = 0; __i < __n; ++__i) 23376: if (eq(__s[__i], __a)) 23376: return __s + __i; 23376: return 0; 23376: } 23376: 23376: template 23376: typename char_traits<_CharT>::char_type* 23376: char_traits<_CharT>:: 23376: move(char_type* __s1, const char_type* __s2, std::size_t __n) 23376: { 23376: if (__n == 0) 23376: return __s1; 23376: return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, 23376: __n * sizeof(char_type))); 23376: } 23376: 23376: template 23376: typename char_traits<_CharT>::char_type* 23376: char_traits<_CharT>:: 23376: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 23376: { 23376: 23376: std::copy(__s2, __s2 + __n, __s1); 23376: return __s1; 23376: } 23376: 23376: template 23376: typename char_traits<_CharT>::char_type* 23376: char_traits<_CharT>:: 23376: assign(char_type* __s, std::size_t __n, char_type __a) 23376: { 23376: 23376: std::fill_n(__s, __n, __a); 23376: return __s; 23376: } 23376: 23376: 23376: } 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 270 "/usr/include/c++/8/bits/char_traits.h" 3 23376: template 23376: struct char_traits : public __gnu_cxx::char_traits<_CharT> 23376: { }; 23376: 23376: 23376: 23376: template<> 23376: struct char_traits 23376: { 23376: typedef char char_type; 23376: typedef int int_type; 23376: typedef streampos pos_type; 23376: typedef streamoff off_type; 23376: typedef mbstate_t state_type; 23376: 23376: static void 23376: assign(char_type& __c1, const char_type& __c2) noexcept 23376: { __c1 = __c2; } 23376: 23376: static constexpr bool 23376: eq(const char_type& __c1, const char_type& __c2) noexcept 23376: { return __c1 == __c2; } 23376: 23376: static constexpr bool 23376: lt(const char_type& __c1, const char_type& __c2) noexcept 23376: { 23376: 23376: return (static_cast(__c1) 23376: < static_cast(__c2)); 23376: } 23376: 23376: static int 23376: compare(const char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (__n == 0) 23376: return 0; 23376: return __builtin_memcmp(__s1, __s2, __n); 23376: } 23376: 23376: static size_t 23376: length(const char_type* __s) 23376: { 23376: 23376: 23376: 23376: 23376: return __builtin_strlen(__s); 23376: } 23376: 23376: static const char_type* 23376: find(const char_type* __s, size_t __n, const char_type& __a) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (__n == 0) 23376: return 0; 23376: return static_cast(__builtin_memchr(__s, __a, __n)); 23376: } 23376: 23376: static char_type* 23376: move(char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: if (__n == 0) 23376: return __s1; 23376: return static_cast(__builtin_memmove(__s1, __s2, __n)); 23376: } 23376: 23376: static char_type* 23376: copy(char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: if (__n == 0) 23376: return __s1; 23376: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 23376: } 23376: 23376: static char_type* 23376: assign(char_type* __s, size_t __n, char_type __a) 23376: { 23376: if (__n == 0) 23376: return __s; 23376: return static_cast(__builtin_memset(__s, __a, __n)); 23376: } 23376: 23376: static constexpr char_type 23376: to_char_type(const int_type& __c) noexcept 23376: { return static_cast(__c); } 23376: 23376: 23376: 23376: static constexpr int_type 23376: to_int_type(const char_type& __c) noexcept 23376: { return static_cast(static_cast(__c)); } 23376: 23376: static constexpr bool 23376: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 23376: { return __c1 == __c2; } 23376: 23376: static constexpr int_type 23376: eof() noexcept 23376: { return static_cast(-1); } 23376: 23376: static constexpr int_type 23376: not_eof(const int_type& __c) noexcept 23376: { return (__c == eof()) ? 0 : __c; } 23376: }; 23376: 23376: 23376: 23376: 23376: template<> 23376: struct char_traits 23376: { 23376: typedef wchar_t char_type; 23376: typedef wint_t int_type; 23376: typedef streamoff off_type; 23376: typedef wstreampos pos_type; 23376: typedef mbstate_t state_type; 23376: 23376: static void 23376: assign(char_type& __c1, const char_type& __c2) noexcept 23376: { __c1 = __c2; } 23376: 23376: static constexpr bool 23376: eq(const char_type& __c1, const char_type& __c2) noexcept 23376: { return __c1 == __c2; } 23376: 23376: static constexpr bool 23376: lt(const char_type& __c1, const char_type& __c2) noexcept 23376: { return __c1 < __c2; } 23376: 23376: static int 23376: compare(const char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (__n == 0) 23376: return 0; 23376: else 23376: return wmemcmp(__s1, __s2, __n); 23376: } 23376: 23376: static size_t 23376: length(const char_type* __s) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: return wcslen(__s); 23376: } 23376: 23376: static const char_type* 23376: find(const char_type* __s, size_t __n, const char_type& __a) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (__n == 0) 23376: return 0; 23376: else 23376: return wmemchr(__s, __a, __n); 23376: } 23376: 23376: static char_type* 23376: move(char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: if (__n == 0) 23376: return __s1; 23376: return wmemmove(__s1, __s2, __n); 23376: } 23376: 23376: static char_type* 23376: copy(char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: if (__n == 0) 23376: return __s1; 23376: return wmemcpy(__s1, __s2, __n); 23376: } 23376: 23376: static char_type* 23376: assign(char_type* __s, size_t __n, char_type __a) 23376: { 23376: if (__n == 0) 23376: return __s; 23376: return wmemset(__s, __a, __n); 23376: } 23376: 23376: static constexpr char_type 23376: to_char_type(const int_type& __c) noexcept 23376: { return char_type(__c); } 23376: 23376: static constexpr int_type 23376: to_int_type(const char_type& __c) noexcept 23376: { return int_type(__c); } 23376: 23376: static constexpr bool 23376: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 23376: { return __c1 == __c2; } 23376: 23376: static constexpr int_type 23376: eof() noexcept 23376: { return static_cast((0xffffffffu)); } 23376: 23376: static constexpr int_type 23376: not_eof(const int_type& __c) noexcept 23376: { return eq_int_type(__c, eof()) ? 0 : __c; } 23376: }; 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/cstdint" 1 3 23376: # 32 "/usr/include/c++/8/cstdint" 3 23376: 23376: # 33 "/usr/include/c++/8/cstdint" 3 23376: # 46 "/usr/include/c++/8/cstdint" 3 23376: namespace std 23376: { 23376: using ::int8_t; 23376: using ::int16_t; 23376: using ::int32_t; 23376: using ::int64_t; 23376: 23376: using ::int_fast8_t; 23376: using ::int_fast16_t; 23376: using ::int_fast32_t; 23376: using ::int_fast64_t; 23376: 23376: using ::int_least8_t; 23376: using ::int_least16_t; 23376: using ::int_least32_t; 23376: using ::int_least64_t; 23376: 23376: using ::intmax_t; 23376: using ::intptr_t; 23376: 23376: using ::uint8_t; 23376: using ::uint16_t; 23376: using ::uint32_t; 23376: using ::uint64_t; 23376: 23376: using ::uint_fast8_t; 23376: using ::uint_fast16_t; 23376: using ::uint_fast32_t; 23376: using ::uint_fast64_t; 23376: 23376: using ::uint_least8_t; 23376: using ::uint_least16_t; 23376: using ::uint_least32_t; 23376: using ::uint_least64_t; 23376: 23376: using ::uintmax_t; 23376: using ::uintptr_t; 23376: } 23376: # 504 "/usr/include/c++/8/bits/char_traits.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template<> 23376: struct char_traits 23376: { 23376: typedef char16_t char_type; 23376: typedef uint_least16_t int_type; 23376: typedef streamoff off_type; 23376: typedef u16streampos pos_type; 23376: typedef mbstate_t state_type; 23376: 23376: static void 23376: assign(char_type& __c1, const char_type& __c2) noexcept 23376: { __c1 = __c2; } 23376: 23376: static constexpr bool 23376: eq(const char_type& __c1, const char_type& __c2) noexcept 23376: { return __c1 == __c2; } 23376: 23376: static constexpr bool 23376: lt(const char_type& __c1, const char_type& __c2) noexcept 23376: { return __c1 < __c2; } 23376: 23376: static int 23376: compare(const char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: for (size_t __i = 0; __i < __n; ++__i) 23376: if (lt(__s1[__i], __s2[__i])) 23376: return -1; 23376: else if (lt(__s2[__i], __s1[__i])) 23376: return 1; 23376: return 0; 23376: } 23376: 23376: static size_t 23376: length(const char_type* __s) 23376: { 23376: size_t __i = 0; 23376: while (!eq(__s[__i], char_type())) 23376: ++__i; 23376: return __i; 23376: } 23376: 23376: static const char_type* 23376: find(const char_type* __s, size_t __n, const char_type& __a) 23376: { 23376: for (size_t __i = 0; __i < __n; ++__i) 23376: if (eq(__s[__i], __a)) 23376: return __s + __i; 23376: return 0; 23376: } 23376: 23376: static char_type* 23376: move(char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: if (__n == 0) 23376: return __s1; 23376: return (static_cast 23376: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 23376: } 23376: 23376: static char_type* 23376: copy(char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: if (__n == 0) 23376: return __s1; 23376: return (static_cast 23376: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 23376: } 23376: 23376: static char_type* 23376: assign(char_type* __s, size_t __n, char_type __a) 23376: { 23376: for (size_t __i = 0; __i < __n; ++__i) 23376: assign(__s[__i], __a); 23376: return __s; 23376: } 23376: 23376: static constexpr char_type 23376: to_char_type(const int_type& __c) noexcept 23376: { return char_type(__c); } 23376: 23376: static constexpr int_type 23376: to_int_type(const char_type& __c) noexcept 23376: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 23376: 23376: static constexpr bool 23376: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 23376: { return __c1 == __c2; } 23376: 23376: static constexpr int_type 23376: eof() noexcept 23376: { return static_cast(-1); } 23376: 23376: static constexpr int_type 23376: not_eof(const int_type& __c) noexcept 23376: { return eq_int_type(__c, eof()) ? 0 : __c; } 23376: }; 23376: 23376: template<> 23376: struct char_traits 23376: { 23376: typedef char32_t char_type; 23376: typedef uint_least32_t int_type; 23376: typedef streamoff off_type; 23376: typedef u32streampos pos_type; 23376: typedef mbstate_t state_type; 23376: 23376: static void 23376: assign(char_type& __c1, const char_type& __c2) noexcept 23376: { __c1 = __c2; } 23376: 23376: static constexpr bool 23376: eq(const char_type& __c1, const char_type& __c2) noexcept 23376: { return __c1 == __c2; } 23376: 23376: static constexpr bool 23376: lt(const char_type& __c1, const char_type& __c2) noexcept 23376: { return __c1 < __c2; } 23376: 23376: static int 23376: compare(const char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: for (size_t __i = 0; __i < __n; ++__i) 23376: if (lt(__s1[__i], __s2[__i])) 23376: return -1; 23376: else if (lt(__s2[__i], __s1[__i])) 23376: return 1; 23376: return 0; 23376: } 23376: 23376: static size_t 23376: length(const char_type* __s) 23376: { 23376: size_t __i = 0; 23376: while (!eq(__s[__i], char_type())) 23376: ++__i; 23376: return __i; 23376: } 23376: 23376: static const char_type* 23376: find(const char_type* __s, size_t __n, const char_type& __a) 23376: { 23376: for (size_t __i = 0; __i < __n; ++__i) 23376: if (eq(__s[__i], __a)) 23376: return __s + __i; 23376: return 0; 23376: } 23376: 23376: static char_type* 23376: move(char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: if (__n == 0) 23376: return __s1; 23376: return (static_cast 23376: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 23376: } 23376: 23376: static char_type* 23376: copy(char_type* __s1, const char_type* __s2, size_t __n) 23376: { 23376: if (__n == 0) 23376: return __s1; 23376: return (static_cast 23376: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 23376: } 23376: 23376: static char_type* 23376: assign(char_type* __s, size_t __n, char_type __a) 23376: { 23376: for (size_t __i = 0; __i < __n; ++__i) 23376: assign(__s[__i], __a); 23376: return __s; 23376: } 23376: 23376: static constexpr char_type 23376: to_char_type(const int_type& __c) noexcept 23376: { return char_type(__c); } 23376: 23376: static constexpr int_type 23376: to_int_type(const char_type& __c) noexcept 23376: { return int_type(__c); } 23376: 23376: static constexpr bool 23376: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 23376: { return __c1 == __c2; } 23376: 23376: static constexpr int_type 23376: eof() noexcept 23376: { return static_cast(-1); } 23376: 23376: static constexpr int_type 23376: not_eof(const int_type& __c) noexcept 23376: { return eq_int_type(__c, eof()) ? 0 : __c; } 23376: }; 23376: 23376: 23376: } 23376: # 41 "/usr/include/c++/8/string" 2 3 23376: # 1 "/usr/include/c++/8/bits/allocator.h" 1 3 23376: # 46 "/usr/include/c++/8/bits/allocator.h" 3 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 1 3 23376: # 33 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 3 23376: # 1 "/usr/include/c++/8/ext/new_allocator.h" 1 3 23376: # 40 "/usr/include/c++/8/ext/new_allocator.h" 3 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: using std::size_t; 23376: using std::ptrdiff_t; 23376: # 57 "/usr/include/c++/8/ext/new_allocator.h" 3 23376: template 23376: class new_allocator 23376: { 23376: public: 23376: typedef size_t size_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef _Tp* pointer; 23376: typedef const _Tp* const_pointer; 23376: typedef _Tp& reference; 23376: typedef const _Tp& const_reference; 23376: typedef _Tp value_type; 23376: 23376: template 23376: struct rebind 23376: { typedef new_allocator<_Tp1> other; }; 23376: 23376: 23376: 23376: 23376: typedef std::true_type propagate_on_container_move_assignment; 23376: 23376: 23376: new_allocator() noexcept { } 23376: 23376: new_allocator(const new_allocator&) noexcept { } 23376: 23376: template 23376: new_allocator(const new_allocator<_Tp1>&) noexcept { } 23376: 23376: ~new_allocator() noexcept { } 23376: 23376: pointer 23376: address(reference __x) const noexcept 23376: { return std::__addressof(__x); } 23376: 23376: const_pointer 23376: address(const_reference __x) const noexcept 23376: { return std::__addressof(__x); } 23376: 23376: 23376: 23376: pointer 23376: allocate(size_type __n, const void* = static_cast(0)) 23376: { 23376: if (__n > this->max_size()) 23376: std::__throw_bad_alloc(); 23376: # 111 "/usr/include/c++/8/ext/new_allocator.h" 3 23376: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 23376: } 23376: 23376: 23376: void 23376: deallocate(pointer __p, size_type) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ::operator delete(__p); 23376: } 23376: 23376: size_type 23376: max_size() const noexcept 23376: { return size_t(-1) / sizeof(_Tp); } 23376: 23376: 23376: template 23376: void 23376: construct(_Up* __p, _Args&&... __args) 23376: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 23376: 23376: template 23376: void 23376: destroy(_Up* __p) { __p->~_Up(); } 23376: # 151 "/usr/include/c++/8/ext/new_allocator.h" 3 23376: }; 23376: 23376: template 23376: inline bool 23376: operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 23376: { return true; } 23376: 23376: template 23376: inline bool 23376: operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 23376: { return false; } 23376: 23376: 23376: } 23376: # 34 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 2 3 23376: 23376: 23376: namespace std 23376: { 23376: # 47 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 3 23376: template 23376: using __allocator_base = __gnu_cxx::new_allocator<_Tp>; 23376: } 23376: # 47 "/usr/include/c++/8/bits/allocator.h" 2 3 23376: # 57 "/usr/include/c++/8/bits/allocator.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: class allocator 23376: { 23376: public: 23376: typedef size_t size_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef void* pointer; 23376: typedef const void* const_pointer; 23376: typedef void value_type; 23376: 23376: template 23376: struct rebind 23376: { typedef allocator<_Tp1> other; }; 23376: 23376: 23376: 23376: 23376: typedef true_type propagate_on_container_move_assignment; 23376: 23376: typedef true_type is_always_equal; 23376: 23376: template 23376: void 23376: construct(_Up* __p, _Args&&... __args) 23376: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 23376: 23376: template 23376: void 23376: destroy(_Up* __p) { __p->~_Up(); } 23376: 23376: }; 23376: # 107 "/usr/include/c++/8/bits/allocator.h" 3 23376: template 23376: class allocator : public __allocator_base<_Tp> 23376: { 23376: public: 23376: typedef size_t size_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef _Tp* pointer; 23376: typedef const _Tp* const_pointer; 23376: typedef _Tp& reference; 23376: typedef const _Tp& const_reference; 23376: typedef _Tp value_type; 23376: 23376: template 23376: struct rebind 23376: { typedef allocator<_Tp1> other; }; 23376: 23376: 23376: 23376: 23376: typedef true_type propagate_on_container_move_assignment; 23376: 23376: typedef true_type is_always_equal; 23376: 23376: 23376: allocator() throw() { } 23376: 23376: allocator(const allocator& __a) throw() 23376: : __allocator_base<_Tp>(__a) { } 23376: 23376: template 23376: allocator(const allocator<_Tp1>&) throw() { } 23376: 23376: ~allocator() throw() { } 23376: 23376: 23376: }; 23376: 23376: template 23376: inline bool 23376: operator==(const allocator<_T1>&, const allocator<_T2>&) 23376: noexcept 23376: { return true; } 23376: 23376: template 23376: inline bool 23376: operator==(const allocator<_Tp>&, const allocator<_Tp>&) 23376: noexcept 23376: { return true; } 23376: 23376: template 23376: inline bool 23376: operator!=(const allocator<_T1>&, const allocator<_T2>&) 23376: noexcept 23376: { return false; } 23376: 23376: template 23376: inline bool 23376: operator!=(const allocator<_Tp>&, const allocator<_Tp>&) 23376: noexcept 23376: { return false; } 23376: 23376: 23376: 23376: template 23376: class allocator 23376: { 23376: public: 23376: typedef _Tp value_type; 23376: template allocator(const allocator<_Up>&) { } 23376: }; 23376: 23376: template 23376: class allocator 23376: { 23376: public: 23376: typedef _Tp value_type; 23376: template allocator(const allocator<_Up>&) { } 23376: }; 23376: 23376: template 23376: class allocator 23376: { 23376: public: 23376: typedef _Tp value_type; 23376: template allocator(const allocator<_Up>&) { } 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern template class allocator; 23376: extern template class allocator; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __alloc_swap 23376: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 23376: 23376: template 23376: struct __alloc_swap<_Alloc, false> 23376: { 23376: static void 23376: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 23376: { 23376: 23376: if (__one != __two) 23376: swap(__one, __two); 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct __alloc_neq 23376: { 23376: static bool 23376: _S_do_it(const _Alloc&, const _Alloc&) 23376: { return false; } 23376: }; 23376: 23376: template 23376: struct __alloc_neq<_Alloc, false> 23376: { 23376: static bool 23376: _S_do_it(const _Alloc& __one, const _Alloc& __two) 23376: { return __one != __two; } 23376: }; 23376: 23376: 23376: template, 23376: is_nothrow_move_constructible>::value> 23376: struct __shrink_to_fit_aux 23376: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 23376: 23376: template 23376: struct __shrink_to_fit_aux<_Tp, true> 23376: { 23376: static bool 23376: _S_do_it(_Tp& __c) noexcept 23376: { 23376: 23376: try 23376: { 23376: _Tp(__make_move_if_noexcept_iterator(__c.begin()), 23376: __make_move_if_noexcept_iterator(__c.end()), 23376: __c.get_allocator()).swap(__c); 23376: return true; 23376: } 23376: catch(...) 23376: { return false; } 23376: 23376: 23376: 23376: } 23376: }; 23376: 23376: 23376: 23376: } 23376: # 42 "/usr/include/c++/8/string" 2 3 23376: 23376: # 1 "/usr/include/c++/8/bits/localefwd.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/localefwd.h" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/localefwd.h" 3 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 1 3 23376: # 39 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 3 23376: 23376: # 40 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 3 23376: 23376: # 1 "/usr/include/c++/8/clocale" 1 3 23376: # 39 "/usr/include/c++/8/clocale" 3 23376: 23376: # 40 "/usr/include/c++/8/clocale" 3 23376: 23376: 23376: # 1 "/usr/include/locale.h" 1 3 4 23376: # 28 "/usr/include/locale.h" 3 4 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 29 "/usr/include/locale.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/locale.h" 1 3 4 23376: # 30 "/usr/include/locale.h" 2 3 4 23376: 23376: extern "C" { 23376: # 51 "/usr/include/locale.h" 3 4 23376: struct lconv 23376: { 23376: 23376: 23376: char *decimal_point; 23376: char *thousands_sep; 23376: 23376: 23376: 23376: 23376: 23376: char *grouping; 23376: 23376: 23376: 23376: 23376: 23376: char *int_curr_symbol; 23376: char *currency_symbol; 23376: char *mon_decimal_point; 23376: char *mon_thousands_sep; 23376: char *mon_grouping; 23376: char *positive_sign; 23376: char *negative_sign; 23376: char int_frac_digits; 23376: char frac_digits; 23376: 23376: char p_cs_precedes; 23376: 23376: char p_sep_by_space; 23376: 23376: char n_cs_precedes; 23376: 23376: char n_sep_by_space; 23376: 23376: 23376: 23376: 23376: 23376: 23376: char p_sign_posn; 23376: char n_sign_posn; 23376: 23376: 23376: char int_p_cs_precedes; 23376: 23376: char int_p_sep_by_space; 23376: 23376: char int_n_cs_precedes; 23376: 23376: char int_n_sep_by_space; 23376: 23376: 23376: 23376: 23376: 23376: 23376: char int_p_sign_posn; 23376: char int_n_sign_posn; 23376: # 118 "/usr/include/locale.h" 3 4 23376: }; 23376: 23376: 23376: 23376: extern char *setlocale (int __category, const char *__locale) throw (); 23376: 23376: 23376: extern struct lconv *localeconv (void) throw (); 23376: # 141 "/usr/include/locale.h" 3 4 23376: extern locale_t newlocale (int __category_mask, const char *__locale, 23376: locale_t __base) throw (); 23376: # 176 "/usr/include/locale.h" 3 4 23376: extern locale_t duplocale (locale_t __dataset) throw (); 23376: 23376: 23376: 23376: extern void freelocale (locale_t __dataset) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern locale_t uselocale (locale_t __dataset) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 43 "/usr/include/c++/8/clocale" 2 3 23376: # 51 "/usr/include/c++/8/clocale" 3 23376: namespace std 23376: { 23376: using ::lconv; 23376: using ::setlocale; 23376: using ::localeconv; 23376: } 23376: # 42 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 2 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: extern "C" __typeof(uselocale) __uselocale; 23376: 23376: 23376: } 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: typedef __locale_t __c_locale; 23376: 23376: 23376: 23376: 23376: 23376: inline int 23376: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 23376: char* __out, 23376: const int __size __attribute__ ((__unused__)), 23376: const char* __fmt, ...) 23376: { 23376: 23376: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 23376: # 88 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 3 23376: __builtin_va_list __args; 23376: __builtin_va_start(__args, __fmt); 23376: 23376: 23376: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 23376: 23376: 23376: 23376: 23376: __builtin_va_end(__args); 23376: 23376: 23376: __gnu_cxx::__uselocale(__old); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: return __ret; 23376: } 23376: 23376: 23376: } 23376: # 41 "/usr/include/c++/8/bits/localefwd.h" 2 3 23376: 23376: # 1 "/usr/include/c++/8/cctype" 1 3 23376: # 39 "/usr/include/c++/8/cctype" 3 23376: 23376: # 40 "/usr/include/c++/8/cctype" 3 23376: 23376: 23376: # 1 "/usr/include/ctype.h" 1 3 4 23376: # 28 "/usr/include/ctype.h" 3 4 23376: extern "C" { 23376: # 46 "/usr/include/ctype.h" 3 4 23376: enum 23376: { 23376: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 23376: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 23376: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 23376: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 23376: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 23376: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 23376: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 23376: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 23376: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 23376: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 23376: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 23376: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 23376: }; 23376: # 79 "/usr/include/ctype.h" 3 4 23376: extern const unsigned short int **__ctype_b_loc (void) 23376: throw () __attribute__ ((__const__)); 23376: extern const __int32_t **__ctype_tolower_loc (void) 23376: throw () __attribute__ ((__const__)); 23376: extern const __int32_t **__ctype_toupper_loc (void) 23376: throw () __attribute__ ((__const__)); 23376: # 108 "/usr/include/ctype.h" 3 4 23376: extern int isalnum (int) throw (); 23376: extern int isalpha (int) throw (); 23376: extern int iscntrl (int) throw (); 23376: extern int isdigit (int) throw (); 23376: extern int islower (int) throw (); 23376: extern int isgraph (int) throw (); 23376: extern int isprint (int) throw (); 23376: extern int ispunct (int) throw (); 23376: extern int isspace (int) throw (); 23376: extern int isupper (int) throw (); 23376: extern int isxdigit (int) throw (); 23376: 23376: 23376: 23376: extern int tolower (int __c) throw (); 23376: 23376: 23376: extern int toupper (int __c) throw (); 23376: 23376: 23376: 23376: 23376: extern int isblank (int) throw (); 23376: 23376: 23376: 23376: 23376: extern int isctype (int __c, int __mask) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int isascii (int __c) throw (); 23376: 23376: 23376: 23376: extern int toascii (int __c) throw (); 23376: 23376: 23376: 23376: extern int _toupper (int) throw (); 23376: extern int _tolower (int) throw (); 23376: # 251 "/usr/include/ctype.h" 3 4 23376: extern int isalnum_l (int, locale_t) throw (); 23376: extern int isalpha_l (int, locale_t) throw (); 23376: extern int iscntrl_l (int, locale_t) throw (); 23376: extern int isdigit_l (int, locale_t) throw (); 23376: extern int islower_l (int, locale_t) throw (); 23376: extern int isgraph_l (int, locale_t) throw (); 23376: extern int isprint_l (int, locale_t) throw (); 23376: extern int ispunct_l (int, locale_t) throw (); 23376: extern int isspace_l (int, locale_t) throw (); 23376: extern int isupper_l (int, locale_t) throw (); 23376: extern int isxdigit_l (int, locale_t) throw (); 23376: 23376: extern int isblank_l (int, locale_t) throw (); 23376: 23376: 23376: 23376: extern int __tolower_l (int __c, locale_t __l) throw (); 23376: extern int tolower_l (int __c, locale_t __l) throw (); 23376: 23376: 23376: extern int __toupper_l (int __c, locale_t __l) throw (); 23376: extern int toupper_l (int __c, locale_t __l) throw (); 23376: # 327 "/usr/include/ctype.h" 3 4 23376: } 23376: # 43 "/usr/include/c++/8/cctype" 2 3 23376: # 62 "/usr/include/c++/8/cctype" 3 23376: namespace std 23376: { 23376: using ::isalnum; 23376: using ::isalpha; 23376: using ::iscntrl; 23376: using ::isdigit; 23376: using ::isgraph; 23376: using ::islower; 23376: using ::isprint; 23376: using ::ispunct; 23376: using ::isspace; 23376: using ::isupper; 23376: using ::isxdigit; 23376: using ::tolower; 23376: using ::toupper; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace std 23376: { 23376: using ::isblank; 23376: } 23376: # 43 "/usr/include/c++/8/bits/localefwd.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 55 "/usr/include/c++/8/bits/localefwd.h" 3 23376: class locale; 23376: 23376: template 23376: bool 23376: has_facet(const locale&) throw(); 23376: 23376: template 23376: const _Facet& 23376: use_facet(const locale&); 23376: 23376: 23376: template 23376: bool 23376: isspace(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: isprint(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: iscntrl(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: isupper(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: islower(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: isalpha(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: isdigit(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: ispunct(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: isxdigit(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: isalnum(_CharT, const locale&); 23376: 23376: template 23376: bool 23376: isgraph(_CharT, const locale&); 23376: 23376: 23376: template 23376: bool 23376: isblank(_CharT, const locale&); 23376: 23376: 23376: template 23376: _CharT 23376: toupper(_CharT, const locale&); 23376: 23376: template 23376: _CharT 23376: tolower(_CharT, const locale&); 23376: 23376: 23376: class ctype_base; 23376: template 23376: class ctype; 23376: template<> class ctype; 23376: 23376: template<> class ctype; 23376: 23376: template 23376: class ctype_byname; 23376: 23376: 23376: class codecvt_base; 23376: template 23376: class codecvt; 23376: template<> class codecvt; 23376: 23376: template<> class codecvt; 23376: 23376: template 23376: class codecvt_byname; 23376: 23376: 23376: 23376: template > 23376: class num_get; 23376: template > 23376: class num_put; 23376: 23376: namespace __cxx11 { 23376: template class numpunct; 23376: template class numpunct_byname; 23376: } 23376: 23376: namespace __cxx11 { 23376: 23376: template 23376: class collate; 23376: template 23376: class collate_byname; 23376: } 23376: 23376: 23376: class time_base; 23376: namespace __cxx11 { 23376: template > 23376: class time_get; 23376: template > 23376: class time_get_byname; 23376: } 23376: template > 23376: class time_put; 23376: template > 23376: class time_put_byname; 23376: 23376: 23376: class money_base; 23376: namespace __cxx11 { 23376: template > 23376: class money_get; 23376: template > 23376: class money_put; 23376: } 23376: namespace __cxx11 { 23376: template 23376: class moneypunct; 23376: template 23376: class moneypunct_byname; 23376: } 23376: 23376: 23376: class messages_base; 23376: namespace __cxx11 { 23376: template 23376: class messages; 23376: template 23376: class messages_byname; 23376: } 23376: 23376: 23376: } 23376: # 44 "/usr/include/c++/8/string" 2 3 23376: # 1 "/usr/include/c++/8/bits/ostream_insert.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/ostream_insert.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/ostream_insert.h" 3 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/cxxabi_forced.h" 1 3 23376: # 34 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 23376: 23376: # 35 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 23376: 23376: #pragma GCC visibility push(default) 23376: 23376: 23376: namespace __cxxabiv1 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: class __forced_unwind 23376: { 23376: virtual ~__forced_unwind() throw(); 23376: 23376: 23376: virtual void __pure_dummy() = 0; 23376: }; 23376: } 23376: 23376: 23376: #pragma GCC visibility pop 23376: # 37 "/usr/include/c++/8/bits/ostream_insert.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: inline void 23376: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 23376: const _CharT* __s, streamsize __n) 23376: { 23376: typedef basic_ostream<_CharT, _Traits> __ostream_type; 23376: typedef typename __ostream_type::ios_base __ios_base; 23376: 23376: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 23376: if (__put != __n) 23376: __out.setstate(__ios_base::badbit); 23376: } 23376: 23376: template 23376: inline void 23376: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 23376: { 23376: typedef basic_ostream<_CharT, _Traits> __ostream_type; 23376: typedef typename __ostream_type::ios_base __ios_base; 23376: 23376: const _CharT __c = __out.fill(); 23376: for (; __n > 0; --__n) 23376: { 23376: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 23376: if (_Traits::eq_int_type(__put, _Traits::eof())) 23376: { 23376: __out.setstate(__ios_base::badbit); 23376: break; 23376: } 23376: } 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 23376: const _CharT* __s, streamsize __n) 23376: { 23376: typedef basic_ostream<_CharT, _Traits> __ostream_type; 23376: typedef typename __ostream_type::ios_base __ios_base; 23376: 23376: typename __ostream_type::sentry __cerb(__out); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: const streamsize __w = __out.width(); 23376: if (__w > __n) 23376: { 23376: const bool __left = ((__out.flags() 23376: & __ios_base::adjustfield) 23376: == __ios_base::left); 23376: if (!__left) 23376: __ostream_fill(__out, __w - __n); 23376: if (__out.good()) 23376: __ostream_write(__out, __s, __n); 23376: if (__left && __out.good()) 23376: __ostream_fill(__out, __w - __n); 23376: } 23376: else 23376: __ostream_write(__out, __s, __n); 23376: __out.width(0); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __out._M_setstate(__ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { __out._M_setstate(__ios_base::badbit); } 23376: } 23376: return __out; 23376: } 23376: 23376: 23376: 23376: 23376: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 23376: 23376: 23376: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 23376: streamsize); 23376: 23376: 23376: 23376: 23376: } 23376: # 45 "/usr/include/c++/8/string" 2 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/stl_function.h" 1 3 23376: # 63 "/usr/include/c++/8/bits/stl_function.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 104 "/usr/include/c++/8/bits/stl_function.h" 3 23376: template 23376: struct unary_function 23376: { 23376: 23376: typedef _Arg argument_type; 23376: 23376: 23376: typedef _Result result_type; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct binary_function 23376: { 23376: 23376: typedef _Arg1 first_argument_type; 23376: 23376: 23376: typedef _Arg2 second_argument_type; 23376: 23376: 23376: typedef _Result result_type; 23376: }; 23376: # 144 "/usr/include/c++/8/bits/stl_function.h" 3 23376: struct __is_transparent; 23376: 23376: template 23376: struct plus; 23376: 23376: template 23376: struct minus; 23376: 23376: template 23376: struct multiplies; 23376: 23376: template 23376: struct divides; 23376: 23376: template 23376: struct modulus; 23376: 23376: template 23376: struct negate; 23376: 23376: 23376: 23376: template 23376: struct plus : public binary_function<_Tp, _Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x + __y; } 23376: }; 23376: 23376: 23376: template 23376: struct minus : public binary_function<_Tp, _Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x - __y; } 23376: }; 23376: 23376: 23376: template 23376: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x * __y; } 23376: }; 23376: 23376: 23376: template 23376: struct divides : public binary_function<_Tp, _Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x / __y; } 23376: }; 23376: 23376: 23376: template 23376: struct modulus : public binary_function<_Tp, _Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x % __y; } 23376: }; 23376: 23376: 23376: template 23376: struct negate : public unary_function<_Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x) const 23376: { return -__x; } 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: struct plus 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) + std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) + std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) + std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: template<> 23376: struct minus 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) - std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) - std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) - std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: template<> 23376: struct multiplies 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) * std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) * std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) * std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: template<> 23376: struct divides 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) / std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) / std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) / std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: template<> 23376: struct modulus 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) % std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) % std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) % std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: template<> 23376: struct negate 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t) const 23376: noexcept(noexcept(-std::forward<_Tp>(__t))) 23376: -> decltype(-std::forward<_Tp>(__t)) 23376: { return -std::forward<_Tp>(__t); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: # 330 "/usr/include/c++/8/bits/stl_function.h" 3 23376: template 23376: struct equal_to; 23376: 23376: template 23376: struct not_equal_to; 23376: 23376: template 23376: struct greater; 23376: 23376: template 23376: struct less; 23376: 23376: template 23376: struct greater_equal; 23376: 23376: template 23376: struct less_equal; 23376: 23376: 23376: 23376: template 23376: struct equal_to : public binary_function<_Tp, _Tp, bool> 23376: { 23376: constexpr 23376: bool 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x == __y; } 23376: }; 23376: 23376: 23376: template 23376: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 23376: { 23376: constexpr 23376: bool 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x != __y; } 23376: }; 23376: 23376: 23376: template 23376: struct greater : public binary_function<_Tp, _Tp, bool> 23376: { 23376: constexpr 23376: bool 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x > __y; } 23376: }; 23376: 23376: 23376: template 23376: struct less : public binary_function<_Tp, _Tp, bool> 23376: { 23376: constexpr 23376: bool 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x < __y; } 23376: }; 23376: 23376: 23376: template 23376: struct greater_equal : public binary_function<_Tp, _Tp, bool> 23376: { 23376: constexpr 23376: bool 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x >= __y; } 23376: }; 23376: 23376: 23376: template 23376: struct less_equal : public binary_function<_Tp, _Tp, bool> 23376: { 23376: constexpr 23376: bool 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x <= __y; } 23376: }; 23376: 23376: 23376: template 23376: struct greater<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 23376: { 23376: constexpr bool 23376: operator()(_Tp* __x, _Tp* __y) const noexcept 23376: { 23376: if (__builtin_constant_p (__x > __y)) 23376: return __x > __y; 23376: return (unsigned int)__x > (unsigned int)__y; 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct less<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 23376: { 23376: constexpr bool 23376: operator()(_Tp* __x, _Tp* __y) const noexcept 23376: { 23376: if (__builtin_constant_p (__x < __y)) 23376: return __x < __y; 23376: return (unsigned int)__x < (unsigned int)__y; 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct greater_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 23376: { 23376: constexpr bool 23376: operator()(_Tp* __x, _Tp* __y) const noexcept 23376: { 23376: if (__builtin_constant_p (__x >= __y)) 23376: return __x >= __y; 23376: return (unsigned int)__x >= (unsigned int)__y; 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct less_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 23376: { 23376: constexpr bool 23376: operator()(_Tp* __x, _Tp* __y) const noexcept 23376: { 23376: if (__builtin_constant_p (__x <= __y)) 23376: return __x <= __y; 23376: return (unsigned int)__x <= (unsigned int)__y; 23376: } 23376: }; 23376: 23376: 23376: 23376: template<> 23376: struct equal_to 23376: { 23376: template 23376: constexpr auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) == std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) == std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: template<> 23376: struct not_equal_to 23376: { 23376: template 23376: constexpr auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) != std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) != std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) != std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: template<> 23376: struct greater 23376: { 23376: template 23376: constexpr auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) > std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) > std::forward<_Up>(__u)) 23376: { 23376: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 23376: __ptr_cmp<_Tp, _Up>{}); 23376: } 23376: 23376: template 23376: constexpr bool 23376: operator()(_Tp* __t, _Up* __u) const noexcept 23376: { return greater>{}(__t, __u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: 23376: private: 23376: template 23376: static constexpr decltype(auto) 23376: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 23376: { return std::forward<_Tp>(__t) > std::forward<_Up>(__u); } 23376: 23376: template 23376: static constexpr bool 23376: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 23376: { 23376: return greater{}( 23376: static_cast(std::forward<_Tp>(__t)), 23376: static_cast(std::forward<_Up>(__u))); 23376: } 23376: 23376: 23376: template 23376: struct __not_overloaded2 : true_type { }; 23376: 23376: 23376: template 23376: struct __not_overloaded2<_Tp, _Up, __void_t< 23376: decltype(std::declval<_Tp>().operator>(std::declval<_Up>()))>> 23376: : false_type { }; 23376: 23376: 23376: template 23376: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 23376: 23376: 23376: template 23376: struct __not_overloaded<_Tp, _Up, __void_t< 23376: decltype(operator>(std::declval<_Tp>(), std::declval<_Up>()))>> 23376: : false_type { }; 23376: 23376: template 23376: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 23376: is_convertible<_Tp, const volatile void*>, 23376: is_convertible<_Up, const volatile void*>>; 23376: }; 23376: 23376: 23376: template<> 23376: struct less 23376: { 23376: template 23376: constexpr auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) < std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) < std::forward<_Up>(__u)) 23376: { 23376: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 23376: __ptr_cmp<_Tp, _Up>{}); 23376: } 23376: 23376: template 23376: constexpr bool 23376: operator()(_Tp* __t, _Up* __u) const noexcept 23376: { return less>{}(__t, __u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: 23376: private: 23376: template 23376: static constexpr decltype(auto) 23376: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 23376: { return std::forward<_Tp>(__t) < std::forward<_Up>(__u); } 23376: 23376: template 23376: static constexpr bool 23376: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 23376: { 23376: return less{}( 23376: static_cast(std::forward<_Tp>(__t)), 23376: static_cast(std::forward<_Up>(__u))); 23376: } 23376: 23376: 23376: template 23376: struct __not_overloaded2 : true_type { }; 23376: 23376: 23376: template 23376: struct __not_overloaded2<_Tp, _Up, __void_t< 23376: decltype(std::declval<_Tp>().operator<(std::declval<_Up>()))>> 23376: : false_type { }; 23376: 23376: 23376: template 23376: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 23376: 23376: 23376: template 23376: struct __not_overloaded<_Tp, _Up, __void_t< 23376: decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>> 23376: : false_type { }; 23376: 23376: template 23376: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 23376: is_convertible<_Tp, const volatile void*>, 23376: is_convertible<_Up, const volatile void*>>; 23376: }; 23376: 23376: 23376: template<> 23376: struct greater_equal 23376: { 23376: template 23376: constexpr auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) >= std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) >= std::forward<_Up>(__u)) 23376: { 23376: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 23376: __ptr_cmp<_Tp, _Up>{}); 23376: } 23376: 23376: template 23376: constexpr bool 23376: operator()(_Tp* __t, _Up* __u) const noexcept 23376: { return greater_equal>{}(__t, __u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: 23376: private: 23376: template 23376: static constexpr decltype(auto) 23376: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 23376: { return std::forward<_Tp>(__t) >= std::forward<_Up>(__u); } 23376: 23376: template 23376: static constexpr bool 23376: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 23376: { 23376: return greater_equal{}( 23376: static_cast(std::forward<_Tp>(__t)), 23376: static_cast(std::forward<_Up>(__u))); 23376: } 23376: 23376: 23376: template 23376: struct __not_overloaded2 : true_type { }; 23376: 23376: 23376: template 23376: struct __not_overloaded2<_Tp, _Up, __void_t< 23376: decltype(std::declval<_Tp>().operator>=(std::declval<_Up>()))>> 23376: : false_type { }; 23376: 23376: 23376: template 23376: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 23376: 23376: 23376: template 23376: struct __not_overloaded<_Tp, _Up, __void_t< 23376: decltype(operator>=(std::declval<_Tp>(), std::declval<_Up>()))>> 23376: : false_type { }; 23376: 23376: template 23376: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 23376: is_convertible<_Tp, const volatile void*>, 23376: is_convertible<_Up, const volatile void*>>; 23376: }; 23376: 23376: 23376: template<> 23376: struct less_equal 23376: { 23376: template 23376: constexpr auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) <= std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) <= std::forward<_Up>(__u)) 23376: { 23376: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 23376: __ptr_cmp<_Tp, _Up>{}); 23376: } 23376: 23376: template 23376: constexpr bool 23376: operator()(_Tp* __t, _Up* __u) const noexcept 23376: { return less_equal>{}(__t, __u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: 23376: private: 23376: template 23376: static constexpr decltype(auto) 23376: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 23376: { return std::forward<_Tp>(__t) <= std::forward<_Up>(__u); } 23376: 23376: template 23376: static constexpr bool 23376: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 23376: { 23376: return less_equal{}( 23376: static_cast(std::forward<_Tp>(__t)), 23376: static_cast(std::forward<_Up>(__u))); 23376: } 23376: 23376: 23376: template 23376: struct __not_overloaded2 : true_type { }; 23376: 23376: 23376: template 23376: struct __not_overloaded2<_Tp, _Up, __void_t< 23376: decltype(std::declval<_Tp>().operator<=(std::declval<_Up>()))>> 23376: : false_type { }; 23376: 23376: 23376: template 23376: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 23376: 23376: 23376: template 23376: struct __not_overloaded<_Tp, _Up, __void_t< 23376: decltype(operator<=(std::declval<_Tp>(), std::declval<_Up>()))>> 23376: : false_type { }; 23376: 23376: template 23376: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 23376: is_convertible<_Tp, const volatile void*>, 23376: is_convertible<_Up, const volatile void*>>; 23376: }; 23376: # 750 "/usr/include/c++/8/bits/stl_function.h" 3 23376: template 23376: struct logical_and; 23376: 23376: template 23376: struct logical_or; 23376: 23376: template 23376: struct logical_not; 23376: 23376: 23376: 23376: template 23376: struct logical_and : public binary_function<_Tp, _Tp, bool> 23376: { 23376: constexpr 23376: bool 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x && __y; } 23376: }; 23376: 23376: 23376: template 23376: struct logical_or : public binary_function<_Tp, _Tp, bool> 23376: { 23376: constexpr 23376: bool 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x || __y; } 23376: }; 23376: 23376: 23376: template 23376: struct logical_not : public unary_function<_Tp, bool> 23376: { 23376: constexpr 23376: bool 23376: operator()(const _Tp& __x) const 23376: { return !__x; } 23376: }; 23376: 23376: 23376: 23376: template<> 23376: struct logical_and 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) && std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) && std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) && std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: template<> 23376: struct logical_or 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) || std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) || std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) || std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: template<> 23376: struct logical_not 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t) const 23376: noexcept(noexcept(!std::forward<_Tp>(__t))) 23376: -> decltype(!std::forward<_Tp>(__t)) 23376: { return !std::forward<_Tp>(__t); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct bit_and; 23376: 23376: template 23376: struct bit_or; 23376: 23376: template 23376: struct bit_xor; 23376: 23376: template 23376: struct bit_not; 23376: 23376: 23376: 23376: 23376: template 23376: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x & __y; } 23376: }; 23376: 23376: template 23376: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x | __y; } 23376: }; 23376: 23376: template 23376: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x, const _Tp& __y) const 23376: { return __x ^ __y; } 23376: }; 23376: 23376: template 23376: struct bit_not : public unary_function<_Tp, _Tp> 23376: { 23376: constexpr 23376: _Tp 23376: operator()(const _Tp& __x) const 23376: { return ~__x; } 23376: }; 23376: 23376: 23376: template <> 23376: struct bit_and 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) & std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) & std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) & std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: template <> 23376: struct bit_or 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) | std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) | std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) | std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: template <> 23376: struct bit_xor 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t, _Up&& __u) const 23376: noexcept(noexcept(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u))) 23376: -> decltype(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u)) 23376: { return std::forward<_Tp>(__t) ^ std::forward<_Up>(__u); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: 23376: template <> 23376: struct bit_not 23376: { 23376: template 23376: constexpr 23376: auto 23376: operator()(_Tp&& __t) const 23376: noexcept(noexcept(~std::forward<_Tp>(__t))) 23376: -> decltype(~std::forward<_Tp>(__t)) 23376: { return ~std::forward<_Tp>(__t); } 23376: 23376: typedef __is_transparent is_transparent; 23376: }; 23376: # 978 "/usr/include/c++/8/bits/stl_function.h" 3 23376: template 23376: class unary_negate 23376: : public unary_function 23376: { 23376: protected: 23376: _Predicate _M_pred; 23376: 23376: public: 23376: constexpr 23376: explicit 23376: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 23376: 23376: constexpr 23376: bool 23376: operator()(const typename _Predicate::argument_type& __x) const 23376: { return !_M_pred(__x); } 23376: }; 23376: 23376: 23376: template 23376: constexpr 23376: inline unary_negate<_Predicate> 23376: not1(const _Predicate& __pred) 23376: { return unary_negate<_Predicate>(__pred); } 23376: 23376: 23376: template 23376: class binary_negate 23376: : public binary_function 23376: { 23376: protected: 23376: _Predicate _M_pred; 23376: 23376: public: 23376: constexpr 23376: explicit 23376: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 23376: 23376: constexpr 23376: bool 23376: operator()(const typename _Predicate::first_argument_type& __x, 23376: const typename _Predicate::second_argument_type& __y) const 23376: { return !_M_pred(__x, __y); } 23376: }; 23376: 23376: 23376: template 23376: constexpr 23376: inline binary_negate<_Predicate> 23376: not2(const _Predicate& __pred) 23376: { return binary_negate<_Predicate>(__pred); } 23376: # 1055 "/usr/include/c++/8/bits/stl_function.h" 3 23376: template 23376: class pointer_to_unary_function : public unary_function<_Arg, _Result> 23376: { 23376: protected: 23376: _Result (*_M_ptr)(_Arg); 23376: 23376: public: 23376: pointer_to_unary_function() { } 23376: 23376: explicit 23376: pointer_to_unary_function(_Result (*__x)(_Arg)) 23376: : _M_ptr(__x) { } 23376: 23376: _Result 23376: operator()(_Arg __x) const 23376: { return _M_ptr(__x); } 23376: }; 23376: 23376: 23376: template 23376: inline pointer_to_unary_function<_Arg, _Result> 23376: ptr_fun(_Result (*__x)(_Arg)) 23376: { return pointer_to_unary_function<_Arg, _Result>(__x); } 23376: 23376: 23376: template 23376: class pointer_to_binary_function 23376: : public binary_function<_Arg1, _Arg2, _Result> 23376: { 23376: protected: 23376: _Result (*_M_ptr)(_Arg1, _Arg2); 23376: 23376: public: 23376: pointer_to_binary_function() { } 23376: 23376: explicit 23376: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 23376: : _M_ptr(__x) { } 23376: 23376: _Result 23376: operator()(_Arg1 __x, _Arg2 __y) const 23376: { return _M_ptr(__x, __y); } 23376: }; 23376: 23376: 23376: template 23376: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 23376: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 23376: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 23376: 23376: 23376: template 23376: struct _Identity 23376: : public unary_function<_Tp, _Tp> 23376: { 23376: _Tp& 23376: operator()(_Tp& __x) const 23376: { return __x; } 23376: 23376: const _Tp& 23376: operator()(const _Tp& __x) const 23376: { return __x; } 23376: }; 23376: 23376: 23376: template struct _Identity : _Identity<_Tp> { }; 23376: 23376: template 23376: struct _Select1st 23376: : public unary_function<_Pair, typename _Pair::first_type> 23376: { 23376: typename _Pair::first_type& 23376: operator()(_Pair& __x) const 23376: { return __x.first; } 23376: 23376: const typename _Pair::first_type& 23376: operator()(const _Pair& __x) const 23376: { return __x.first; } 23376: 23376: 23376: template 23376: typename _Pair2::first_type& 23376: operator()(_Pair2& __x) const 23376: { return __x.first; } 23376: 23376: template 23376: const typename _Pair2::first_type& 23376: operator()(const _Pair2& __x) const 23376: { return __x.first; } 23376: 23376: }; 23376: 23376: template 23376: struct _Select2nd 23376: : public unary_function<_Pair, typename _Pair::second_type> 23376: { 23376: typename _Pair::second_type& 23376: operator()(_Pair& __x) const 23376: { return __x.second; } 23376: 23376: const typename _Pair::second_type& 23376: operator()(const _Pair& __x) const 23376: { return __x.second; } 23376: }; 23376: # 1178 "/usr/include/c++/8/bits/stl_function.h" 3 23376: template 23376: class mem_fun_t : public unary_function<_Tp*, _Ret> 23376: { 23376: public: 23376: explicit 23376: mem_fun_t(_Ret (_Tp::*__pf)()) 23376: : _M_f(__pf) { } 23376: 23376: _Ret 23376: operator()(_Tp* __p) const 23376: { return (__p->*_M_f)(); } 23376: 23376: private: 23376: _Ret (_Tp::*_M_f)(); 23376: }; 23376: 23376: 23376: 23376: template 23376: class const_mem_fun_t : public unary_function 23376: { 23376: public: 23376: explicit 23376: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 23376: : _M_f(__pf) { } 23376: 23376: _Ret 23376: operator()(const _Tp* __p) const 23376: { return (__p->*_M_f)(); } 23376: 23376: private: 23376: _Ret (_Tp::*_M_f)() const; 23376: }; 23376: 23376: 23376: 23376: template 23376: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 23376: { 23376: public: 23376: explicit 23376: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 23376: : _M_f(__pf) { } 23376: 23376: _Ret 23376: operator()(_Tp& __r) const 23376: { return (__r.*_M_f)(); } 23376: 23376: private: 23376: _Ret (_Tp::*_M_f)(); 23376: }; 23376: 23376: 23376: 23376: template 23376: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 23376: { 23376: public: 23376: explicit 23376: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 23376: : _M_f(__pf) { } 23376: 23376: _Ret 23376: operator()(const _Tp& __r) const 23376: { return (__r.*_M_f)(); } 23376: 23376: private: 23376: _Ret (_Tp::*_M_f)() const; 23376: }; 23376: 23376: 23376: 23376: template 23376: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 23376: { 23376: public: 23376: explicit 23376: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 23376: : _M_f(__pf) { } 23376: 23376: _Ret 23376: operator()(_Tp* __p, _Arg __x) const 23376: { return (__p->*_M_f)(__x); } 23376: 23376: private: 23376: _Ret (_Tp::*_M_f)(_Arg); 23376: }; 23376: 23376: 23376: 23376: template 23376: class const_mem_fun1_t : public binary_function 23376: { 23376: public: 23376: explicit 23376: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 23376: : _M_f(__pf) { } 23376: 23376: _Ret 23376: operator()(const _Tp* __p, _Arg __x) const 23376: { return (__p->*_M_f)(__x); } 23376: 23376: private: 23376: _Ret (_Tp::*_M_f)(_Arg) const; 23376: }; 23376: 23376: 23376: 23376: template 23376: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 23376: { 23376: public: 23376: explicit 23376: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 23376: : _M_f(__pf) { } 23376: 23376: _Ret 23376: operator()(_Tp& __r, _Arg __x) const 23376: { return (__r.*_M_f)(__x); } 23376: 23376: private: 23376: _Ret (_Tp::*_M_f)(_Arg); 23376: }; 23376: 23376: 23376: 23376: template 23376: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 23376: { 23376: public: 23376: explicit 23376: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 23376: : _M_f(__pf) { } 23376: 23376: _Ret 23376: operator()(const _Tp& __r, _Arg __x) const 23376: { return (__r.*_M_f)(__x); } 23376: 23376: private: 23376: _Ret (_Tp::*_M_f)(_Arg) const; 23376: }; 23376: 23376: 23376: 23376: template 23376: inline mem_fun_t<_Ret, _Tp> 23376: mem_fun(_Ret (_Tp::*__f)()) 23376: { return mem_fun_t<_Ret, _Tp>(__f); } 23376: 23376: template 23376: inline const_mem_fun_t<_Ret, _Tp> 23376: mem_fun(_Ret (_Tp::*__f)() const) 23376: { return const_mem_fun_t<_Ret, _Tp>(__f); } 23376: 23376: template 23376: inline mem_fun_ref_t<_Ret, _Tp> 23376: mem_fun_ref(_Ret (_Tp::*__f)()) 23376: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 23376: 23376: template 23376: inline const_mem_fun_ref_t<_Ret, _Tp> 23376: mem_fun_ref(_Ret (_Tp::*__f)() const) 23376: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 23376: 23376: template 23376: inline mem_fun1_t<_Ret, _Tp, _Arg> 23376: mem_fun(_Ret (_Tp::*__f)(_Arg)) 23376: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 23376: 23376: template 23376: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 23376: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 23376: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 23376: 23376: template 23376: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 23376: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 23376: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 23376: 23376: template 23376: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 23376: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 23376: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 23376: 23376: 23376: 23376: 23376: } 23376: 23376: 23376: # 1 "/usr/include/c++/8/backward/binders.h" 1 3 23376: # 60 "/usr/include/c++/8/backward/binders.h" 3 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 107 "/usr/include/c++/8/backward/binders.h" 3 23376: template 23376: class binder1st 23376: : public unary_function 23376: { 23376: protected: 23376: _Operation op; 23376: typename _Operation::first_argument_type value; 23376: 23376: public: 23376: binder1st(const _Operation& __x, 23376: const typename _Operation::first_argument_type& __y) 23376: : op(__x), value(__y) { } 23376: 23376: typename _Operation::result_type 23376: operator()(const typename _Operation::second_argument_type& __x) const 23376: { return op(value, __x); } 23376: 23376: 23376: 23376: typename _Operation::result_type 23376: operator()(typename _Operation::second_argument_type& __x) const 23376: { return op(value, __x); } 23376: } __attribute__ ((__deprecated__)); 23376: 23376: 23376: template 23376: inline binder1st<_Operation> 23376: bind1st(const _Operation& __fn, const _Tp& __x) 23376: { 23376: typedef typename _Operation::first_argument_type _Arg1_type; 23376: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 23376: } 23376: 23376: 23376: template 23376: class binder2nd 23376: : public unary_function 23376: { 23376: protected: 23376: _Operation op; 23376: typename _Operation::second_argument_type value; 23376: 23376: public: 23376: binder2nd(const _Operation& __x, 23376: const typename _Operation::second_argument_type& __y) 23376: : op(__x), value(__y) { } 23376: 23376: typename _Operation::result_type 23376: operator()(const typename _Operation::first_argument_type& __x) const 23376: { return op(__x, value); } 23376: 23376: 23376: 23376: typename _Operation::result_type 23376: operator()(typename _Operation::first_argument_type& __x) const 23376: { return op(__x, value); } 23376: } __attribute__ ((__deprecated__)); 23376: 23376: 23376: template 23376: inline binder2nd<_Operation> 23376: bind2nd(const _Operation& __fn, const _Tp& __x) 23376: { 23376: typedef typename _Operation::second_argument_type _Arg2_type; 23376: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 23376: } 23376: 23376: 23376: 23376: } 23376: 23376: #pragma GCC diagnostic pop 23376: # 1369 "/usr/include/c++/8/bits/stl_function.h" 2 3 23376: # 49 "/usr/include/c++/8/string" 2 3 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/range_access.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/range_access.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/range_access.h" 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: begin(_Container& __cont) -> decltype(__cont.begin()) 23376: { return __cont.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: begin(const _Container& __cont) -> decltype(__cont.begin()) 23376: { return __cont.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: end(_Container& __cont) -> decltype(__cont.end()) 23376: { return __cont.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: end(const _Container& __cont) -> decltype(__cont.end()) 23376: { return __cont.end(); } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline constexpr _Tp* 23376: begin(_Tp (&__arr)[_Nm]) 23376: { return __arr; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline constexpr _Tp* 23376: end(_Tp (&__arr)[_Nm]) 23376: { return __arr + _Nm; } 23376: 23376: 23376: 23376: template class valarray; 23376: 23376: template _Tp* begin(valarray<_Tp>&); 23376: template const _Tp* begin(const valarray<_Tp>&); 23376: template _Tp* end(valarray<_Tp>&); 23376: template const _Tp* end(const valarray<_Tp>&); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline constexpr auto 23376: cbegin(const _Container& __cont) noexcept(noexcept(std::begin(__cont))) 23376: -> decltype(std::begin(__cont)) 23376: { return std::begin(__cont); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline constexpr auto 23376: cend(const _Container& __cont) noexcept(noexcept(std::end(__cont))) 23376: -> decltype(std::end(__cont)) 23376: { return std::end(__cont); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: rbegin(_Container& __cont) -> decltype(__cont.rbegin()) 23376: { return __cont.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: rbegin(const _Container& __cont) -> decltype(__cont.rbegin()) 23376: { return __cont.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: rend(_Container& __cont) -> decltype(__cont.rend()) 23376: { return __cont.rend(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: rend(const _Container& __cont) -> decltype(__cont.rend()) 23376: { return __cont.rend(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline reverse_iterator<_Tp*> 23376: rbegin(_Tp (&__arr)[_Nm]) 23376: { return reverse_iterator<_Tp*>(__arr + _Nm); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline reverse_iterator<_Tp*> 23376: rend(_Tp (&__arr)[_Nm]) 23376: { return reverse_iterator<_Tp*>(__arr); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline reverse_iterator 23376: rbegin(initializer_list<_Tp> __il) 23376: { return reverse_iterator(__il.end()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline reverse_iterator 23376: rend(initializer_list<_Tp> __il) 23376: { return reverse_iterator(__il.begin()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: crbegin(const _Container& __cont) -> decltype(std::rbegin(__cont)) 23376: { return std::rbegin(__cont); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline auto 23376: crend(const _Container& __cont) -> decltype(std::rend(__cont)) 23376: { return std::rend(__cont); } 23376: # 323 "/usr/include/c++/8/bits/range_access.h" 3 23376: 23376: } 23376: # 52 "/usr/include/c++/8/string" 2 3 23376: # 1 "/usr/include/c++/8/bits/basic_string.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/basic_string.h" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/basic_string.h" 3 23376: 23376: # 1 "/usr/include/c++/8/ext/atomicity.h" 1 3 23376: # 32 "/usr/include/c++/8/ext/atomicity.h" 3 23376: 23376: # 33 "/usr/include/c++/8/ext/atomicity.h" 3 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 1 3 23376: # 30 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 3 23376: #pragma GCC visibility push(default) 23376: # 148 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 3 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 1 3 23376: # 35 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 23376: # 1 "/usr/include/pthread.h" 1 3 4 23376: # 23 "/usr/include/pthread.h" 3 4 23376: # 1 "/usr/include/sched.h" 1 3 4 23376: # 29 "/usr/include/sched.h" 3 4 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 30 "/usr/include/sched.h" 2 3 4 23376: # 43 "/usr/include/sched.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 1 3 4 23376: # 74 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_sched_param.h" 1 3 4 23376: # 23 "/usr/include/arm-linux-gnueabihf/bits/types/struct_sched_param.h" 3 4 23376: struct sched_param 23376: { 23376: int sched_priority; 23376: }; 23376: # 75 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 2 3 4 23376: 23376: extern "C" { 23376: 23376: 23376: 23376: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 23376: int __flags, void *__arg, ...) throw (); 23376: 23376: 23376: extern int unshare (int __flags) throw (); 23376: 23376: 23376: extern int sched_getcpu (void) throw (); 23376: 23376: 23376: extern int setns (int __fd, int __nstype) throw (); 23376: 23376: 23376: } 23376: # 44 "/usr/include/sched.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/cpu-set.h" 1 3 4 23376: # 32 "/usr/include/arm-linux-gnueabihf/bits/cpu-set.h" 3 4 23376: typedef unsigned long int __cpu_mask; 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef struct 23376: { 23376: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 23376: } cpu_set_t; 23376: # 115 "/usr/include/arm-linux-gnueabihf/bits/cpu-set.h" 3 4 23376: extern "C" { 23376: 23376: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 23376: throw (); 23376: extern cpu_set_t *__sched_cpualloc (size_t __count) throw () __attribute__ ((__warn_unused_result__)); 23376: extern void __sched_cpufree (cpu_set_t *__set) throw (); 23376: 23376: } 23376: # 45 "/usr/include/sched.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C" { 23376: 23376: 23376: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 23376: throw (); 23376: 23376: 23376: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); 23376: 23376: 23376: extern int sched_setscheduler (__pid_t __pid, int __policy, 23376: const struct sched_param *__param) throw (); 23376: 23376: 23376: extern int sched_getscheduler (__pid_t __pid) throw (); 23376: 23376: 23376: extern int sched_yield (void) throw (); 23376: 23376: 23376: extern int sched_get_priority_max (int __algorithm) throw (); 23376: 23376: 23376: extern int sched_get_priority_min (int __algorithm) throw (); 23376: 23376: 23376: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); 23376: # 121 "/usr/include/sched.h" 3 4 23376: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 23376: const cpu_set_t *__cpuset) throw (); 23376: 23376: 23376: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 23376: cpu_set_t *__cpuset) throw (); 23376: 23376: 23376: } 23376: # 24 "/usr/include/pthread.h" 2 3 4 23376: # 1 "/usr/include/time.h" 1 3 4 23376: # 29 "/usr/include/time.h" 3 4 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 30 "/usr/include/time.h" 2 3 4 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/time.h" 1 3 4 23376: # 73 "/usr/include/arm-linux-gnueabihf/bits/time.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/timex.h" 1 3 4 23376: # 26 "/usr/include/arm-linux-gnueabihf/bits/timex.h" 3 4 23376: struct timex 23376: { 23376: unsigned int modes; 23376: __syscall_slong_t offset; 23376: __syscall_slong_t freq; 23376: __syscall_slong_t maxerror; 23376: __syscall_slong_t esterror; 23376: int status; 23376: __syscall_slong_t constant; 23376: __syscall_slong_t precision; 23376: __syscall_slong_t tolerance; 23376: struct timeval time; 23376: __syscall_slong_t tick; 23376: __syscall_slong_t ppsfreq; 23376: __syscall_slong_t jitter; 23376: int shift; 23376: __syscall_slong_t stabil; 23376: __syscall_slong_t jitcnt; 23376: __syscall_slong_t calcnt; 23376: __syscall_slong_t errcnt; 23376: __syscall_slong_t stbcnt; 23376: 23376: int tai; 23376: 23376: 23376: int :32; int :32; int :32; int :32; 23376: int :32; int :32; int :32; int :32; 23376: int :32; int :32; int :32; 23376: }; 23376: # 74 "/usr/include/arm-linux-gnueabihf/bits/time.h" 2 3 4 23376: 23376: extern "C" { 23376: 23376: 23376: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); 23376: 23376: } 23376: # 34 "/usr/include/time.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_tm.h" 1 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct tm 23376: { 23376: int tm_sec; 23376: int tm_min; 23376: int tm_hour; 23376: int tm_mday; 23376: int tm_mon; 23376: int tm_year; 23376: int tm_wday; 23376: int tm_yday; 23376: int tm_isdst; 23376: 23376: 23376: long int tm_gmtoff; 23376: const char *tm_zone; 23376: 23376: 23376: 23376: 23376: }; 23376: # 40 "/usr/include/time.h" 2 3 4 23376: # 48 "/usr/include/time.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_itimerspec.h" 1 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct itimerspec 23376: { 23376: struct timespec it_interval; 23376: struct timespec it_value; 23376: }; 23376: # 49 "/usr/include/time.h" 2 3 4 23376: struct sigevent; 23376: # 68 "/usr/include/time.h" 3 4 23376: extern "C" { 23376: 23376: 23376: 23376: extern clock_t clock (void) throw (); 23376: 23376: 23376: extern time_t time (time_t *__timer) throw (); 23376: 23376: 23376: extern double difftime (time_t __time1, time_t __time0) 23376: throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern time_t mktime (struct tm *__tp) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern size_t strftime (char *__restrict __s, size_t __maxsize, 23376: const char *__restrict __format, 23376: const struct tm *__restrict __tp) throw (); 23376: 23376: 23376: 23376: 23376: extern char *strptime (const char *__restrict __s, 23376: const char *__restrict __fmt, struct tm *__tp) 23376: throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 23376: const char *__restrict __format, 23376: const struct tm *__restrict __tp, 23376: locale_t __loc) throw (); 23376: 23376: 23376: 23376: extern char *strptime_l (const char *__restrict __s, 23376: const char *__restrict __fmt, struct tm *__tp, 23376: locale_t __loc) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern struct tm *gmtime (const time_t *__timer) throw (); 23376: 23376: 23376: 23376: extern struct tm *localtime (const time_t *__timer) throw (); 23376: 23376: 23376: 23376: 23376: extern struct tm *gmtime_r (const time_t *__restrict __timer, 23376: struct tm *__restrict __tp) throw (); 23376: 23376: 23376: 23376: extern struct tm *localtime_r (const time_t *__restrict __timer, 23376: struct tm *__restrict __tp) throw (); 23376: 23376: 23376: 23376: 23376: extern char *asctime (const struct tm *__tp) throw (); 23376: 23376: 23376: extern char *ctime (const time_t *__timer) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern char *asctime_r (const struct tm *__restrict __tp, 23376: char *__restrict __buf) throw (); 23376: 23376: 23376: extern char *ctime_r (const time_t *__restrict __timer, 23376: char *__restrict __buf) throw (); 23376: 23376: 23376: 23376: 23376: extern char *__tzname[2]; 23376: extern int __daylight; 23376: extern long int __timezone; 23376: 23376: 23376: 23376: 23376: extern char *tzname[2]; 23376: 23376: 23376: 23376: extern void tzset (void) throw (); 23376: 23376: 23376: 23376: extern int daylight; 23376: extern long int timezone; 23376: 23376: 23376: 23376: 23376: 23376: extern int stime (const time_t *__when) throw (); 23376: # 196 "/usr/include/time.h" 3 4 23376: extern time_t timegm (struct tm *__tp) throw (); 23376: 23376: 23376: extern time_t timelocal (struct tm *__tp) throw (); 23376: 23376: 23376: extern int dysize (int __year) throw () __attribute__ ((__const__)); 23376: # 211 "/usr/include/time.h" 3 4 23376: extern int nanosleep (const struct timespec *__requested_time, 23376: struct timespec *__remaining); 23376: 23376: 23376: 23376: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); 23376: 23376: 23376: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); 23376: 23376: 23376: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) 23376: throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int clock_nanosleep (clockid_t __clock_id, int __flags, 23376: const struct timespec *__req, 23376: struct timespec *__rem); 23376: 23376: 23376: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); 23376: 23376: 23376: 23376: 23376: extern int timer_create (clockid_t __clock_id, 23376: struct sigevent *__restrict __evp, 23376: timer_t *__restrict __timerid) throw (); 23376: 23376: 23376: extern int timer_delete (timer_t __timerid) throw (); 23376: 23376: 23376: extern int timer_settime (timer_t __timerid, int __flags, 23376: const struct itimerspec *__restrict __value, 23376: struct itimerspec *__restrict __ovalue) throw (); 23376: 23376: 23376: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) 23376: throw (); 23376: 23376: 23376: extern int timer_getoverrun (timer_t __timerid) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern int timespec_get (struct timespec *__ts, int __base) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: # 280 "/usr/include/time.h" 3 4 23376: extern int getdate_err; 23376: # 289 "/usr/include/time.h" 3 4 23376: extern struct tm *getdate (const char *__string); 23376: # 303 "/usr/include/time.h" 3 4 23376: extern int getdate_r (const char *__restrict __string, 23376: struct tm *__restrict __resbufp); 23376: 23376: 23376: } 23376: # 25 "/usr/include/pthread.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/setjmp.h" 1 3 4 23376: # 33 "/usr/include/arm-linux-gnueabihf/bits/setjmp.h" 3 4 23376: typedef int __jmp_buf[64] __attribute__((__aligned__ (8))); 23376: # 28 "/usr/include/pthread.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 23376: # 29 "/usr/include/pthread.h" 2 3 4 23376: 23376: 23376: 23376: 23376: enum 23376: { 23376: PTHREAD_CREATE_JOINABLE, 23376: 23376: PTHREAD_CREATE_DETACHED 23376: 23376: }; 23376: 23376: 23376: 23376: enum 23376: { 23376: PTHREAD_MUTEX_TIMED_NP, 23376: PTHREAD_MUTEX_RECURSIVE_NP, 23376: PTHREAD_MUTEX_ERRORCHECK_NP, 23376: PTHREAD_MUTEX_ADAPTIVE_NP 23376: 23376: , 23376: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 23376: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 23376: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 23376: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 23376: 23376: 23376: 23376: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 23376: 23376: }; 23376: 23376: 23376: 23376: 23376: enum 23376: { 23376: PTHREAD_MUTEX_STALLED, 23376: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 23376: PTHREAD_MUTEX_ROBUST, 23376: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: enum 23376: { 23376: PTHREAD_PRIO_NONE, 23376: PTHREAD_PRIO_INHERIT, 23376: PTHREAD_PRIO_PROTECT 23376: }; 23376: # 115 "/usr/include/pthread.h" 3 4 23376: enum 23376: { 23376: PTHREAD_RWLOCK_PREFER_READER_NP, 23376: PTHREAD_RWLOCK_PREFER_WRITER_NP, 23376: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 23376: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 23376: }; 23376: # 156 "/usr/include/pthread.h" 3 4 23376: enum 23376: { 23376: PTHREAD_INHERIT_SCHED, 23376: 23376: PTHREAD_EXPLICIT_SCHED 23376: 23376: }; 23376: 23376: 23376: 23376: enum 23376: { 23376: PTHREAD_SCOPE_SYSTEM, 23376: 23376: PTHREAD_SCOPE_PROCESS 23376: 23376: }; 23376: 23376: 23376: 23376: enum 23376: { 23376: PTHREAD_PROCESS_PRIVATE, 23376: 23376: PTHREAD_PROCESS_SHARED 23376: 23376: }; 23376: # 191 "/usr/include/pthread.h" 3 4 23376: struct _pthread_cleanup_buffer 23376: { 23376: void (*__routine) (void *); 23376: void *__arg; 23376: int __canceltype; 23376: struct _pthread_cleanup_buffer *__prev; 23376: }; 23376: 23376: 23376: enum 23376: { 23376: PTHREAD_CANCEL_ENABLE, 23376: 23376: PTHREAD_CANCEL_DISABLE 23376: 23376: }; 23376: enum 23376: { 23376: PTHREAD_CANCEL_DEFERRED, 23376: 23376: PTHREAD_CANCEL_ASYNCHRONOUS 23376: 23376: }; 23376: # 229 "/usr/include/pthread.h" 3 4 23376: extern "C" { 23376: 23376: 23376: 23376: 23376: extern int pthread_create (pthread_t *__restrict __newthread, 23376: const pthread_attr_t *__restrict __attr, 23376: void *(*__start_routine) (void *), 23376: void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); 23376: 23376: 23376: 23376: 23376: 23376: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_join (pthread_t __th, void **__thread_return); 23376: 23376: 23376: 23376: 23376: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, 23376: const struct timespec *__abstime); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_detach (pthread_t __th) throw (); 23376: 23376: 23376: 23376: extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 23376: throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_attr_destroy (pthread_attr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 23376: int *__detachstate) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 23376: int __detachstate) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 23376: size_t *__guardsize) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 23376: size_t __guardsize) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 23376: struct sched_param *__restrict __param) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 23376: const struct sched_param *__restrict 23376: __param) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 23376: __attr, int *__restrict __policy) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 23376: __attr, int *__restrict __inherit) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 23376: int __inherit) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 23376: int *__restrict __scope) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 23376: __attr, void **__restrict __stackaddr) 23376: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 23376: void *__stackaddr) 23376: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 23376: 23376: 23376: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 23376: __attr, size_t *__restrict __stacksize) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 23376: size_t __stacksize) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 23376: void **__restrict __stackaddr, 23376: size_t *__restrict __stacksize) 23376: throw () __attribute__ ((__nonnull__ (1, 2, 3))); 23376: 23376: 23376: 23376: 23376: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 23376: size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 23376: size_t __cpusetsize, 23376: const cpu_set_t *__cpuset) 23376: throw () __attribute__ ((__nonnull__ (1, 3))); 23376: 23376: 23376: 23376: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 23376: size_t __cpusetsize, 23376: cpu_set_t *__cpuset) 23376: throw () __attribute__ ((__nonnull__ (1, 3))); 23376: 23376: 23376: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 23376: const struct sched_param *__param) 23376: throw () __attribute__ ((__nonnull__ (3))); 23376: 23376: 23376: extern int pthread_getschedparam (pthread_t __target_thread, 23376: int *__restrict __policy, 23376: struct sched_param *__restrict __param) 23376: throw () __attribute__ ((__nonnull__ (2, 3))); 23376: 23376: 23376: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 23376: throw (); 23376: 23376: 23376: 23376: 23376: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 23376: size_t __buflen) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_getconcurrency (void) throw (); 23376: 23376: 23376: extern int pthread_setconcurrency (int __level) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_yield (void) throw (); 23376: 23376: 23376: 23376: 23376: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 23376: const cpu_set_t *__cpuset) 23376: throw () __attribute__ ((__nonnull__ (3))); 23376: 23376: 23376: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 23376: cpu_set_t *__cpuset) 23376: throw () __attribute__ ((__nonnull__ (3))); 23376: # 495 "/usr/include/pthread.h" 3 4 23376: extern int pthread_once (pthread_once_t *__once_control, 23376: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 23376: # 507 "/usr/include/pthread.h" 3 4 23376: extern int pthread_setcancelstate (int __state, int *__oldstate); 23376: 23376: 23376: 23376: extern int pthread_setcanceltype (int __type, int *__oldtype); 23376: 23376: 23376: extern int pthread_cancel (pthread_t __th); 23376: 23376: 23376: 23376: 23376: extern void pthread_testcancel (void); 23376: 23376: 23376: 23376: 23376: typedef struct 23376: { 23376: struct 23376: { 23376: __jmp_buf __cancel_jmp_buf; 23376: int __mask_was_saved; 23376: } __cancel_jmp_buf[1]; 23376: void *__pad[4]; 23376: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 23376: # 541 "/usr/include/pthread.h" 3 4 23376: struct __pthread_cleanup_frame 23376: { 23376: void (*__cancel_routine) (void *); 23376: void *__cancel_arg; 23376: int __do_it; 23376: int __cancel_type; 23376: }; 23376: 23376: 23376: 23376: 23376: class __pthread_cleanup_class 23376: { 23376: void (*__cancel_routine) (void *); 23376: void *__cancel_arg; 23376: int __do_it; 23376: int __cancel_type; 23376: 23376: public: 23376: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) 23376: : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } 23376: ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } 23376: void __setdoit (int __newval) { __do_it = __newval; } 23376: void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, 23376: &__cancel_type); } 23376: void __restore () const { pthread_setcanceltype (__cancel_type, 0); } 23376: }; 23376: # 743 "/usr/include/pthread.h" 3 4 23376: struct __jmp_buf_tag; 23376: extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 23376: const pthread_mutexattr_t *__mutexattr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, 23376: const struct timespec *__restrict 23376: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 23376: __restrict __mutex, 23376: int *__restrict __prioceiling) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 23376: int __prioceiling, 23376: int *__restrict __old_ceiling) 23376: throw () __attribute__ ((__nonnull__ (1, 3))); 23376: 23376: 23376: 23376: 23376: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: # 807 "/usr/include/pthread.h" 3 4 23376: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 23376: __restrict __attr, 23376: int *__restrict __pshared) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 23376: int __pshared) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 23376: __attr, int *__restrict __kind) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: 23376: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 23376: __restrict __attr, 23376: int *__restrict __protocol) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 23376: int __protocol) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 23376: __restrict __attr, 23376: int *__restrict __prioceiling) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 23376: int __prioceiling) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 23376: int *__robustness) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, 23376: int *__robustness) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 23376: int __robustness) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, 23376: int __robustness) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: # 889 "/usr/include/pthread.h" 3 4 23376: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 23376: const pthread_rwlockattr_t *__restrict 23376: __attr) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, 23376: const struct timespec *__restrict 23376: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, 23376: const struct timespec *__restrict 23376: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: 23376: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 23376: __restrict __attr, 23376: int *__restrict __pshared) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 23376: int __pshared) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 23376: __restrict __attr, 23376: int *__restrict __pref) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 23376: int __pref) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 23376: const pthread_condattr_t *__restrict __cond_attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_cond_destroy (pthread_cond_t *__cond) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_cond_signal (pthread_cond_t *__cond) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 23376: pthread_mutex_t *__restrict __mutex) 23376: __attribute__ ((__nonnull__ (1, 2))); 23376: # 1001 "/usr/include/pthread.h" 3 4 23376: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, 23376: pthread_mutex_t *__restrict __mutex, 23376: const struct timespec *__restrict __abstime) 23376: __attribute__ ((__nonnull__ (1, 2, 3))); 23376: 23376: 23376: 23376: 23376: extern int pthread_condattr_init (pthread_condattr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_condattr_getpshared (const pthread_condattr_t * 23376: __restrict __attr, 23376: int *__restrict __pshared) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 23376: int __pshared) throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_condattr_getclock (const pthread_condattr_t * 23376: __restrict __attr, 23376: __clockid_t *__restrict __clock_id) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 23376: __clockid_t __clock_id) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: # 1045 "/usr/include/pthread.h" 3 4 23376: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 23376: const pthread_barrierattr_t *__restrict 23376: __attr, unsigned int __count) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: 23376: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 23376: __restrict __attr, 23376: int *__restrict __pshared) 23376: throw () __attribute__ ((__nonnull__ (1, 2))); 23376: 23376: 23376: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 23376: int __pshared) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: # 1112 "/usr/include/pthread.h" 3 4 23376: extern int pthread_key_create (pthread_key_t *__key, 23376: void (*__destr_function) (void *)) 23376: throw () __attribute__ ((__nonnull__ (1))); 23376: 23376: 23376: extern int pthread_key_delete (pthread_key_t __key) throw (); 23376: 23376: 23376: extern void *pthread_getspecific (pthread_key_t __key) throw (); 23376: 23376: 23376: extern int pthread_setspecific (pthread_key_t __key, 23376: const void *__pointer) throw () ; 23376: 23376: 23376: 23376: 23376: extern int pthread_getcpuclockid (pthread_t __thread_id, 23376: __clockid_t *__clock_id) 23376: throw () __attribute__ ((__nonnull__ (2))); 23376: # 1146 "/usr/include/pthread.h" 3 4 23376: extern int pthread_atfork (void (*__prepare) (void), 23376: void (*__parent) (void), 23376: void (*__child) (void)) throw (); 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () 23376: { 23376: return __thread1 == __thread2; 23376: } 23376: 23376: 23376: } 23376: # 36 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 2 3 23376: # 47 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 23376: typedef pthread_t __gthread_t; 23376: typedef pthread_key_t __gthread_key_t; 23376: typedef pthread_once_t __gthread_once_t; 23376: typedef pthread_mutex_t __gthread_mutex_t; 23376: typedef pthread_mutex_t __gthread_recursive_mutex_t; 23376: typedef pthread_cond_t __gthread_cond_t; 23376: typedef struct timespec __gthread_time_t; 23376: # 101 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 23376: static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); 23376: static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); 23376: static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); 23376: 23376: static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); 23376: static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"))); 23376: static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"))); 23376: static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"))); 23376: static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"))); 23376: 23376: static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); 23376: 23376: static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"))); 23376: 23376: static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); 23376: static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); 23376: 23376: static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"))); 23376: 23376: static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); 23376: static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); 23376: static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"))); 23376: 23376: static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"))); 23376: static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); 23376: static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"))); 23376: static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); 23376: static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"))); 23376: static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"))); 23376: 23376: static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); 23376: static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); 23376: static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); 23376: static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); 23376: static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); 23376: # 236 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 23376: static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"))); 23376: # 246 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 23376: static inline int 23376: __gthread_active_p (void) 23376: { 23376: static void *const __gthread_active_ptr 23376: = __extension__ (void *) &__gthrw___pthread_key_create; 23376: return __gthread_active_ptr != 0; 23376: } 23376: # 658 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 23376: static inline int 23376: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 23376: void *__args) 23376: { 23376: return __gthrw_pthread_create (__threadid, __null, __func, __args); 23376: } 23376: 23376: static inline int 23376: __gthread_join (__gthread_t __threadid, void **__value_ptr) 23376: { 23376: return __gthrw_pthread_join (__threadid, __value_ptr); 23376: } 23376: 23376: static inline int 23376: __gthread_detach (__gthread_t __threadid) 23376: { 23376: return __gthrw_pthread_detach (__threadid); 23376: } 23376: 23376: static inline int 23376: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 23376: { 23376: return __gthrw_pthread_equal (__t1, __t2); 23376: } 23376: 23376: static inline __gthread_t 23376: __gthread_self (void) 23376: { 23376: return __gthrw_pthread_self (); 23376: } 23376: 23376: static inline int 23376: __gthread_yield (void) 23376: { 23376: return __gthrw_sched_yield (); 23376: } 23376: 23376: static inline int 23376: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 23376: { 23376: if (__gthread_active_p ()) 23376: return __gthrw_pthread_once (__once, __func); 23376: else 23376: return -1; 23376: } 23376: 23376: static inline int 23376: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 23376: { 23376: return __gthrw_pthread_key_create (__key, __dtor); 23376: } 23376: 23376: static inline int 23376: __gthread_key_delete (__gthread_key_t __key) 23376: { 23376: return __gthrw_pthread_key_delete (__key); 23376: } 23376: 23376: static inline void * 23376: __gthread_getspecific (__gthread_key_t __key) 23376: { 23376: return __gthrw_pthread_getspecific (__key); 23376: } 23376: 23376: static inline int 23376: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 23376: { 23376: return __gthrw_pthread_setspecific (__key, __ptr); 23376: } 23376: 23376: static inline void 23376: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 23376: { 23376: if (__gthread_active_p ()) 23376: __gthrw_pthread_mutex_init (__mutex, __null); 23376: } 23376: 23376: static inline int 23376: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 23376: { 23376: if (__gthread_active_p ()) 23376: return __gthrw_pthread_mutex_destroy (__mutex); 23376: else 23376: return 0; 23376: } 23376: 23376: static inline int 23376: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 23376: { 23376: if (__gthread_active_p ()) 23376: return __gthrw_pthread_mutex_lock (__mutex); 23376: else 23376: return 0; 23376: } 23376: 23376: static inline int 23376: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 23376: { 23376: if (__gthread_active_p ()) 23376: return __gthrw_pthread_mutex_trylock (__mutex); 23376: else 23376: return 0; 23376: } 23376: 23376: 23376: static inline int 23376: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 23376: const __gthread_time_t *__abs_timeout) 23376: { 23376: if (__gthread_active_p ()) 23376: return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); 23376: else 23376: return 0; 23376: } 23376: 23376: 23376: static inline int 23376: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 23376: { 23376: if (__gthread_active_p ()) 23376: return __gthrw_pthread_mutex_unlock (__mutex); 23376: else 23376: return 0; 23376: } 23376: # 807 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 23376: static inline int 23376: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 23376: { 23376: return __gthread_mutex_lock (__mutex); 23376: } 23376: 23376: static inline int 23376: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 23376: { 23376: return __gthread_mutex_trylock (__mutex); 23376: } 23376: 23376: 23376: static inline int 23376: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 23376: const __gthread_time_t *__abs_timeout) 23376: { 23376: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 23376: } 23376: 23376: 23376: static inline int 23376: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 23376: { 23376: return __gthread_mutex_unlock (__mutex); 23376: } 23376: 23376: static inline int 23376: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 23376: { 23376: return __gthread_mutex_destroy (__mutex); 23376: } 23376: # 849 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 23376: static inline int 23376: __gthread_cond_broadcast (__gthread_cond_t *__cond) 23376: { 23376: return __gthrw_pthread_cond_broadcast (__cond); 23376: } 23376: 23376: static inline int 23376: __gthread_cond_signal (__gthread_cond_t *__cond) 23376: { 23376: return __gthrw_pthread_cond_signal (__cond); 23376: } 23376: 23376: static inline int 23376: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 23376: { 23376: return __gthrw_pthread_cond_wait (__cond, __mutex); 23376: } 23376: 23376: static inline int 23376: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 23376: const __gthread_time_t *__abs_timeout) 23376: { 23376: return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 23376: } 23376: 23376: static inline int 23376: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 23376: __gthread_recursive_mutex_t *__mutex) 23376: { 23376: return __gthread_cond_wait (__cond, __mutex); 23376: } 23376: 23376: static inline int 23376: __gthread_cond_destroy (__gthread_cond_t* __cond) 23376: { 23376: return __gthrw_pthread_cond_destroy (__cond); 23376: } 23376: # 149 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 2 3 23376: 23376: 23376: #pragma GCC visibility pop 23376: # 36 "/usr/include/c++/8/ext/atomicity.h" 2 3 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/atomic_word.h" 1 3 23376: # 32 "/usr/include/arm-linux-gnueabihf/c++/8/bits/atomic_word.h" 3 23376: typedef int _Atomic_word; 23376: # 37 "/usr/include/c++/8/ext/atomicity.h" 2 3 23376: 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static inline _Atomic_word 23376: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 23376: { return __atomic_fetch_add(__mem, __val, 4); } 23376: 23376: static inline void 23376: __atomic_add(volatile _Atomic_word* __mem, int __val) 23376: { __atomic_fetch_add(__mem, __val, 4); } 23376: # 64 "/usr/include/c++/8/ext/atomicity.h" 3 23376: static inline _Atomic_word 23376: __exchange_and_add_single(_Atomic_word* __mem, int __val) 23376: { 23376: _Atomic_word __result = *__mem; 23376: *__mem += __val; 23376: return __result; 23376: } 23376: 23376: static inline void 23376: __atomic_add_single(_Atomic_word* __mem, int __val) 23376: { *__mem += __val; } 23376: 23376: static inline _Atomic_word 23376: __attribute__ ((__unused__)) 23376: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 23376: { 23376: 23376: if (__gthread_active_p()) 23376: return __exchange_and_add(__mem, __val); 23376: else 23376: return __exchange_and_add_single(__mem, __val); 23376: 23376: 23376: 23376: } 23376: 23376: static inline void 23376: __attribute__ ((__unused__)) 23376: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 23376: { 23376: 23376: if (__gthread_active_p()) 23376: __atomic_add(__mem, __val); 23376: else 23376: __atomic_add_single(__mem, __val); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: } 23376: # 40 "/usr/include/c++/8/bits/basic_string.h" 2 3 23376: # 52 "/usr/include/c++/8/bits/basic_string.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: namespace __cxx11 { 23376: # 76 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: class basic_string 23376: { 23376: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 23376: rebind<_CharT>::other _Char_alloc_type; 23376: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 23376: 23376: 23376: public: 23376: typedef _Traits traits_type; 23376: typedef typename _Traits::char_type value_type; 23376: typedef _Char_alloc_type allocator_type; 23376: typedef typename _Alloc_traits::size_type size_type; 23376: typedef typename _Alloc_traits::difference_type difference_type; 23376: typedef typename _Alloc_traits::reference reference; 23376: typedef typename _Alloc_traits::const_reference const_reference; 23376: typedef typename _Alloc_traits::pointer pointer; 23376: typedef typename _Alloc_traits::const_pointer const_pointer; 23376: typedef __gnu_cxx::__normal_iterator iterator; 23376: typedef __gnu_cxx::__normal_iterator 23376: const_iterator; 23376: typedef std::reverse_iterator const_reverse_iterator; 23376: typedef std::reverse_iterator reverse_iterator; 23376: 23376: 23376: static const size_type npos = static_cast(-1); 23376: 23376: private: 23376: 23376: 23376: 23376: 23376: typedef const_iterator __const_iterator; 23376: # 139 "/usr/include/c++/8/bits/basic_string.h" 3 23376: struct _Alloc_hider : allocator_type 23376: { 23376: 23376: 23376: 23376: 23376: _Alloc_hider(pointer __dat, const _Alloc& __a) 23376: : allocator_type(__a), _M_p(__dat) { } 23376: 23376: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 23376: : allocator_type(std::move(__a)), _M_p(__dat) { } 23376: 23376: 23376: pointer _M_p; 23376: }; 23376: 23376: _Alloc_hider _M_dataplus; 23376: size_type _M_string_length; 23376: 23376: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 23376: 23376: union 23376: { 23376: _CharT _M_local_buf[_S_local_capacity + 1]; 23376: size_type _M_allocated_capacity; 23376: }; 23376: 23376: void 23376: _M_data(pointer __p) 23376: { _M_dataplus._M_p = __p; } 23376: 23376: void 23376: _M_length(size_type __length) 23376: { _M_string_length = __length; } 23376: 23376: pointer 23376: _M_data() const 23376: { return _M_dataplus._M_p; } 23376: 23376: pointer 23376: _M_local_data() 23376: { 23376: 23376: return std::pointer_traits::pointer_to(*_M_local_buf); 23376: 23376: 23376: 23376: } 23376: 23376: const_pointer 23376: _M_local_data() const 23376: { 23376: 23376: return std::pointer_traits::pointer_to(*_M_local_buf); 23376: 23376: 23376: 23376: } 23376: 23376: void 23376: _M_capacity(size_type __capacity) 23376: { _M_allocated_capacity = __capacity; } 23376: 23376: void 23376: _M_set_length(size_type __n) 23376: { 23376: _M_length(__n); 23376: traits_type::assign(_M_data()[__n], _CharT()); 23376: } 23376: 23376: bool 23376: _M_is_local() const 23376: { return _M_data() == _M_local_data(); } 23376: 23376: 23376: pointer 23376: _M_create(size_type&, size_type); 23376: 23376: void 23376: _M_dispose() 23376: { 23376: if (!_M_is_local()) 23376: _M_destroy(_M_allocated_capacity); 23376: } 23376: 23376: void 23376: _M_destroy(size_type __size) throw() 23376: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 23376: 23376: 23376: 23376: template 23376: void 23376: _M_construct_aux(_InIterator __beg, _InIterator __end, 23376: std::__false_type) 23376: { 23376: typedef typename iterator_traits<_InIterator>::iterator_category _Tag; 23376: _M_construct(__beg, __end, _Tag()); 23376: } 23376: 23376: 23376: 23376: template 23376: void 23376: _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) 23376: { _M_construct_aux_2(static_cast(__beg), __end); } 23376: 23376: void 23376: _M_construct_aux_2(size_type __req, _CharT __c) 23376: { _M_construct(__req, __c); } 23376: 23376: template 23376: void 23376: _M_construct(_InIterator __beg, _InIterator __end) 23376: { 23376: typedef typename std::__is_integer<_InIterator>::__type _Integral; 23376: _M_construct_aux(__beg, __end, _Integral()); 23376: } 23376: 23376: 23376: template 23376: void 23376: _M_construct(_InIterator __beg, _InIterator __end, 23376: std::input_iterator_tag); 23376: 23376: 23376: 23376: template 23376: void 23376: _M_construct(_FwdIterator __beg, _FwdIterator __end, 23376: std::forward_iterator_tag); 23376: 23376: void 23376: _M_construct(size_type __req, _CharT __c); 23376: 23376: allocator_type& 23376: _M_get_allocator() 23376: { return _M_dataplus; } 23376: 23376: const allocator_type& 23376: _M_get_allocator() const 23376: { return _M_dataplus; } 23376: 23376: private: 23376: # 298 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: _M_check(size_type __pos, const char* __s) const 23376: { 23376: if (__pos > this->size()) 23376: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 23376: , 23376: __s, __pos, this->size()); 23376: return __pos; 23376: } 23376: 23376: void 23376: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 23376: { 23376: if (this->max_size() - (this->size() - __n1) < __n2) 23376: __throw_length_error((__s)); 23376: } 23376: 23376: 23376: 23376: size_type 23376: _M_limit(size_type __pos, size_type __off) const noexcept 23376: { 23376: const bool __testoff = __off < this->size() - __pos; 23376: return __testoff ? __off : this->size() - __pos; 23376: } 23376: 23376: 23376: bool 23376: _M_disjunct(const _CharT* __s) const noexcept 23376: { 23376: return (less()(__s, _M_data()) 23376: || less()(_M_data() + this->size(), __s)); 23376: } 23376: 23376: 23376: 23376: static void 23376: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 23376: { 23376: if (__n == 1) 23376: traits_type::assign(*__d, *__s); 23376: else 23376: traits_type::copy(__d, __s, __n); 23376: } 23376: 23376: static void 23376: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 23376: { 23376: if (__n == 1) 23376: traits_type::assign(*__d, *__s); 23376: else 23376: traits_type::move(__d, __s, __n); 23376: } 23376: 23376: static void 23376: _S_assign(_CharT* __d, size_type __n, _CharT __c) 23376: { 23376: if (__n == 1) 23376: traits_type::assign(*__d, __c); 23376: else 23376: traits_type::assign(__d, __n, __c); 23376: } 23376: 23376: 23376: 23376: template 23376: static void 23376: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 23376: { 23376: for (; __k1 != __k2; ++__k1, (void)++__p) 23376: traits_type::assign(*__p, *__k1); 23376: } 23376: 23376: static void 23376: _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept 23376: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 23376: 23376: static void 23376: _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 23376: noexcept 23376: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 23376: 23376: static void 23376: _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept 23376: { _S_copy(__p, __k1, __k2 - __k1); } 23376: 23376: static void 23376: _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 23376: noexcept 23376: { _S_copy(__p, __k1, __k2 - __k1); } 23376: 23376: static int 23376: _S_compare(size_type __n1, size_type __n2) noexcept 23376: { 23376: const difference_type __d = difference_type(__n1 - __n2); 23376: 23376: if (__d > __gnu_cxx::__numeric_traits::__max) 23376: return __gnu_cxx::__numeric_traits::__max; 23376: else if (__d < __gnu_cxx::__numeric_traits::__min) 23376: return __gnu_cxx::__numeric_traits::__min; 23376: else 23376: return int(__d); 23376: } 23376: 23376: void 23376: _M_assign(const basic_string&); 23376: 23376: void 23376: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 23376: size_type __len2); 23376: 23376: void 23376: _M_erase(size_type __pos, size_type __n); 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string() 23376: noexcept(is_nothrow_default_constructible<_Alloc>::value) 23376: : _M_dataplus(_M_local_data()) 23376: { _M_set_length(0); } 23376: 23376: 23376: 23376: 23376: explicit 23376: basic_string(const _Alloc& __a) noexcept 23376: : _M_dataplus(_M_local_data(), __a) 23376: { _M_set_length(0); } 23376: 23376: 23376: 23376: 23376: 23376: basic_string(const basic_string& __str) 23376: : _M_dataplus(_M_local_data(), 23376: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 23376: { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } 23376: # 450 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string(const basic_string& __str, size_type __pos, 23376: const _Alloc& __a = _Alloc()) 23376: : _M_dataplus(_M_local_data(), __a) 23376: { 23376: const _CharT* __start = __str._M_data() 23376: + __str._M_check(__pos, "basic_string::basic_string"); 23376: _M_construct(__start, __start + __str._M_limit(__pos, npos)); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string(const basic_string& __str, size_type __pos, 23376: size_type __n) 23376: : _M_dataplus(_M_local_data()) 23376: { 23376: const _CharT* __start = __str._M_data() 23376: + __str._M_check(__pos, "basic_string::basic_string"); 23376: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 23376: } 23376: # 481 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string(const basic_string& __str, size_type __pos, 23376: size_type __n, const _Alloc& __a) 23376: : _M_dataplus(_M_local_data(), __a) 23376: { 23376: const _CharT* __start 23376: = __str._M_data() + __str._M_check(__pos, "string::string"); 23376: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 23376: } 23376: # 499 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string(const _CharT* __s, size_type __n, 23376: const _Alloc& __a = _Alloc()) 23376: : _M_dataplus(_M_local_data(), __a) 23376: { _M_construct(__s, __s + __n); } 23376: # 514 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 23376: : _M_dataplus(_M_local_data(), __a) 23376: { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } 23376: # 529 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 23376: : _M_dataplus(_M_local_data(), __a) 23376: { _M_construct(__n, __c); } 23376: # 541 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string(basic_string&& __str) noexcept 23376: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 23376: { 23376: if (__str._M_is_local()) 23376: { 23376: traits_type::copy(_M_local_buf, __str._M_local_buf, 23376: _S_local_capacity + 1); 23376: } 23376: else 23376: { 23376: _M_data(__str._M_data()); 23376: _M_capacity(__str._M_allocated_capacity); 23376: } 23376: 23376: 23376: 23376: 23376: _M_length(__str.length()); 23376: __str._M_data(__str._M_local_data()); 23376: __str._M_set_length(0); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 23376: : _M_dataplus(_M_local_data(), __a) 23376: { _M_construct(__l.begin(), __l.end()); } 23376: 23376: basic_string(const basic_string& __str, const _Alloc& __a) 23376: : _M_dataplus(_M_local_data(), __a) 23376: { _M_construct(__str.begin(), __str.end()); } 23376: 23376: basic_string(basic_string&& __str, const _Alloc& __a) 23376: noexcept(_Alloc_traits::_S_always_equal()) 23376: : _M_dataplus(_M_local_data(), __a) 23376: { 23376: if (__str._M_is_local()) 23376: { 23376: traits_type::copy(_M_local_buf, __str._M_local_buf, 23376: _S_local_capacity + 1); 23376: _M_length(__str.length()); 23376: __str._M_set_length(0); 23376: } 23376: else if (_Alloc_traits::_S_always_equal() 23376: || __str.get_allocator() == __a) 23376: { 23376: _M_data(__str._M_data()); 23376: _M_length(__str.length()); 23376: _M_capacity(__str._M_allocated_capacity); 23376: __str._M_data(__str._M_local_buf); 23376: __str._M_set_length(0); 23376: } 23376: else 23376: _M_construct(__str.begin(), __str.end()); 23376: } 23376: # 609 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template> 23376: 23376: 23376: 23376: basic_string(_InputIterator __beg, _InputIterator __end, 23376: const _Alloc& __a = _Alloc()) 23376: : _M_dataplus(_M_local_data(), __a) 23376: { _M_construct(__beg, __end); } 23376: # 656 "/usr/include/c++/8/bits/basic_string.h" 3 23376: ~basic_string() 23376: { _M_dispose(); } 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: operator=(const basic_string& __str) 23376: { 23376: 23376: if (_Alloc_traits::_S_propagate_on_copy_assign()) 23376: { 23376: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 23376: && _M_get_allocator() != __str._M_get_allocator()) 23376: { 23376: 23376: 23376: if (__str.size() <= _S_local_capacity) 23376: { 23376: _M_destroy(_M_allocated_capacity); 23376: _M_data(_M_local_data()); 23376: _M_set_length(0); 23376: } 23376: else 23376: { 23376: const auto __len = __str.size(); 23376: auto __alloc = __str._M_get_allocator(); 23376: 23376: auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); 23376: _M_destroy(_M_allocated_capacity); 23376: _M_data(__ptr); 23376: _M_capacity(__len); 23376: _M_set_length(__len); 23376: } 23376: } 23376: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 23376: } 23376: 23376: return this->assign(__str); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: operator=(const _CharT* __s) 23376: { return this->assign(__s); } 23376: # 713 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: operator=(_CharT __c) 23376: { 23376: this->assign(1, __c); 23376: return *this; 23376: } 23376: # 731 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: operator=(basic_string&& __str) 23376: noexcept(_Alloc_traits::_S_nothrow_move()) 23376: { 23376: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 23376: && !_Alloc_traits::_S_always_equal() 23376: && _M_get_allocator() != __str._M_get_allocator()) 23376: { 23376: 23376: _M_destroy(_M_allocated_capacity); 23376: _M_data(_M_local_data()); 23376: _M_set_length(0); 23376: } 23376: 23376: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 23376: 23376: if (__str._M_is_local()) 23376: { 23376: 23376: if (__str.size()) 23376: this->_S_copy(_M_data(), __str._M_data(), __str.size()); 23376: _M_set_length(__str.size()); 23376: } 23376: else if (_Alloc_traits::_S_propagate_on_move_assign() 23376: || _Alloc_traits::_S_always_equal() 23376: || _M_get_allocator() == __str._M_get_allocator()) 23376: { 23376: 23376: pointer __data = nullptr; 23376: size_type __capacity; 23376: if (!_M_is_local()) 23376: { 23376: if (_Alloc_traits::_S_always_equal()) 23376: { 23376: 23376: __data = _M_data(); 23376: __capacity = _M_allocated_capacity; 23376: } 23376: else 23376: _M_destroy(_M_allocated_capacity); 23376: } 23376: 23376: _M_data(__str._M_data()); 23376: _M_length(__str.length()); 23376: _M_capacity(__str._M_allocated_capacity); 23376: if (__data) 23376: { 23376: __str._M_data(__data); 23376: __str._M_capacity(__capacity); 23376: } 23376: else 23376: __str._M_data(__str._M_local_buf); 23376: } 23376: else 23376: assign(__str); 23376: __str.clear(); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: operator=(initializer_list<_CharT> __l) 23376: { 23376: this->assign(__l.begin(), __l.size()); 23376: return *this; 23376: } 23376: # 825 "/usr/include/c++/8/bits/basic_string.h" 3 23376: iterator 23376: begin() noexcept 23376: { return iterator(_M_data()); } 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: begin() const noexcept 23376: { return const_iterator(_M_data()); } 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: end() noexcept 23376: { return iterator(_M_data() + this->size()); } 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: end() const noexcept 23376: { return const_iterator(_M_data() + this->size()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rbegin() noexcept 23376: { return reverse_iterator(this->end()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rbegin() const noexcept 23376: { return const_reverse_iterator(this->end()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rend() noexcept 23376: { return reverse_iterator(this->begin()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rend() const noexcept 23376: { return const_reverse_iterator(this->begin()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cbegin() const noexcept 23376: { return const_iterator(this->_M_data()); } 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cend() const noexcept 23376: { return const_iterator(this->_M_data() + this->size()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crbegin() const noexcept 23376: { return const_reverse_iterator(this->end()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crend() const noexcept 23376: { return const_reverse_iterator(this->begin()); } 23376: 23376: 23376: public: 23376: 23376: 23376: 23376: size_type 23376: size() const noexcept 23376: { return _M_string_length; } 23376: 23376: 23376: 23376: size_type 23376: length() const noexcept 23376: { return _M_string_length; } 23376: 23376: 23376: size_type 23376: max_size() const noexcept 23376: { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } 23376: # 954 "/usr/include/c++/8/bits/basic_string.h" 3 23376: void 23376: resize(size_type __n, _CharT __c); 23376: # 967 "/usr/include/c++/8/bits/basic_string.h" 3 23376: void 23376: resize(size_type __n) 23376: { this->resize(__n, _CharT()); } 23376: 23376: 23376: 23376: void 23376: shrink_to_fit() noexcept 23376: { 23376: 23376: if (capacity() > size()) 23376: { 23376: try 23376: { reserve(0); } 23376: catch(...) 23376: { } 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: size_type 23376: capacity() const noexcept 23376: { 23376: return _M_is_local() ? size_type(_S_local_capacity) 23376: : _M_allocated_capacity; 23376: } 23376: # 1016 "/usr/include/c++/8/bits/basic_string.h" 3 23376: void 23376: reserve(size_type __res_arg = 0); 23376: 23376: 23376: 23376: 23376: void 23376: clear() noexcept 23376: { _M_set_length(0); } 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: empty() const noexcept 23376: { return this->size() == 0; } 23376: # 1045 "/usr/include/c++/8/bits/basic_string.h" 3 23376: const_reference 23376: operator[] (size_type __pos) const noexcept 23376: { 23376: ; 23376: return _M_data()[__pos]; 23376: } 23376: # 1062 "/usr/include/c++/8/bits/basic_string.h" 3 23376: reference 23376: operator[](size_type __pos) 23376: { 23376: 23376: 23376: ; 23376: 23376: ; 23376: return _M_data()[__pos]; 23376: } 23376: # 1083 "/usr/include/c++/8/bits/basic_string.h" 3 23376: const_reference 23376: at(size_type __n) const 23376: { 23376: if (__n >= this->size()) 23376: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 23376: 23376: , 23376: __n, this->size()); 23376: return _M_data()[__n]; 23376: } 23376: # 1104 "/usr/include/c++/8/bits/basic_string.h" 3 23376: reference 23376: at(size_type __n) 23376: { 23376: if (__n >= size()) 23376: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 23376: 23376: , 23376: __n, this->size()); 23376: return _M_data()[__n]; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reference 23376: front() noexcept 23376: { 23376: ; 23376: return operator[](0); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const_reference 23376: front() const noexcept 23376: { 23376: ; 23376: return operator[](0); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: reference 23376: back() noexcept 23376: { 23376: ; 23376: return operator[](this->size() - 1); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const_reference 23376: back() const noexcept 23376: { 23376: ; 23376: return operator[](this->size() - 1); 23376: } 23376: # 1167 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: operator+=(const basic_string& __str) 23376: { return this->append(__str); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: operator+=(const _CharT* __s) 23376: { return this->append(__s); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: operator+=(_CharT __c) 23376: { 23376: this->push_back(__c); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: operator+=(initializer_list<_CharT> __l) 23376: { return this->append(__l.begin(), __l.size()); } 23376: # 1220 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: append(const basic_string& __str) 23376: { return _M_append(__str._M_data(), __str.size()); } 23376: # 1237 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: append(const basic_string& __str, size_type __pos, size_type __n = npos) 23376: { return _M_append(__str._M_data() 23376: + __str._M_check(__pos, "basic_string::append"), 23376: __str._M_limit(__pos, __n)); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: append(const _CharT* __s, size_type __n) 23376: { 23376: ; 23376: _M_check_length(size_type(0), __n, "basic_string::append"); 23376: return _M_append(__s, __n); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: append(const _CharT* __s) 23376: { 23376: ; 23376: const size_type __n = traits_type::length(__s); 23376: _M_check_length(size_type(0), __n, "basic_string::append"); 23376: return _M_append(__s, __n); 23376: } 23376: # 1279 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: append(size_type __n, _CharT __c) 23376: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: append(initializer_list<_CharT> __l) 23376: { return this->append(__l.begin(), __l.size()); } 23376: # 1303 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template> 23376: 23376: 23376: 23376: basic_string& 23376: append(_InputIterator __first, _InputIterator __last) 23376: { return this->replace(end(), end(), __first, __last); } 23376: # 1348 "/usr/include/c++/8/bits/basic_string.h" 3 23376: void 23376: push_back(_CharT __c) 23376: { 23376: const size_type __size = this->size(); 23376: if (__size + 1 > this->capacity()) 23376: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 23376: traits_type::assign(this->_M_data()[__size], __c); 23376: this->_M_set_length(__size + 1); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: assign(const basic_string& __str) 23376: { 23376: this->_M_assign(__str); 23376: return *this; 23376: } 23376: # 1379 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: assign(basic_string&& __str) 23376: noexcept(_Alloc_traits::_S_nothrow_move()) 23376: { 23376: 23376: 23376: return *this = std::move(__str); 23376: } 23376: # 1402 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: assign(const basic_string& __str, size_type __pos, size_type __n = npos) 23376: { return _M_replace(size_type(0), this->size(), __str._M_data() 23376: + __str._M_check(__pos, "basic_string::assign"), 23376: __str._M_limit(__pos, __n)); } 23376: # 1418 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: assign(const _CharT* __s, size_type __n) 23376: { 23376: ; 23376: return _M_replace(size_type(0), this->size(), __s, __n); 23376: } 23376: # 1434 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: assign(const _CharT* __s) 23376: { 23376: ; 23376: return _M_replace(size_type(0), this->size(), __s, 23376: traits_type::length(__s)); 23376: } 23376: # 1451 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: assign(size_type __n, _CharT __c) 23376: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 23376: # 1464 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template> 23376: 23376: 23376: 23376: basic_string& 23376: assign(_InputIterator __first, _InputIterator __last) 23376: { return this->replace(begin(), end(), __first, __last); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_string& 23376: assign(initializer_list<_CharT> __l) 23376: { return this->assign(__l.begin(), __l.size()); } 23376: # 1532 "/usr/include/c++/8/bits/basic_string.h" 3 23376: iterator 23376: insert(const_iterator __p, size_type __n, _CharT __c) 23376: { 23376: ; 23376: const size_type __pos = __p - begin(); 23376: this->replace(__p, __p, __n, __c); 23376: return iterator(this->_M_data() + __pos); 23376: } 23376: # 1574 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template> 23376: iterator 23376: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 23376: { 23376: ; 23376: const size_type __pos = __p - begin(); 23376: this->replace(__p, __p, __beg, __end); 23376: return iterator(this->_M_data() + __pos); 23376: } 23376: # 1610 "/usr/include/c++/8/bits/basic_string.h" 3 23376: void 23376: insert(iterator __p, initializer_list<_CharT> __l) 23376: { 23376: ; 23376: this->insert(__p - begin(), __l.begin(), __l.size()); 23376: } 23376: # 1630 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: insert(size_type __pos1, const basic_string& __str) 23376: { return this->replace(__pos1, size_type(0), 23376: __str._M_data(), __str.size()); } 23376: # 1653 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: insert(size_type __pos1, const basic_string& __str, 23376: size_type __pos2, size_type __n = npos) 23376: { return this->replace(__pos1, size_type(0), __str._M_data() 23376: + __str._M_check(__pos2, "basic_string::insert"), 23376: __str._M_limit(__pos2, __n)); } 23376: # 1676 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: insert(size_type __pos, const _CharT* __s, size_type __n) 23376: { return this->replace(__pos, size_type(0), __s, __n); } 23376: # 1695 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: insert(size_type __pos, const _CharT* __s) 23376: { 23376: ; 23376: return this->replace(__pos, size_type(0), __s, 23376: traits_type::length(__s)); 23376: } 23376: # 1719 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: insert(size_type __pos, size_type __n, _CharT __c) 23376: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 23376: size_type(0), __n, __c); } 23376: # 1737 "/usr/include/c++/8/bits/basic_string.h" 3 23376: iterator 23376: insert(__const_iterator __p, _CharT __c) 23376: { 23376: ; 23376: const size_type __pos = __p - begin(); 23376: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 23376: return iterator(_M_data() + __pos); 23376: } 23376: # 1797 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: erase(size_type __pos = 0, size_type __n = npos) 23376: { 23376: _M_check(__pos, "basic_string::erase"); 23376: if (__n == npos) 23376: this->_M_set_length(__pos); 23376: else if (__n != 0) 23376: this->_M_erase(__pos, _M_limit(__pos, __n)); 23376: return *this; 23376: } 23376: # 1816 "/usr/include/c++/8/bits/basic_string.h" 3 23376: iterator 23376: erase(__const_iterator __position) 23376: { 23376: 23376: ; 23376: const size_type __pos = __position - begin(); 23376: this->_M_erase(__pos, size_type(1)); 23376: return iterator(_M_data() + __pos); 23376: } 23376: # 1835 "/usr/include/c++/8/bits/basic_string.h" 3 23376: iterator 23376: erase(__const_iterator __first, __const_iterator __last) 23376: { 23376: 23376: ; 23376: const size_type __pos = __first - begin(); 23376: if (__last == end()) 23376: this->_M_set_length(__pos); 23376: else 23376: this->_M_erase(__pos, __last - __first); 23376: return iterator(this->_M_data() + __pos); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: pop_back() noexcept 23376: { 23376: ; 23376: _M_erase(size() - 1, 1); 23376: } 23376: # 1879 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(size_type __pos, size_type __n, const basic_string& __str) 23376: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 23376: # 1901 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(size_type __pos1, size_type __n1, const basic_string& __str, 23376: size_type __pos2, size_type __n2 = npos) 23376: { return this->replace(__pos1, __n1, __str._M_data() 23376: + __str._M_check(__pos2, "basic_string::replace"), 23376: __str._M_limit(__pos2, __n2)); } 23376: # 1926 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(size_type __pos, size_type __n1, const _CharT* __s, 23376: size_type __n2) 23376: { 23376: ; 23376: return _M_replace(_M_check(__pos, "basic_string::replace"), 23376: _M_limit(__pos, __n1), __s, __n2); 23376: } 23376: # 1951 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(size_type __pos, size_type __n1, const _CharT* __s) 23376: { 23376: ; 23376: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 23376: } 23376: # 1975 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 23376: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 23376: _M_limit(__pos, __n1), __n2, __c); } 23376: # 1993 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(__const_iterator __i1, __const_iterator __i2, 23376: const basic_string& __str) 23376: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 23376: # 2013 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(__const_iterator __i1, __const_iterator __i2, 23376: const _CharT* __s, size_type __n) 23376: { 23376: 23376: ; 23376: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 23376: } 23376: # 2035 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 23376: { 23376: ; 23376: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 23376: } 23376: # 2056 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 23376: _CharT __c) 23376: { 23376: 23376: ; 23376: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 23376: } 23376: # 2081 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template> 23376: basic_string& 23376: replace(const_iterator __i1, const_iterator __i2, 23376: _InputIterator __k1, _InputIterator __k2) 23376: { 23376: 23376: ; 23376: ; 23376: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 23376: std::__false_type()); 23376: } 23376: # 2113 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& 23376: replace(__const_iterator __i1, __const_iterator __i2, 23376: _CharT* __k1, _CharT* __k2) 23376: { 23376: 23376: ; 23376: ; 23376: return this->replace(__i1 - begin(), __i2 - __i1, 23376: __k1, __k2 - __k1); 23376: } 23376: 23376: basic_string& 23376: replace(__const_iterator __i1, __const_iterator __i2, 23376: const _CharT* __k1, const _CharT* __k2) 23376: { 23376: 23376: ; 23376: ; 23376: return this->replace(__i1 - begin(), __i2 - __i1, 23376: __k1, __k2 - __k1); 23376: } 23376: 23376: basic_string& 23376: replace(__const_iterator __i1, __const_iterator __i2, 23376: iterator __k1, iterator __k2) 23376: { 23376: 23376: ; 23376: ; 23376: return this->replace(__i1 - begin(), __i2 - __i1, 23376: __k1.base(), __k2 - __k1); 23376: } 23376: 23376: basic_string& 23376: replace(__const_iterator __i1, __const_iterator __i2, 23376: const_iterator __k1, const_iterator __k2) 23376: { 23376: 23376: ; 23376: ; 23376: return this->replace(__i1 - begin(), __i2 - __i1, 23376: __k1.base(), __k2 - __k1); 23376: } 23376: # 2172 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string& replace(const_iterator __i1, const_iterator __i2, 23376: initializer_list<_CharT> __l) 23376: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 23376: # 2231 "/usr/include/c++/8/bits/basic_string.h" 3 23376: private: 23376: template 23376: basic_string& 23376: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 23376: _Integer __n, _Integer __val, __true_type) 23376: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 23376: 23376: template 23376: basic_string& 23376: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 23376: _InputIterator __k1, _InputIterator __k2, 23376: __false_type); 23376: 23376: basic_string& 23376: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 23376: _CharT __c); 23376: 23376: basic_string& 23376: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 23376: const size_type __len2); 23376: 23376: basic_string& 23376: _M_append(const _CharT* __s, size_type __n); 23376: 23376: public: 23376: # 2269 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 23376: # 2279 "/usr/include/c++/8/bits/basic_string.h" 3 23376: void 23376: swap(basic_string& __s) noexcept; 23376: # 2289 "/usr/include/c++/8/bits/basic_string.h" 3 23376: const _CharT* 23376: c_str() const noexcept 23376: { return _M_data(); } 23376: # 2301 "/usr/include/c++/8/bits/basic_string.h" 3 23376: const _CharT* 23376: data() const noexcept 23376: { return _M_data(); } 23376: # 2320 "/usr/include/c++/8/bits/basic_string.h" 3 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return _M_get_allocator(); } 23376: # 2336 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept; 23376: # 2350 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find(const basic_string& __str, size_type __pos = 0) const 23376: noexcept 23376: { return this->find(__str.data(), __pos, __str.size()); } 23376: # 2382 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find(const _CharT* __s, size_type __pos = 0) const noexcept 23376: { 23376: ; 23376: return this->find(__s, __pos, traits_type::length(__s)); 23376: } 23376: # 2399 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find(_CharT __c, size_type __pos = 0) const noexcept; 23376: # 2412 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: rfind(const basic_string& __str, size_type __pos = npos) const 23376: noexcept 23376: { return this->rfind(__str.data(), __pos, __str.size()); } 23376: # 2446 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: rfind(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept; 23376: # 2460 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: rfind(const _CharT* __s, size_type __pos = npos) const 23376: { 23376: ; 23376: return this->rfind(__s, __pos, traits_type::length(__s)); 23376: } 23376: # 2477 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: rfind(_CharT __c, size_type __pos = npos) const noexcept; 23376: # 2491 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_first_of(const basic_string& __str, size_type __pos = 0) const 23376: noexcept 23376: { return this->find_first_of(__str.data(), __pos, __str.size()); } 23376: # 2526 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept; 23376: # 2540 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_first_of(const _CharT* __s, size_type __pos = 0) const 23376: noexcept 23376: { 23376: ; 23376: return this->find_first_of(__s, __pos, traits_type::length(__s)); 23376: } 23376: # 2560 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 23376: { return this->find(__c, __pos); } 23376: # 2575 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_last_of(const basic_string& __str, size_type __pos = npos) const 23376: noexcept 23376: { return this->find_last_of(__str.data(), __pos, __str.size()); } 23376: # 2610 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept; 23376: # 2624 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_last_of(const _CharT* __s, size_type __pos = npos) const 23376: noexcept 23376: { 23376: ; 23376: return this->find_last_of(__s, __pos, traits_type::length(__s)); 23376: } 23376: # 2644 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 23376: { return this->rfind(__c, __pos); } 23376: # 2658 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 23376: noexcept 23376: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 23376: # 2693 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_first_not_of(const _CharT* __s, size_type __pos, 23376: size_type __n) const noexcept; 23376: # 2707 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 23376: noexcept 23376: { 23376: ; 23376: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 23376: } 23376: # 2725 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_first_not_of(_CharT __c, size_type __pos = 0) const 23376: noexcept; 23376: # 2740 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 23376: noexcept 23376: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 23376: # 2775 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_last_not_of(const _CharT* __s, size_type __pos, 23376: size_type __n) const noexcept; 23376: # 2789 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 23376: noexcept 23376: { 23376: ; 23376: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 23376: } 23376: # 2807 "/usr/include/c++/8/bits/basic_string.h" 3 23376: size_type 23376: find_last_not_of(_CharT __c, size_type __pos = npos) const 23376: noexcept; 23376: # 2823 "/usr/include/c++/8/bits/basic_string.h" 3 23376: basic_string 23376: substr(size_type __pos = 0, size_type __n = npos) const 23376: { return basic_string(*this, 23376: _M_check(__pos, "basic_string::substr"), __n); } 23376: # 2842 "/usr/include/c++/8/bits/basic_string.h" 3 23376: int 23376: compare(const basic_string& __str) const 23376: { 23376: const size_type __size = this->size(); 23376: const size_type __osize = __str.size(); 23376: const size_type __len = std::min(__size, __osize); 23376: 23376: int __r = traits_type::compare(_M_data(), __str.data(), __len); 23376: if (!__r) 23376: __r = _S_compare(__size, __osize); 23376: return __r; 23376: } 23376: # 2935 "/usr/include/c++/8/bits/basic_string.h" 3 23376: int 23376: compare(size_type __pos, size_type __n, const basic_string& __str) const; 23376: # 2961 "/usr/include/c++/8/bits/basic_string.h" 3 23376: int 23376: compare(size_type __pos1, size_type __n1, const basic_string& __str, 23376: size_type __pos2, size_type __n2 = npos) const; 23376: # 2979 "/usr/include/c++/8/bits/basic_string.h" 3 23376: int 23376: compare(const _CharT* __s) const noexcept; 23376: # 3003 "/usr/include/c++/8/bits/basic_string.h" 3 23376: int 23376: compare(size_type __pos, size_type __n1, const _CharT* __s) const; 23376: # 3030 "/usr/include/c++/8/bits/basic_string.h" 3 23376: int 23376: compare(size_type __pos, size_type __n1, const _CharT* __s, 23376: size_type __n2) const; 23376: 23376: 23376: template friend class basic_stringbuf; 23376: }; 23376: } 23376: # 5925 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: basic_string<_CharT, _Traits, _Alloc> 23376: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { 23376: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 23376: __str.append(__rhs); 23376: return __str; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: basic_string<_CharT,_Traits,_Alloc> 23376: operator+(const _CharT* __lhs, 23376: const basic_string<_CharT,_Traits,_Alloc>& __rhs); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: basic_string<_CharT,_Traits,_Alloc> 23376: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline basic_string<_CharT, _Traits, _Alloc> 23376: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const _CharT* __rhs) 23376: { 23376: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 23376: __str.append(__rhs); 23376: return __str; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline basic_string<_CharT, _Traits, _Alloc> 23376: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 23376: { 23376: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 23376: typedef typename __string_type::size_type __size_type; 23376: __string_type __str(__lhs); 23376: __str.append(__size_type(1), __rhs); 23376: return __str; 23376: } 23376: 23376: 23376: template 23376: inline basic_string<_CharT, _Traits, _Alloc> 23376: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { return std::move(__lhs.append(__rhs)); } 23376: 23376: template 23376: inline basic_string<_CharT, _Traits, _Alloc> 23376: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 23376: { return std::move(__rhs.insert(0, __lhs)); } 23376: 23376: template 23376: inline basic_string<_CharT, _Traits, _Alloc> 23376: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 23376: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 23376: { 23376: const auto __size = __lhs.size() + __rhs.size(); 23376: const bool __cond = (__size > __lhs.capacity() 23376: && __size <= __rhs.capacity()); 23376: return __cond ? std::move(__rhs.insert(0, __lhs)) 23376: : std::move(__lhs.append(__rhs)); 23376: } 23376: 23376: template 23376: inline basic_string<_CharT, _Traits, _Alloc> 23376: operator+(const _CharT* __lhs, 23376: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 23376: { return std::move(__rhs.insert(0, __lhs)); } 23376: 23376: template 23376: inline basic_string<_CharT, _Traits, _Alloc> 23376: operator+(_CharT __lhs, 23376: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 23376: { return std::move(__rhs.insert(0, 1, __lhs)); } 23376: 23376: template 23376: inline basic_string<_CharT, _Traits, _Alloc> 23376: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 23376: const _CharT* __rhs) 23376: { return std::move(__lhs.append(__rhs)); } 23376: 23376: template 23376: inline basic_string<_CharT, _Traits, _Alloc> 23376: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 23376: _CharT __rhs) 23376: { return std::move(__lhs.append(1, __rhs)); } 23376: # 6046 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: inline bool 23376: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: noexcept 23376: { return __lhs.compare(__rhs) == 0; } 23376: 23376: template 23376: inline 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type 23376: operator==(const basic_string<_CharT>& __lhs, 23376: const basic_string<_CharT>& __rhs) noexcept 23376: { return (__lhs.size() == __rhs.size() 23376: && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), 23376: __lhs.size())); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const _CharT* __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { return __rhs.compare(__lhs) == 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const _CharT* __rhs) 23376: { return __lhs.compare(__rhs) == 0; } 23376: # 6093 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: inline bool 23376: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: noexcept 23376: { return !(__lhs == __rhs); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const _CharT* __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { return !(__lhs == __rhs); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const _CharT* __rhs) 23376: { return !(__lhs == __rhs); } 23376: # 6131 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: inline bool 23376: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: noexcept 23376: { return __lhs.compare(__rhs) < 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const _CharT* __rhs) 23376: { return __lhs.compare(__rhs) < 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator<(const _CharT* __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { return __rhs.compare(__lhs) > 0; } 23376: # 6169 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: inline bool 23376: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: noexcept 23376: { return __lhs.compare(__rhs) > 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const _CharT* __rhs) 23376: { return __lhs.compare(__rhs) > 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator>(const _CharT* __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { return __rhs.compare(__lhs) < 0; } 23376: # 6207 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: inline bool 23376: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: noexcept 23376: { return __lhs.compare(__rhs) <= 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const _CharT* __rhs) 23376: { return __lhs.compare(__rhs) <= 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator<=(const _CharT* __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { return __rhs.compare(__lhs) >= 0; } 23376: # 6245 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: inline bool 23376: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: noexcept 23376: { return __lhs.compare(__rhs) >= 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: const _CharT* __rhs) 23376: { return __lhs.compare(__rhs) >= 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator>=(const _CharT* __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { return __rhs.compare(__lhs) <= 0; } 23376: # 6283 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: inline void 23376: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 23376: basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: noexcept(noexcept(__lhs.swap(__rhs))) 23376: { __lhs.swap(__rhs); } 23376: # 6303 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __is, 23376: basic_string<_CharT, _Traits, _Alloc>& __str); 23376: 23376: template<> 23376: basic_istream& 23376: operator>>(basic_istream& __is, basic_string& __str); 23376: # 6321 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, 23376: const basic_string<_CharT, _Traits, _Alloc>& __str) 23376: { 23376: 23376: 23376: return __ostream_insert(__os, __str.data(), __str.size()); 23376: } 23376: # 6344 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: getline(basic_istream<_CharT, _Traits>& __is, 23376: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 23376: # 6361 "/usr/include/c++/8/bits/basic_string.h" 3 23376: template 23376: inline basic_istream<_CharT, _Traits>& 23376: getline(basic_istream<_CharT, _Traits>& __is, 23376: basic_string<_CharT, _Traits, _Alloc>& __str) 23376: { return std::getline(__is, __str, __is.widen('\n')); } 23376: 23376: 23376: 23376: template 23376: inline basic_istream<_CharT, _Traits>& 23376: getline(basic_istream<_CharT, _Traits>&& __is, 23376: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 23376: { return std::getline(__is, __str, __delim); } 23376: 23376: 23376: template 23376: inline basic_istream<_CharT, _Traits>& 23376: getline(basic_istream<_CharT, _Traits>&& __is, 23376: basic_string<_CharT, _Traits, _Alloc>& __str) 23376: { return std::getline(__is, __str); } 23376: 23376: 23376: template<> 23376: basic_istream& 23376: getline(basic_istream& __in, basic_string& __str, 23376: char __delim); 23376: 23376: 23376: template<> 23376: basic_istream& 23376: getline(basic_istream& __in, basic_string& __str, 23376: wchar_t __delim); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/ext/string_conversions.h" 1 3 23376: # 32 "/usr/include/c++/8/ext/string_conversions.h" 3 23376: 23376: # 33 "/usr/include/c++/8/ext/string_conversions.h" 3 23376: # 41 "/usr/include/c++/8/ext/string_conversions.h" 3 23376: # 1 "/usr/include/c++/8/cstdlib" 1 3 23376: # 39 "/usr/include/c++/8/cstdlib" 3 23376: 23376: # 40 "/usr/include/c++/8/cstdlib" 3 23376: # 42 "/usr/include/c++/8/ext/string_conversions.h" 2 3 23376: # 1 "/usr/include/c++/8/cwchar" 1 3 23376: # 39 "/usr/include/c++/8/cwchar" 3 23376: 23376: # 40 "/usr/include/c++/8/cwchar" 3 23376: # 43 "/usr/include/c++/8/ext/string_conversions.h" 2 3 23376: # 1 "/usr/include/c++/8/cstdio" 1 3 23376: # 39 "/usr/include/c++/8/cstdio" 3 23376: 23376: # 40 "/usr/include/c++/8/cstdio" 3 23376: 23376: 23376: # 1 "/usr/include/stdio.h" 1 3 4 23376: # 27 "/usr/include/stdio.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 23376: # 28 "/usr/include/stdio.h" 2 3 4 23376: 23376: extern "C" { 23376: 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 34 "/usr/include/stdio.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h" 1 3 4 23376: # 37 "/usr/include/stdio.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__fpos_t.h" 1 3 4 23376: # 10 "/usr/include/arm-linux-gnueabihf/bits/types/__fpos_t.h" 3 4 23376: typedef struct _G_fpos_t 23376: { 23376: __off_t __pos; 23376: __mbstate_t __state; 23376: } __fpos_t; 23376: # 40 "/usr/include/stdio.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__fpos64_t.h" 1 3 4 23376: # 10 "/usr/include/arm-linux-gnueabihf/bits/types/__fpos64_t.h" 3 4 23376: typedef struct _G_fpos64_t 23376: { 23376: __off64_t __pos; 23376: __mbstate_t __state; 23376: } __fpos64_t; 23376: # 41 "/usr/include/stdio.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_FILE.h" 1 3 4 23376: # 35 "/usr/include/arm-linux-gnueabihf/bits/types/struct_FILE.h" 3 4 23376: struct _IO_FILE; 23376: struct _IO_marker; 23376: struct _IO_codecvt; 23376: struct _IO_wide_data; 23376: 23376: 23376: 23376: 23376: typedef void _IO_lock_t; 23376: 23376: 23376: 23376: 23376: 23376: struct _IO_FILE 23376: { 23376: int _flags; 23376: 23376: 23376: char *_IO_read_ptr; 23376: char *_IO_read_end; 23376: char *_IO_read_base; 23376: char *_IO_write_base; 23376: char *_IO_write_ptr; 23376: char *_IO_write_end; 23376: char *_IO_buf_base; 23376: char *_IO_buf_end; 23376: 23376: 23376: char *_IO_save_base; 23376: char *_IO_backup_base; 23376: char *_IO_save_end; 23376: 23376: struct _IO_marker *_markers; 23376: 23376: struct _IO_FILE *_chain; 23376: 23376: int _fileno; 23376: int _flags2; 23376: __off_t _old_offset; 23376: 23376: 23376: unsigned short _cur_column; 23376: signed char _vtable_offset; 23376: char _shortbuf[1]; 23376: 23376: _IO_lock_t *_lock; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: __off64_t _offset; 23376: 23376: struct _IO_codecvt *_codecvt; 23376: struct _IO_wide_data *_wide_data; 23376: struct _IO_FILE *_freeres_list; 23376: void *_freeres_buf; 23376: size_t __pad5; 23376: int _mode; 23376: 23376: char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 23376: }; 23376: # 44 "/usr/include/stdio.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/cookie_io_functions_t.h" 1 3 4 23376: # 27 "/usr/include/arm-linux-gnueabihf/bits/types/cookie_io_functions_t.h" 3 4 23376: typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, 23376: size_t __nbytes); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, 23376: size_t __nbytes); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); 23376: 23376: 23376: typedef int cookie_close_function_t (void *__cookie); 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef struct _IO_cookie_io_functions_t 23376: { 23376: cookie_read_function_t *read; 23376: cookie_write_function_t *write; 23376: cookie_seek_function_t *seek; 23376: cookie_close_function_t *close; 23376: } cookie_io_functions_t; 23376: # 47 "/usr/include/stdio.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: typedef __gnuc_va_list va_list; 23376: # 84 "/usr/include/stdio.h" 3 4 23376: typedef __fpos_t fpos_t; 23376: 23376: 23376: 23376: 23376: typedef __fpos64_t fpos64_t; 23376: # 133 "/usr/include/stdio.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio_lim.h" 1 3 4 23376: # 134 "/usr/include/stdio.h" 2 3 4 23376: 23376: 23376: 23376: extern FILE *stdin; 23376: extern FILE *stdout; 23376: extern FILE *stderr; 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int remove (const char *__filename) throw (); 23376: 23376: extern int rename (const char *__old, const char *__new) throw (); 23376: 23376: 23376: 23376: extern int renameat (int __oldfd, const char *__old, int __newfd, 23376: const char *__new) throw (); 23376: # 164 "/usr/include/stdio.h" 3 4 23376: extern int renameat2 (int __oldfd, const char *__old, int __newfd, 23376: const char *__new, unsigned int __flags) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__)); 23376: # 183 "/usr/include/stdio.h" 3 4 23376: extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: extern char *tmpnam (char *__s) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern char *tmpnam_r (char *__s) throw () __attribute__ ((__warn_unused_result__)); 23376: # 204 "/usr/include/stdio.h" 3 4 23376: extern char *tempnam (const char *__dir, const char *__pfx) 23376: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int fclose (FILE *__stream); 23376: 23376: 23376: 23376: 23376: extern int fflush (FILE *__stream); 23376: # 227 "/usr/include/stdio.h" 3 4 23376: extern int fflush_unlocked (FILE *__stream); 23376: # 237 "/usr/include/stdio.h" 3 4 23376: extern int fcloseall (void); 23376: # 246 "/usr/include/stdio.h" 3 4 23376: extern FILE *fopen (const char *__restrict __filename, 23376: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern FILE *freopen (const char *__restrict __filename, 23376: const char *__restrict __modes, 23376: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: # 270 "/usr/include/stdio.h" 3 4 23376: extern FILE *fopen64 (const char *__restrict __filename, 23376: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 23376: extern FILE *freopen64 (const char *__restrict __filename, 23376: const char *__restrict __modes, 23376: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern FILE *fdopen (int __fd, const char *__modes) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: extern FILE *fopencookie (void *__restrict __magic_cookie, 23376: const char *__restrict __modes, 23376: cookie_io_functions_t __io_funcs) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 23376: throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); 23376: 23376: 23376: 23376: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 23376: int __modes, size_t __n) throw (); 23376: 23376: 23376: 23376: 23376: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 23376: size_t __size) throw (); 23376: 23376: 23376: extern void setlinebuf (FILE *__stream) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int fprintf (FILE *__restrict __stream, 23376: const char *__restrict __format, ...); 23376: 23376: 23376: 23376: 23376: extern int printf (const char *__restrict __format, ...); 23376: 23376: extern int sprintf (char *__restrict __s, 23376: const char *__restrict __format, ...) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 23376: __gnuc_va_list __arg); 23376: 23376: 23376: 23376: 23376: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 23376: 23376: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 23376: __gnuc_va_list __arg) throw (); 23376: 23376: 23376: 23376: extern int snprintf (char *__restrict __s, size_t __maxlen, 23376: const char *__restrict __format, ...) 23376: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 23376: 23376: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 23376: const char *__restrict __format, __gnuc_va_list __arg) 23376: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 23376: 23376: 23376: 23376: 23376: 23376: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 23376: __gnuc_va_list __arg) 23376: throw () __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 23376: extern int __asprintf (char **__restrict __ptr, 23376: const char *__restrict __fmt, ...) 23376: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 23376: extern int asprintf (char **__restrict __ptr, 23376: const char *__restrict __fmt, ...) 23376: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern int vdprintf (int __fd, const char *__restrict __fmt, 23376: __gnuc_va_list __arg) 23376: __attribute__ ((__format__ (__printf__, 2, 0))); 23376: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 23376: __attribute__ ((__format__ (__printf__, 2, 3))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int fscanf (FILE *__restrict __stream, 23376: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 23376: 23376: extern int sscanf (const char *__restrict __s, 23376: const char *__restrict __format, ...) throw (); 23376: # 434 "/usr/include/stdio.h" 3 4 23376: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 23376: __gnuc_va_list __arg) 23376: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 23376: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: extern int vsscanf (const char *__restrict __s, 23376: const char *__restrict __format, __gnuc_va_list __arg) 23376: throw () __attribute__ ((__format__ (__scanf__, 2, 0))); 23376: # 491 "/usr/include/stdio.h" 3 4 23376: extern int fgetc (FILE *__stream); 23376: extern int getc (FILE *__stream); 23376: 23376: 23376: 23376: 23376: 23376: extern int getchar (void); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int getc_unlocked (FILE *__stream); 23376: extern int getchar_unlocked (void); 23376: # 516 "/usr/include/stdio.h" 3 4 23376: extern int fgetc_unlocked (FILE *__stream); 23376: # 527 "/usr/include/stdio.h" 3 4 23376: extern int fputc (int __c, FILE *__stream); 23376: extern int putc (int __c, FILE *__stream); 23376: 23376: 23376: 23376: 23376: 23376: extern int putchar (int __c); 23376: # 543 "/usr/include/stdio.h" 3 4 23376: extern int fputc_unlocked (int __c, FILE *__stream); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int putc_unlocked (int __c, FILE *__stream); 23376: extern int putchar_unlocked (int __c); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int getw (FILE *__stream); 23376: 23376: 23376: extern int putw (int __w, FILE *__stream); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 23376: __attribute__ ((__warn_unused_result__)); 23376: # 593 "/usr/include/stdio.h" 3 4 23376: extern char *fgets_unlocked (char *__restrict __s, int __n, 23376: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: # 609 "/usr/include/stdio.h" 3 4 23376: extern __ssize_t __getdelim (char **__restrict __lineptr, 23376: size_t *__restrict __n, int __delimiter, 23376: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: extern __ssize_t getdelim (char **__restrict __lineptr, 23376: size_t *__restrict __n, int __delimiter, 23376: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern __ssize_t getline (char **__restrict __lineptr, 23376: size_t *__restrict __n, 23376: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int fputs (const char *__restrict __s, FILE *__restrict __stream); 23376: 23376: 23376: 23376: 23376: 23376: extern int puts (const char *__s); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int ungetc (int __c, FILE *__stream); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern size_t fread (void *__restrict __ptr, size_t __size, 23376: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 23376: size_t __n, FILE *__restrict __s); 23376: # 668 "/usr/include/stdio.h" 3 4 23376: extern int fputs_unlocked (const char *__restrict __s, 23376: FILE *__restrict __stream); 23376: # 679 "/usr/include/stdio.h" 3 4 23376: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 23376: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 23376: size_t __n, FILE *__restrict __stream); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int fseek (FILE *__stream, long int __off, int __whence); 23376: 23376: 23376: 23376: 23376: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern void rewind (FILE *__stream); 23376: # 713 "/usr/include/stdio.h" 3 4 23376: extern int fseeko (FILE *__stream, __off_t __off, int __whence); 23376: 23376: 23376: 23376: 23376: extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); 23376: # 737 "/usr/include/stdio.h" 3 4 23376: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); 23376: 23376: 23376: 23376: 23376: extern int fsetpos (FILE *__stream, const fpos_t *__pos); 23376: # 756 "/usr/include/stdio.h" 3 4 23376: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); 23376: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); 23376: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); 23376: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); 23376: 23376: 23376: 23376: extern void clearerr (FILE *__stream) throw (); 23376: 23376: extern int feof (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: extern int ferror (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: extern void clearerr_unlocked (FILE *__stream) throw (); 23376: extern int feof_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 23376: extern int ferror_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern void perror (const char *__s); 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 1 3 4 23376: # 26 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 3 4 23376: extern int sys_nerr; 23376: extern const char *const sys_errlist[]; 23376: 23376: 23376: extern int _sys_nerr; 23376: extern const char *const _sys_errlist[]; 23376: # 788 "/usr/include/stdio.h" 2 3 4 23376: 23376: 23376: 23376: 23376: extern int fileno (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: extern int fileno_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 23376: # 806 "/usr/include/stdio.h" 3 4 23376: extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: 23376: 23376: 23376: extern int pclose (FILE *__stream); 23376: 23376: 23376: 23376: 23376: 23376: extern char *ctermid (char *__s) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern char *cuserid (char *__s); 23376: 23376: 23376: 23376: 23376: struct obstack; 23376: 23376: 23376: extern int obstack_printf (struct obstack *__restrict __obstack, 23376: const char *__restrict __format, ...) 23376: throw () __attribute__ ((__format__ (__printf__, 2, 3))); 23376: extern int obstack_vprintf (struct obstack *__restrict __obstack, 23376: const char *__restrict __format, 23376: __gnuc_va_list __args) 23376: throw () __attribute__ ((__format__ (__printf__, 2, 0))); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern void flockfile (FILE *__stream) throw (); 23376: 23376: 23376: 23376: extern int ftrylockfile (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 23376: 23376: 23376: extern void funlockfile (FILE *__stream) throw (); 23376: # 864 "/usr/include/stdio.h" 3 4 23376: extern int __uflow (FILE *); 23376: extern int __overflow (FILE *, int); 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 1 3 4 23376: # 46 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 3 4 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: getchar (void) 23376: { 23376: return getc (stdin); 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: fgetc_unlocked (FILE *__fp) 23376: { 23376: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: getc_unlocked (FILE *__fp) 23376: { 23376: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 23376: } 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: getchar_unlocked (void) 23376: { 23376: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: putchar (int __c) 23376: { 23376: return putc (__c, stdout); 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: fputc_unlocked (int __c, FILE *__stream) 23376: { 23376: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: putc_unlocked (int __c, FILE *__stream) 23376: { 23376: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 23376: } 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: putchar_unlocked (int __c) 23376: { 23376: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 23376: getline (char **__lineptr, size_t *__n, FILE *__stream) 23376: { 23376: return __getdelim (__lineptr, __n, '\n', __stream); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) throw () 23376: { 23376: return (((__stream)->_flags & 0x0010) != 0); 23376: } 23376: 23376: 23376: extern __inline __attribute__ ((__gnu_inline__)) int 23376: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) throw () 23376: { 23376: return (((__stream)->_flags & 0x0020) != 0); 23376: } 23376: # 871 "/usr/include/stdio.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 1 3 4 23376: # 26 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 3 4 23376: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 23376: const char *__restrict __format, ...) throw (); 23376: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 23376: const char *__restrict __format, 23376: __gnuc_va_list __ap) throw (); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) throw () 23376: { 23376: return __builtin___sprintf_chk (__s, 2 - 1, 23376: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 23376: 23376: { 23376: return __builtin___vsprintf_chk (__s, 2 - 1, 23376: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 23376: } 23376: 23376: 23376: 23376: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 23376: size_t __slen, const char *__restrict __format, 23376: ...) throw (); 23376: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 23376: size_t __slen, const char *__restrict __format, 23376: __gnuc_va_list __ap) throw (); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) throw () 23376: 23376: { 23376: return __builtin___snprintf_chk (__s, __n, 2 - 1, 23376: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 23376: 23376: { 23376: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 23376: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 23376: const char *__restrict __format, ...); 23376: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 23376: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 23376: const char *__restrict __format, __gnuc_va_list __ap); 23376: extern int __vprintf_chk (int __flag, const char *__restrict __format, 23376: __gnuc_va_list __ap); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 23376: { 23376: return __fprintf_chk (__stream, 2 - 1, __fmt, 23376: __builtin_va_arg_pack ()); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: printf (const char *__restrict __fmt, ...) 23376: { 23376: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) 23376: { 23376: 23376: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 23376: 23376: 23376: 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: vfprintf (FILE *__restrict __stream, 23376: const char *__restrict __fmt, __gnuc_va_list __ap) 23376: { 23376: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 23376: } 23376: 23376: 23376: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 23376: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 23376: extern int __vdprintf_chk (int __fd, int __flag, 23376: const char *__restrict __fmt, __gnuc_va_list __arg) 23376: __attribute__ ((__format__ (__printf__, 3, 0))); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: dprintf (int __fd, const char *__restrict __fmt, ...) 23376: { 23376: return __dprintf_chk (__fd, 2 - 1, __fmt, 23376: __builtin_va_arg_pack ()); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 23376: { 23376: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 23376: } 23376: 23376: 23376: 23376: 23376: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 23376: const char *__restrict __fmt, ...) 23376: throw () __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 23376: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 23376: const char *__restrict __fmt, __gnuc_va_list __arg) 23376: throw () __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 23376: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 23376: int __flag, const char *__restrict __format, 23376: ...) 23376: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 23376: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 23376: int __flag, 23376: const char *__restrict __format, 23376: __gnuc_va_list __args) 23376: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 23376: 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 23376: { 23376: return __asprintf_chk (__ptr, 2 - 1, __fmt, 23376: __builtin_va_arg_pack ()); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 23376: 23376: { 23376: return __asprintf_chk (__ptr, 2 - 1, __fmt, 23376: __builtin_va_arg_pack ()); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) throw () 23376: 23376: { 23376: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 23376: __builtin_va_arg_pack ()); 23376: } 23376: # 209 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 3 4 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 23376: 23376: { 23376: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 23376: } 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 23376: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 23376: 23376: { 23376: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 23376: __ap); 23376: } 23376: # 243 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 3 4 23376: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 23376: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 23376: 23376: __attribute__ ((__warn_unused_result__)); 23376: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 23376: fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 23376: { 23376: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n) || __n <= 0) 23376: return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 23376: 23376: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 23376: return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 23376: } 23376: return __fgets_alias (__s, __n, __stream); 23376: } 23376: 23376: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 23376: size_t __size, size_t __n, 23376: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)); 23376: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 23376: 23376: 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 23376: fread (void *__restrict __ptr, size_t __size, size_t __n, 23376: FILE *__restrict __stream) 23376: { 23376: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__size) 23376: || !__builtin_constant_p (__n) 23376: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 23376: return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 23376: 23376: if (__size * __n > __builtin_object_size (__ptr, 0)) 23376: return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 23376: } 23376: return __fread_alias (__ptr, __size, __n, __stream); 23376: } 23376: 23376: 23376: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 23376: int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 23376: 23376: __attribute__ ((__warn_unused_result__)); 23376: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 23376: fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) 23376: { 23376: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__n) || __n <= 0) 23376: return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 23376: 23376: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 23376: return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 23376: } 23376: return __fgets_unlocked_alias (__s, __n, __stream); 23376: } 23376: 23376: 23376: 23376: 23376: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 23376: size_t __size, size_t __n, 23376: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 23376: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)); 23376: extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") 23376: 23376: 23376: 23376: 23376: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 23376: ; 23376: 23376: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 23376: fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, 23376: FILE *__restrict __stream) 23376: { 23376: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 23376: { 23376: if (!__builtin_constant_p (__size) 23376: || !__builtin_constant_p (__n) 23376: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 23376: return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 23376: __stream); 23376: 23376: if (__size * __n > __builtin_object_size (__ptr, 0)) 23376: return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 23376: __stream); 23376: } 23376: 23376: 23376: if (__builtin_constant_p (__size) 23376: && __builtin_constant_p (__n) 23376: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 23376: && __size * __n <= 8) 23376: { 23376: size_t __cnt = __size * __n; 23376: char *__cptr = (char *) __ptr; 23376: if (__cnt == 0) 23376: return 0; 23376: 23376: for (; __cnt > 0; --__cnt) 23376: { 23376: int __c = getc_unlocked (__stream); 23376: if (__c == (-1)) 23376: break; 23376: *__cptr++ = __c; 23376: } 23376: return (__cptr - (char *) __ptr) / __size; 23376: } 23376: 23376: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 23376: } 23376: # 874 "/usr/include/stdio.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 43 "/usr/include/c++/8/cstdio" 2 3 23376: # 96 "/usr/include/c++/8/cstdio" 3 23376: namespace std 23376: { 23376: using ::FILE; 23376: using ::fpos_t; 23376: 23376: using ::clearerr; 23376: using ::fclose; 23376: using ::feof; 23376: using ::ferror; 23376: using ::fflush; 23376: using ::fgetc; 23376: using ::fgetpos; 23376: using ::fgets; 23376: using ::fopen; 23376: using ::fprintf; 23376: using ::fputc; 23376: using ::fputs; 23376: using ::fread; 23376: using ::freopen; 23376: using ::fscanf; 23376: using ::fseek; 23376: using ::fsetpos; 23376: using ::ftell; 23376: using ::fwrite; 23376: using ::getc; 23376: using ::getchar; 23376: 23376: 23376: 23376: 23376: using ::perror; 23376: using ::printf; 23376: using ::putc; 23376: using ::putchar; 23376: using ::puts; 23376: using ::remove; 23376: using ::rename; 23376: using ::rewind; 23376: using ::scanf; 23376: using ::setbuf; 23376: using ::setvbuf; 23376: using ::sprintf; 23376: using ::sscanf; 23376: using ::tmpfile; 23376: 23376: using ::tmpnam; 23376: 23376: using ::ungetc; 23376: using ::vfprintf; 23376: using ::vprintf; 23376: using ::vsprintf; 23376: } 23376: # 157 "/usr/include/c++/8/cstdio" 3 23376: namespace __gnu_cxx 23376: { 23376: # 175 "/usr/include/c++/8/cstdio" 3 23376: using ::snprintf; 23376: using ::vfscanf; 23376: using ::vscanf; 23376: using ::vsnprintf; 23376: using ::vsscanf; 23376: 23376: } 23376: 23376: namespace std 23376: { 23376: using ::__gnu_cxx::snprintf; 23376: using ::__gnu_cxx::vfscanf; 23376: using ::__gnu_cxx::vscanf; 23376: using ::__gnu_cxx::vsnprintf; 23376: using ::__gnu_cxx::vsscanf; 23376: } 23376: # 44 "/usr/include/c++/8/ext/string_conversions.h" 2 3 23376: # 1 "/usr/include/c++/8/cerrno" 1 3 23376: # 39 "/usr/include/c++/8/cerrno" 3 23376: 23376: # 40 "/usr/include/c++/8/cerrno" 3 23376: 23376: 23376: # 1 "/usr/include/errno.h" 1 3 4 23376: # 28 "/usr/include/errno.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 1 3 4 23376: # 26 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 3 4 23376: # 1 "/usr/include/linux/errno.h" 1 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/asm/errno.h" 1 3 4 23376: # 1 "/usr/include/asm-generic/errno.h" 1 3 4 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 23376: # 6 "/usr/include/asm-generic/errno.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/asm/errno.h" 2 3 4 23376: # 1 "/usr/include/linux/errno.h" 2 3 4 23376: # 27 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 2 3 4 23376: # 29 "/usr/include/errno.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: extern "C" { 23376: 23376: 23376: extern int *__errno_location (void) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern char *program_invocation_name; 23376: extern char *program_invocation_short_name; 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/error_t.h" 1 3 4 23376: # 22 "/usr/include/arm-linux-gnueabihf/bits/types/error_t.h" 3 4 23376: typedef int error_t; 23376: # 49 "/usr/include/errno.h" 2 3 4 23376: 23376: 23376: 23376: } 23376: # 43 "/usr/include/c++/8/cerrno" 2 3 23376: # 45 "/usr/include/c++/8/ext/string_conversions.h" 2 3 23376: 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: _Ret 23376: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 23376: const char* __name, const _CharT* __str, std::size_t* __idx, 23376: _Base... __base) 23376: { 23376: _Ret __ret; 23376: 23376: _CharT* __endptr; 23376: 23376: struct _Save_errno { 23376: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 23376: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 23376: int _M_errno; 23376: } const __save_errno; 23376: 23376: struct _Range_chk { 23376: static bool 23376: _S_chk(_TRet, std::false_type) { return false; } 23376: 23376: static bool 23376: _S_chk(_TRet __val, std::true_type) 23376: { 23376: return __val < _TRet(__numeric_traits::__min) 23376: || __val > _TRet(__numeric_traits::__max); 23376: } 23376: }; 23376: 23376: const _TRet __tmp = __convf(__str, &__endptr, __base...); 23376: 23376: if (__endptr == __str) 23376: std::__throw_invalid_argument(__name); 23376: else if ((*__errno_location ()) == 34 23376: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 23376: std::__throw_out_of_range(__name); 23376: else 23376: __ret = __tmp; 23376: 23376: if (__idx) 23376: *__idx = __endptr - __str; 23376: 23376: return __ret; 23376: } 23376: 23376: 23376: template 23376: _String 23376: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 23376: __builtin_va_list), std::size_t __n, 23376: const _CharT* __fmt, ...) 23376: { 23376: 23376: 23376: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 23376: * __n)); 23376: 23376: __builtin_va_list __args; 23376: __builtin_va_start(__args, __fmt); 23376: 23376: const int __len = __convf(__s, __n, __fmt, __args); 23376: 23376: __builtin_va_end(__args); 23376: 23376: return _String(__s, __s + __len); 23376: } 23376: 23376: 23376: } 23376: # 6401 "/usr/include/c++/8/bits/basic_string.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: namespace __cxx11 { 23376: 23376: 23376: 23376: inline int 23376: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 23376: __idx, __base); } 23376: 23376: inline long 23376: stol(const string& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 23376: __idx, __base); } 23376: 23376: inline unsigned long 23376: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 23376: __idx, __base); } 23376: 23376: inline long long 23376: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 23376: __idx, __base); } 23376: 23376: inline unsigned long long 23376: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 23376: __idx, __base); } 23376: 23376: 23376: inline float 23376: stof(const string& __str, size_t* __idx = 0) 23376: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 23376: 23376: inline double 23376: stod(const string& __str, size_t* __idx = 0) 23376: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 23376: 23376: inline long double 23376: stold(const string& __str, size_t* __idx = 0) 23376: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: inline string 23376: to_string(int __val) 23376: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(int), 23376: "%d", __val); } 23376: 23376: inline string 23376: to_string(unsigned __val) 23376: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 23376: 4 * sizeof(unsigned), 23376: "%u", __val); } 23376: 23376: inline string 23376: to_string(long __val) 23376: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long), 23376: "%ld", __val); } 23376: 23376: inline string 23376: to_string(unsigned long __val) 23376: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 23376: 4 * sizeof(unsigned long), 23376: "%lu", __val); } 23376: 23376: inline string 23376: to_string(long long __val) 23376: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 23376: 4 * sizeof(long long), 23376: "%lld", __val); } 23376: 23376: inline string 23376: to_string(unsigned long long __val) 23376: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 23376: 4 * sizeof(unsigned long long), 23376: "%llu", __val); } 23376: 23376: inline string 23376: to_string(float __val) 23376: { 23376: const int __n = 23376: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 23376: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 23376: "%f", __val); 23376: } 23376: 23376: inline string 23376: to_string(double __val) 23376: { 23376: const int __n = 23376: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 23376: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 23376: "%f", __val); 23376: } 23376: 23376: inline string 23376: to_string(long double __val) 23376: { 23376: const int __n = 23376: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 23376: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 23376: "%Lf", __val); 23376: } 23376: 23376: 23376: 23376: inline int 23376: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 23376: __idx, __base); } 23376: 23376: inline long 23376: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 23376: __idx, __base); } 23376: 23376: inline unsigned long 23376: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 23376: __idx, __base); } 23376: 23376: inline long long 23376: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 23376: __idx, __base); } 23376: 23376: inline unsigned long long 23376: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 23376: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 23376: __idx, __base); } 23376: 23376: 23376: inline float 23376: stof(const wstring& __str, size_t* __idx = 0) 23376: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 23376: 23376: inline double 23376: stod(const wstring& __str, size_t* __idx = 0) 23376: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 23376: 23376: inline long double 23376: stold(const wstring& __str, size_t* __idx = 0) 23376: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 23376: 23376: 23376: 23376: inline wstring 23376: to_wstring(int __val) 23376: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), 23376: L"%d", __val); } 23376: 23376: inline wstring 23376: to_wstring(unsigned __val) 23376: { return __gnu_cxx::__to_xstring(&std::vswprintf, 23376: 4 * sizeof(unsigned), 23376: L"%u", __val); } 23376: 23376: inline wstring 23376: to_wstring(long __val) 23376: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), 23376: L"%ld", __val); } 23376: 23376: inline wstring 23376: to_wstring(unsigned long __val) 23376: { return __gnu_cxx::__to_xstring(&std::vswprintf, 23376: 4 * sizeof(unsigned long), 23376: L"%lu", __val); } 23376: 23376: inline wstring 23376: to_wstring(long long __val) 23376: { return __gnu_cxx::__to_xstring(&std::vswprintf, 23376: 4 * sizeof(long long), 23376: L"%lld", __val); } 23376: 23376: inline wstring 23376: to_wstring(unsigned long long __val) 23376: { return __gnu_cxx::__to_xstring(&std::vswprintf, 23376: 4 * sizeof(unsigned long long), 23376: L"%llu", __val); } 23376: 23376: inline wstring 23376: to_wstring(float __val) 23376: { 23376: const int __n = 23376: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 23376: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 23376: L"%f", __val); 23376: } 23376: 23376: inline wstring 23376: to_wstring(double __val) 23376: { 23376: const int __n = 23376: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 23376: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 23376: L"%f", __val); 23376: } 23376: 23376: inline wstring 23376: to_wstring(long double __val) 23376: { 23376: const int __n = 23376: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 23376: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 23376: L"%Lf", __val); 23376: } 23376: 23376: 23376: 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/functional_hash.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/functional_hash.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/functional_hash.h" 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 49 "/usr/include/c++/8/bits/functional_hash.h" 3 23376: template 23376: struct __hash_base 23376: { 23376: typedef _Result result_type ; 23376: typedef _Arg argument_type ; 23376: }; 23376: 23376: 23376: template 23376: struct hash; 23376: 23376: template 23376: struct __poison_hash 23376: { 23376: static constexpr bool __enable_hash_call = false; 23376: private: 23376: 23376: __poison_hash(__poison_hash&&); 23376: ~__poison_hash(); 23376: }; 23376: 23376: template 23376: struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> 23376: { 23376: static constexpr bool __enable_hash_call = true; 23376: }; 23376: 23376: 23376: template::value> 23376: struct __hash_enum 23376: { 23376: private: 23376: 23376: __hash_enum(__hash_enum&&); 23376: ~__hash_enum(); 23376: }; 23376: 23376: 23376: template 23376: struct __hash_enum<_Tp, true> : public __hash_base 23376: { 23376: size_t 23376: operator()(_Tp __val) const noexcept 23376: { 23376: using __type = typename underlying_type<_Tp>::type; 23376: return hash<__type>{}(static_cast<__type>(__val)); 23376: } 23376: }; 23376: 23376: 23376: 23376: template 23376: struct hash : __hash_enum<_Tp> 23376: { }; 23376: 23376: 23376: template 23376: struct hash<_Tp*> : public __hash_base 23376: { 23376: size_t 23376: operator()(_Tp* __p) const noexcept 23376: { return reinterpret_cast(__p); } 23376: }; 23376: # 124 "/usr/include/c++/8/bits/functional_hash.h" 3 23376: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 23376: 23376: 23376: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 23376: # 187 "/usr/include/c++/8/bits/functional_hash.h" 3 23376: struct _Hash_impl 23376: { 23376: static size_t 23376: hash(const void* __ptr, size_t __clength, 23376: size_t __seed = static_cast(0xc70f6907UL)) 23376: { return _Hash_bytes(__ptr, __clength, __seed); } 23376: 23376: template 23376: static size_t 23376: hash(const _Tp& __val) 23376: { return hash(&__val, sizeof(__val)); } 23376: 23376: template 23376: static size_t 23376: __hash_combine(const _Tp& __val, size_t __hash) 23376: { return hash(&__val, sizeof(__val), __hash); } 23376: }; 23376: 23376: 23376: struct _Fnv_hash_impl 23376: { 23376: static size_t 23376: hash(const void* __ptr, size_t __clength, 23376: size_t __seed = static_cast(2166136261UL)) 23376: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 23376: 23376: template 23376: static size_t 23376: hash(const _Tp& __val) 23376: { return hash(&__val, sizeof(__val)); } 23376: 23376: template 23376: static size_t 23376: __hash_combine(const _Tp& __val, size_t __hash) 23376: { return hash(&__val, sizeof(__val), __hash); } 23376: }; 23376: 23376: 23376: template<> 23376: struct hash : public __hash_base 23376: { 23376: size_t 23376: operator()(float __val) const noexcept 23376: { 23376: 23376: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 23376: } 23376: }; 23376: 23376: 23376: template<> 23376: struct hash : public __hash_base 23376: { 23376: size_t 23376: operator()(double __val) const noexcept 23376: { 23376: 23376: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 23376: } 23376: }; 23376: 23376: 23376: template<> 23376: struct hash 23376: : public __hash_base 23376: { 23376: __attribute__ ((__pure__)) size_t 23376: operator()(long double __val) const noexcept; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __is_fast_hash : public std::true_type 23376: { }; 23376: 23376: template<> 23376: struct __is_fast_hash> : public std::false_type 23376: { }; 23376: 23376: 23376: } 23376: # 6627 "/usr/include/c++/8/bits/basic_string.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: struct hash 23376: : public __hash_base 23376: { 23376: size_t 23376: operator()(const string& __s) const noexcept 23376: { return std::_Hash_impl::hash(__s.data(), __s.length()); } 23376: }; 23376: 23376: template<> 23376: struct __is_fast_hash> : std::false_type 23376: { }; 23376: 23376: 23376: 23376: template<> 23376: struct hash 23376: : public __hash_base 23376: { 23376: size_t 23376: operator()(const wstring& __s) const noexcept 23376: { return std::_Hash_impl::hash(__s.data(), 23376: __s.length() * sizeof(wchar_t)); } 23376: }; 23376: 23376: template<> 23376: struct __is_fast_hash> : std::false_type 23376: { }; 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: struct hash 23376: : public __hash_base 23376: { 23376: size_t 23376: operator()(const u16string& __s) const noexcept 23376: { return std::_Hash_impl::hash(__s.data(), 23376: __s.length() * sizeof(char16_t)); } 23376: }; 23376: 23376: template<> 23376: struct __is_fast_hash> : std::false_type 23376: { }; 23376: 23376: 23376: template<> 23376: struct hash 23376: : public __hash_base 23376: { 23376: size_t 23376: operator()(const u32string& __s) const noexcept 23376: { return std::_Hash_impl::hash(__s.data(), 23376: __s.length() * sizeof(char32_t)); } 23376: }; 23376: 23376: template<> 23376: struct __is_fast_hash> : std::false_type 23376: { }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: inline namespace literals 23376: { 23376: inline namespace string_literals 23376: { 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wliteral-suffix" 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: inline basic_string 23376: operator""s(const char* __str, size_t __len) 23376: { return basic_string{__str, __len}; } 23376: 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: inline basic_string 23376: operator""s(const wchar_t* __str, size_t __len) 23376: { return basic_string{__str, __len}; } 23376: 23376: 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: inline basic_string 23376: operator""s(const char16_t* __str, size_t __len) 23376: { return basic_string{__str, __len}; } 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: inline basic_string 23376: operator""s(const char32_t* __str, size_t __len) 23376: { return basic_string{__str, __len}; } 23376: 23376: 23376: #pragma GCC diagnostic pop 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: # 53 "/usr/include/c++/8/string" 2 3 23376: # 1 "/usr/include/c++/8/bits/basic_string.tcc" 1 3 23376: # 42 "/usr/include/c++/8/bits/basic_string.tcc" 3 23376: 23376: # 43 "/usr/include/c++/8/bits/basic_string.tcc" 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: template 23376: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>::npos; 23376: 23376: template 23376: void 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: swap(basic_string& __s) noexcept 23376: { 23376: if (this == &__s) 23376: return; 23376: 23376: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 23376: 23376: if (_M_is_local()) 23376: if (__s._M_is_local()) 23376: { 23376: if (length() && __s.length()) 23376: { 23376: _CharT __tmp_data[_S_local_capacity + 1]; 23376: traits_type::copy(__tmp_data, __s._M_local_buf, 23376: _S_local_capacity + 1); 23376: traits_type::copy(__s._M_local_buf, _M_local_buf, 23376: _S_local_capacity + 1); 23376: traits_type::copy(_M_local_buf, __tmp_data, 23376: _S_local_capacity + 1); 23376: } 23376: else if (__s.length()) 23376: { 23376: traits_type::copy(_M_local_buf, __s._M_local_buf, 23376: _S_local_capacity + 1); 23376: _M_length(__s.length()); 23376: __s._M_set_length(0); 23376: return; 23376: } 23376: else if (length()) 23376: { 23376: traits_type::copy(__s._M_local_buf, _M_local_buf, 23376: _S_local_capacity + 1); 23376: __s._M_length(length()); 23376: _M_set_length(0); 23376: return; 23376: } 23376: } 23376: else 23376: { 23376: const size_type __tmp_capacity = __s._M_allocated_capacity; 23376: traits_type::copy(__s._M_local_buf, _M_local_buf, 23376: _S_local_capacity + 1); 23376: _M_data(__s._M_data()); 23376: __s._M_data(__s._M_local_buf); 23376: _M_capacity(__tmp_capacity); 23376: } 23376: else 23376: { 23376: const size_type __tmp_capacity = _M_allocated_capacity; 23376: if (__s._M_is_local()) 23376: { 23376: traits_type::copy(_M_local_buf, __s._M_local_buf, 23376: _S_local_capacity + 1); 23376: __s._M_data(_M_data()); 23376: _M_data(_M_local_buf); 23376: } 23376: else 23376: { 23376: pointer __tmp_ptr = _M_data(); 23376: _M_data(__s._M_data()); 23376: __s._M_data(__tmp_ptr); 23376: _M_capacity(__s._M_allocated_capacity); 23376: } 23376: __s._M_capacity(__tmp_capacity); 23376: } 23376: 23376: const size_type __tmp_length = length(); 23376: _M_length(__s.length()); 23376: __s._M_length(__tmp_length); 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::pointer 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_create(size_type& __capacity, size_type __old_capacity) 23376: { 23376: 23376: 23376: if (__capacity > max_size()) 23376: std::__throw_length_error(("basic_string::_M_create")); 23376: 23376: 23376: 23376: 23376: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 23376: { 23376: __capacity = 2 * __old_capacity; 23376: 23376: if (__capacity > max_size()) 23376: __capacity = max_size(); 23376: } 23376: 23376: 23376: 23376: return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: template 23376: void 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_construct(_InIterator __beg, _InIterator __end, 23376: std::input_iterator_tag) 23376: { 23376: size_type __len = 0; 23376: size_type __capacity = size_type(_S_local_capacity); 23376: 23376: while (__beg != __end && __len < __capacity) 23376: { 23376: _M_data()[__len++] = *__beg; 23376: ++__beg; 23376: } 23376: 23376: try 23376: { 23376: while (__beg != __end) 23376: { 23376: if (__len == __capacity) 23376: { 23376: 23376: __capacity = __len + 1; 23376: pointer __another = _M_create(__capacity, __len); 23376: this->_S_copy(__another, _M_data(), __len); 23376: _M_dispose(); 23376: _M_data(__another); 23376: _M_capacity(__capacity); 23376: } 23376: _M_data()[__len++] = *__beg; 23376: ++__beg; 23376: } 23376: } 23376: catch(...) 23376: { 23376: _M_dispose(); 23376: throw; 23376: } 23376: 23376: _M_set_length(__len); 23376: } 23376: 23376: template 23376: template 23376: void 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_construct(_InIterator __beg, _InIterator __end, 23376: std::forward_iterator_tag) 23376: { 23376: 23376: if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) 23376: std::__throw_logic_error(("basic_string::" "_M_construct null not valid") 23376: ); 23376: 23376: size_type __dnew = static_cast(std::distance(__beg, __end)); 23376: 23376: if (__dnew > size_type(_S_local_capacity)) 23376: { 23376: _M_data(_M_create(__dnew, size_type(0))); 23376: _M_capacity(__dnew); 23376: } 23376: 23376: 23376: try 23376: { this->_S_copy_chars(_M_data(), __beg, __end); } 23376: catch(...) 23376: { 23376: _M_dispose(); 23376: throw; 23376: } 23376: 23376: _M_set_length(__dnew); 23376: } 23376: 23376: template 23376: void 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_construct(size_type __n, _CharT __c) 23376: { 23376: if (__n > size_type(_S_local_capacity)) 23376: { 23376: _M_data(_M_create(__n, size_type(0))); 23376: _M_capacity(__n); 23376: } 23376: 23376: if (__n) 23376: this->_S_assign(_M_data(), __n, __c); 23376: 23376: _M_set_length(__n); 23376: } 23376: 23376: template 23376: void 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_assign(const basic_string& __str) 23376: { 23376: if (this != &__str) 23376: { 23376: const size_type __rsize = __str.length(); 23376: const size_type __capacity = capacity(); 23376: 23376: if (__rsize > __capacity) 23376: { 23376: size_type __new_capacity = __rsize; 23376: pointer __tmp = _M_create(__new_capacity, __capacity); 23376: _M_dispose(); 23376: _M_data(__tmp); 23376: _M_capacity(__new_capacity); 23376: } 23376: 23376: if (__rsize) 23376: this->_S_copy(_M_data(), __str._M_data(), __rsize); 23376: 23376: _M_set_length(__rsize); 23376: } 23376: } 23376: 23376: template 23376: void 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: reserve(size_type __res) 23376: { 23376: 23376: if (__res < length()) 23376: __res = length(); 23376: 23376: const size_type __capacity = capacity(); 23376: if (__res != __capacity) 23376: { 23376: if (__res > __capacity 23376: || __res > size_type(_S_local_capacity)) 23376: { 23376: pointer __tmp = _M_create(__res, __capacity); 23376: this->_S_copy(__tmp, _M_data(), length() + 1); 23376: _M_dispose(); 23376: _M_data(__tmp); 23376: _M_capacity(__res); 23376: } 23376: else if (!_M_is_local()) 23376: { 23376: this->_S_copy(_M_local_data(), _M_data(), length() + 1); 23376: _M_destroy(__capacity); 23376: _M_data(_M_local_data()); 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 23376: size_type __len2) 23376: { 23376: const size_type __how_much = length() - __pos - __len1; 23376: 23376: size_type __new_capacity = length() + __len2 - __len1; 23376: pointer __r = _M_create(__new_capacity, capacity()); 23376: 23376: if (__pos) 23376: this->_S_copy(__r, _M_data(), __pos); 23376: if (__s && __len2) 23376: this->_S_copy(__r + __pos, __s, __len2); 23376: if (__how_much) 23376: this->_S_copy(__r + __pos + __len2, 23376: _M_data() + __pos + __len1, __how_much); 23376: 23376: _M_dispose(); 23376: _M_data(__r); 23376: _M_capacity(__new_capacity); 23376: } 23376: 23376: template 23376: void 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_erase(size_type __pos, size_type __n) 23376: { 23376: const size_type __how_much = length() - __pos - __n; 23376: 23376: if (__how_much && __n) 23376: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 23376: 23376: _M_set_length(length() - __n); 23376: } 23376: 23376: template 23376: void 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: resize(size_type __n, _CharT __c) 23376: { 23376: const size_type __size = this->size(); 23376: if (__size < __n) 23376: this->append(__n - __size, __c); 23376: else if (__n < __size) 23376: this->_M_set_length(__n); 23376: } 23376: 23376: template 23376: basic_string<_CharT, _Traits, _Alloc>& 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_append(const _CharT* __s, size_type __n) 23376: { 23376: const size_type __len = __n + this->size(); 23376: 23376: if (__len <= this->capacity()) 23376: { 23376: if (__n) 23376: this->_S_copy(this->_M_data() + this->size(), __s, __n); 23376: } 23376: else 23376: this->_M_mutate(this->size(), size_type(0), __s, __n); 23376: 23376: this->_M_set_length(__len); 23376: return *this; 23376: } 23376: 23376: template 23376: template 23376: basic_string<_CharT, _Traits, _Alloc>& 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 23376: _InputIterator __k1, _InputIterator __k2, 23376: std::__false_type) 23376: { 23376: const basic_string __s(__k1, __k2); 23376: const size_type __n1 = __i2 - __i1; 23376: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 23376: __s.size()); 23376: } 23376: 23376: template 23376: basic_string<_CharT, _Traits, _Alloc>& 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 23376: _CharT __c) 23376: { 23376: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 23376: 23376: const size_type __old_size = this->size(); 23376: const size_type __new_size = __old_size + __n2 - __n1; 23376: 23376: if (__new_size <= this->capacity()) 23376: { 23376: pointer __p = this->_M_data() + __pos1; 23376: 23376: const size_type __how_much = __old_size - __pos1 - __n1; 23376: if (__how_much && __n1 != __n2) 23376: this->_S_move(__p + __n2, __p + __n1, __how_much); 23376: } 23376: else 23376: this->_M_mutate(__pos1, __n1, 0, __n2); 23376: 23376: if (__n2) 23376: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 23376: 23376: this->_M_set_length(__new_size); 23376: return *this; 23376: } 23376: 23376: template 23376: basic_string<_CharT, _Traits, _Alloc>& 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 23376: const size_type __len2) 23376: { 23376: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 23376: 23376: const size_type __old_size = this->size(); 23376: const size_type __new_size = __old_size + __len2 - __len1; 23376: 23376: if (__new_size <= this->capacity()) 23376: { 23376: pointer __p = this->_M_data() + __pos; 23376: 23376: const size_type __how_much = __old_size - __pos - __len1; 23376: if (_M_disjunct(__s)) 23376: { 23376: if (__how_much && __len1 != __len2) 23376: this->_S_move(__p + __len2, __p + __len1, __how_much); 23376: if (__len2) 23376: this->_S_copy(__p, __s, __len2); 23376: } 23376: else 23376: { 23376: 23376: if (__len2 && __len2 <= __len1) 23376: this->_S_move(__p, __s, __len2); 23376: if (__how_much && __len1 != __len2) 23376: this->_S_move(__p + __len2, __p + __len1, __how_much); 23376: if (__len2 > __len1) 23376: { 23376: if (__s + __len2 <= __p + __len1) 23376: this->_S_move(__p, __s, __len2); 23376: else if (__s >= __p + __len1) 23376: this->_S_copy(__p, __s + __len2 - __len1, __len2); 23376: else 23376: { 23376: const size_type __nleft = (__p + __len1) - __s; 23376: this->_S_move(__p, __s, __nleft); 23376: this->_S_copy(__p + __nleft, __p + __len2, 23376: __len2 - __nleft); 23376: } 23376: } 23376: } 23376: } 23376: else 23376: this->_M_mutate(__pos, __len1, __s, __len2); 23376: 23376: this->_M_set_length(__new_size); 23376: return *this; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: copy(_CharT* __s, size_type __n, size_type __pos) const 23376: { 23376: _M_check(__pos, "basic_string::copy"); 23376: __n = _M_limit(__pos, __n); 23376: ; 23376: if (__n) 23376: _S_copy(__s, _M_data() + __pos, __n); 23376: 23376: return __n; 23376: } 23376: # 1155 "/usr/include/c++/8/bits/basic_string.tcc" 3 23376: template 23376: basic_string<_CharT, _Traits, _Alloc> 23376: operator+(const _CharT* __lhs, 23376: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { 23376: ; 23376: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 23376: typedef typename __string_type::size_type __size_type; 23376: const __size_type __len = _Traits::length(__lhs); 23376: __string_type __str; 23376: __str.reserve(__len + __rhs.size()); 23376: __str.append(__lhs, __len); 23376: __str.append(__rhs); 23376: return __str; 23376: } 23376: 23376: template 23376: basic_string<_CharT, _Traits, _Alloc> 23376: operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) 23376: { 23376: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 23376: typedef typename __string_type::size_type __size_type; 23376: __string_type __str; 23376: const __size_type __len = __rhs.size(); 23376: __str.reserve(__len + 1); 23376: __str.append(__size_type(1), __lhs); 23376: __str.append(__rhs); 23376: return __str; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: find(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept 23376: { 23376: ; 23376: const size_type __size = this->size(); 23376: 23376: if (__n == 0) 23376: return __pos <= __size ? __pos : npos; 23376: if (__pos >= __size) 23376: return npos; 23376: 23376: const _CharT __elem0 = __s[0]; 23376: const _CharT* const __data = data(); 23376: const _CharT* __first = __data + __pos; 23376: const _CharT* const __last = __data + __size; 23376: size_type __len = __size - __pos; 23376: 23376: while (__len >= __n) 23376: { 23376: 23376: __first = traits_type::find(__first, __len - __n + 1, __elem0); 23376: if (!__first) 23376: return npos; 23376: 23376: 23376: 23376: if (traits_type::compare(__first, __s, __n) == 0) 23376: return __first - __data; 23376: __len = __last - ++__first; 23376: } 23376: return npos; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: find(_CharT __c, size_type __pos) const noexcept 23376: { 23376: size_type __ret = npos; 23376: const size_type __size = this->size(); 23376: if (__pos < __size) 23376: { 23376: const _CharT* __data = _M_data(); 23376: const size_type __n = __size - __pos; 23376: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 23376: if (__p) 23376: __ret = __p - __data; 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: rfind(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept 23376: { 23376: ; 23376: const size_type __size = this->size(); 23376: if (__n <= __size) 23376: { 23376: __pos = std::min(size_type(__size - __n), __pos); 23376: const _CharT* __data = _M_data(); 23376: do 23376: { 23376: if (traits_type::compare(__data + __pos, __s, __n) == 0) 23376: return __pos; 23376: } 23376: while (__pos-- > 0); 23376: } 23376: return npos; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: rfind(_CharT __c, size_type __pos) const noexcept 23376: { 23376: size_type __size = this->size(); 23376: if (__size) 23376: { 23376: if (--__size > __pos) 23376: __size = __pos; 23376: for (++__size; __size-- > 0; ) 23376: if (traits_type::eq(_M_data()[__size], __c)) 23376: return __size; 23376: } 23376: return npos; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept 23376: { 23376: ; 23376: for (; __n && __pos < this->size(); ++__pos) 23376: { 23376: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 23376: if (__p) 23376: return __pos; 23376: } 23376: return npos; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept 23376: { 23376: ; 23376: size_type __size = this->size(); 23376: if (__size && __n) 23376: { 23376: if (--__size > __pos) 23376: __size = __pos; 23376: do 23376: { 23376: if (traits_type::find(__s, __n, _M_data()[__size])) 23376: return __size; 23376: } 23376: while (__size-- != 0); 23376: } 23376: return npos; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept 23376: { 23376: ; 23376: for (; __pos < this->size(); ++__pos) 23376: if (!traits_type::find(__s, __n, _M_data()[__pos])) 23376: return __pos; 23376: return npos; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: find_first_not_of(_CharT __c, size_type __pos) const noexcept 23376: { 23376: for (; __pos < this->size(); ++__pos) 23376: if (!traits_type::eq(_M_data()[__pos], __c)) 23376: return __pos; 23376: return npos; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 23376: noexcept 23376: { 23376: ; 23376: size_type __size = this->size(); 23376: if (__size) 23376: { 23376: if (--__size > __pos) 23376: __size = __pos; 23376: do 23376: { 23376: if (!traits_type::find(__s, __n, _M_data()[__size])) 23376: return __size; 23376: } 23376: while (__size--); 23376: } 23376: return npos; 23376: } 23376: 23376: template 23376: typename basic_string<_CharT, _Traits, _Alloc>::size_type 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: find_last_not_of(_CharT __c, size_type __pos) const noexcept 23376: { 23376: size_type __size = this->size(); 23376: if (__size) 23376: { 23376: if (--__size > __pos) 23376: __size = __pos; 23376: do 23376: { 23376: if (!traits_type::eq(_M_data()[__size], __c)) 23376: return __size; 23376: } 23376: while (__size--); 23376: } 23376: return npos; 23376: } 23376: 23376: template 23376: int 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: compare(size_type __pos, size_type __n, const basic_string& __str) const 23376: { 23376: _M_check(__pos, "basic_string::compare"); 23376: __n = _M_limit(__pos, __n); 23376: const size_type __osize = __str.size(); 23376: const size_type __len = std::min(__n, __osize); 23376: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 23376: if (!__r) 23376: __r = _S_compare(__n, __osize); 23376: return __r; 23376: } 23376: 23376: template 23376: int 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: compare(size_type __pos1, size_type __n1, const basic_string& __str, 23376: size_type __pos2, size_type __n2) const 23376: { 23376: _M_check(__pos1, "basic_string::compare"); 23376: __str._M_check(__pos2, "basic_string::compare"); 23376: __n1 = _M_limit(__pos1, __n1); 23376: __n2 = __str._M_limit(__pos2, __n2); 23376: const size_type __len = std::min(__n1, __n2); 23376: int __r = traits_type::compare(_M_data() + __pos1, 23376: __str.data() + __pos2, __len); 23376: if (!__r) 23376: __r = _S_compare(__n1, __n2); 23376: return __r; 23376: } 23376: 23376: template 23376: int 23376: basic_string<_CharT, _Traits, _Alloc>:: 23376: compare(const _CharT* __s) const noexcept 23376: { 23376: ; 23376: const size_type __size = this->size(); 23376: const size_type __osize = traits_type::length(__s); 23376: const size_type __len = std::min(__size, __osize); 23376: int __r = traits_type::compare(_M_data(), __s, __len); 23376: if (!__r) 23376: __r = _S_compare(__size, __osize); 23376: return __r; 23376: } 23376: 23376: template 23376: int 23376: basic_string <_CharT, _Traits, _Alloc>:: 23376: compare(size_type __pos, size_type __n1, const _CharT* __s) const 23376: { 23376: ; 23376: _M_check(__pos, "basic_string::compare"); 23376: __n1 = _M_limit(__pos, __n1); 23376: const size_type __osize = traits_type::length(__s); 23376: const size_type __len = std::min(__n1, __osize); 23376: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 23376: if (!__r) 23376: __r = _S_compare(__n1, __osize); 23376: return __r; 23376: } 23376: 23376: template 23376: int 23376: basic_string <_CharT, _Traits, _Alloc>:: 23376: compare(size_type __pos, size_type __n1, const _CharT* __s, 23376: size_type __n2) const 23376: { 23376: ; 23376: _M_check(__pos, "basic_string::compare"); 23376: __n1 = _M_limit(__pos, __n1); 23376: const size_type __len = std::min(__n1, __n2); 23376: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 23376: if (!__r) 23376: __r = _S_compare(__n1, __n2); 23376: return __r; 23376: } 23376: 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __in, 23376: basic_string<_CharT, _Traits, _Alloc>& __str) 23376: { 23376: typedef basic_istream<_CharT, _Traits> __istream_type; 23376: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 23376: typedef typename __istream_type::ios_base __ios_base; 23376: typedef typename __istream_type::int_type __int_type; 23376: typedef typename __string_type::size_type __size_type; 23376: typedef ctype<_CharT> __ctype_type; 23376: typedef typename __ctype_type::ctype_base __ctype_base; 23376: 23376: __size_type __extracted = 0; 23376: typename __ios_base::iostate __err = __ios_base::goodbit; 23376: typename __istream_type::sentry __cerb(__in, false); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: 23376: __str.erase(); 23376: _CharT __buf[128]; 23376: __size_type __len = 0; 23376: const streamsize __w = __in.width(); 23376: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 23376: : __str.max_size(); 23376: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 23376: const __int_type __eof = _Traits::eof(); 23376: __int_type __c = __in.rdbuf()->sgetc(); 23376: 23376: while (__extracted < __n 23376: && !_Traits::eq_int_type(__c, __eof) 23376: && !__ct.is(__ctype_base::space, 23376: _Traits::to_char_type(__c))) 23376: { 23376: if (__len == sizeof(__buf) / sizeof(_CharT)) 23376: { 23376: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 23376: __len = 0; 23376: } 23376: __buf[__len++] = _Traits::to_char_type(__c); 23376: ++__extracted; 23376: __c = __in.rdbuf()->snextc(); 23376: } 23376: __str.append(__buf, __len); 23376: 23376: if (_Traits::eq_int_type(__c, __eof)) 23376: __err |= __ios_base::eofbit; 23376: __in.width(0); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __in._M_setstate(__ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { 23376: 23376: 23376: 23376: __in._M_setstate(__ios_base::badbit); 23376: } 23376: } 23376: 23376: if (!__extracted) 23376: __err |= __ios_base::failbit; 23376: if (__err) 23376: __in.setstate(__err); 23376: return __in; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: getline(basic_istream<_CharT, _Traits>& __in, 23376: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 23376: { 23376: typedef basic_istream<_CharT, _Traits> __istream_type; 23376: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 23376: typedef typename __istream_type::ios_base __ios_base; 23376: typedef typename __istream_type::int_type __int_type; 23376: typedef typename __string_type::size_type __size_type; 23376: 23376: __size_type __extracted = 0; 23376: const __size_type __n = __str.max_size(); 23376: typename __ios_base::iostate __err = __ios_base::goodbit; 23376: typename __istream_type::sentry __cerb(__in, true); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: __str.erase(); 23376: const __int_type __idelim = _Traits::to_int_type(__delim); 23376: const __int_type __eof = _Traits::eof(); 23376: __int_type __c = __in.rdbuf()->sgetc(); 23376: 23376: while (__extracted < __n 23376: && !_Traits::eq_int_type(__c, __eof) 23376: && !_Traits::eq_int_type(__c, __idelim)) 23376: { 23376: __str += _Traits::to_char_type(__c); 23376: ++__extracted; 23376: __c = __in.rdbuf()->snextc(); 23376: } 23376: 23376: if (_Traits::eq_int_type(__c, __eof)) 23376: __err |= __ios_base::eofbit; 23376: else if (_Traits::eq_int_type(__c, __idelim)) 23376: { 23376: ++__extracted; 23376: __in.rdbuf()->sbumpc(); 23376: } 23376: else 23376: __err |= __ios_base::failbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __in._M_setstate(__ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { 23376: 23376: 23376: 23376: __in._M_setstate(__ios_base::badbit); 23376: } 23376: } 23376: if (!__extracted) 23376: __err |= __ios_base::failbit; 23376: if (__err) 23376: __in.setstate(__err); 23376: return __in; 23376: } 23376: # 1607 "/usr/include/c++/8/bits/basic_string.tcc" 3 23376: extern template class basic_string; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern template 23376: basic_istream& 23376: operator>>(basic_istream&, string&); 23376: extern template 23376: basic_ostream& 23376: operator<<(basic_ostream&, const string&); 23376: extern template 23376: basic_istream& 23376: getline(basic_istream&, string&, char); 23376: extern template 23376: basic_istream& 23376: getline(basic_istream&, string&); 23376: 23376: 23376: 23376: extern template class basic_string; 23376: 23376: 23376: 23376: 23376: 23376: extern template 23376: basic_istream& 23376: operator>>(basic_istream&, wstring&); 23376: extern template 23376: basic_ostream& 23376: operator<<(basic_ostream&, const wstring&); 23376: extern template 23376: basic_istream& 23376: getline(basic_istream&, wstring&, wchar_t); 23376: extern template 23376: basic_istream& 23376: getline(basic_istream&, wstring&); 23376: 23376: 23376: 23376: 23376: } 23376: # 54 "/usr/include/c++/8/string" 2 3 23376: # 41 "/usr/include/gmpxx.h" 2 3 4 23376: # 1 "/usr/include/c++/8/stdexcept" 1 3 4 23376: # 36 "/usr/include/c++/8/stdexcept" 3 4 23376: 23376: # 37 "/usr/include/c++/8/stdexcept" 3 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: struct __cow_string 23376: { 23376: union { 23376: const char* _M_p; 23376: char _M_bytes[sizeof(const char*)]; 23376: }; 23376: 23376: __cow_string(); 23376: __cow_string(const std::string&); 23376: __cow_string(const char*, size_t); 23376: __cow_string(const __cow_string&) noexcept; 23376: __cow_string& operator=(const __cow_string&) noexcept; 23376: ~__cow_string(); 23376: 23376: __cow_string(__cow_string&&) noexcept; 23376: __cow_string& operator=(__cow_string&&) noexcept; 23376: 23376: }; 23376: 23376: typedef basic_string __sso_string; 23376: # 113 "/usr/include/c++/8/stdexcept" 3 23376: class logic_error : public exception 23376: { 23376: __cow_string _M_msg; 23376: 23376: public: 23376: 23376: explicit 23376: logic_error(const string& __arg) ; 23376: 23376: 23376: explicit 23376: logic_error(const char*) ; 23376: 23376: 23376: 23376: logic_error(const logic_error&) noexcept; 23376: logic_error& operator=(const logic_error&) noexcept; 23376: 23376: 23376: virtual ~logic_error() noexcept; 23376: 23376: 23376: 23376: virtual const char* 23376: what() const noexcept; 23376: 23376: 23376: 23376: 23376: 23376: }; 23376: 23376: 23376: 23376: class domain_error : public logic_error 23376: { 23376: public: 23376: explicit domain_error(const string& __arg) ; 23376: 23376: explicit domain_error(const char*) ; 23376: 23376: virtual ~domain_error() noexcept; 23376: }; 23376: 23376: 23376: class invalid_argument : public logic_error 23376: { 23376: public: 23376: explicit invalid_argument(const string& __arg) ; 23376: 23376: explicit invalid_argument(const char*) ; 23376: 23376: virtual ~invalid_argument() noexcept; 23376: }; 23376: 23376: 23376: 23376: class length_error : public logic_error 23376: { 23376: public: 23376: explicit length_error(const string& __arg) ; 23376: 23376: explicit length_error(const char*) ; 23376: 23376: virtual ~length_error() noexcept; 23376: }; 23376: 23376: 23376: 23376: class out_of_range : public logic_error 23376: { 23376: public: 23376: explicit out_of_range(const string& __arg) ; 23376: 23376: explicit out_of_range(const char*) ; 23376: 23376: virtual ~out_of_range() noexcept; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: class runtime_error : public exception 23376: { 23376: __cow_string _M_msg; 23376: 23376: public: 23376: 23376: explicit 23376: runtime_error(const string& __arg) ; 23376: 23376: 23376: explicit 23376: runtime_error(const char*) ; 23376: 23376: 23376: 23376: runtime_error(const runtime_error&) noexcept; 23376: runtime_error& operator=(const runtime_error&) noexcept; 23376: 23376: 23376: virtual ~runtime_error() noexcept; 23376: 23376: 23376: 23376: virtual const char* 23376: what() const noexcept; 23376: 23376: 23376: 23376: 23376: 23376: }; 23376: 23376: 23376: class range_error : public runtime_error 23376: { 23376: public: 23376: explicit range_error(const string& __arg) ; 23376: 23376: explicit range_error(const char*) ; 23376: 23376: virtual ~range_error() noexcept; 23376: }; 23376: 23376: 23376: class overflow_error : public runtime_error 23376: { 23376: public: 23376: explicit overflow_error(const string& __arg) ; 23376: 23376: explicit overflow_error(const char*) ; 23376: 23376: virtual ~overflow_error() noexcept; 23376: }; 23376: 23376: 23376: class underflow_error : public runtime_error 23376: { 23376: public: 23376: explicit underflow_error(const string& __arg) ; 23376: 23376: explicit underflow_error(const char*) ; 23376: 23376: virtual ~underflow_error() noexcept; 23376: }; 23376: 23376: 23376: 23376: 23376: } 23376: # 42 "/usr/include/gmpxx.h" 2 3 4 23376: # 1 "/usr/include/c++/8/cfloat" 1 3 4 23376: # 39 "/usr/include/c++/8/cfloat" 3 4 23376: 23376: # 40 "/usr/include/c++/8/cfloat" 3 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/float.h" 1 3 4 23376: # 43 "/usr/include/c++/8/cfloat" 2 3 23376: # 43 "/usr/include/gmpxx.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/gmp.h" 1 3 4 23376: # 35 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: # 1 "/usr/include/c++/8/cstdio" 1 3 4 23376: # 39 "/usr/include/c++/8/cstdio" 3 4 23376: 23376: # 40 "/usr/include/c++/8/cstdio" 3 23376: # 36 "/usr/include/arm-linux-gnueabihf/gmp.h" 2 3 4 23376: # 55 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 56 "/usr/include/arm-linux-gnueabihf/gmp.h" 2 3 4 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 23376: # 34 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 3 4 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/syslimits.h" 1 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 23376: # 194 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 3 4 23376: # 1 "/usr/include/limits.h" 1 3 4 23376: # 26 "/usr/include/limits.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 23376: # 27 "/usr/include/limits.h" 2 3 4 23376: # 183 "/usr/include/limits.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 1 3 4 23376: # 27 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 23376: # 28 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 2 3 4 23376: # 161 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 1 3 4 23376: # 38 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 3 4 23376: # 1 "/usr/include/linux/limits.h" 1 3 4 23376: # 39 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 2 3 4 23376: # 162 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 2 3 4 23376: # 184 "/usr/include/limits.h" 2 3 4 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/posix2_lim.h" 1 3 4 23376: # 188 "/usr/include/limits.h" 2 3 4 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 1 3 4 23376: # 64 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/uio_lim.h" 1 3 4 23376: # 65 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 2 3 4 23376: # 192 "/usr/include/limits.h" 2 3 4 23376: # 195 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 2 3 4 23376: # 8 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/syslimits.h" 2 3 4 23376: # 35 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 2 3 4 23376: # 57 "/usr/include/arm-linux-gnueabihf/gmp.h" 2 3 4 23376: # 141 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: typedef unsigned long int mp_limb_t; 23376: typedef long int mp_limb_signed_t; 23376: 23376: 23376: typedef unsigned long int mp_bitcnt_t; 23376: 23376: 23376: 23376: 23376: typedef struct 23376: { 23376: int _mp_alloc; 23376: 23376: int _mp_size; 23376: 23376: 23376: mp_limb_t *_mp_d; 23376: } __mpz_struct; 23376: 23376: 23376: 23376: 23376: typedef __mpz_struct MP_INT; 23376: typedef __mpz_struct mpz_t[1]; 23376: 23376: typedef mp_limb_t * mp_ptr; 23376: typedef const mp_limb_t * mp_srcptr; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef long int mp_size_t; 23376: typedef long int mp_exp_t; 23376: 23376: 23376: typedef struct 23376: { 23376: __mpz_struct _mp_num; 23376: __mpz_struct _mp_den; 23376: } __mpq_struct; 23376: 23376: typedef __mpq_struct MP_RAT; 23376: typedef __mpq_struct mpq_t[1]; 23376: 23376: typedef struct 23376: { 23376: int _mp_prec; 23376: 23376: 23376: 23376: int _mp_size; 23376: 23376: 23376: mp_exp_t _mp_exp; 23376: mp_limb_t *_mp_d; 23376: } __mpf_struct; 23376: 23376: 23376: typedef __mpf_struct mpf_t[1]; 23376: 23376: 23376: typedef enum 23376: { 23376: GMP_RAND_ALG_DEFAULT = 0, 23376: GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT 23376: } gmp_randalg_t; 23376: 23376: 23376: typedef struct 23376: { 23376: mpz_t _mp_seed; 23376: gmp_randalg_t _mp_alg; 23376: union { 23376: void *_mp_lc; 23376: } _mp_algdata; 23376: } __gmp_randstate_struct; 23376: typedef __gmp_randstate_struct gmp_randstate_t[1]; 23376: 23376: 23376: 23376: typedef const __mpz_struct *mpz_srcptr; 23376: typedef __mpz_struct *mpz_ptr; 23376: typedef const __mpf_struct *mpf_srcptr; 23376: typedef __mpf_struct *mpf_ptr; 23376: typedef const __mpq_struct *mpq_srcptr; 23376: typedef __mpq_struct *mpq_ptr; 23376: # 468 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: extern "C" { 23376: using std::FILE; 23376: 23376: 23376: 23376: void __gmp_set_memory_functions (void *(*) (size_t), 23376: void *(*) (void *, size_t, size_t), 23376: void (*) (void *, size_t)) throw (); 23376: 23376: 23376: void __gmp_get_memory_functions (void *(**) (size_t), 23376: void *(**) (void *, size_t, size_t), 23376: void (**) (void *, size_t)) throw (); 23376: 23376: 23376: extern const int __gmp_bits_per_limb; 23376: 23376: 23376: extern int __gmp_errno; 23376: 23376: 23376: extern const char * const __gmp_version; 23376: 23376: 23376: 23376: 23376: 23376: 23376: void __gmp_randinit (gmp_randstate_t, gmp_randalg_t, ...); 23376: 23376: 23376: void __gmp_randinit_default (gmp_randstate_t); 23376: 23376: 23376: void __gmp_randinit_lc_2exp (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t); 23376: 23376: 23376: int __gmp_randinit_lc_2exp_size (gmp_randstate_t, mp_bitcnt_t); 23376: 23376: 23376: void __gmp_randinit_mt (gmp_randstate_t); 23376: 23376: 23376: void __gmp_randinit_set (gmp_randstate_t, const __gmp_randstate_struct *); 23376: 23376: 23376: void __gmp_randseed (gmp_randstate_t, mpz_srcptr); 23376: 23376: 23376: void __gmp_randseed_ui (gmp_randstate_t, unsigned long int); 23376: 23376: 23376: void __gmp_randclear (gmp_randstate_t); 23376: 23376: 23376: unsigned long __gmp_urandomb_ui (gmp_randstate_t, unsigned long); 23376: 23376: 23376: unsigned long __gmp_urandomm_ui (gmp_randstate_t, unsigned long); 23376: 23376: 23376: 23376: 23376: 23376: int __gmp_asprintf (char **, const char *, ...); 23376: 23376: 23376: 23376: int __gmp_fprintf (FILE *, const char *, ...); 23376: # 550 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: int __gmp_printf (const char *, ...); 23376: 23376: 23376: int __gmp_snprintf (char *, size_t, const char *, ...); 23376: 23376: 23376: int __gmp_sprintf (char *, const char *, ...); 23376: # 588 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: int __gmp_fscanf (FILE *, const char *, ...); 23376: 23376: 23376: 23376: int __gmp_scanf (const char *, ...); 23376: 23376: 23376: int __gmp_sscanf (const char *, const char *, ...); 23376: # 617 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: void *__gmpz_realloc (mpz_ptr, mp_size_t); 23376: 23376: 23376: 23376: void __gmpz_abs (mpz_ptr, mpz_srcptr); 23376: 23376: 23376: 23376: void __gmpz_add (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_add_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_addmul (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_addmul_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_and (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_array_init (mpz_ptr, mp_size_t, mp_size_t); 23376: 23376: 23376: void __gmpz_bin_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_bin_uiui (mpz_ptr, unsigned long int, unsigned long int); 23376: 23376: 23376: void __gmpz_cdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_cdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); 23376: 23376: 23376: unsigned long int __gmpz_cdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_cdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: unsigned long int __gmpz_cdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_cdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_cdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); 23376: 23376: 23376: unsigned long int __gmpz_cdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: unsigned long int __gmpz_cdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_clear (mpz_ptr); 23376: 23376: 23376: void __gmpz_clears (mpz_ptr, ...); 23376: 23376: 23376: void __gmpz_clrbit (mpz_ptr, mp_bitcnt_t); 23376: 23376: 23376: int __gmpz_cmp (mpz_srcptr, mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_cmp_d (mpz_srcptr, double) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_cmp_si (mpz_srcptr, signed long int) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_cmp_ui (mpz_srcptr, unsigned long int) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_cmpabs (mpz_srcptr, mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_cmpabs_d (mpz_srcptr, double) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_cmpabs_ui (mpz_srcptr, unsigned long int) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_com (mpz_ptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_combit (mpz_ptr, mp_bitcnt_t); 23376: 23376: 23376: int __gmpz_congruent_p (mpz_srcptr, mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_congruent_2exp_p (mpz_srcptr, mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_congruent_ui_p (mpz_srcptr, unsigned long, unsigned long) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_divexact (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_divexact_ui (mpz_ptr, mpz_srcptr, unsigned long); 23376: 23376: 23376: int __gmpz_divisible_p (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_divisible_ui_p (mpz_srcptr, unsigned long) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_divisible_2exp_p (mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_dump (mpz_srcptr); 23376: 23376: 23376: void *__gmpz_export (void *, size_t *, int, size_t, int, size_t, mpz_srcptr); 23376: 23376: 23376: void __gmpz_fac_ui (mpz_ptr, unsigned long int); 23376: 23376: 23376: void __gmpz_2fac_ui (mpz_ptr, unsigned long int); 23376: 23376: 23376: void __gmpz_mfac_uiui (mpz_ptr, unsigned long int, unsigned long int); 23376: 23376: 23376: void __gmpz_primorial_ui (mpz_ptr, unsigned long int); 23376: 23376: 23376: void __gmpz_fdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_fdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); 23376: 23376: 23376: unsigned long int __gmpz_fdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_fdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: unsigned long int __gmpz_fdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_fdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_fdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); 23376: 23376: 23376: unsigned long int __gmpz_fdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: unsigned long int __gmpz_fdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_fib_ui (mpz_ptr, unsigned long int); 23376: 23376: 23376: void __gmpz_fib2_ui (mpz_ptr, mpz_ptr, unsigned long int); 23376: 23376: 23376: int __gmpz_fits_sint_p (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_fits_slong_p (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_fits_sshort_p (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: int __gmpz_fits_uint_p (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: int __gmpz_fits_ulong_p (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: int __gmpz_fits_ushort_p (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: void __gmpz_gcd (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: unsigned long int __gmpz_gcd_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_gcdext (mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: double __gmpz_get_d (mpz_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: double __gmpz_get_d_2exp (signed long int *, mpz_srcptr); 23376: 23376: 23376: long int __gmpz_get_si (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: char *__gmpz_get_str (char *, int, mpz_srcptr); 23376: 23376: 23376: 23376: unsigned long int __gmpz_get_ui (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: mp_limb_t __gmpz_getlimbn (mpz_srcptr, mp_size_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: mp_bitcnt_t __gmpz_hamdist (mpz_srcptr, mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_import (mpz_ptr, size_t, int, size_t, int, size_t, const void *); 23376: 23376: 23376: void __gmpz_init (mpz_ptr); 23376: 23376: 23376: void __gmpz_init2 (mpz_ptr, mp_bitcnt_t); 23376: 23376: 23376: void __gmpz_inits (mpz_ptr, ...); 23376: 23376: 23376: void __gmpz_init_set (mpz_ptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_init_set_d (mpz_ptr, double); 23376: 23376: 23376: void __gmpz_init_set_si (mpz_ptr, signed long int); 23376: 23376: 23376: int __gmpz_init_set_str (mpz_ptr, const char *, int); 23376: 23376: 23376: void __gmpz_init_set_ui (mpz_ptr, unsigned long int); 23376: 23376: 23376: 23376: size_t __gmpz_inp_raw (mpz_ptr, FILE *); 23376: 23376: 23376: 23376: 23376: size_t __gmpz_inp_str (mpz_ptr, FILE *, int); 23376: 23376: 23376: 23376: int __gmpz_invert (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_ior (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: int __gmpz_jacobi (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: int __gmpz_kronecker_si (mpz_srcptr, long) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_kronecker_ui (mpz_srcptr, unsigned long) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_si_kronecker (long, mpz_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpz_ui_kronecker (unsigned long, mpz_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_lcm (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_lcm_ui (mpz_ptr, mpz_srcptr, unsigned long); 23376: 23376: 23376: 23376: 23376: void __gmpz_lucnum_ui (mpz_ptr, unsigned long int); 23376: 23376: 23376: void __gmpz_lucnum2_ui (mpz_ptr, mpz_ptr, unsigned long int); 23376: 23376: 23376: int __gmpz_millerrabin (mpz_srcptr, int) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_mod (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: 23376: 23376: void __gmpz_mul (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_mul_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); 23376: 23376: 23376: void __gmpz_mul_si (mpz_ptr, mpz_srcptr, long int); 23376: 23376: 23376: void __gmpz_mul_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: 23376: void __gmpz_neg (mpz_ptr, mpz_srcptr); 23376: 23376: 23376: 23376: void __gmpz_nextprime (mpz_ptr, mpz_srcptr); 23376: 23376: 23376: 23376: size_t __gmpz_out_raw (FILE *, mpz_srcptr); 23376: 23376: 23376: 23376: 23376: size_t __gmpz_out_str (FILE *, int, mpz_srcptr); 23376: 23376: 23376: 23376: int __gmpz_perfect_power_p (mpz_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: int __gmpz_perfect_square_p (mpz_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: mp_bitcnt_t __gmpz_popcount (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: void __gmpz_pow_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_powm (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_powm_sec (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_powm_ui (mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr); 23376: 23376: 23376: int __gmpz_probab_prime_p (mpz_srcptr, int) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_random (mpz_ptr, mp_size_t); 23376: 23376: 23376: void __gmpz_random2 (mpz_ptr, mp_size_t); 23376: 23376: 23376: void __gmpz_realloc2 (mpz_ptr, mp_bitcnt_t); 23376: 23376: 23376: mp_bitcnt_t __gmpz_remove (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: int __gmpz_root (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_rootrem (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_rrandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t); 23376: 23376: 23376: mp_bitcnt_t __gmpz_scan0 (mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: mp_bitcnt_t __gmpz_scan1 (mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_set (mpz_ptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_set_d (mpz_ptr, double); 23376: 23376: 23376: void __gmpz_set_f (mpz_ptr, mpf_srcptr); 23376: 23376: 23376: 23376: void __gmpz_set_q (mpz_ptr, mpq_srcptr); 23376: 23376: 23376: 23376: void __gmpz_set_si (mpz_ptr, signed long int); 23376: 23376: 23376: int __gmpz_set_str (mpz_ptr, const char *, int); 23376: 23376: 23376: void __gmpz_set_ui (mpz_ptr, unsigned long int); 23376: 23376: 23376: void __gmpz_setbit (mpz_ptr, mp_bitcnt_t); 23376: 23376: 23376: 23376: size_t __gmpz_size (mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: size_t __gmpz_sizeinbase (mpz_srcptr, int) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_sqrt (mpz_ptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_sqrtrem (mpz_ptr, mpz_ptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_sub (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_sub_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_ui_sub (mpz_ptr, unsigned long int, mpz_srcptr); 23376: 23376: 23376: void __gmpz_submul (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_submul_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_swap (mpz_ptr, mpz_ptr) throw (); 23376: 23376: 23376: unsigned long int __gmpz_tdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_tdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_tdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); 23376: 23376: 23376: unsigned long int __gmpz_tdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_tdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: unsigned long int __gmpz_tdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpz_tdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: void __gmpz_tdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); 23376: 23376: 23376: unsigned long int __gmpz_tdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); 23376: 23376: 23376: int __gmpz_tstbit (mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpz_ui_pow_ui (mpz_ptr, unsigned long int, unsigned long int); 23376: 23376: 23376: void __gmpz_urandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t); 23376: 23376: 23376: void __gmpz_urandomm (mpz_ptr, gmp_randstate_t, mpz_srcptr); 23376: 23376: 23376: 23376: void __gmpz_xor (mpz_ptr, mpz_srcptr, mpz_srcptr); 23376: 23376: 23376: mp_srcptr __gmpz_limbs_read (mpz_srcptr); 23376: 23376: 23376: mp_ptr __gmpz_limbs_write (mpz_ptr, mp_size_t); 23376: 23376: 23376: mp_ptr __gmpz_limbs_modify (mpz_ptr, mp_size_t); 23376: 23376: 23376: void __gmpz_limbs_finish (mpz_ptr, mp_size_t); 23376: 23376: 23376: mpz_srcptr __gmpz_roinit_n (mpz_ptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void __gmpq_abs (mpq_ptr, mpq_srcptr); 23376: 23376: 23376: 23376: void __gmpq_add (mpq_ptr, mpq_srcptr, mpq_srcptr); 23376: 23376: 23376: void __gmpq_canonicalize (mpq_ptr); 23376: 23376: 23376: void __gmpq_clear (mpq_ptr); 23376: 23376: 23376: void __gmpq_clears (mpq_ptr, ...); 23376: 23376: 23376: int __gmpq_cmp (mpq_srcptr, mpq_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpq_cmp_si (mpq_srcptr, long, unsigned long) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpq_cmp_ui (mpq_srcptr, unsigned long int, unsigned long int) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpq_cmp_z (mpq_srcptr, mpz_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpq_div (mpq_ptr, mpq_srcptr, mpq_srcptr); 23376: 23376: 23376: void __gmpq_div_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); 23376: 23376: 23376: int __gmpq_equal (mpq_srcptr, mpq_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpq_get_num (mpz_ptr, mpq_srcptr); 23376: 23376: 23376: void __gmpq_get_den (mpz_ptr, mpq_srcptr); 23376: 23376: 23376: double __gmpq_get_d (mpq_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: char *__gmpq_get_str (char *, int, mpq_srcptr); 23376: 23376: 23376: void __gmpq_init (mpq_ptr); 23376: 23376: 23376: void __gmpq_inits (mpq_ptr, ...); 23376: 23376: 23376: 23376: size_t __gmpq_inp_str (mpq_ptr, FILE *, int); 23376: 23376: 23376: 23376: void __gmpq_inv (mpq_ptr, mpq_srcptr); 23376: 23376: 23376: void __gmpq_mul (mpq_ptr, mpq_srcptr, mpq_srcptr); 23376: 23376: 23376: void __gmpq_mul_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); 23376: 23376: 23376: 23376: void __gmpq_neg (mpq_ptr, mpq_srcptr); 23376: 23376: 23376: 23376: 23376: size_t __gmpq_out_str (FILE *, int, mpq_srcptr); 23376: 23376: 23376: 23376: void __gmpq_set (mpq_ptr, mpq_srcptr); 23376: 23376: 23376: void __gmpq_set_d (mpq_ptr, double); 23376: 23376: 23376: void __gmpq_set_den (mpq_ptr, mpz_srcptr); 23376: 23376: 23376: void __gmpq_set_f (mpq_ptr, mpf_srcptr); 23376: 23376: 23376: void __gmpq_set_num (mpq_ptr, mpz_srcptr); 23376: 23376: 23376: void __gmpq_set_si (mpq_ptr, signed long int, unsigned long int); 23376: 23376: 23376: int __gmpq_set_str (mpq_ptr, const char *, int); 23376: 23376: 23376: void __gmpq_set_ui (mpq_ptr, unsigned long int, unsigned long int); 23376: 23376: 23376: void __gmpq_set_z (mpq_ptr, mpz_srcptr); 23376: 23376: 23376: void __gmpq_sub (mpq_ptr, mpq_srcptr, mpq_srcptr); 23376: 23376: 23376: void __gmpq_swap (mpq_ptr, mpq_ptr) throw (); 23376: 23376: 23376: 23376: 23376: 23376: void __gmpf_abs (mpf_ptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_add (mpf_ptr, mpf_srcptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_add_ui (mpf_ptr, mpf_srcptr, unsigned long int); 23376: 23376: void __gmpf_ceil (mpf_ptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_clear (mpf_ptr); 23376: 23376: 23376: void __gmpf_clears (mpf_ptr, ...); 23376: 23376: 23376: int __gmpf_cmp (mpf_srcptr, mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_cmp_z (mpf_srcptr, mpz_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_cmp_d (mpf_srcptr, double) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_cmp_si (mpf_srcptr, signed long int) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_cmp_ui (mpf_srcptr, unsigned long int) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpf_div (mpf_ptr, mpf_srcptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_div_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t); 23376: 23376: 23376: void __gmpf_div_ui (mpf_ptr, mpf_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpf_dump (mpf_srcptr); 23376: 23376: 23376: int __gmpf_eq (mpf_srcptr, mpf_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_fits_sint_p (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_fits_slong_p (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_fits_sshort_p (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_fits_uint_p (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_fits_ulong_p (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpf_fits_ushort_p (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpf_floor (mpf_ptr, mpf_srcptr); 23376: 23376: 23376: double __gmpf_get_d (mpf_srcptr) __attribute__ ((__pure__)); 23376: 23376: 23376: double __gmpf_get_d_2exp (signed long int *, mpf_srcptr); 23376: 23376: 23376: mp_bitcnt_t __gmpf_get_default_prec (void) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: mp_bitcnt_t __gmpf_get_prec (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: long __gmpf_get_si (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: char *__gmpf_get_str (char *, mp_exp_t *, int, size_t, mpf_srcptr); 23376: 23376: 23376: unsigned long __gmpf_get_ui (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpf_init (mpf_ptr); 23376: 23376: 23376: void __gmpf_init2 (mpf_ptr, mp_bitcnt_t); 23376: 23376: 23376: void __gmpf_inits (mpf_ptr, ...); 23376: 23376: 23376: void __gmpf_init_set (mpf_ptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_init_set_d (mpf_ptr, double); 23376: 23376: 23376: void __gmpf_init_set_si (mpf_ptr, signed long int); 23376: 23376: 23376: int __gmpf_init_set_str (mpf_ptr, const char *, int); 23376: 23376: 23376: void __gmpf_init_set_ui (mpf_ptr, unsigned long int); 23376: 23376: 23376: 23376: size_t __gmpf_inp_str (mpf_ptr, FILE *, int); 23376: 23376: 23376: 23376: int __gmpf_integer_p (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpf_mul (mpf_ptr, mpf_srcptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_mul_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t); 23376: 23376: 23376: void __gmpf_mul_ui (mpf_ptr, mpf_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpf_neg (mpf_ptr, mpf_srcptr); 23376: 23376: 23376: 23376: size_t __gmpf_out_str (FILE *, int, size_t, mpf_srcptr); 23376: 23376: 23376: 23376: void __gmpf_pow_ui (mpf_ptr, mpf_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpf_random2 (mpf_ptr, mp_size_t, mp_exp_t); 23376: 23376: 23376: void __gmpf_reldiff (mpf_ptr, mpf_srcptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_set (mpf_ptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_set_d (mpf_ptr, double); 23376: 23376: 23376: void __gmpf_set_default_prec (mp_bitcnt_t) throw (); 23376: 23376: 23376: void __gmpf_set_prec (mpf_ptr, mp_bitcnt_t); 23376: 23376: 23376: void __gmpf_set_prec_raw (mpf_ptr, mp_bitcnt_t) throw (); 23376: 23376: 23376: void __gmpf_set_q (mpf_ptr, mpq_srcptr); 23376: 23376: 23376: void __gmpf_set_si (mpf_ptr, signed long int); 23376: 23376: 23376: int __gmpf_set_str (mpf_ptr, const char *, int); 23376: 23376: 23376: void __gmpf_set_ui (mpf_ptr, unsigned long int); 23376: 23376: 23376: void __gmpf_set_z (mpf_ptr, mpz_srcptr); 23376: 23376: 23376: size_t __gmpf_size (mpf_srcptr) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpf_sqrt (mpf_ptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_sqrt_ui (mpf_ptr, unsigned long int); 23376: 23376: 23376: void __gmpf_sub (mpf_ptr, mpf_srcptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_sub_ui (mpf_ptr, mpf_srcptr, unsigned long int); 23376: 23376: 23376: void __gmpf_swap (mpf_ptr, mpf_ptr) throw (); 23376: 23376: 23376: void __gmpf_trunc (mpf_ptr, mpf_srcptr); 23376: 23376: 23376: void __gmpf_ui_div (mpf_ptr, unsigned long int, mpf_srcptr); 23376: 23376: 23376: void __gmpf_ui_sub (mpf_ptr, unsigned long int, mpf_srcptr); 23376: 23376: 23376: void __gmpf_urandomb (mpf_t, gmp_randstate_t, mp_bitcnt_t); 23376: # 1461 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: mp_limb_t __gmpn_add (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); 23376: 23376: 23376: 23376: 23376: mp_limb_t __gmpn_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) throw (); 23376: 23376: 23376: 23376: mp_limb_t __gmpn_add_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: mp_limb_t __gmpn_addmul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); 23376: 23376: 23376: 23376: int __gmpn_cmp (mp_srcptr, mp_srcptr, mp_size_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: 23376: int __gmpn_zero_p (mp_srcptr, mp_size_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: 23376: void __gmpn_divexact_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); 23376: 23376: 23376: 23376: 23376: 23376: mp_limb_t __gmpn_divexact_by3c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); 23376: 23376: 23376: 23376: 23376: 23376: mp_limb_t __gmpn_divrem (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t); 23376: 23376: 23376: mp_limb_t __gmpn_divrem_1 (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t); 23376: 23376: 23376: mp_limb_t __gmpn_divrem_2 (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr); 23376: 23376: 23376: mp_limb_t __gmpn_div_qr_1 (mp_ptr, mp_limb_t *, mp_srcptr, mp_size_t, mp_limb_t); 23376: 23376: 23376: mp_limb_t __gmpn_div_qr_2 (mp_ptr, mp_ptr, mp_srcptr, mp_size_t, mp_srcptr); 23376: 23376: 23376: mp_size_t __gmpn_gcd (mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t); 23376: 23376: 23376: mp_limb_t __gmpn_gcd_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__)); 23376: 23376: 23376: mp_limb_t __gmpn_gcdext_1 (mp_limb_signed_t *, mp_limb_signed_t *, mp_limb_t, mp_limb_t); 23376: 23376: 23376: mp_size_t __gmpn_gcdext (mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t); 23376: 23376: 23376: size_t __gmpn_get_str (unsigned char *, int, mp_ptr, mp_size_t); 23376: 23376: 23376: mp_bitcnt_t __gmpn_hamdist (mp_srcptr, mp_srcptr, mp_size_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: mp_limb_t __gmpn_lshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); 23376: 23376: 23376: mp_limb_t __gmpn_mod_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__)); 23376: 23376: 23376: mp_limb_t __gmpn_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); 23376: 23376: 23376: mp_limb_t __gmpn_mul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); 23376: 23376: 23376: void __gmpn_mul_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: void __gmpn_sqr (mp_ptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: 23376: mp_limb_t __gmpn_neg (mp_ptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: 23376: void __gmpn_com (mp_ptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: int __gmpn_perfect_square_p (mp_srcptr, mp_size_t) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpn_perfect_power_p (mp_srcptr, mp_size_t) __attribute__ ((__pure__)); 23376: 23376: 23376: mp_bitcnt_t __gmpn_popcount (mp_srcptr, mp_size_t) throw () __attribute__ ((__pure__)); 23376: 23376: 23376: mp_size_t __gmpn_pow_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr); 23376: 23376: 23376: 23376: mp_limb_t __gmpn_preinv_mod_1 (mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpn_random (mp_ptr, mp_size_t); 23376: 23376: 23376: void __gmpn_random2 (mp_ptr, mp_size_t); 23376: 23376: 23376: mp_limb_t __gmpn_rshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); 23376: 23376: 23376: mp_bitcnt_t __gmpn_scan0 (mp_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); 23376: 23376: 23376: mp_bitcnt_t __gmpn_scan1 (mp_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); 23376: 23376: 23376: mp_size_t __gmpn_set_str (mp_ptr, const unsigned char *, size_t, int); 23376: 23376: 23376: size_t __gmpn_sizeinbase (mp_srcptr, mp_size_t, int); 23376: 23376: 23376: mp_size_t __gmpn_sqrtrem (mp_ptr, mp_ptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: 23376: mp_limb_t __gmpn_sub (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); 23376: 23376: 23376: 23376: 23376: mp_limb_t __gmpn_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) throw (); 23376: 23376: 23376: 23376: mp_limb_t __gmpn_sub_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: mp_limb_t __gmpn_submul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); 23376: 23376: 23376: void __gmpn_tdiv_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); 23376: 23376: 23376: void __gmpn_and_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: void __gmpn_andn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: void __gmpn_nand_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: void __gmpn_ior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: void __gmpn_iorn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: void __gmpn_nior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: void __gmpn_xor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: void __gmpn_xnor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: void __gmpn_copyi (mp_ptr, mp_srcptr, mp_size_t); 23376: 23376: void __gmpn_copyd (mp_ptr, mp_srcptr, mp_size_t); 23376: 23376: void __gmpn_zero (mp_ptr, mp_size_t); 23376: 23376: 23376: mp_limb_t __gmpn_cnd_add_n (mp_limb_t, mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: mp_limb_t __gmpn_cnd_sub_n (mp_limb_t, mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); 23376: 23376: 23376: mp_limb_t __gmpn_sec_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr); 23376: 23376: mp_size_t __gmpn_sec_add_1_itch (mp_size_t) __attribute__ ((__pure__)); 23376: 23376: 23376: mp_limb_t __gmpn_sec_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr); 23376: 23376: mp_size_t __gmpn_sec_sub_1_itch (mp_size_t) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpn_cnd_swap (mp_limb_t, volatile mp_limb_t *, volatile mp_limb_t *, mp_size_t); 23376: 23376: 23376: void __gmpn_sec_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr); 23376: 23376: mp_size_t __gmpn_sec_mul_itch (mp_size_t, mp_size_t) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpn_sec_sqr (mp_ptr, mp_srcptr, mp_size_t, mp_ptr); 23376: 23376: mp_size_t __gmpn_sec_sqr_itch (mp_size_t) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpn_sec_powm (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_bitcnt_t, mp_srcptr, mp_size_t, mp_ptr); 23376: 23376: mp_size_t __gmpn_sec_powm_itch (mp_size_t, mp_bitcnt_t, mp_size_t) __attribute__ ((__pure__)); 23376: 23376: 23376: void __gmpn_sec_tabselect (volatile mp_limb_t *, volatile const mp_limb_t *, mp_size_t, mp_size_t, mp_size_t); 23376: 23376: 23376: mp_limb_t __gmpn_sec_div_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr); 23376: 23376: mp_size_t __gmpn_sec_div_qr_itch (mp_size_t, mp_size_t) __attribute__ ((__pure__)); 23376: 23376: void __gmpn_sec_div_r (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr); 23376: 23376: mp_size_t __gmpn_sec_div_r_itch (mp_size_t, mp_size_t) __attribute__ ((__pure__)); 23376: 23376: 23376: int __gmpn_sec_invert (mp_ptr, mp_ptr, mp_srcptr, mp_size_t, mp_bitcnt_t, mp_ptr); 23376: 23376: mp_size_t __gmpn_sec_invert_itch (mp_size_t) __attribute__ ((__pure__)); 23376: # 1707 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: extern __inline__ __attribute__ ((__gnu_inline__)) void 23376: __gmpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) 23376: { 23376: if (__gmp_w != __gmp_u) 23376: __gmpz_set (__gmp_w, __gmp_u); 23376: __gmp_w->_mp_size = ((__gmp_w->_mp_size) >= 0 ? (__gmp_w->_mp_size) : -(__gmp_w->_mp_size)); 23376: } 23376: # 1731 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: int 23376: __gmpz_fits_uint_p (mpz_srcptr __gmp_z) throw () 23376: { 23376: mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= (0x7fffffff * 2U + 1U)));; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: int 23376: __gmpz_fits_ulong_p (mpz_srcptr __gmp_z) throw () 23376: { 23376: mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= (0x7fffffffL * 2UL + 1UL)));; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: int 23376: __gmpz_fits_ushort_p (mpz_srcptr __gmp_z) throw () 23376: { 23376: mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= (0x7fff * 2 + 1)));; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: unsigned long 23376: __gmpz_get_ui (mpz_srcptr __gmp_z) throw () 23376: { 23376: mp_ptr __gmp_p = __gmp_z->_mp_d; 23376: mp_size_t __gmp_n = __gmp_z->_mp_size; 23376: mp_limb_t __gmp_l = __gmp_p[0]; 23376: 23376: 23376: 23376: 23376: 23376: 23376: return (__gmp_n != 0 ? __gmp_l : 0); 23376: # 1787 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: mp_limb_t 23376: __gmpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n) throw () 23376: { 23376: mp_limb_t __gmp_result = 0; 23376: if (__builtin_expect ((__gmp_n >= 0 && __gmp_n < ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size))) != 0, 1)) 23376: __gmp_result = __gmp_z->_mp_d[__gmp_n]; 23376: return __gmp_result; 23376: } 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) void 23376: __gmpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) 23376: { 23376: if (__gmp_w != __gmp_u) 23376: __gmpz_set (__gmp_w, __gmp_u); 23376: __gmp_w->_mp_size = - __gmp_w->_mp_size; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: int 23376: __gmpz_perfect_square_p (mpz_srcptr __gmp_a) 23376: { 23376: mp_size_t __gmp_asize; 23376: int __gmp_result; 23376: 23376: __gmp_asize = __gmp_a->_mp_size; 23376: __gmp_result = (__gmp_asize >= 0); 23376: if (__builtin_expect ((__gmp_asize > 0) != 0, 1)) 23376: __gmp_result = __gmpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize); 23376: return __gmp_result; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: mp_bitcnt_t 23376: __gmpz_popcount (mpz_srcptr __gmp_u) throw () 23376: { 23376: mp_size_t __gmp_usize; 23376: mp_bitcnt_t __gmp_result; 23376: 23376: __gmp_usize = __gmp_u->_mp_size; 23376: __gmp_result = (__gmp_usize < 0 ? (0x7fffffffL * 2UL + 1UL) : 0); 23376: if (__builtin_expect ((__gmp_usize > 0) != 0, 1)) 23376: __gmp_result = __gmpn_popcount (__gmp_u->_mp_d, __gmp_usize); 23376: return __gmp_result; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: void 23376: __gmpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u) 23376: { 23376: __gmpz_tdiv_q (__gmp_w, (&((__gmp_u)->_mp_num)), (&((__gmp_u)->_mp_den))); 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: size_t 23376: __gmpz_size (mpz_srcptr __gmp_z) throw () 23376: { 23376: return ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size)); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) void 23376: __gmpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) 23376: { 23376: if (__gmp_w != __gmp_u) 23376: __gmpq_set (__gmp_w, __gmp_u); 23376: __gmp_w->_mp_num._mp_size = ((__gmp_w->_mp_num._mp_size) >= 0 ? (__gmp_w->_mp_num._mp_size) : -(__gmp_w->_mp_num._mp_size)); 23376: } 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) void 23376: __gmpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) 23376: { 23376: if (__gmp_w != __gmp_u) 23376: __gmpq_set (__gmp_w, __gmp_u); 23376: __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size; 23376: } 23376: # 2129 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: mp_limb_t 23376: __gmpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) 23376: { 23376: mp_limb_t __gmp_c; 23376: do { mp_size_t __gmp_i; mp_limb_t __gmp_x; __gmp_i = (__gmp_ysize); if (__gmp_i != 0) { if (__gmpn_add_n (__gmp_wp, __gmp_xp, __gmp_yp, __gmp_i)) { do { if (__gmp_i >= (__gmp_xsize)) { (__gmp_c) = 1; goto __gmp_done; } __gmp_x = (__gmp_xp)[__gmp_i]; } while ((((__gmp_wp)[__gmp_i++] = (__gmp_x + 1) & ((~ (static_cast (0))) >> 0)) == 0)); } } if ((__gmp_wp) != (__gmp_xp)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_xsize); __gmp_j++) (__gmp_wp)[__gmp_j] = (__gmp_xp)[__gmp_j]; } while (0); (__gmp_c) = 0; __gmp_done: ; } while (0); 23376: return __gmp_c; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: mp_limb_t 23376: __gmpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) throw () 23376: { 23376: mp_limb_t __gmp_c; 23376: do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_r; __gmp_x = (__gmp_src)[0]; __gmp_r = __gmp_x + (__gmp_n); (__gmp_dst)[0] = __gmp_r; if (((__gmp_r) < ((__gmp_n)))) { (__gmp_c) = 1; for (__gmp_i = 1; __gmp_i < (__gmp_size);) { __gmp_x = (__gmp_src)[__gmp_i]; __gmp_r = __gmp_x + 1; (__gmp_dst)[__gmp_i] = __gmp_r; ++__gmp_i; if (!((__gmp_r) < (1))) { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; break; } } } else { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (1); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; } } while (0); 23376: return __gmp_c; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: int 23376: __gmpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size) throw () 23376: { 23376: int __gmp_result; 23376: do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_y; (__gmp_result) = 0; __gmp_i = (__gmp_size); while (--__gmp_i >= 0) { __gmp_x = (__gmp_xp)[__gmp_i]; __gmp_y = (__gmp_yp)[__gmp_i]; if (__gmp_x != __gmp_y) { (__gmp_result) = (__gmp_x > __gmp_y ? 1 : -1); break; } } } while (0); 23376: return __gmp_result; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: int 23376: __gmpn_zero_p (mp_srcptr __gmp_p, mp_size_t __gmp_n) throw () 23376: { 23376: 23376: do { 23376: if (__gmp_p[--__gmp_n] != 0) 23376: return 0; 23376: } while (__gmp_n != 0); 23376: return 1; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: mp_limb_t 23376: __gmpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) 23376: { 23376: mp_limb_t __gmp_c; 23376: do { mp_size_t __gmp_i; mp_limb_t __gmp_x; __gmp_i = (__gmp_ysize); if (__gmp_i != 0) { if (__gmpn_sub_n (__gmp_wp, __gmp_xp, __gmp_yp, __gmp_i)) { do { if (__gmp_i >= (__gmp_xsize)) { (__gmp_c) = 1; goto __gmp_done; } __gmp_x = (__gmp_xp)[__gmp_i]; } while ((((__gmp_wp)[__gmp_i++] = (__gmp_x - 1) & ((~ (static_cast (0))) >> 0)), __gmp_x == 0)); } } if ((__gmp_wp) != (__gmp_xp)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_xsize); __gmp_j++) (__gmp_wp)[__gmp_j] = (__gmp_xp)[__gmp_j]; } while (0); (__gmp_c) = 0; __gmp_done: ; } while (0); 23376: return __gmp_c; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: mp_limb_t 23376: __gmpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) throw () 23376: { 23376: mp_limb_t __gmp_c; 23376: do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_r; __gmp_x = (__gmp_src)[0]; __gmp_r = __gmp_x - (__gmp_n); (__gmp_dst)[0] = __gmp_r; if (((__gmp_x) < ((__gmp_n)))) { (__gmp_c) = 1; for (__gmp_i = 1; __gmp_i < (__gmp_size);) { __gmp_x = (__gmp_src)[__gmp_i]; __gmp_r = __gmp_x - 1; (__gmp_dst)[__gmp_i] = __gmp_r; ++__gmp_i; if (!((__gmp_x) < (1))) { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; break; } } } else { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (1); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; } } while (0); 23376: return __gmp_c; 23376: } 23376: 23376: 23376: 23376: 23376: extern __inline__ __attribute__ ((__gnu_inline__)) 23376: 23376: mp_limb_t 23376: __gmpn_neg (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n) 23376: { 23376: while (*__gmp_up == 0) 23376: { 23376: *__gmp_rp = 0; 23376: if (!--__gmp_n) 23376: return 0; 23376: ++__gmp_up; ++__gmp_rp; 23376: } 23376: 23376: *__gmp_rp = (- *__gmp_up) & ((~ (static_cast (0))) >> 0); 23376: 23376: if (--__gmp_n) 23376: __gmpn_com (++__gmp_rp, ++__gmp_up, __gmp_n); 23376: 23376: return 1; 23376: } 23376: 23376: 23376: 23376: } 23376: # 2278 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: std::ostream& operator<< (std::ostream &, mpz_srcptr); 23376: std::ostream& operator<< (std::ostream &, mpq_srcptr); 23376: std::ostream& operator<< (std::ostream &, mpf_srcptr); 23376: std::istream& operator>> (std::istream &, mpz_ptr); 23376: std::istream& operator>> (std::istream &, mpq_ptr); 23376: std::istream& operator>> (std::istream &, mpf_ptr); 23376: # 2309 "/usr/include/arm-linux-gnueabihf/gmp.h" 3 4 23376: enum 23376: { 23376: GMP_ERROR_NONE = 0, 23376: GMP_ERROR_UNSUPPORTED_ARGUMENT = 1, 23376: GMP_ERROR_DIVISION_BY_ZERO = 2, 23376: GMP_ERROR_SQRT_OF_NEGATIVE = 4, 23376: GMP_ERROR_INVALID_ARGUMENT = 8 23376: }; 23376: # 44 "/usr/include/gmpxx.h" 2 3 4 23376: # 85 "/usr/include/gmpxx.h" 3 4 23376: inline void __mpz_set_ui_safe(mpz_ptr p, unsigned long l) 23376: { 23376: p->_mp_size = (l != 0); 23376: p->_mp_d[0] = l & ((~ (static_cast (0))) >> 0); 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: inline void __mpz_set_si_safe(mpz_ptr p, long l) 23376: { 23376: if(l < 0) 23376: { 23376: __mpz_set_ui_safe(p, -static_cast(l)); 23376: __gmpz_neg(p, p); 23376: } 23376: else 23376: __mpz_set_ui_safe(p, l); 23376: 23376: } 23376: # 151 "/usr/include/gmpxx.h" 3 4 23376: inline unsigned long __gmpxx_abs_ui (signed long l) 23376: { 23376: return l >= 0 ? static_cast(l) 23376: : -static_cast(l); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct __gmp_unary_plus 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w) { __gmpz_set(z, w); } 23376: static void eval(mpq_ptr q, mpq_srcptr r) { __gmpq_set(q, r); } 23376: static void eval(mpf_ptr f, mpf_srcptr g) { __gmpf_set(f, g); } 23376: }; 23376: 23376: struct __gmp_unary_minus 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w) { __gmpz_neg(z, w); } 23376: static void eval(mpq_ptr q, mpq_srcptr r) { __gmpq_neg(q, r); } 23376: static void eval(mpf_ptr f, mpf_srcptr g) { __gmpf_neg(f, g); } 23376: }; 23376: 23376: struct __gmp_unary_com 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w) { __gmpz_com(z, w); } 23376: }; 23376: 23376: struct __gmp_binary_plus 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_add(z, w, v); } 23376: 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { 23376: 23376: 23376: if (__builtin_constant_p(l) && l == 0) 23376: { 23376: if (z != w) __gmpz_set(z, w); 23376: } 23376: else 23376: __gmpz_add_ui(z, w, l); 23376: } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { 23376: if (l >= 0) 23376: eval(z, w, static_cast(l)); 23376: else 23376: __gmpz_sub_ui(z, w, -static_cast(l)); 23376: } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_add (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { eval(z, w, d); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) 23376: { __gmpq_add(q, r, s); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) 23376: { 23376: if (__builtin_constant_p(l) && l == 0) 23376: { 23376: if (q != r) __gmpq_set(q, r); 23376: } 23376: else 23376: { 23376: if (q == r) 23376: __gmpz_addmul_ui((&((q)->_mp_num)), (&((q)->_mp_den)), l); 23376: else 23376: { 23376: __gmpz_mul_ui((&((q)->_mp_num)), (&((r)->_mp_den)), l); 23376: __gmpz_add((&((q)->_mp_num)), (&((q)->_mp_num)), (&((r)->_mp_num))); 23376: __gmpz_set((&((q)->_mp_den)), (&((r)->_mp_den))); 23376: } 23376: } 23376: } 23376: static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) 23376: { eval(q, r, l); } 23376: static inline void eval(mpq_ptr q, mpq_srcptr r, signed long int l); 23376: 23376: static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) 23376: { eval(q, r, l); } 23376: static void eval(mpq_ptr q, mpq_srcptr r, double d) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); __gmpq_add (q, r, temp); } 23376: static void eval(mpq_ptr q, double d, mpq_srcptr r) 23376: { eval(q, r, d); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) 23376: { 23376: if (q == r) 23376: __gmpz_addmul((&((q)->_mp_num)), (&((q)->_mp_den)), z); 23376: else 23376: { 23376: __gmpz_mul((&((q)->_mp_num)), (&((r)->_mp_den)), z); 23376: __gmpz_add((&((q)->_mp_num)), (&((q)->_mp_num)), (&((r)->_mp_num))); 23376: __gmpz_set((&((q)->_mp_den)), (&((r)->_mp_den))); 23376: } 23376: } 23376: static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) 23376: { eval(q, r, z); } 23376: 23376: static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) 23376: { __gmpf_add(f, g, h); } 23376: 23376: static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) 23376: { __gmpf_add_ui(f, g, l); } 23376: static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) 23376: { __gmpf_add_ui(f, g, l); } 23376: static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) 23376: { 23376: if (l >= 0) 23376: __gmpf_add_ui(f, g, l); 23376: else 23376: __gmpf_sub_ui(f, g, -static_cast(l)); 23376: } 23376: static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) 23376: { eval(f, g, l); } 23376: static void eval(mpf_ptr f, mpf_srcptr g, double d) 23376: { 23376: mpf_t temp; 23376: __gmpf_init2(temp, 8*sizeof(double)); 23376: __gmpf_set_d(temp, d); 23376: __gmpf_add(f, g, temp); 23376: __gmpf_clear(temp); 23376: } 23376: static void eval(mpf_ptr f, double d, mpf_srcptr g) 23376: { eval(f, g, d); } 23376: }; 23376: 23376: struct __gmp_binary_minus 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_sub(z, w, v); } 23376: 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { 23376: if (__builtin_constant_p(l) && l == 0) 23376: { 23376: if (z != w) __gmpz_set(z, w); 23376: } 23376: else 23376: __gmpz_sub_ui(z, w, l); 23376: } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { 23376: if (__builtin_constant_p(l) && l == 0) 23376: { 23376: __gmpz_neg(z, w); 23376: } 23376: else 23376: __gmpz_ui_sub(z, l, w); 23376: } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { 23376: if (l >= 0) 23376: eval(z, w, static_cast(l)); 23376: else 23376: __gmpz_add_ui(z, w, -static_cast(l)); 23376: } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { 23376: if (l >= 0) 23376: eval(z, static_cast(l), w); 23376: else 23376: { 23376: __gmpz_add_ui(z, w, -static_cast(l)); 23376: __gmpz_neg(z, z); 23376: } 23376: } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_sub (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_sub (z, temp, w); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) 23376: { __gmpq_sub(q, r, s); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) 23376: { 23376: if (__builtin_constant_p(l) && l == 0) 23376: { 23376: if (q != r) __gmpq_set(q, r); 23376: } 23376: else 23376: { 23376: if (q == r) 23376: __gmpz_submul_ui((&((q)->_mp_num)), (&((q)->_mp_den)), l); 23376: else 23376: { 23376: __gmpz_mul_ui((&((q)->_mp_num)), (&((r)->_mp_den)), l); 23376: __gmpz_sub((&((q)->_mp_num)), (&((r)->_mp_num)), (&((q)->_mp_num))); 23376: __gmpz_set((&((q)->_mp_den)), (&((r)->_mp_den))); 23376: } 23376: } 23376: } 23376: static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) 23376: { eval(q, r, l); __gmpq_neg(q, q); } 23376: static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) 23376: { 23376: if (l >= 0) 23376: eval(q, r, static_cast(l)); 23376: else 23376: __gmp_binary_plus::eval(q, r, -static_cast(l)); 23376: } 23376: static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) 23376: { eval(q, r, l); __gmpq_neg(q, q); } 23376: static void eval(mpq_ptr q, mpq_srcptr r, double d) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); __gmpq_sub (q, r, temp); } 23376: static void eval(mpq_ptr q, double d, mpq_srcptr r) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); __gmpq_sub (q, temp, r); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) 23376: { 23376: if (q == r) 23376: __gmpz_submul((&((q)->_mp_num)), (&((q)->_mp_den)), z); 23376: else 23376: { 23376: __gmpz_mul((&((q)->_mp_num)), (&((r)->_mp_den)), z); 23376: __gmpz_sub((&((q)->_mp_num)), (&((r)->_mp_num)), (&((q)->_mp_num))); 23376: __gmpz_set((&((q)->_mp_den)), (&((r)->_mp_den))); 23376: } 23376: } 23376: static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) 23376: { eval(q, r, z); __gmpq_neg(q, q); } 23376: 23376: static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) 23376: { __gmpf_sub(f, g, h); } 23376: 23376: static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) 23376: { __gmpf_sub_ui(f, g, l); } 23376: static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) 23376: { __gmpf_ui_sub(f, l, g); } 23376: static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) 23376: { 23376: if (l >= 0) 23376: __gmpf_sub_ui(f, g, l); 23376: else 23376: __gmpf_add_ui(f, g, -static_cast(l)); 23376: } 23376: static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) 23376: { 23376: if (l >= 0) 23376: __gmpf_sub_ui(f, g, l); 23376: else 23376: __gmpf_add_ui(f, g, -static_cast(l)); 23376: __gmpf_neg(f, f); 23376: } 23376: static void eval(mpf_ptr f, mpf_srcptr g, double d) 23376: { 23376: mpf_t temp; 23376: __gmpf_init2(temp, 8*sizeof(double)); 23376: __gmpf_set_d(temp, d); 23376: __gmpf_sub(f, g, temp); 23376: __gmpf_clear(temp); 23376: } 23376: static void eval(mpf_ptr f, double d, mpf_srcptr g) 23376: { 23376: mpf_t temp; 23376: __gmpf_init2(temp, 8*sizeof(double)); 23376: __gmpf_set_d(temp, d); 23376: __gmpf_sub(f, temp, g); 23376: __gmpf_clear(temp); 23376: } 23376: }; 23376: 23376: 23376: inline void 23376: __gmp_binary_plus::eval(mpq_ptr q, mpq_srcptr r, signed long int l) 23376: { 23376: if (l >= 0) 23376: eval(q, r, static_cast(l)); 23376: else 23376: __gmp_binary_minus::eval(q, r, -static_cast(l)); 23376: } 23376: 23376: struct __gmp_binary_lshift 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) 23376: { 23376: if (__builtin_constant_p(l) && (l == 0)) 23376: { 23376: if (z != w) __gmpz_set(z, w); 23376: } 23376: else 23376: __gmpz_mul_2exp(z, w, l); 23376: } 23376: static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) 23376: { 23376: if (__builtin_constant_p(l) && (l == 0)) 23376: { 23376: if (q != r) __gmpq_set(q, r); 23376: } 23376: else 23376: __gmpq_mul_2exp(q, r, l); 23376: } 23376: static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) 23376: { __gmpf_mul_2exp(f, g, l); } 23376: }; 23376: 23376: struct __gmp_binary_rshift 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mp_bitcnt_t l) 23376: { 23376: if (__builtin_constant_p(l) && (l == 0)) 23376: { 23376: if (z != w) __gmpz_set(z, w); 23376: } 23376: else 23376: __gmpz_fdiv_q_2exp(z, w, l); 23376: } 23376: static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l) 23376: { 23376: if (__builtin_constant_p(l) && (l == 0)) 23376: { 23376: if (q != r) __gmpq_set(q, r); 23376: } 23376: else 23376: __gmpq_div_2exp(q, r, l); 23376: } 23376: static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l) 23376: { __gmpf_div_2exp(f, g, l); } 23376: }; 23376: 23376: struct __gmp_binary_multiplies 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_mul(z, w, v); } 23376: 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { 23376: 23376: 23376: if (__builtin_constant_p(l) && (l & (l-1)) == 0) 23376: { 23376: if (l == 0) 23376: { 23376: z->_mp_size = 0; 23376: } 23376: else 23376: { 23376: __gmp_binary_lshift::eval(z, w, __builtin_ctzl(l)); 23376: } 23376: } 23376: else 23376: 23376: __gmpz_mul_ui(z, w, l); 23376: } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { 23376: if ((__builtin_constant_p(l >= 0) && (l >= 0))) 23376: eval(z, w, static_cast(l)); 23376: else if ((__builtin_constant_p(l <= 0) && (l <= 0))) 23376: { 23376: eval(z, w, -static_cast(l)); 23376: __gmpz_neg(z, z); 23376: } 23376: else 23376: __gmpz_mul_si (z, w, l); 23376: } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_mul (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { eval(z, w, d); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) 23376: { __gmpq_mul(q, r, s); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) 23376: { 23376: 23376: if (__builtin_constant_p(l) && (l & (l-1)) == 0) 23376: { 23376: if (l == 0) 23376: { 23376: __gmpq_set_ui(q, 0, 1); 23376: } 23376: else 23376: { 23376: __gmp_binary_lshift::eval(q, r, __builtin_ctzl(l)); 23376: } 23376: } 23376: else 23376: 23376: { 23376: mpq_t temp; mp_limb_t limbs[1 +1]; (&((temp)->_mp_num))->_mp_d = limbs; __mpz_set_ui_safe ((&((temp)->_mp_num)), l); (&((temp)->_mp_den))->_mp_d = limbs + 1; (&((temp)->_mp_den))->_mp_size = 1; (&((temp)->_mp_den))->_mp_d[0] = 1; 23376: __gmpq_mul (q, r, temp); 23376: } 23376: } 23376: static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) 23376: { eval(q, r, l); } 23376: static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) 23376: { 23376: if ((__builtin_constant_p(l >= 0) && (l >= 0))) 23376: eval(q, r, static_cast(l)); 23376: else if ((__builtin_constant_p(l <= 0) && (l <= 0))) 23376: { 23376: eval(q, r, -static_cast(l)); 23376: __gmpq_neg(q, q); 23376: } 23376: else 23376: { 23376: mpq_t temp; mp_limb_t limbs[1 +1]; (&((temp)->_mp_num))->_mp_d = limbs; __mpz_set_si_safe ((&((temp)->_mp_num)), l); (&((temp)->_mp_den))->_mp_d = limbs + 1; (&((temp)->_mp_den))->_mp_size = 1; (&((temp)->_mp_den))->_mp_d[0] = 1; 23376: __gmpq_mul (q, r, temp); 23376: } 23376: } 23376: static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) 23376: { eval(q, r, l); } 23376: static void eval(mpq_ptr q, mpq_srcptr r, double d) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); __gmpq_mul (q, r, temp); } 23376: static void eval(mpq_ptr q, double d, mpq_srcptr r) 23376: { eval(q, r, d); } 23376: 23376: static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) 23376: { __gmpf_mul(f, g, h); } 23376: 23376: static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) 23376: { __gmpf_mul_ui(f, g, l); } 23376: static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) 23376: { __gmpf_mul_ui(f, g, l); } 23376: static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) 23376: { 23376: if (l >= 0) 23376: __gmpf_mul_ui(f, g, l); 23376: else 23376: { 23376: __gmpf_mul_ui(f, g, -static_cast(l)); 23376: __gmpf_neg(f, f); 23376: } 23376: } 23376: static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) 23376: { eval(f, g, l); } 23376: static void eval(mpf_ptr f, mpf_srcptr g, double d) 23376: { 23376: mpf_t temp; 23376: __gmpf_init2(temp, 8*sizeof(double)); 23376: __gmpf_set_d(temp, d); 23376: __gmpf_mul(f, g, temp); 23376: __gmpf_clear(temp); 23376: } 23376: static void eval(mpf_ptr f, double d, mpf_srcptr g) 23376: { eval(f, g, d); } 23376: }; 23376: 23376: struct __gmp_binary_divides 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_tdiv_q(z, w, v); } 23376: 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { 23376: 23376: 23376: if (__builtin_constant_p(l) && (l & (l-1)) == 0 && l != 0) 23376: { 23376: if (l == 1) 23376: { 23376: if (z != w) __gmpz_set(z, w); 23376: } 23376: else 23376: __gmpz_tdiv_q_2exp(z, w, __builtin_ctzl(l)); 23376: 23376: } 23376: else 23376: 23376: __gmpz_tdiv_q_ui(z, w, l); 23376: } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { 23376: if (((w)->_mp_size < 0 ? -1 : (w)->_mp_size > 0) >= 0) 23376: { 23376: if (__gmpz_fits_ulong_p(w)) 23376: __gmpz_set_ui(z, l / __gmpz_get_ui(w)); 23376: else 23376: __gmpz_set_ui(z, 0); 23376: } 23376: else 23376: { 23376: __gmpz_neg(z, w); 23376: if (__gmpz_fits_ulong_p(z)) 23376: { 23376: __gmpz_set_ui(z, l / __gmpz_get_ui(z)); 23376: __gmpz_neg(z, z); 23376: } 23376: else 23376: __gmpz_set_ui(z, 0); 23376: } 23376: } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { 23376: if (l >= 0) 23376: eval(z, w, static_cast(l)); 23376: else 23376: { 23376: eval(z, w, -static_cast(l)); 23376: __gmpz_neg(z, z); 23376: } 23376: } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { 23376: if (__gmpz_fits_slong_p(w)) 23376: __gmpz_set_si(z, l / __gmpz_get_si(w)); 23376: else 23376: { 23376: 23376: 23376: __gmpz_set_si (z, (__gmpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? -1 : 0)); 23376: } 23376: } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_tdiv_q (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_tdiv_q (z, temp, w); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) 23376: { __gmpq_div(q, r, s); } 23376: 23376: static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) 23376: { 23376: 23376: if (__builtin_constant_p(l) && (l & (l-1)) == 0 && l != 0) 23376: __gmp_binary_rshift::eval(q, r, __builtin_ctzl(l)); 23376: else 23376: 23376: { 23376: mpq_t temp; mp_limb_t limbs[1 +1]; (&((temp)->_mp_num))->_mp_d = limbs; __mpz_set_ui_safe ((&((temp)->_mp_num)), l); (&((temp)->_mp_den))->_mp_d = limbs + 1; (&((temp)->_mp_den))->_mp_size = 1; (&((temp)->_mp_den))->_mp_d[0] = 1; 23376: __gmpq_div (q, r, temp); 23376: } 23376: } 23376: static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) 23376: { mpq_t temp; mp_limb_t limbs[1 +1]; (&((temp)->_mp_num))->_mp_d = limbs; __mpz_set_ui_safe ((&((temp)->_mp_num)), l); (&((temp)->_mp_den))->_mp_d = limbs + 1; (&((temp)->_mp_den))->_mp_size = 1; (&((temp)->_mp_den))->_mp_d[0] = 1; __gmpq_div (q, temp, r); } 23376: static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) 23376: { 23376: if ((__builtin_constant_p(l >= 0) && (l >= 0))) 23376: eval(q, r, static_cast(l)); 23376: else if ((__builtin_constant_p(l <= 0) && (l <= 0))) 23376: { 23376: eval(q, r, -static_cast(l)); 23376: __gmpq_neg(q, q); 23376: } 23376: else 23376: { 23376: mpq_t temp; mp_limb_t limbs[1 +1]; (&((temp)->_mp_num))->_mp_d = limbs; __mpz_set_si_safe ((&((temp)->_mp_num)), l); (&((temp)->_mp_den))->_mp_d = limbs + 1; (&((temp)->_mp_den))->_mp_size = 1; (&((temp)->_mp_den))->_mp_d[0] = 1; 23376: __gmpq_div (q, r, temp); 23376: } 23376: } 23376: static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) 23376: { mpq_t temp; mp_limb_t limbs[1 +1]; (&((temp)->_mp_num))->_mp_d = limbs; __mpz_set_si_safe ((&((temp)->_mp_num)), l); (&((temp)->_mp_den))->_mp_d = limbs + 1; (&((temp)->_mp_den))->_mp_size = 1; (&((temp)->_mp_den))->_mp_d[0] = 1; __gmpq_div (q, temp, r); } 23376: static void eval(mpq_ptr q, mpq_srcptr r, double d) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); __gmpq_div (q, r, temp); } 23376: static void eval(mpq_ptr q, double d, mpq_srcptr r) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); __gmpq_div (q, temp, r); } 23376: 23376: static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) 23376: { __gmpf_div(f, g, h); } 23376: 23376: static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) 23376: { __gmpf_div_ui(f, g, l); } 23376: static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) 23376: { __gmpf_ui_div(f, l, g); } 23376: static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) 23376: { 23376: if (l >= 0) 23376: __gmpf_div_ui(f, g, l); 23376: else 23376: { 23376: __gmpf_div_ui(f, g, -static_cast(l)); 23376: __gmpf_neg(f, f); 23376: } 23376: } 23376: static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) 23376: { 23376: if (l >= 0) 23376: __gmpf_ui_div(f, l, g); 23376: else 23376: { 23376: __gmpf_ui_div(f, -static_cast(l), g); 23376: __gmpf_neg(f, f); 23376: } 23376: } 23376: static void eval(mpf_ptr f, mpf_srcptr g, double d) 23376: { 23376: mpf_t temp; 23376: __gmpf_init2(temp, 8*sizeof(double)); 23376: __gmpf_set_d(temp, d); 23376: __gmpf_div(f, g, temp); 23376: __gmpf_clear(temp); 23376: } 23376: static void eval(mpf_ptr f, double d, mpf_srcptr g) 23376: { 23376: mpf_t temp; 23376: __gmpf_init2(temp, 8*sizeof(double)); 23376: __gmpf_set_d(temp, d); 23376: __gmpf_div(f, temp, g); 23376: __gmpf_clear(temp); 23376: } 23376: }; 23376: 23376: struct __gmp_binary_modulus 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_tdiv_r(z, w, v); } 23376: 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { __gmpz_tdiv_r_ui(z, w, l); } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { 23376: if (((w)->_mp_size < 0 ? -1 : (w)->_mp_size > 0) >= 0) 23376: { 23376: if (__gmpz_fits_ulong_p(w)) 23376: __gmpz_set_ui(z, l % __gmpz_get_ui(w)); 23376: else 23376: __gmpz_set_ui(z, l); 23376: } 23376: else 23376: { 23376: __gmpz_neg(z, w); 23376: if (__gmpz_fits_ulong_p(z)) 23376: __gmpz_set_ui(z, l % __gmpz_get_ui(z)); 23376: else 23376: __gmpz_set_ui(z, l); 23376: } 23376: } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { 23376: __gmpz_tdiv_r_ui (z, w, __gmpxx_abs_ui(l)); 23376: } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { 23376: if (__gmpz_fits_slong_p(w)) 23376: __gmpz_set_si(z, l % __gmpz_get_si(w)); 23376: else 23376: { 23376: 23376: 23376: __gmpz_set_si (z, __gmpz_cmpabs_ui (w, __gmpxx_abs_ui(l)) == 0 ? 0 : l); 23376: } 23376: } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_tdiv_r (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_tdiv_r (z, temp, w); } 23376: }; 23376: 23376: struct __gmp_binary_and 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_and(z, w, v); } 23376: 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { mpz_t temp; mp_limb_t limbs[1]; temp->_mp_d = limbs; __mpz_set_ui_safe (temp, l); __gmpz_and (z, w, temp); } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { mpz_t temp; mp_limb_t limbs[1]; temp->_mp_d = limbs; __mpz_set_si_safe (temp, l); __gmpz_and (z, w, temp); } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_and (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { eval(z, w, d); } 23376: }; 23376: 23376: struct __gmp_binary_ior 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_ior(z, w, v); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { mpz_t temp; mp_limb_t limbs[1]; temp->_mp_d = limbs; __mpz_set_ui_safe (temp, l); __gmpz_ior (z, w, temp); } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { mpz_t temp; mp_limb_t limbs[1]; temp->_mp_d = limbs; __mpz_set_si_safe (temp, l); __gmpz_ior (z, w, temp); } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_ior (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { eval(z, w, d); } 23376: }; 23376: 23376: struct __gmp_binary_xor 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_xor(z, w, v); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { mpz_t temp; mp_limb_t limbs[1]; temp->_mp_d = limbs; __mpz_set_ui_safe (temp, l); __gmpz_xor (z, w, temp); } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { mpz_t temp; mp_limb_t limbs[1]; temp->_mp_d = limbs; __mpz_set_si_safe (temp, l); __gmpz_xor (z, w, temp); } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_xor (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { eval(z, w, d); } 23376: }; 23376: 23376: struct __gmp_cmp_function 23376: { 23376: static int eval(mpz_srcptr z, mpz_srcptr w) { return __gmpz_cmp(z, w); } 23376: 23376: static int eval(mpz_srcptr z, unsigned long int l) 23376: { return (__builtin_constant_p (l) && (l) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,l)); } 23376: static int eval(unsigned long int l, mpz_srcptr z) 23376: { return -(__builtin_constant_p (l) && (l) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,l)); } 23376: static int eval(mpz_srcptr z, signed long int l) 23376: { return (__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,(static_cast (l)))) : __gmpz_cmp_si (z,l)); } 23376: static int eval(signed long int l, mpz_srcptr z) 23376: { return -(__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,(static_cast (l)))) : __gmpz_cmp_si (z,l)); } 23376: static int eval(mpz_srcptr z, double d) 23376: { return __gmpz_cmp_d(z, d); } 23376: static int eval(double d, mpz_srcptr z) 23376: { return -__gmpz_cmp_d(z, d); } 23376: 23376: static int eval(mpq_srcptr q, mpq_srcptr r) { return __gmpq_cmp(q, r); } 23376: 23376: static int eval(mpq_srcptr q, unsigned long int l) 23376: { return (__builtin_constant_p (l) && (l) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p ((l) == (1)) && (l) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,l,1)); } 23376: static int eval(unsigned long int l, mpq_srcptr q) 23376: { return -(__builtin_constant_p (l) && (l) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p ((l) == (1)) && (l) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,l,1)); } 23376: static int eval(mpq_srcptr q, signed long int l) 23376: { return (__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p (((static_cast (l))) == (1)) && ((static_cast (l))) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,(static_cast (l)),1)) : __gmpq_cmp_si (q, l, 1)); } 23376: static int eval(signed long int l, mpq_srcptr q) 23376: { return -(__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p (((static_cast (l))) == (1)) && ((static_cast (l))) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,(static_cast (l)),1)) : __gmpq_cmp_si (q, l, 1)); } 23376: static int eval(mpq_srcptr q, double d) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); return __gmpq_cmp (q, temp); } 23376: static int eval(double d, mpq_srcptr q) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); return __gmpq_cmp (temp, q); } 23376: static int eval(mpq_srcptr q, mpz_srcptr z) 23376: { return __gmpq_cmp_z(q, z); } 23376: static int eval(mpz_srcptr z, mpq_srcptr q) 23376: { return -__gmpq_cmp_z(q, z); } 23376: 23376: static int eval(mpf_srcptr f, mpf_srcptr g) { return __gmpf_cmp(f, g); } 23376: 23376: static int eval(mpf_srcptr f, unsigned long int l) 23376: { return __gmpf_cmp_ui(f, l); } 23376: static int eval(unsigned long int l, mpf_srcptr f) 23376: { return -__gmpf_cmp_ui(f, l); } 23376: static int eval(mpf_srcptr f, signed long int l) 23376: { return __gmpf_cmp_si(f, l); } 23376: static int eval(signed long int l, mpf_srcptr f) 23376: { return -__gmpf_cmp_si(f, l); } 23376: static int eval(mpf_srcptr f, double d) 23376: { return __gmpf_cmp_d(f, d); } 23376: static int eval(double d, mpf_srcptr f) 23376: { return -__gmpf_cmp_d(f, d); } 23376: static int eval(mpf_srcptr f, mpz_srcptr z) 23376: { return __gmpf_cmp_z(f, z); } 23376: static int eval(mpz_srcptr z, mpf_srcptr f) 23376: { return -__gmpf_cmp_z(f, z); } 23376: static int eval(mpf_srcptr f, mpq_srcptr q) 23376: { 23376: mpf_t qf; 23376: __gmpf_init(qf); 23376: __gmpf_set_q(qf, q); 23376: int ret = eval(f, qf); 23376: __gmpf_clear(qf); 23376: return ret; 23376: } 23376: static int eval(mpq_srcptr q, mpf_srcptr f) 23376: { return -eval(f, q); } 23376: }; 23376: 23376: struct __gmp_binary_equal 23376: { 23376: static bool eval(mpz_srcptr z, mpz_srcptr w) { return __gmpz_cmp(z, w) == 0; } 23376: 23376: static bool eval(mpz_srcptr z, unsigned long int l) 23376: { return (__builtin_constant_p (l) && (l) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,l)) == 0; } 23376: static bool eval(unsigned long int l, mpz_srcptr z) 23376: { return eval(z, l); } 23376: static bool eval(mpz_srcptr z, signed long int l) 23376: { return (__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,(static_cast (l)))) : __gmpz_cmp_si (z,l)) == 0; } 23376: static bool eval(signed long int l, mpz_srcptr z) 23376: { return eval(z, l); } 23376: static bool eval(mpz_srcptr z, double d) 23376: { return __gmpz_cmp_d(z, d) == 0; } 23376: static bool eval(double d, mpz_srcptr z) 23376: { return eval(z, d); } 23376: 23376: static bool eval(mpq_srcptr q, mpq_srcptr r) 23376: { return __gmpq_equal(q, r) != 0; } 23376: 23376: static bool eval(mpq_srcptr q, unsigned long int l) 23376: { return (__builtin_constant_p (l) && (l) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p ((l) == (1)) && (l) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,l,1)) == 0; } 23376: static bool eval(unsigned long int l, mpq_srcptr q) 23376: { return eval(q, l); } 23376: static bool eval(mpq_srcptr q, signed long int l) 23376: { return (__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p (((static_cast (l))) == (1)) && ((static_cast (l))) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,(static_cast (l)),1)) : __gmpq_cmp_si (q, l, 1)) == 0; } 23376: static bool eval(signed long int l, mpq_srcptr q) 23376: { return eval(q, l); } 23376: static bool eval(mpq_srcptr q, double d) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); return __gmpq_equal (q, temp) != 0; } 23376: static bool eval(double d, mpq_srcptr q) 23376: { return eval(q, d); } 23376: static bool eval(mpq_srcptr q, mpz_srcptr z) 23376: { return __gmpq_cmp_z(q, z) == 0; } 23376: static bool eval(mpz_srcptr z, mpq_srcptr q) 23376: { return eval(q, z); } 23376: 23376: static bool eval(mpf_srcptr f, mpf_srcptr g) { return __gmpf_cmp(f, g) == 0; } 23376: 23376: static bool eval(mpf_srcptr f, unsigned long int l) 23376: { return __gmpf_cmp_ui(f, l) == 0; } 23376: static bool eval(unsigned long int l, mpf_srcptr f) 23376: { return eval(f, l); } 23376: static bool eval(mpf_srcptr f, signed long int l) 23376: { return __gmpf_cmp_si(f, l) == 0; } 23376: static bool eval(signed long int l, mpf_srcptr f) 23376: { return eval(f, l); } 23376: static bool eval(mpf_srcptr f, double d) 23376: { return __gmpf_cmp_d(f, d) == 0; } 23376: static bool eval(double d, mpf_srcptr f) 23376: { return eval(f, d); } 23376: static bool eval(mpf_srcptr f, mpz_srcptr z) 23376: { return __gmpf_cmp_z(f, z) == 0; } 23376: static bool eval(mpz_srcptr z, mpf_srcptr f) 23376: { return eval(f, z); } 23376: static bool eval(mpf_srcptr f, mpq_srcptr q) 23376: { return __gmp_cmp_function::eval(f, q) == 0; } 23376: static bool eval(mpq_srcptr q, mpf_srcptr f) 23376: { return eval(f, q); } 23376: }; 23376: 23376: struct __gmp_binary_less 23376: { 23376: static bool eval(mpz_srcptr z, mpz_srcptr w) { return __gmpz_cmp(z, w) < 0; } 23376: 23376: static bool eval(mpz_srcptr z, unsigned long int l) 23376: { return (__builtin_constant_p (l) && (l) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,l)) < 0; } 23376: static bool eval(unsigned long int l, mpz_srcptr z) 23376: { return (__builtin_constant_p (l) && (l) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,l)) > 0; } 23376: static bool eval(mpz_srcptr z, signed long int l) 23376: { return (__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,(static_cast (l)))) : __gmpz_cmp_si (z,l)) < 0; } 23376: static bool eval(signed long int l, mpz_srcptr z) 23376: { return (__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0) : __gmpz_cmp_ui (z,(static_cast (l)))) : __gmpz_cmp_si (z,l)) > 0; } 23376: static bool eval(mpz_srcptr z, double d) 23376: { return __gmpz_cmp_d(z, d) < 0; } 23376: static bool eval(double d, mpz_srcptr z) 23376: { return __gmpz_cmp_d(z, d) > 0; } 23376: 23376: static bool eval(mpq_srcptr q, mpq_srcptr r) { return __gmpq_cmp(q, r) < 0; } 23376: 23376: static bool eval(mpq_srcptr q, unsigned long int l) 23376: { return (__builtin_constant_p (l) && (l) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p ((l) == (1)) && (l) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,l,1)) < 0; } 23376: static bool eval(unsigned long int l, mpq_srcptr q) 23376: { return (__builtin_constant_p (l) && (l) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p ((l) == (1)) && (l) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,l,1)) > 0; } 23376: static bool eval(mpq_srcptr q, signed long int l) 23376: { return (__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p (((static_cast (l))) == (1)) && ((static_cast (l))) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,(static_cast (l)),1)) : __gmpq_cmp_si (q, l, 1)) < 0; } 23376: static bool eval(signed long int l, mpq_srcptr q) 23376: { return (__builtin_constant_p ((l) >= 0) && (l) >= 0 ? (__builtin_constant_p ((static_cast (l))) && ((static_cast (l))) == 0 ? ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0) : __builtin_constant_p (((static_cast (l))) == (1)) && ((static_cast (l))) == (1) ? __gmpz_cmp ((&((q)->_mp_num)), (&((q)->_mp_den))) : __gmpq_cmp_ui (q,(static_cast (l)),1)) : __gmpq_cmp_si (q, l, 1)) > 0; } 23376: static bool eval(mpq_srcptr q, double d) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); return __gmpq_cmp (q, temp) < 0; } 23376: static bool eval(double d, mpq_srcptr q) 23376: { mpq_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1 + (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1]; (&((temp)->_mp_num))->_mp_d = limbs; (&((temp)->_mp_num))->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_d = limbs + (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; (&((temp)->_mp_den))->_mp_alloc = (((53 +1-(-1021)) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpq_set_d (temp, d); return __gmpq_cmp (temp, q) < 0; } 23376: static bool eval(mpq_srcptr q, mpz_srcptr z) 23376: { return __gmpq_cmp_z(q, z) < 0; } 23376: static bool eval(mpz_srcptr z, mpq_srcptr q) 23376: { return __gmpq_cmp_z(q, z) > 0; } 23376: 23376: static bool eval(mpf_srcptr f, mpf_srcptr g) { return __gmpf_cmp(f, g) < 0; } 23376: 23376: static bool eval(mpf_srcptr f, unsigned long int l) 23376: { return __gmpf_cmp_ui(f, l) < 0; } 23376: static bool eval(unsigned long int l, mpf_srcptr f) 23376: { return __gmpf_cmp_ui(f, l) > 0; } 23376: static bool eval(mpf_srcptr f, signed long int l) 23376: { return __gmpf_cmp_si(f, l) < 0; } 23376: static bool eval(signed long int l, mpf_srcptr f) 23376: { return __gmpf_cmp_si(f, l) > 0; } 23376: static bool eval(mpf_srcptr f, double d) 23376: { return __gmpf_cmp_d(f, d) < 0; } 23376: static bool eval(double d, mpf_srcptr f) 23376: { return __gmpf_cmp_d(f, d) > 0; } 23376: static bool eval(mpf_srcptr f, mpz_srcptr z) 23376: { return __gmpf_cmp_z(f, z) < 0; } 23376: static bool eval(mpz_srcptr z, mpf_srcptr f) 23376: { return __gmpf_cmp_z(f, z) > 0; } 23376: static bool eval(mpf_srcptr f, mpq_srcptr q) 23376: { return __gmp_cmp_function::eval(f, q) < 0; } 23376: static bool eval(mpq_srcptr q, mpf_srcptr f) 23376: { return __gmp_cmp_function::eval(q, f) < 0; } 23376: }; 23376: 23376: struct __gmp_binary_greater 23376: { 23376: template 23376: static inline bool eval(T t, U u) { return __gmp_binary_less::eval(u, t); } 23376: }; 23376: 23376: struct __gmp_unary_increment 23376: { 23376: static void eval(mpz_ptr z) { __gmpz_add_ui(z, z, 1); } 23376: static void eval(mpq_ptr q) 23376: { __gmpz_add((&((q)->_mp_num)), (&((q)->_mp_num)), (&((q)->_mp_den))); } 23376: static void eval(mpf_ptr f) { __gmpf_add_ui(f, f, 1); } 23376: }; 23376: 23376: struct __gmp_unary_decrement 23376: { 23376: static void eval(mpz_ptr z) { __gmpz_sub_ui(z, z, 1); } 23376: static void eval(mpq_ptr q) 23376: { __gmpz_sub((&((q)->_mp_num)), (&((q)->_mp_num)), (&((q)->_mp_den))); } 23376: static void eval(mpf_ptr f) { __gmpf_sub_ui(f, f, 1); } 23376: }; 23376: 23376: struct __gmp_abs_function 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w) { __gmpz_abs(z, w); } 23376: static void eval(mpq_ptr q, mpq_srcptr r) { __gmpq_abs(q, r); } 23376: static void eval(mpf_ptr f, mpf_srcptr g) { __gmpf_abs(f, g); } 23376: }; 23376: 23376: struct __gmp_trunc_function 23376: { 23376: static void eval(mpf_ptr f, mpf_srcptr g) { __gmpf_trunc(f, g); } 23376: }; 23376: 23376: struct __gmp_floor_function 23376: { 23376: static void eval(mpf_ptr f, mpf_srcptr g) { __gmpf_floor(f, g); } 23376: }; 23376: 23376: struct __gmp_ceil_function 23376: { 23376: static void eval(mpf_ptr f, mpf_srcptr g) { __gmpf_ceil(f, g); } 23376: }; 23376: 23376: struct __gmp_sqrt_function 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w) { __gmpz_sqrt(z, w); } 23376: static void eval(mpf_ptr f, mpf_srcptr g) { __gmpf_sqrt(f, g); } 23376: }; 23376: 23376: struct __gmp_hypot_function 23376: { 23376: static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) 23376: { 23376: mpf_t temp; 23376: __gmpf_init2(temp, __gmpf_get_prec(f)); 23376: __gmpf_mul(temp, g, g); 23376: __gmpf_mul(f, h, h); 23376: __gmpf_add(f, f, temp); 23376: __gmpf_sqrt(f, f); 23376: __gmpf_clear(temp); 23376: } 23376: 23376: static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) 23376: { 23376: mpf_t temp; 23376: __gmpf_init2(temp, __gmpf_get_prec(f)); 23376: __gmpf_mul(temp, g, g); 23376: __gmpf_set_ui(f, l); 23376: __gmpf_mul_ui(f, f, l); 23376: __gmpf_add(f, f, temp); 23376: __gmpf_clear(temp); 23376: __gmpf_sqrt(f, f); 23376: } 23376: static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) 23376: { eval(f, g, l); } 23376: static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) 23376: { eval(f, g, __gmpxx_abs_ui(l)); } 23376: static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) 23376: { eval(f, g, l); } 23376: static void eval(mpf_ptr f, mpf_srcptr g, double d) 23376: { 23376: mpf_t temp; 23376: __gmpf_init2(temp, __gmpf_get_prec(f)); 23376: __gmpf_mul(temp, g, g); 23376: __gmpf_set_d(f, d); 23376: __gmpf_mul(f, f, f); 23376: __gmpf_add(f, f, temp); 23376: __gmpf_sqrt(f, f); 23376: __gmpf_clear(temp); 23376: } 23376: static void eval(mpf_ptr f, double d, mpf_srcptr g) 23376: { eval(f, g, d); } 23376: }; 23376: 23376: struct __gmp_sgn_function 23376: { 23376: static int eval(mpz_srcptr z) { return ((z)->_mp_size < 0 ? -1 : (z)->_mp_size > 0); } 23376: static int eval(mpq_srcptr q) { return ((q)->_mp_num._mp_size < 0 ? -1 : (q)->_mp_num._mp_size > 0); } 23376: static int eval(mpf_srcptr f) { return ((f)->_mp_size < 0 ? -1 : (f)->_mp_size > 0); } 23376: }; 23376: 23376: struct __gmp_gcd_function 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_gcd(z, w, v); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { __gmpz_gcd_ui(z, w, l); } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { eval(z, w, __gmpxx_abs_ui(l)); } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_gcd (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { eval(z, w, d); } 23376: }; 23376: 23376: struct __gmp_lcm_function 23376: { 23376: static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) 23376: { __gmpz_lcm(z, w, v); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) 23376: { __gmpz_lcm_ui(z, w, l); } 23376: static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) 23376: { eval(z, w, __gmpxx_abs_ui(l)); } 23376: static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) 23376: { eval(z, w, l); } 23376: static void eval(mpz_ptr z, mpz_srcptr w, double d) 23376: { mpz_t temp; mp_limb_t limbs[(((1024) + ((32 - 0) - 1)) / (32 - 0))+1]; temp->_mp_d = limbs; temp->_mp_alloc = (((1024) + ((32 - 0) - 1)) / (32 - 0))+1; __gmpz_set_d (temp, d); __gmpz_lcm (z, w, temp); } 23376: static void eval(mpz_ptr z, double d, mpz_srcptr w) 23376: { eval(z, w, d); } 23376: }; 23376: 23376: struct __gmp_rand_function 23376: { 23376: static void eval(mpz_ptr z, gmp_randstate_t s, mp_bitcnt_t l) 23376: { __gmpz_urandomb(z, s, l); } 23376: static void eval(mpz_ptr z, gmp_randstate_t s, mpz_srcptr w) 23376: { __gmpz_urandomm(z, s, w); } 23376: static void eval(mpf_ptr f, gmp_randstate_t s, mp_bitcnt_t prec) 23376: { __gmpf_urandomb(f, s, prec); } 23376: }; 23376: # 1204 "/usr/include/gmpxx.h" 3 4 23376: extern "C" { 23376: typedef void (*__gmp_freefunc_t) (void *, size_t); 23376: } 23376: struct __gmp_alloc_cstring 23376: { 23376: char *str; 23376: __gmp_alloc_cstring(char *s) { str = s; } 23376: ~__gmp_alloc_cstring() 23376: { 23376: __gmp_freefunc_t freefunc; 23376: __gmp_get_memory_functions (__null, __null, &freefunc); 23376: (*freefunc) (str, std::strlen(str)+1); 23376: } 23376: }; 23376: 23376: 23376: 23376: template 23376: class __gmp_expr; 23376: 23376: 23376: 23376: template 23376: struct __gmp_resolve_ref 23376: { 23376: typedef T ref_type; 23376: }; 23376: 23376: template 23376: struct __gmp_resolve_ref<__gmp_expr > 23376: { 23376: typedef const __gmp_expr & ref_type; 23376: }; 23376: 23376: 23376: template 23376: struct __gmp_resolve_expr; 23376: 23376: template <> 23376: struct __gmp_resolve_expr 23376: { 23376: typedef mpz_t value_type; 23376: typedef mpz_ptr ptr_type; 23376: typedef mpz_srcptr srcptr_type; 23376: }; 23376: 23376: template <> 23376: struct __gmp_resolve_expr 23376: { 23376: typedef mpq_t value_type; 23376: typedef mpq_ptr ptr_type; 23376: typedef mpq_srcptr srcptr_type; 23376: }; 23376: 23376: template <> 23376: struct __gmp_resolve_expr 23376: { 23376: typedef mpf_t value_type; 23376: typedef mpf_ptr ptr_type; 23376: typedef mpf_srcptr srcptr_type; 23376: }; 23376: 23376: template <> 23376: struct __gmp_resolve_expr 23376: { 23376: typedef mpq_t value_type; 23376: }; 23376: 23376: template <> 23376: struct __gmp_resolve_expr 23376: { 23376: typedef mpq_t value_type; 23376: }; 23376: 23376: template <> 23376: struct __gmp_resolve_expr 23376: { 23376: typedef mpf_t value_type; 23376: }; 23376: 23376: template <> 23376: struct __gmp_resolve_expr 23376: { 23376: typedef mpf_t value_type; 23376: }; 23376: 23376: template <> 23376: struct __gmp_resolve_expr 23376: { 23376: typedef mpf_t value_type; 23376: }; 23376: 23376: template <> 23376: struct __gmp_resolve_expr 23376: { 23376: typedef mpf_t value_type; 23376: }; 23376: 23376: 23376: namespace std { 23376: template 23376: struct common_type <__gmp_expr, __gmp_expr > 23376: { 23376: private: 23376: typedef typename __gmp_resolve_expr::value_type X; 23376: public: 23376: typedef __gmp_expr type; 23376: }; 23376: 23376: template 23376: struct common_type <__gmp_expr > 23376: { 23376: typedef __gmp_expr type; 23376: }; 23376: # 1332 "/usr/include/gmpxx.h" 3 4 23376: template struct common_type <__gmp_expr, signed char > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: template struct common_type <__gmp_expr, unsigned char > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: template struct common_type <__gmp_expr, signed int > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: template struct common_type <__gmp_expr, unsigned int > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: template struct common_type <__gmp_expr, signed short int > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: template struct common_type <__gmp_expr, unsigned short int > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: template struct common_type <__gmp_expr, signed long int > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: template struct common_type <__gmp_expr, unsigned long int > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: template struct common_type <__gmp_expr, float > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: template struct common_type <__gmp_expr, double > { typedef __gmp_expr type; }; template struct common_type > { typedef __gmp_expr type; }; 23376: 23376: } 23376: 23376: 23376: 23376: template 23376: struct __gmp_unary_expr 23376: { 23376: typename __gmp_resolve_ref::ref_type val; 23376: 23376: __gmp_unary_expr(const T &v) : val(v) { } 23376: private: 23376: __gmp_unary_expr(); 23376: }; 23376: 23376: template 23376: struct __gmp_binary_expr 23376: { 23376: typename __gmp_resolve_ref::ref_type val1; 23376: typename __gmp_resolve_ref::ref_type val2; 23376: 23376: __gmp_binary_expr(const T &v1, const U &v2) : val1(v1), val2(v2) { } 23376: private: 23376: __gmp_binary_expr(); 23376: }; 23376: # 1428 "/usr/include/gmpxx.h" 3 4 23376: template <> 23376: class __gmp_expr 23376: { 23376: private: 23376: typedef mpz_t value_type; 23376: value_type mp; 23376: 23376: 23376: void assign_ui(unsigned long l) 23376: { 23376: if ((__builtin_constant_p(l == 0) && (l == 0))) 23376: mp->_mp_size = 0; 23376: else 23376: __gmpz_set_ui(mp, l); 23376: } 23376: void assign_si(signed long l) 23376: { 23376: if ((__builtin_constant_p(l >= 0) && (l >= 0))) 23376: assign_ui(l); 23376: else if ((__builtin_constant_p(l <= 0) && (l <= 0))) 23376: { 23376: assign_ui(-static_cast(l)); 23376: __gmpz_neg(mp, mp); 23376: } 23376: else 23376: __gmpz_set_si(mp, l); 23376: } 23376: void assign_d (double d) 23376: { 23376: __gmpz_set_d (mp, d); 23376: } 23376: 23376: void init_ui(unsigned long l) 23376: { 23376: if ((__builtin_constant_p(l == 0) && (l == 0))) 23376: __gmpz_init(mp); 23376: else 23376: __gmpz_init_set_ui(mp, l); 23376: } 23376: void init_si(signed long l) 23376: { 23376: if ((__builtin_constant_p(l >= 0) && (l >= 0))) 23376: init_ui(l); 23376: else if ((__builtin_constant_p(l <= 0) && (l <= 0))) 23376: { 23376: init_ui(-static_cast(l)); 23376: __gmpz_neg(mp, mp); 23376: } 23376: else 23376: __gmpz_init_set_si(mp, l); 23376: } 23376: void init_d (double d) 23376: { 23376: __gmpz_init_set_d (mp, d); 23376: } 23376: 23376: public: 23376: mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } 23376: 23376: 23376: __gmp_expr() { __gmpz_init(mp); } 23376: 23376: __gmp_expr(const __gmp_expr &z) { __gmpz_init_set(mp, z.mp); } 23376: 23376: __gmp_expr(__gmp_expr &&z) 23376: { *mp = *z.mp; __gmpz_init(z.mp); } 23376: 23376: template 23376: __gmp_expr(const __gmp_expr &expr) 23376: { __gmpz_init(mp); __gmp_set_expr(mp, expr); } 23376: template 23376: explicit __gmp_expr(const __gmp_expr &expr) 23376: { __gmpz_init(mp); __gmp_set_expr(mp, expr); } 23376: 23376: __gmp_expr(signed char c) { init_si(c); } __gmp_expr(unsigned char c) { init_ui(c); } __gmp_expr(signed int i) { init_si(i); } __gmp_expr(unsigned int i) { init_ui(i); } __gmp_expr(signed short int s) { init_si(s); } __gmp_expr(unsigned short int s) { init_ui(s); } __gmp_expr(signed long int l) { init_si(l); } __gmp_expr(unsigned long int l) { init_ui(l); } __gmp_expr(float f) { init_d(f); } __gmp_expr(double d) { init_d(d); } 23376: 23376: explicit __gmp_expr(const char *s, int base = 0) 23376: { 23376: if (__gmpz_init_set_str (mp, s, base) != 0) 23376: { 23376: __gmpz_clear (mp); 23376: throw std::invalid_argument ("mpz_set_str"); 23376: } 23376: } 23376: explicit __gmp_expr(const std::string &s, int base = 0) 23376: { 23376: if (__gmpz_init_set_str(mp, s.c_str(), base) != 0) 23376: { 23376: __gmpz_clear (mp); 23376: throw std::invalid_argument ("mpz_set_str"); 23376: } 23376: } 23376: 23376: explicit __gmp_expr(mpz_srcptr z) { __gmpz_init_set(mp, z); } 23376: 23376: ~__gmp_expr() { __gmpz_clear(mp); } 23376: 23376: void swap(__gmp_expr& z) noexcept { std::swap(*mp, *z.mp); } 23376: 23376: 23376: __gmp_expr & operator=(const __gmp_expr &z) 23376: { __gmpz_set(mp, z.mp); return *this; } 23376: 23376: __gmp_expr & operator=(__gmp_expr &&z) noexcept 23376: { swap(z); return *this; } 23376: 23376: template 23376: __gmp_expr & operator=(const __gmp_expr &expr) 23376: { __gmp_set_expr(mp, expr); return *this; } 23376: 23376: __gmp_expr & operator=(signed char c) { assign_si(c); return *this; } __gmp_expr & operator=(unsigned char c) { assign_ui(c); return *this; } __gmp_expr & operator=(signed int i) { assign_si(i); return *this; } __gmp_expr & operator=(unsigned int i) { assign_ui(i); return *this; } __gmp_expr & operator=(signed short int s) { assign_si(s); return *this; } __gmp_expr & operator=(unsigned short int s) { assign_ui(s); return *this; } __gmp_expr & operator=(signed long int l) { assign_si(l); return *this; } __gmp_expr & operator=(unsigned long int l) { assign_ui(l); return *this; } __gmp_expr & operator=(float f) { assign_d(f); return *this; } __gmp_expr & operator=(double d) { assign_d(d); return *this; } 23376: 23376: __gmp_expr & operator=(const char *s) 23376: { 23376: if (__gmpz_set_str (mp, s, 0) != 0) 23376: throw std::invalid_argument ("mpz_set_str"); 23376: return *this; 23376: } 23376: __gmp_expr & operator=(const std::string &s) 23376: { 23376: if (__gmpz_set_str(mp, s.c_str(), 0) != 0) 23376: throw std::invalid_argument ("mpz_set_str"); 23376: return *this; 23376: } 23376: 23376: 23376: int set_str(const char *s, int base) 23376: { return __gmpz_set_str(mp, s, base); } 23376: int set_str(const std::string &s, int base) 23376: { return __gmpz_set_str(mp, s.c_str(), base); } 23376: std::string get_str(int base = 10) const 23376: { 23376: __gmp_alloc_cstring temp(__gmpz_get_str(0, base, mp)); 23376: return std::string(temp.str); 23376: } 23376: 23376: 23376: mpz_srcptr __get_mp() const { return mp; } 23376: mpz_ptr __get_mp() { return mp; } 23376: mpz_srcptr get_mpz_t() const { return mp; } 23376: mpz_ptr get_mpz_t() { return mp; } 23376: 23376: signed long int get_si() const { return __gmpz_get_si(mp); } 23376: unsigned long int get_ui() const { return __gmpz_get_ui(mp); } 23376: double get_d() const { return __gmpz_get_d(mp); } 23376: 23376: 23376: 23376: bool fits_sint_p() const { return __gmpz_fits_sint_p(mp); } 23376: bool fits_uint_p() const { return __gmpz_fits_uint_p(mp); } 23376: bool fits_sshort_p() const { return __gmpz_fits_sshort_p(mp); } 23376: bool fits_ushort_p() const { return __gmpz_fits_ushort_p(mp); } 23376: bool fits_slong_p() const { return __gmpz_fits_slong_p(mp); } 23376: bool fits_ulong_p() const { return __gmpz_fits_ulong_p(mp); } 23376: 23376: 23376: 23376: 23376: 23376: explicit operator bool() const { return mp->_mp_size != 0; } 23376: 23376: 23376: 23376: template __gmp_expr & operator+=(const __gmp_expr &); __gmp_expr & operator+=(signed char); __gmp_expr & operator+=(unsigned char); __gmp_expr & operator+=(signed int); __gmp_expr & operator+=(unsigned int); __gmp_expr & operator+=(signed short int); __gmp_expr & operator+=(unsigned short int); __gmp_expr & operator+=(signed long int); __gmp_expr & operator+=(unsigned long int); __gmp_expr & operator+=(float); __gmp_expr & operator+=(double); 23376: template __gmp_expr & operator-=(const __gmp_expr &); __gmp_expr & operator-=(signed char); __gmp_expr & operator-=(unsigned char); __gmp_expr & operator-=(signed int); __gmp_expr & operator-=(unsigned int); __gmp_expr & operator-=(signed short int); __gmp_expr & operator-=(unsigned short int); __gmp_expr & operator-=(signed long int); __gmp_expr & operator-=(unsigned long int); __gmp_expr & operator-=(float); __gmp_expr & operator-=(double); 23376: template __gmp_expr & operator*=(const __gmp_expr &); __gmp_expr & operator*=(signed char); __gmp_expr & operator*=(unsigned char); __gmp_expr & operator*=(signed int); __gmp_expr & operator*=(unsigned int); __gmp_expr & operator*=(signed short int); __gmp_expr & operator*=(unsigned short int); __gmp_expr & operator*=(signed long int); __gmp_expr & operator*=(unsigned long int); __gmp_expr & operator*=(float); __gmp_expr & operator*=(double); 23376: template __gmp_expr & operator/=(const __gmp_expr &); __gmp_expr & operator/=(signed char); __gmp_expr & operator/=(unsigned char); __gmp_expr & operator/=(signed int); __gmp_expr & operator/=(unsigned int); __gmp_expr & operator/=(signed short int); __gmp_expr & operator/=(unsigned short int); __gmp_expr & operator/=(signed long int); __gmp_expr & operator/=(unsigned long int); __gmp_expr & operator/=(float); __gmp_expr & operator/=(double); 23376: template __gmp_expr & operator%=(const __gmp_expr &); __gmp_expr & operator%=(signed char); __gmp_expr & operator%=(unsigned char); __gmp_expr & operator%=(signed int); __gmp_expr & operator%=(unsigned int); __gmp_expr & operator%=(signed short int); __gmp_expr & operator%=(unsigned short int); __gmp_expr & operator%=(signed long int); __gmp_expr & operator%=(unsigned long int); __gmp_expr & operator%=(float); __gmp_expr & operator%=(double); 23376: 23376: template __gmp_expr & operator&=(const __gmp_expr &); __gmp_expr & operator&=(signed char); __gmp_expr & operator&=(unsigned char); __gmp_expr & operator&=(signed int); __gmp_expr & operator&=(unsigned int); __gmp_expr & operator&=(signed short int); __gmp_expr & operator&=(unsigned short int); __gmp_expr & operator&=(signed long int); __gmp_expr & operator&=(unsigned long int); __gmp_expr & operator&=(float); __gmp_expr & operator&=(double); 23376: template __gmp_expr & operator|=(const __gmp_expr &); __gmp_expr & operator|=(signed char); __gmp_expr & operator|=(unsigned char); __gmp_expr & operator|=(signed int); __gmp_expr & operator|=(unsigned int); __gmp_expr & operator|=(signed short int); __gmp_expr & operator|=(unsigned short int); __gmp_expr & operator|=(signed long int); __gmp_expr & operator|=(unsigned long int); __gmp_expr & operator|=(float); __gmp_expr & operator|=(double); 23376: template __gmp_expr & operator^=(const __gmp_expr &); __gmp_expr & operator^=(signed char); __gmp_expr & operator^=(unsigned char); __gmp_expr & operator^=(signed int); __gmp_expr & operator^=(unsigned int); __gmp_expr & operator^=(signed short int); __gmp_expr & operator^=(unsigned short int); __gmp_expr & operator^=(signed long int); __gmp_expr & operator^=(unsigned long int); __gmp_expr & operator^=(float); __gmp_expr & operator^=(double); 23376: 23376: __gmp_expr & operator<<=(mp_bitcnt_t); 23376: __gmp_expr & operator>>=(mp_bitcnt_t); 23376: 23376: inline __gmp_expr & operator++(); inline __gmp_expr operator++(int); 23376: inline __gmp_expr & operator--(); inline __gmp_expr operator--(int); 23376: }; 23376: 23376: typedef __gmp_expr mpz_class; 23376: 23376: 23376: 23376: 23376: template <> 23376: class __gmp_expr 23376: { 23376: private: 23376: typedef mpq_t value_type; 23376: value_type mp; 23376: 23376: 23376: void assign_ui(unsigned long l) { __gmpq_set_ui(mp, l, 1); } 23376: void assign_si(signed long l) 23376: { 23376: if ((__builtin_constant_p(l >= 0) && (l >= 0))) 23376: assign_ui(l); 23376: else 23376: __gmpq_set_si(mp, l, 1); 23376: } 23376: void assign_d (double d) { __gmpq_set_d (mp, d); } 23376: 23376: void init_ui(unsigned long l) { __gmpq_init(mp); get_num() = l; } 23376: void init_si(signed long l) { __gmpq_init(mp); get_num() = l; } 23376: void init_d (double d) { __gmpq_init(mp); assign_d (d); } 23376: 23376: public: 23376: mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } 23376: void canonicalize() { __gmpq_canonicalize(mp); } 23376: 23376: 23376: __gmp_expr() { __gmpq_init(mp); } 23376: 23376: __gmp_expr(const __gmp_expr &q) 23376: { 23376: __gmpz_init_set((&((mp)->_mp_num)), (&((q.mp)->_mp_num))); 23376: __gmpz_init_set((&((mp)->_mp_den)), (&((q.mp)->_mp_den))); 23376: } 23376: 23376: __gmp_expr(__gmp_expr &&q) 23376: { *mp = *q.mp; __gmpq_init(q.mp); } 23376: 23376: template 23376: __gmp_expr(const __gmp_expr &expr) 23376: { __gmpq_init(mp); __gmp_set_expr(mp, expr); } 23376: template 23376: __gmp_expr(const __gmp_expr &expr) 23376: { __gmpq_init(mp); __gmp_set_expr(mp, expr); } 23376: template 23376: explicit __gmp_expr(const __gmp_expr &expr) 23376: { __gmpq_init(mp); __gmp_set_expr(mp, expr); } 23376: 23376: __gmp_expr(signed char c) { init_si(c); } __gmp_expr(unsigned char c) { init_ui(c); } __gmp_expr(signed int i) { init_si(i); } __gmp_expr(unsigned int i) { init_ui(i); } __gmp_expr(signed short int s) { init_si(s); } __gmp_expr(unsigned short int s) { init_ui(s); } __gmp_expr(signed long int l) { init_si(l); } __gmp_expr(unsigned long int l) { init_ui(l); } __gmp_expr(float f) { init_d(f); } __gmp_expr(double d) { init_d(d); } 23376: 23376: explicit __gmp_expr(const char *s, int base = 0) 23376: { 23376: __gmpq_init (mp); 23376: 23376: 23376: if (s == 0) 23376: { 23376: 23376: __gmpz_set_si((&((mp)->_mp_den)), base); 23376: } 23376: else if (__gmpq_set_str(mp, s, base) != 0) 23376: { 23376: __gmpq_clear (mp); 23376: throw std::invalid_argument ("mpq_set_str"); 23376: } 23376: } 23376: explicit __gmp_expr(const std::string &s, int base = 0) 23376: { 23376: __gmpq_init(mp); 23376: if (__gmpq_set_str (mp, s.c_str(), base) != 0) 23376: { 23376: __gmpq_clear (mp); 23376: throw std::invalid_argument ("mpq_set_str"); 23376: } 23376: } 23376: explicit __gmp_expr(mpq_srcptr q) 23376: { 23376: __gmpz_init_set((&((mp)->_mp_num)), (&((q)->_mp_num))); 23376: __gmpz_init_set((&((mp)->_mp_den)), (&((q)->_mp_den))); 23376: } 23376: 23376: __gmp_expr(const mpz_class &num, const mpz_class &den) 23376: { 23376: __gmpz_init_set((&((mp)->_mp_num)), num.get_mpz_t()); 23376: __gmpz_init_set((&((mp)->_mp_den)), den.get_mpz_t()); 23376: } 23376: 23376: ~__gmp_expr() { __gmpq_clear(mp); } 23376: 23376: void swap(__gmp_expr& q) noexcept { std::swap(*mp, *q.mp); } 23376: 23376: 23376: __gmp_expr & operator=(const __gmp_expr &q) 23376: { __gmpq_set(mp, q.mp); return *this; } 23376: 23376: __gmp_expr & operator=(__gmp_expr &&q) noexcept 23376: { swap(q); return *this; } 23376: __gmp_expr & operator=(mpz_class &&z) noexcept 23376: { get_num() = std::move(z); get_den() = 1u; return *this; } 23376: 23376: template 23376: __gmp_expr & operator=(const __gmp_expr &expr) 23376: { __gmp_set_expr(mp, expr); return *this; } 23376: 23376: __gmp_expr & operator=(signed char c) { assign_si(c); return *this; } __gmp_expr & operator=(unsigned char c) { assign_ui(c); return *this; } __gmp_expr & operator=(signed int i) { assign_si(i); return *this; } __gmp_expr & operator=(unsigned int i) { assign_ui(i); return *this; } __gmp_expr & operator=(signed short int s) { assign_si(s); return *this; } __gmp_expr & operator=(unsigned short int s) { assign_ui(s); return *this; } __gmp_expr & operator=(signed long int l) { assign_si(l); return *this; } __gmp_expr & operator=(unsigned long int l) { assign_ui(l); return *this; } __gmp_expr & operator=(float f) { assign_d(f); return *this; } __gmp_expr & operator=(double d) { assign_d(d); return *this; } 23376: 23376: __gmp_expr & operator=(const char *s) 23376: { 23376: if (__gmpq_set_str (mp, s, 0) != 0) 23376: throw std::invalid_argument ("mpq_set_str"); 23376: return *this; 23376: } 23376: __gmp_expr & operator=(const std::string &s) 23376: { 23376: if (__gmpq_set_str(mp, s.c_str(), 0) != 0) 23376: throw std::invalid_argument ("mpq_set_str"); 23376: return *this; 23376: } 23376: 23376: 23376: int set_str(const char *s, int base) 23376: { return __gmpq_set_str(mp, s, base); } 23376: int set_str(const std::string &s, int base) 23376: { return __gmpq_set_str(mp, s.c_str(), base); } 23376: std::string get_str(int base = 10) const 23376: { 23376: __gmp_alloc_cstring temp(__gmpq_get_str(0, base, mp)); 23376: return std::string(temp.str); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const mpz_class & get_num() const 23376: { return reinterpret_cast(*(&((mp)->_mp_num))); } 23376: mpz_class & get_num() 23376: { return reinterpret_cast(*(&((mp)->_mp_num))); } 23376: const mpz_class & get_den() const 23376: { return reinterpret_cast(*(&((mp)->_mp_den))); } 23376: mpz_class & get_den() 23376: { return reinterpret_cast(*(&((mp)->_mp_den))); } 23376: 23376: mpq_srcptr __get_mp() const { return mp; } 23376: mpq_ptr __get_mp() { return mp; } 23376: mpq_srcptr get_mpq_t() const { return mp; } 23376: mpq_ptr get_mpq_t() { return mp; } 23376: 23376: mpz_srcptr get_num_mpz_t() const { return (&((mp)->_mp_num)); } 23376: mpz_ptr get_num_mpz_t() { return (&((mp)->_mp_num)); } 23376: mpz_srcptr get_den_mpz_t() const { return (&((mp)->_mp_den)); } 23376: mpz_ptr get_den_mpz_t() { return (&((mp)->_mp_den)); } 23376: 23376: double get_d() const { return __gmpq_get_d(mp); } 23376: 23376: 23376: explicit operator bool() const { return (&((mp)->_mp_num))->_mp_size != 0; } 23376: 23376: 23376: 23376: template __gmp_expr & operator+=(const __gmp_expr &); __gmp_expr & operator+=(signed char); __gmp_expr & operator+=(unsigned char); __gmp_expr & operator+=(signed int); __gmp_expr & operator+=(unsigned int); __gmp_expr & operator+=(signed short int); __gmp_expr & operator+=(unsigned short int); __gmp_expr & operator+=(signed long int); __gmp_expr & operator+=(unsigned long int); __gmp_expr & operator+=(float); __gmp_expr & operator+=(double); 23376: template __gmp_expr & operator-=(const __gmp_expr &); __gmp_expr & operator-=(signed char); __gmp_expr & operator-=(unsigned char); __gmp_expr & operator-=(signed int); __gmp_expr & operator-=(unsigned int); __gmp_expr & operator-=(signed short int); __gmp_expr & operator-=(unsigned short int); __gmp_expr & operator-=(signed long int); __gmp_expr & operator-=(unsigned long int); __gmp_expr & operator-=(float); __gmp_expr & operator-=(double); 23376: template __gmp_expr & operator*=(const __gmp_expr &); __gmp_expr & operator*=(signed char); __gmp_expr & operator*=(unsigned char); __gmp_expr & operator*=(signed int); __gmp_expr & operator*=(unsigned int); __gmp_expr & operator*=(signed short int); __gmp_expr & operator*=(unsigned short int); __gmp_expr & operator*=(signed long int); __gmp_expr & operator*=(unsigned long int); __gmp_expr & operator*=(float); __gmp_expr & operator*=(double); 23376: template __gmp_expr & operator/=(const __gmp_expr &); __gmp_expr & operator/=(signed char); __gmp_expr & operator/=(unsigned char); __gmp_expr & operator/=(signed int); __gmp_expr & operator/=(unsigned int); __gmp_expr & operator/=(signed short int); __gmp_expr & operator/=(unsigned short int); __gmp_expr & operator/=(signed long int); __gmp_expr & operator/=(unsigned long int); __gmp_expr & operator/=(float); __gmp_expr & operator/=(double); 23376: 23376: __gmp_expr & operator<<=(mp_bitcnt_t); 23376: __gmp_expr & operator>>=(mp_bitcnt_t); 23376: 23376: inline __gmp_expr & operator++(); inline __gmp_expr operator++(int); 23376: inline __gmp_expr & operator--(); inline __gmp_expr operator--(int); 23376: }; 23376: 23376: typedef __gmp_expr mpq_class; 23376: 23376: 23376: 23376: 23376: template <> 23376: class __gmp_expr 23376: { 23376: private: 23376: typedef mpf_t value_type; 23376: value_type mp; 23376: 23376: 23376: void assign_ui(unsigned long l) { __gmpf_set_ui(mp, l); } 23376: void assign_si(signed long l) 23376: { 23376: if ((__builtin_constant_p(l >= 0) && (l >= 0))) 23376: assign_ui(l); 23376: else 23376: __gmpf_set_si(mp, l); 23376: } 23376: void assign_d (double d) { __gmpf_set_d (mp, d); } 23376: 23376: void init_ui(unsigned long l) 23376: { 23376: if ((__builtin_constant_p(l == 0) && (l == 0))) 23376: __gmpf_init(mp); 23376: else 23376: __gmpf_init_set_ui(mp, l); 23376: } 23376: void init_si(signed long l) 23376: { 23376: if ((__builtin_constant_p(l >= 0) && (l >= 0))) 23376: init_ui(l); 23376: else 23376: __gmpf_init_set_si(mp, l); 23376: } 23376: void init_d (double d) { __gmpf_init_set_d (mp, d); } 23376: 23376: public: 23376: mp_bitcnt_t get_prec() const { return __gmpf_get_prec(mp); } 23376: 23376: void set_prec(mp_bitcnt_t prec) { __gmpf_set_prec(mp, prec); } 23376: void set_prec_raw(mp_bitcnt_t prec) { __gmpf_set_prec_raw(mp, prec); } 23376: 23376: 23376: __gmp_expr() { __gmpf_init(mp); } 23376: 23376: __gmp_expr(const __gmp_expr &f) 23376: { __gmpf_init2(mp, f.get_prec()); __gmpf_set(mp, f.mp); } 23376: 23376: __gmp_expr(__gmp_expr &&f) 23376: { *mp = *f.mp; __gmpf_init2(f.mp, get_prec()); } 23376: 23376: __gmp_expr(const __gmp_expr &f, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set(mp, f.mp); } 23376: template 23376: __gmp_expr(const __gmp_expr &expr) 23376: { __gmpf_init2(mp, expr.get_prec()); __gmp_set_expr(mp, expr); } 23376: template 23376: __gmp_expr(const __gmp_expr &expr, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmp_set_expr(mp, expr); } 23376: 23376: __gmp_expr(signed char c) { init_si(c); } __gmp_expr(unsigned char c) { init_ui(c); } __gmp_expr(signed int i) { init_si(i); } __gmp_expr(unsigned int i) { init_ui(i); } __gmp_expr(signed short int s) { init_si(s); } __gmp_expr(unsigned short int s) { init_ui(s); } __gmp_expr(signed long int l) { init_si(l); } __gmp_expr(unsigned long int l) { init_ui(l); } __gmp_expr(float f) { init_d(f); } __gmp_expr(double d) { init_d(d); } 23376: 23376: __gmp_expr(signed char c, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_si(mp, c); } 23376: __gmp_expr(unsigned char c, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_ui(mp, c); } 23376: 23376: __gmp_expr(signed int i, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_si(mp, i); } 23376: __gmp_expr(unsigned int i, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_ui(mp, i); } 23376: 23376: __gmp_expr(signed short int s, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_si(mp, s); } 23376: __gmp_expr(unsigned short int s, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_ui(mp, s); } 23376: 23376: __gmp_expr(signed long int l, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_si(mp, l); } 23376: __gmp_expr(unsigned long int l, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_ui(mp, l); } 23376: 23376: __gmp_expr(float f, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_d(mp, f); } 23376: __gmp_expr(double d, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set_d(mp, d); } 23376: 23376: 23376: 23376: 23376: explicit __gmp_expr(const char *s) 23376: { 23376: if (__gmpf_init_set_str (mp, s, 0) != 0) 23376: { 23376: __gmpf_clear (mp); 23376: throw std::invalid_argument ("mpf_set_str"); 23376: } 23376: } 23376: __gmp_expr(const char *s, mp_bitcnt_t prec, int base = 0) 23376: { 23376: __gmpf_init2(mp, prec); 23376: if (__gmpf_set_str(mp, s, base) != 0) 23376: { 23376: __gmpf_clear (mp); 23376: throw std::invalid_argument ("mpf_set_str"); 23376: } 23376: } 23376: explicit __gmp_expr(const std::string &s) 23376: { 23376: if (__gmpf_init_set_str(mp, s.c_str(), 0) != 0) 23376: { 23376: __gmpf_clear (mp); 23376: throw std::invalid_argument ("mpf_set_str"); 23376: } 23376: } 23376: __gmp_expr(const std::string &s, mp_bitcnt_t prec, int base = 0) 23376: { 23376: __gmpf_init2(mp, prec); 23376: if (__gmpf_set_str(mp, s.c_str(), base) != 0) 23376: { 23376: __gmpf_clear (mp); 23376: throw std::invalid_argument ("mpf_set_str"); 23376: } 23376: } 23376: 23376: explicit __gmp_expr(mpf_srcptr f) 23376: { __gmpf_init2(mp, __gmpf_get_prec(f)); __gmpf_set(mp, f); } 23376: __gmp_expr(mpf_srcptr f, mp_bitcnt_t prec) 23376: { __gmpf_init2(mp, prec); __gmpf_set(mp, f); } 23376: 23376: ~__gmp_expr() { __gmpf_clear(mp); } 23376: 23376: void swap(__gmp_expr& f) noexcept { std::swap(*mp, *f.mp); } 23376: 23376: 23376: __gmp_expr & operator=(const __gmp_expr &f) 23376: { __gmpf_set(mp, f.mp); return *this; } 23376: 23376: __gmp_expr & operator=(__gmp_expr &&f) noexcept 23376: { swap(f); return *this; } 23376: 23376: template 23376: __gmp_expr & operator=(const __gmp_expr &expr) 23376: { __gmp_set_expr(mp, expr); return *this; } 23376: 23376: __gmp_expr & operator=(signed char c) { assign_si(c); return *this; } __gmp_expr & operator=(unsigned char c) { assign_ui(c); return *this; } __gmp_expr & operator=(signed int i) { assign_si(i); return *this; } __gmp_expr & operator=(unsigned int i) { assign_ui(i); return *this; } __gmp_expr & operator=(signed short int s) { assign_si(s); return *this; } __gmp_expr & operator=(unsigned short int s) { assign_ui(s); return *this; } __gmp_expr & operator=(signed long int l) { assign_si(l); return *this; } __gmp_expr & operator=(unsigned long int l) { assign_ui(l); return *this; } __gmp_expr & operator=(float f) { assign_d(f); return *this; } __gmp_expr & operator=(double d) { assign_d(d); return *this; } 23376: 23376: __gmp_expr & operator=(const char *s) 23376: { 23376: if (__gmpf_set_str (mp, s, 0) != 0) 23376: throw std::invalid_argument ("mpf_set_str"); 23376: return *this; 23376: } 23376: __gmp_expr & operator=(const std::string &s) 23376: { 23376: if (__gmpf_set_str(mp, s.c_str(), 0) != 0) 23376: throw std::invalid_argument ("mpf_set_str"); 23376: return *this; 23376: } 23376: 23376: 23376: int set_str(const char *s, int base) 23376: { return __gmpf_set_str(mp, s, base); } 23376: int set_str(const std::string &s, int base) 23376: { return __gmpf_set_str(mp, s.c_str(), base); } 23376: std::string get_str(mp_exp_t &expo, int base = 10, size_t size = 0) const 23376: { 23376: __gmp_alloc_cstring temp(__gmpf_get_str(0, &expo, base, size, mp)); 23376: return std::string(temp.str); 23376: } 23376: 23376: 23376: mpf_srcptr __get_mp() const { return mp; } 23376: mpf_ptr __get_mp() { return mp; } 23376: mpf_srcptr get_mpf_t() const { return mp; } 23376: mpf_ptr get_mpf_t() { return mp; } 23376: 23376: signed long int get_si() const { return __gmpf_get_si(mp); } 23376: unsigned long int get_ui() const { return __gmpf_get_ui(mp); } 23376: double get_d() const { return __gmpf_get_d(mp); } 23376: 23376: 23376: 23376: bool fits_sint_p() const { return __gmpf_fits_sint_p(mp); } 23376: bool fits_uint_p() const { return __gmpf_fits_uint_p(mp); } 23376: bool fits_sshort_p() const { return __gmpf_fits_sshort_p(mp); } 23376: bool fits_ushort_p() const { return __gmpf_fits_ushort_p(mp); } 23376: bool fits_slong_p() const { return __gmpf_fits_slong_p(mp); } 23376: bool fits_ulong_p() const { return __gmpf_fits_ulong_p(mp); } 23376: 23376: 23376: 23376: 23376: 23376: explicit operator bool() const { return mp->_mp_size != 0; } 23376: 23376: 23376: 23376: template __gmp_expr & operator+=(const __gmp_expr &); __gmp_expr & operator+=(signed char); __gmp_expr & operator+=(unsigned char); __gmp_expr & operator+=(signed int); __gmp_expr & operator+=(unsigned int); __gmp_expr & operator+=(signed short int); __gmp_expr & operator+=(unsigned short int); __gmp_expr & operator+=(signed long int); __gmp_expr & operator+=(unsigned long int); __gmp_expr & operator+=(float); __gmp_expr & operator+=(double); 23376: template __gmp_expr & operator-=(const __gmp_expr &); __gmp_expr & operator-=(signed char); __gmp_expr & operator-=(unsigned char); __gmp_expr & operator-=(signed int); __gmp_expr & operator-=(unsigned int); __gmp_expr & operator-=(signed short int); __gmp_expr & operator-=(unsigned short int); __gmp_expr & operator-=(signed long int); __gmp_expr & operator-=(unsigned long int); __gmp_expr & operator-=(float); __gmp_expr & operator-=(double); 23376: template __gmp_expr & operator*=(const __gmp_expr &); __gmp_expr & operator*=(signed char); __gmp_expr & operator*=(unsigned char); __gmp_expr & operator*=(signed int); __gmp_expr & operator*=(unsigned int); __gmp_expr & operator*=(signed short int); __gmp_expr & operator*=(unsigned short int); __gmp_expr & operator*=(signed long int); __gmp_expr & operator*=(unsigned long int); __gmp_expr & operator*=(float); __gmp_expr & operator*=(double); 23376: template __gmp_expr & operator/=(const __gmp_expr &); __gmp_expr & operator/=(signed char); __gmp_expr & operator/=(unsigned char); __gmp_expr & operator/=(signed int); __gmp_expr & operator/=(unsigned int); __gmp_expr & operator/=(signed short int); __gmp_expr & operator/=(unsigned short int); __gmp_expr & operator/=(signed long int); __gmp_expr & operator/=(unsigned long int); __gmp_expr & operator/=(float); __gmp_expr & operator/=(double); 23376: 23376: __gmp_expr & operator<<=(mp_bitcnt_t); 23376: __gmp_expr & operator>>=(mp_bitcnt_t); 23376: 23376: inline __gmp_expr & operator++(); inline __gmp_expr operator++(int); 23376: inline __gmp_expr & operator--(); inline __gmp_expr operator--(int); 23376: }; 23376: 23376: typedef __gmp_expr mpf_class; 23376: 23376: 23376: 23376: 23376: 23376: 23376: inline mpz_class operator"" _mpz(const char* s) 23376: { 23376: return mpz_class(s); 23376: } 23376: 23376: inline mpq_class operator"" _mpq(const char* s) 23376: { 23376: mpq_class q; 23376: q.get_num() = s; 23376: return q; 23376: } 23376: 23376: inline mpf_class operator"" _mpf(const char* s) 23376: { 23376: return mpf_class(s); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline std::ostream & operator<< 23376: (std::ostream &o, const __gmp_expr &expr) 23376: { 23376: __gmp_expr const& temp(expr); 23376: return o << temp.__get_mp(); 23376: } 23376: 23376: template 23376: inline std::istream & operator>>(std::istream &i, __gmp_expr &expr) 23376: { 23376: return i >> expr.__get_mp(); 23376: } 23376: # 2055 "/usr/include/gmpxx.h" 3 4 23376: inline void __gmp_set_expr(mpz_ptr z, const mpz_class &w) 23376: { 23376: __gmpz_set(z, w.get_mpz_t()); 23376: } 23376: 23376: template 23376: inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) 23376: { 23376: expr.eval(z); 23376: } 23376: 23376: template 23376: inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) 23376: { 23376: mpq_class const& temp(expr); 23376: __gmpz_set_q(z, temp.get_mpq_t()); 23376: } 23376: 23376: template 23376: inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) 23376: { 23376: mpf_class const& temp(expr); 23376: __gmpz_set_f(z, temp.get_mpf_t()); 23376: } 23376: 23376: inline void __gmp_set_expr(mpq_ptr q, const mpz_class &z) 23376: { 23376: __gmpq_set_z(q, z.get_mpz_t()); 23376: } 23376: 23376: template 23376: inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) 23376: { 23376: __gmp_set_expr((&((q)->_mp_num)), expr); 23376: __gmpz_set_ui((&((q)->_mp_den)), 1); 23376: } 23376: 23376: inline void __gmp_set_expr(mpq_ptr q, const mpq_class &r) 23376: { 23376: __gmpq_set(q, r.get_mpq_t()); 23376: } 23376: 23376: template 23376: inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) 23376: { 23376: expr.eval(q); 23376: } 23376: 23376: template 23376: inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) 23376: { 23376: mpf_class const& temp(expr); 23376: __gmpq_set_f(q, temp.get_mpf_t()); 23376: } 23376: 23376: template 23376: inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) 23376: { 23376: mpz_class const& temp(expr); 23376: __gmpf_set_z(f, temp.get_mpz_t()); 23376: } 23376: 23376: template 23376: inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) 23376: { 23376: mpq_class const& temp(expr); 23376: __gmpf_set_q(f, temp.get_mpq_t()); 23376: } 23376: 23376: inline void __gmp_set_expr(mpf_ptr f, const mpf_class &g) 23376: { 23376: __gmpf_set(f, g.get_mpf_t()); 23376: } 23376: 23376: template 23376: inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) 23376: { 23376: expr.eval(f); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: class __gmp_temp 23376: { 23376: __gmp_expr val; 23376: public: 23376: template 23376: __gmp_temp(U const& u, V) : val (u) {} 23376: typename __gmp_resolve_expr::srcptr_type 23376: __get_mp() const { return val.__get_mp(); } 23376: }; 23376: 23376: template <> 23376: class __gmp_temp 23376: { 23376: mpf_class val; 23376: public: 23376: template 23376: __gmp_temp(U const& u, mpf_ptr res) : val (u, __gmpf_get_prec(res)) {} 23376: mpf_srcptr __get_mp() const { return val.__get_mp(); } 23376: }; 23376: # 2178 "/usr/include/gmpxx.h" 3 4 23376: template 23376: class __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val_type; 23376: 23376: __gmp_unary_expr expr; 23376: public: 23376: explicit __gmp_expr(const val_type &val) : expr(val) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { Op::eval(p, expr.val.__get_mp()); } 23376: const val_type & get_val() const { return expr.val; } 23376: mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class __gmp_expr > 23376: { 23376: private: 23376: typedef U val_type; 23376: 23376: __gmp_unary_expr expr; 23376: public: 23376: explicit __gmp_expr(const val_type &val) : expr(val) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { Op::eval(p, expr.val); } 23376: const val_type & get_val() const { return expr.val; } 23376: mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val_type; 23376: 23376: __gmp_unary_expr expr; 23376: public: 23376: explicit __gmp_expr(const val_type &val) : expr(val) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { expr.val.eval(p); Op::eval(p, p); } 23376: const val_type & get_val() const { return expr.val; } 23376: mp_bitcnt_t get_prec() const { return expr.val.get_prec(); } 23376: }; 23376: # 2242 "/usr/include/gmpxx.h" 3 4 23376: template 23376: class __gmp_expr 23376: , __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { Op::eval(p, expr.val1.__get_mp(), expr.val2.__get_mp()); } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const 23376: { 23376: mp_bitcnt_t prec1 = expr.val1.get_prec(), 23376: prec2 = expr.val2.get_prec(); 23376: return (prec1 > prec2) ? prec1 : prec2; 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class __gmp_expr, U, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef U val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { Op::eval(p, expr.val1.__get_mp(), expr.val2); } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } 23376: }; 23376: 23376: template 23376: class __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef U val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { Op::eval(p, expr.val1, expr.val2.__get_mp()); } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class __gmp_expr 23376: , __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { 23376: if(p != expr.val1.__get_mp()) 23376: { 23376: __gmp_set_expr(p, expr.val2); 23376: Op::eval(p, expr.val1.__get_mp(), p); 23376: } 23376: else 23376: { 23376: __gmp_temp temp(expr.val2, p); 23376: Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); 23376: } 23376: } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const 23376: { 23376: mp_bitcnt_t prec1 = expr.val1.get_prec(), 23376: prec2 = expr.val2.get_prec(); 23376: return (prec1 > prec2) ? prec1 : prec2; 23376: } 23376: }; 23376: 23376: template 23376: class __gmp_expr 23376: , __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { 23376: if(p != expr.val2.__get_mp()) 23376: { 23376: __gmp_set_expr(p, expr.val1); 23376: Op::eval(p, p, expr.val2.__get_mp()); 23376: } 23376: else 23376: { 23376: __gmp_temp temp(expr.val1, p); 23376: Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); 23376: } 23376: } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const 23376: { 23376: mp_bitcnt_t prec1 = expr.val1.get_prec(), 23376: prec2 = expr.val2.get_prec(); 23376: return (prec1 > prec2) ? prec1 : prec2; 23376: } 23376: }; 23376: 23376: template 23376: class __gmp_expr 23376: , __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { 23376: if(p != expr.val1.__get_mp()) 23376: { 23376: __gmp_set_expr(p, expr.val2); 23376: Op::eval(p, expr.val1.__get_mp(), p); 23376: } 23376: else 23376: { 23376: __gmp_temp temp(expr.val2, p); 23376: Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); 23376: } 23376: } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const 23376: { 23376: mp_bitcnt_t prec1 = expr.val1.get_prec(), 23376: prec2 = expr.val2.get_prec(); 23376: return (prec1 > prec2) ? prec1 : prec2; 23376: } 23376: }; 23376: 23376: template 23376: class __gmp_expr 23376: , __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { 23376: if(p != expr.val2.__get_mp()) 23376: { 23376: __gmp_set_expr(p, expr.val1); 23376: Op::eval(p, p, expr.val2.__get_mp()); 23376: } 23376: else 23376: { 23376: __gmp_temp temp(expr.val1, p); 23376: Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); 23376: } 23376: } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const 23376: { 23376: mp_bitcnt_t prec1 = expr.val1.get_prec(), 23376: prec2 = expr.val2.get_prec(); 23376: return (prec1 > prec2) ? prec1 : prec2; 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class __gmp_expr, V, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef V val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { 23376: expr.val1.eval(p); 23376: Op::eval(p, p, expr.val2); 23376: } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const { return expr.val1.get_prec(); } 23376: }; 23376: 23376: template 23376: class __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef U val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { 23376: expr.val2.eval(p); 23376: Op::eval(p, expr.val1, p); 23376: } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const { return expr.val2.get_prec(); } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class __gmp_expr 23376: , __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { 23376: __gmp_temp temp2(expr.val2, p); 23376: expr.val1.eval(p); 23376: Op::eval(p, p, temp2.__get_mp()); 23376: } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const 23376: { 23376: mp_bitcnt_t prec1 = expr.val1.get_prec(), 23376: prec2 = expr.val2.get_prec(); 23376: return (prec1 > prec2) ? prec1 : prec2; 23376: } 23376: }; 23376: 23376: template 23376: class __gmp_expr 23376: , __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { 23376: __gmp_temp temp1(expr.val1, p); 23376: expr.val2.eval(p); 23376: Op::eval(p, temp1.__get_mp(), p); 23376: } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const 23376: { 23376: mp_bitcnt_t prec1 = expr.val1.get_prec(), 23376: prec2 = expr.val2.get_prec(); 23376: return (prec1 > prec2) ? prec1 : prec2; 23376: } 23376: }; 23376: 23376: template 23376: class __gmp_expr 23376: , __gmp_expr, Op> > 23376: { 23376: private: 23376: typedef __gmp_expr val1_type; 23376: typedef __gmp_expr val2_type; 23376: 23376: __gmp_binary_expr expr; 23376: public: 23376: __gmp_expr(const val1_type &val1, const val2_type &val2) 23376: : expr(val1, val2) { } 23376: void eval(typename __gmp_resolve_expr::ptr_type p) const 23376: { 23376: __gmp_temp temp2(expr.val2, p); 23376: expr.val1.eval(p); 23376: Op::eval(p, p, temp2.__get_mp()); 23376: } 23376: const val1_type & get_val1() const { return expr.val1; } 23376: const val2_type & get_val2() const { return expr.val2; } 23376: mp_bitcnt_t get_prec() const 23376: { 23376: mp_bitcnt_t prec1 = expr.val1.get_prec(), 23376: prec2 = expr.val2.get_prec(); 23376: return (prec1 > prec2) ? prec1 : prec2; 23376: } 23376: }; 23376: # 2761 "/usr/include/gmpxx.h" 3 4 23376: template <> class __gmp_expr > { private: typedef mpz_class val1_type; typedef mpq_class val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { __gmp_binary_plus::eval(q, expr.val1.get_mpz_t(), expr.val2.get_mpq_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template <> class __gmp_expr > { private: typedef mpq_class val1_type; typedef mpz_class val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { __gmp_binary_plus::eval(q, expr.val1.get_mpq_t(), expr.val2.get_mpz_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr , __gmp_binary_plus> > { private: typedef mpz_class val1_type; typedef __gmp_expr val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpq_class temp(expr.val2); __gmp_binary_plus::eval(q, expr.val1.get_mpz_t(), temp.get_mpq_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr , __gmp_binary_plus> > { private: typedef mpq_class val1_type; typedef __gmp_expr val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpz_class temp(expr.val2); __gmp_binary_plus::eval(q, expr.val1.get_mpq_t(), temp.get_mpz_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr , mpq_class, __gmp_binary_plus> > { private: typedef __gmp_expr val1_type; typedef mpq_class val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpz_class temp(expr.val1); __gmp_binary_plus::eval(q, temp.get_mpz_t(), expr.val2.get_mpq_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr , mpz_class, __gmp_binary_plus> > { private: typedef __gmp_expr val1_type; typedef mpz_class val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpq_class temp(expr.val1); __gmp_binary_plus::eval(q, temp.get_mpq_t(), expr.val2.get_mpz_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr, __gmp_expr, __gmp_binary_plus> > { private: typedef __gmp_expr val1_type; typedef __gmp_expr val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpz_class temp1(expr.val1); expr.val2.eval(q); __gmp_binary_plus::eval(q, temp1.get_mpz_t(), q); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr, __gmp_expr, __gmp_binary_plus> > { private: typedef __gmp_expr val1_type; typedef __gmp_expr val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpz_class temp2(expr.val2); expr.val1.eval(q); __gmp_binary_plus::eval(q, q, temp2.get_mpz_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; 23376: template <> class __gmp_expr > { private: typedef mpz_class val1_type; typedef mpq_class val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { __gmp_binary_minus::eval(q, expr.val1.get_mpz_t(), expr.val2.get_mpq_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template <> class __gmp_expr > { private: typedef mpq_class val1_type; typedef mpz_class val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { __gmp_binary_minus::eval(q, expr.val1.get_mpq_t(), expr.val2.get_mpz_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr , __gmp_binary_minus> > { private: typedef mpz_class val1_type; typedef __gmp_expr val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpq_class temp(expr.val2); __gmp_binary_minus::eval(q, expr.val1.get_mpz_t(), temp.get_mpq_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr , __gmp_binary_minus> > { private: typedef mpq_class val1_type; typedef __gmp_expr val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpz_class temp(expr.val2); __gmp_binary_minus::eval(q, expr.val1.get_mpq_t(), temp.get_mpz_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr , mpq_class, __gmp_binary_minus> > { private: typedef __gmp_expr val1_type; typedef mpq_class val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpz_class temp(expr.val1); __gmp_binary_minus::eval(q, temp.get_mpz_t(), expr.val2.get_mpq_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr , mpz_class, __gmp_binary_minus> > { private: typedef __gmp_expr val1_type; typedef mpz_class val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpq_class temp(expr.val1); __gmp_binary_minus::eval(q, temp.get_mpq_t(), expr.val2.get_mpz_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr, __gmp_expr, __gmp_binary_minus> > { private: typedef __gmp_expr val1_type; typedef __gmp_expr val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpz_class temp1(expr.val1); expr.val2.eval(q); __gmp_binary_minus::eval(q, temp1.get_mpz_t(), q); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; template class __gmp_expr, __gmp_expr, __gmp_binary_minus> > { private: typedef __gmp_expr val1_type; typedef __gmp_expr val2_type; __gmp_binary_expr expr; public: __gmp_expr(const val1_type &val1, const val2_type &val2) : expr(val1, val2) { } void eval(mpq_ptr q) const { mpz_class temp2(expr.val2); expr.val1.eval(q); __gmp_binary_minus::eval(q, q, temp2.get_mpz_t()); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } }; 23376: # 3054 "/usr/include/gmpxx.h" 3 4 23376: template inline __gmp_expr, __gmp_unary_plus> > operator+(const __gmp_expr &expr) { return __gmp_expr, __gmp_unary_plus> >(expr); } 23376: template inline __gmp_expr, __gmp_unary_minus> > operator-(const __gmp_expr &expr) { return __gmp_expr, __gmp_unary_minus> >(expr); } 23376: template inline __gmp_expr, __gmp_unary_com> > operator~(const __gmp_expr &expr) { return __gmp_expr, __gmp_unary_com> >(expr); } 23376: 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_plus> > operator+(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_plus> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_binary_plus> > operator+(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_plus> > operator+(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_plus> > operator+(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_plus> > operator+(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_plus> > operator+(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_plus> > operator+(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_plus> > operator+(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_plus> > operator+(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_plus> > operator+(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_plus> > operator+(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_binary_plus> >(expr, t); } template inline __gmp_expr , __gmp_binary_plus> > operator+(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_plus> >(t, expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_minus> > operator-(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_minus> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_binary_minus> > operator-(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_minus> > operator-(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_minus> > operator-(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_minus> > operator-(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_minus> > operator-(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_minus> > operator-(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_minus> > operator-(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_minus> > operator-(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_minus> > operator-(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_minus> > operator-(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_binary_minus> >(expr, t); } template inline __gmp_expr , __gmp_binary_minus> > operator-(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_minus> >(t, expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_multiplies> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_multiplies> > operator*(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_binary_multiplies> >(expr, t); } template inline __gmp_expr , __gmp_binary_multiplies> > operator*(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_multiplies> >(t, expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_divides> > operator/(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_divides> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_binary_divides> > operator/(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_divides> > operator/(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_divides> > operator/(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_divides> > operator/(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_divides> > operator/(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_divides> > operator/(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_divides> > operator/(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_divides> > operator/(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_divides> > operator/(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_divides> > operator/(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_binary_divides> >(expr, t); } template inline __gmp_expr , __gmp_binary_divides> > operator/(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_divides> >(t, expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_modulus> > operator%(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_modulus> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_modulus> > operator%(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_binary_modulus> >(expr, t); } template inline __gmp_expr , __gmp_binary_modulus> > operator%(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_modulus> >(t, expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_and> > operator&(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_and> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_binary_and> > operator&(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_and> > operator&(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_and> > operator&(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_and> > operator&(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_and> > operator&(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_and> > operator&(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_and> > operator&(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_and> > operator&(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_and> > operator&(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_and> > operator&(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_binary_and> >(expr, t); } template inline __gmp_expr , __gmp_binary_and> > operator&(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_and> >(t, expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_ior> > operator|(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_ior> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_binary_ior> > operator|(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_ior> > operator|(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_ior> > operator|(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_ior> > operator|(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_ior> > operator|(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_ior> > operator|(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_ior> > operator|(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_ior> > operator|(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_ior> > operator|(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_ior> > operator|(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_binary_ior> >(expr, t); } template inline __gmp_expr , __gmp_binary_ior> > operator|(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_ior> >(t, expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_xor> > operator^(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_xor> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_binary_xor> > operator^(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_xor> > operator^(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_xor> > operator^(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_xor> > operator^(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_xor> > operator^(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_xor> > operator^(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_binary_xor> > operator^(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_binary_xor> > operator^(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_xor> > operator^(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } template inline __gmp_expr , double, __gmp_binary_xor> > operator^(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_binary_xor> >(expr, t); } template inline __gmp_expr , __gmp_binary_xor> > operator^(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_binary_xor> >(t, expr); } 23376: 23376: template inline __gmp_expr , mp_bitcnt_t, __gmp_binary_lshift> > operator<<(const __gmp_expr &expr, mp_bitcnt_t l) { return __gmp_expr, mp_bitcnt_t, __gmp_binary_lshift> >(expr, l); } 23376: template inline __gmp_expr , mp_bitcnt_t, __gmp_binary_rshift> > operator>>(const __gmp_expr &expr, mp_bitcnt_t l) { return __gmp_expr, mp_bitcnt_t, __gmp_binary_rshift> >(expr, l); } 23376: 23376: template inline bool operator==(const __gmp_expr &expr1, const __gmp_expr &expr2) { __gmp_expr const& temp1(expr1); __gmp_expr const& temp2(expr2); return __gmp_binary_equal::eval(temp1.__get_mp(), temp2.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, signed char t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(signed char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, unsigned char t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(unsigned char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, signed int t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(signed int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, unsigned int t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(unsigned int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, signed short int t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(signed short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, unsigned short int t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(unsigned short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, signed long int t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(signed long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, unsigned long int t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(unsigned long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, float t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(float t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator==(const __gmp_expr &expr, double t) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator==(double t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } 23376: template inline bool operator!=(const __gmp_expr &expr1, const __gmp_expr &expr2) { __gmp_expr const& temp1(expr1); __gmp_expr const& temp2(expr2); return ! __gmp_binary_equal::eval(temp1.__get_mp(), temp2.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, signed char t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(signed char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, unsigned char t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(unsigned char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, signed int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(signed int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, unsigned int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(unsigned int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, signed short int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(signed short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, unsigned short int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(unsigned short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, signed long int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(signed long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, unsigned long int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(unsigned long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, float t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(float t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } template inline bool operator!=(const __gmp_expr &expr, double t) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator!=(double t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_equal::eval(static_cast(t), temp.__get_mp()); } 23376: template inline bool operator<(const __gmp_expr &expr1, const __gmp_expr &expr2) { __gmp_expr const& temp1(expr1); __gmp_expr const& temp2(expr2); return __gmp_binary_less::eval(temp1.__get_mp(), temp2.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, signed char t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(signed char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, unsigned char t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(unsigned char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, signed int t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(signed int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, unsigned int t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(unsigned int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, signed short int t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(signed short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, unsigned short int t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(unsigned short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, signed long int t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(signed long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, unsigned long int t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(unsigned long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, float t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(float t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<(const __gmp_expr &expr, double t) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<(double t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } 23376: template inline bool operator<=(const __gmp_expr &expr1, const __gmp_expr &expr2) { __gmp_expr const& temp1(expr1); __gmp_expr const& temp2(expr2); return ! __gmp_binary_greater::eval(temp1.__get_mp(), temp2.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, signed char t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(signed char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, unsigned char t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(unsigned char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, signed int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(signed int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, unsigned int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(unsigned int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, signed short int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(signed short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, unsigned short int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(unsigned short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, signed long int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(signed long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, unsigned long int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(unsigned long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, float t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(float t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator<=(const __gmp_expr &expr, double t) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator<=(double t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } 23376: template inline bool operator>(const __gmp_expr &expr1, const __gmp_expr &expr2) { __gmp_expr const& temp1(expr1); __gmp_expr const& temp2(expr2); return __gmp_binary_greater::eval(temp1.__get_mp(), temp2.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, signed char t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(signed char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, unsigned char t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(unsigned char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, signed int t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(signed int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, unsigned int t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(unsigned int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, signed short int t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(signed short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, unsigned short int t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(unsigned short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, signed long int t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(signed long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, unsigned long int t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(unsigned long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, float t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(float t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>(const __gmp_expr &expr, double t) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>(double t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_binary_greater::eval(static_cast(t), temp.__get_mp()); } 23376: template inline bool operator>=(const __gmp_expr &expr1, const __gmp_expr &expr2) { __gmp_expr const& temp1(expr1); __gmp_expr const& temp2(expr2); return ! __gmp_binary_less::eval(temp1.__get_mp(), temp2.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, signed char t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(signed char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, unsigned char t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(unsigned char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, signed int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(signed int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, unsigned int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(unsigned int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, signed short int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(signed short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, unsigned short int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(unsigned short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, signed long int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(signed long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, unsigned long int t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(unsigned long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, float t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(float t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } template inline bool operator>=(const __gmp_expr &expr, double t) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(temp.__get_mp(), static_cast(t)); } template inline bool operator>=(double t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return ! __gmp_binary_less::eval(static_cast(t), temp.__get_mp()); } 23376: 23376: template inline __gmp_expr, __gmp_abs_function> > abs(const __gmp_expr &expr) { return __gmp_expr, __gmp_abs_function> >(expr); } 23376: template inline __gmp_expr, __gmp_trunc_function> > trunc(const __gmp_expr &expr) { return __gmp_expr, __gmp_trunc_function> >(expr); } 23376: template inline __gmp_expr, __gmp_floor_function> > floor(const __gmp_expr &expr) { return __gmp_expr, __gmp_floor_function> >(expr); } 23376: template inline __gmp_expr, __gmp_ceil_function> > ceil(const __gmp_expr &expr) { return __gmp_expr, __gmp_ceil_function> >(expr); } 23376: template inline __gmp_expr, __gmp_sqrt_function> > sqrt(const __gmp_expr &expr) { return __gmp_expr, __gmp_sqrt_function> >(expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_hypot_function> > hypot(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_hypot_function> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_hypot_function> > hypot(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_hypot_function> > hypot(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_hypot_function> > hypot(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_hypot_function> > hypot(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_hypot_function> > hypot(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_hypot_function> > hypot(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_hypot_function> > hypot(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_hypot_function> > hypot(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } template inline __gmp_expr , double, __gmp_hypot_function> > hypot(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } template inline __gmp_expr , double, __gmp_hypot_function> > hypot(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_hypot_function> >(expr, t); } template inline __gmp_expr , __gmp_hypot_function> > hypot(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_hypot_function> >(t, expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_gcd_function> > gcd(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_gcd_function> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_gcd_function> > gcd(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_gcd_function> > gcd(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_gcd_function> > gcd(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_gcd_function> > gcd(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_gcd_function> > gcd(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_gcd_function> > gcd(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_gcd_function> > gcd(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_gcd_function> > gcd(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } template inline __gmp_expr , double, __gmp_gcd_function> > gcd(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } template inline __gmp_expr , double, __gmp_gcd_function> > gcd(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_gcd_function> >(expr, t); } template inline __gmp_expr , __gmp_gcd_function> > gcd(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_gcd_function> >(t, expr); } 23376: template inline __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_lcm_function> > lcm(const __gmp_expr &expr1, const __gmp_expr &expr2) { return __gmp_expr::value_type, __gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_lcm_function> > (expr1, expr2); } template inline __gmp_expr , signed long int, __gmp_lcm_function> > lcm(const __gmp_expr &expr, signed char t) { return __gmp_expr , signed long int, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(signed char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_lcm_function> > lcm(const __gmp_expr &expr, unsigned char t) { return __gmp_expr , unsigned long int, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(unsigned char t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_lcm_function> > lcm(const __gmp_expr &expr, signed int t) { return __gmp_expr , signed long int, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(signed int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_lcm_function> > lcm(const __gmp_expr &expr, unsigned int t) { return __gmp_expr , unsigned long int, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(unsigned int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_lcm_function> > lcm(const __gmp_expr &expr, signed short int t) { return __gmp_expr , signed long int, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(signed short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_lcm_function> > lcm(const __gmp_expr &expr, unsigned short int t) { return __gmp_expr , unsigned long int, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(unsigned short int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } template inline __gmp_expr , signed long int, __gmp_lcm_function> > lcm(const __gmp_expr &expr, signed long int t) { return __gmp_expr , signed long int, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(signed long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } template inline __gmp_expr , unsigned long int, __gmp_lcm_function> > lcm(const __gmp_expr &expr, unsigned long int t) { return __gmp_expr , unsigned long int, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(unsigned long int t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } template inline __gmp_expr , double, __gmp_lcm_function> > lcm(const __gmp_expr &expr, float t) { return __gmp_expr , double, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(float t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } template inline __gmp_expr , double, __gmp_lcm_function> > lcm(const __gmp_expr &expr, double t) { return __gmp_expr , double, __gmp_lcm_function> >(expr, t); } template inline __gmp_expr , __gmp_lcm_function> > lcm(double t, const __gmp_expr &expr) { return __gmp_expr , __gmp_lcm_function> >(t, expr); } 23376: 23376: template inline int sgn(const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_sgn_function::eval(temp.__get_mp()); } 23376: template inline int cmp(const __gmp_expr &expr1, const __gmp_expr &expr2) { __gmp_expr const& temp1(expr1); __gmp_expr const& temp2(expr2); return __gmp_cmp_function::eval(temp1.__get_mp(), temp2.__get_mp()); } template inline int cmp(const __gmp_expr &expr, signed char t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(signed char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } template inline int cmp(const __gmp_expr &expr, unsigned char t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(unsigned char t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } template inline int cmp(const __gmp_expr &expr, signed int t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(signed int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } template inline int cmp(const __gmp_expr &expr, unsigned int t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(unsigned int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } template inline int cmp(const __gmp_expr &expr, signed short int t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(signed short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } template inline int cmp(const __gmp_expr &expr, unsigned short int t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(unsigned short int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } template inline int cmp(const __gmp_expr &expr, signed long int t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(signed long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } template inline int cmp(const __gmp_expr &expr, unsigned long int t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(unsigned long int t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } template inline int cmp(const __gmp_expr &expr, float t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(float t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } template inline int cmp(const __gmp_expr &expr, double t) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(temp.__get_mp(), static_cast(t)); } template inline int cmp(double t, const __gmp_expr &expr) { __gmp_expr const& temp(expr); return __gmp_cmp_function::eval(static_cast(t), temp.__get_mp()); } 23376: 23376: template 23376: void swap(__gmp_expr& x, __gmp_expr& y) noexcept 23376: { x.swap(y); } 23376: 23376: 23376: 23376: template inline mpz_class & mpz_class::operator+=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_plus> >(*this, expr)); return *this; } inline mpz_class & mpz_class::operator+=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator+=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator+=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator+=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator+=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator+=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator+=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator+=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator+=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator+=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpz_class & mpz_class::operator-=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_minus> >(*this, expr)); return *this; } inline mpz_class & mpz_class::operator-=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator-=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator-=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator-=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator-=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator-=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator-=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator-=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator-=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator-=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpz_class & mpz_class::operator*=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_multiplies> >(*this, expr)); return *this; } inline mpz_class & mpz_class::operator*=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator*=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator*=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator*=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator*=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator*=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator*=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator*=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator*=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator*=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpz_class & mpz_class::operator/=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_divides> >(*this, expr)); return *this; } inline mpz_class & mpz_class::operator/=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator/=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator/=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator/=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator/=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator/=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator/=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator/=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator/=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator/=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpz_class & mpz_class::operator%=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_modulus> >(*this, expr)); return *this; } inline mpz_class & mpz_class::operator%=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator%=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator%=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator%=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator%=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator%=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator%=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator%=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator%=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator%=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: 23376: template inline mpz_class & mpz_class::operator&=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_and> >(*this, expr)); return *this; } inline mpz_class & mpz_class::operator&=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator&=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator&=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator&=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator&=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator&=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator&=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator&=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator&=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator&=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpz_class & mpz_class::operator|=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_ior> >(*this, expr)); return *this; } inline mpz_class & mpz_class::operator|=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator|=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator|=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator|=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator|=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator|=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator|=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator|=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator|=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator|=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpz_class & mpz_class::operator^=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_xor> >(*this, expr)); return *this; } inline mpz_class & mpz_class::operator^=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator^=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator^=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator^=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator^=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator^=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator^=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator^=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator^=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpz_class & mpz_class::operator^=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: 23376: inline mpz_class & mpz_class::operator<<=(mp_bitcnt_t l) { __gmp_set_expr(mp, __gmp_expr >(*this, l)); return *this; } 23376: inline mpz_class & mpz_class::operator>>=(mp_bitcnt_t l) { __gmp_set_expr(mp, __gmp_expr >(*this, l)); return *this; } 23376: 23376: inline mpz_class & mpz_class::operator++() { __gmp_unary_increment::eval(mp); return *this; } inline mpz_class mpz_class::operator++(int) { mpz_class temp(*this); __gmp_unary_increment::eval(mp); return temp; } 23376: inline mpz_class & mpz_class::operator--() { __gmp_unary_decrement::eval(mp); return *this; } inline mpz_class mpz_class::operator--(int) { mpz_class temp(*this); __gmp_unary_decrement::eval(mp); return temp; } 23376: 23376: 23376: 23376: template inline mpq_class & mpq_class::operator+=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_plus> >(*this, expr)); return *this; } inline mpq_class & mpq_class::operator+=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator+=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator+=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator+=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator+=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator+=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator+=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator+=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator+=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator+=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpq_class & mpq_class::operator-=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_minus> >(*this, expr)); return *this; } inline mpq_class & mpq_class::operator-=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator-=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator-=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator-=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator-=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator-=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator-=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator-=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator-=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator-=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpq_class & mpq_class::operator*=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_multiplies> >(*this, expr)); return *this; } inline mpq_class & mpq_class::operator*=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator*=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator*=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator*=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator*=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator*=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator*=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator*=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator*=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator*=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpq_class & mpq_class::operator/=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_divides> >(*this, expr)); return *this; } inline mpq_class & mpq_class::operator/=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator/=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator/=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator/=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator/=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator/=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator/=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator/=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator/=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpq_class & mpq_class::operator/=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: 23376: inline mpq_class & mpq_class::operator<<=(mp_bitcnt_t l) { __gmp_set_expr(mp, __gmp_expr >(*this, l)); return *this; } 23376: inline mpq_class & mpq_class::operator>>=(mp_bitcnt_t l) { __gmp_set_expr(mp, __gmp_expr >(*this, l)); return *this; } 23376: 23376: inline mpq_class & mpq_class::operator++() { __gmp_unary_increment::eval(mp); return *this; } inline mpq_class mpq_class::operator++(int) { mpq_class temp(*this); __gmp_unary_increment::eval(mp); return temp; } 23376: inline mpq_class & mpq_class::operator--() { __gmp_unary_decrement::eval(mp); return *this; } inline mpq_class mpq_class::operator--(int) { mpq_class temp(*this); __gmp_unary_decrement::eval(mp); return temp; } 23376: 23376: 23376: 23376: template inline mpf_class & mpf_class::operator+=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_plus> >(*this, expr)); return *this; } inline mpf_class & mpf_class::operator+=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator+=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator+=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator+=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator+=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator+=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator+=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator+=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator+=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator+=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpf_class & mpf_class::operator-=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_minus> >(*this, expr)); return *this; } inline mpf_class & mpf_class::operator-=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator-=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator-=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator-=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator-=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator-=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator-=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator-=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator-=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator-=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpf_class & mpf_class::operator*=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_multiplies> >(*this, expr)); return *this; } inline mpf_class & mpf_class::operator*=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator*=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator*=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator*=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator*=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator*=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator*=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator*=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator*=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator*=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: template inline mpf_class & mpf_class::operator/=(const __gmp_expr &expr) { __gmp_set_expr(mp, __gmp_expr, __gmp_binary_divides> >(*this, expr)); return *this; } inline mpf_class & mpf_class::operator/=(signed char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator/=(unsigned char t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator/=(signed int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator/=(unsigned int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator/=(signed short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator/=(unsigned short int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator/=(signed long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator/=(unsigned long int t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator/=(float t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } inline mpf_class & mpf_class::operator/=(double t) { __gmp_set_expr(mp, __gmp_expr >(*this, t)); return *this; } 23376: 23376: inline mpf_class & mpf_class::operator<<=(mp_bitcnt_t l) { __gmp_set_expr(mp, __gmp_expr >(*this, l)); return *this; } 23376: inline mpf_class & mpf_class::operator>>=(mp_bitcnt_t l) { __gmp_set_expr(mp, __gmp_expr >(*this, l)); return *this; } 23376: 23376: inline mpf_class & mpf_class::operator++() { __gmp_unary_increment::eval(mp); return *this; } inline mpf_class mpf_class::operator++(int) { mpf_class temp(*this); __gmp_unary_increment::eval(mp); return temp; } 23376: inline mpf_class & mpf_class::operator--() { __gmp_unary_decrement::eval(mp); return *this; } inline mpf_class mpf_class::operator--(int) { mpf_class temp(*this); __gmp_unary_decrement::eval(mp); return temp; } 23376: 23376: 23376: 23376: 23376: 23376: class __gmp_urandomb_value { }; 23376: class __gmp_urandomm_value { }; 23376: 23376: template <> 23376: class __gmp_expr 23376: { 23376: private: 23376: __gmp_randstate_struct *state; 23376: mp_bitcnt_t bits; 23376: public: 23376: __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } 23376: void eval(mpz_ptr z) const { __gmp_rand_function::eval(z, state, bits); } 23376: mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } 23376: }; 23376: 23376: template <> 23376: class __gmp_expr 23376: { 23376: private: 23376: __gmp_randstate_struct *state; 23376: mpz_class range; 23376: public: 23376: __gmp_expr(gmp_randstate_t s, const mpz_class &z) : state(s), range(z) { } 23376: void eval(mpz_ptr z) const 23376: { __gmp_rand_function::eval(z, state, range.get_mpz_t()); } 23376: mp_bitcnt_t get_prec() const { return __gmpf_get_default_prec(); } 23376: }; 23376: 23376: template <> 23376: class __gmp_expr 23376: { 23376: private: 23376: __gmp_randstate_struct *state; 23376: mp_bitcnt_t bits; 23376: public: 23376: __gmp_expr(gmp_randstate_t s, mp_bitcnt_t l) : state(s), bits(l) { } 23376: void eval(mpf_ptr f) const 23376: { 23376: __gmp_rand_function::eval(f, state, 23376: (bits>0) ? bits : __gmpf_get_prec(f)); 23376: } 23376: mp_bitcnt_t get_prec() const 23376: { 23376: if (bits == 0) 23376: return __gmpf_get_default_prec(); 23376: else 23376: return bits; 23376: } 23376: }; 23376: 23376: extern "C" { 23376: typedef void __gmp_randinit_default_t (gmp_randstate_t); 23376: typedef void __gmp_randinit_lc_2exp_t (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t); 23376: typedef int __gmp_randinit_lc_2exp_size_t (gmp_randstate_t, mp_bitcnt_t); 23376: } 23376: 23376: class gmp_randclass 23376: { 23376: private: 23376: gmp_randstate_t state; 23376: 23376: 23376: gmp_randclass(const gmp_randclass &); 23376: void operator=(const gmp_randclass &); 23376: public: 23376: 23376: gmp_randclass(gmp_randalg_t alg, unsigned long int size) 23376: { 23376: switch (alg) 23376: { 23376: case GMP_RAND_ALG_LC: 23376: default: 23376: __gmp_randinit(state, alg, size); 23376: break; 23376: } 23376: } 23376: 23376: 23376: gmp_randclass(__gmp_randinit_default_t* f) { f(state); } 23376: 23376: 23376: gmp_randclass(__gmp_randinit_lc_2exp_t* f, 23376: mpz_class z, unsigned long int l1, mp_bitcnt_t l2) 23376: { f(state, z.get_mpz_t(), l1, l2); } 23376: 23376: 23376: gmp_randclass(__gmp_randinit_lc_2exp_size_t* f, 23376: mp_bitcnt_t size) 23376: { 23376: if (f (state, size) == 0) 23376: throw std::length_error ("gmp_randinit_lc_2exp_size"); 23376: } 23376: 23376: ~gmp_randclass() { __gmp_randclear(state); } 23376: 23376: 23376: void seed(); 23376: void seed(unsigned long int s) { __gmp_randseed_ui(state, s); } 23376: void seed(const mpz_class &z) { __gmp_randseed(state, z.get_mpz_t()); } 23376: 23376: 23376: __gmp_expr get_z_bits(mp_bitcnt_t l) 23376: { return __gmp_expr(state, l); } 23376: __gmp_expr get_z_bits(const mpz_class &z) 23376: { return get_z_bits(z.get_ui()); } 23376: 23376: 23376: __gmp_expr get_z_range(const mpz_class &z) 23376: { return __gmp_expr(state, z); } 23376: 23376: __gmp_expr get_f(mp_bitcnt_t prec = 0) 23376: { return __gmp_expr(state, prec); } 23376: }; 23376: 23376: 23376: 23376: 23376: namespace std { 23376: template <> class numeric_limits 23376: { 23376: public: 23376: static const bool is_specialized = true; 23376: static mpz_class min() { return mpz_class(); } 23376: static mpz_class max() { return mpz_class(); } 23376: static mpz_class lowest() { return mpz_class(); } 23376: static const int digits = 0; 23376: static const int digits10 = 0; 23376: static const int max_digits10 = 0; 23376: static const bool is_signed = true; 23376: static const bool is_integer = true; 23376: static const bool is_exact = true; 23376: static const int radix = 2; 23376: static mpz_class epsilon() { return mpz_class(); } 23376: static mpz_class round_error() { return mpz_class(); } 23376: static const int min_exponent = 0; 23376: static const int min_exponent10 = 0; 23376: static const int max_exponent = 0; 23376: static const int max_exponent10 = 0; 23376: static const bool has_infinity = false; 23376: static const bool has_quiet_NaN = false; 23376: static const bool has_signaling_NaN = false; 23376: static const float_denorm_style has_denorm = denorm_absent; 23376: static const bool has_denorm_loss = false; 23376: static mpz_class infinity() { return mpz_class(); } 23376: static mpz_class quiet_NaN() { return mpz_class(); } 23376: static mpz_class signaling_NaN() { return mpz_class(); } 23376: static mpz_class denorm_min() { return mpz_class(); } 23376: static const bool is_iec559 = false; 23376: static const bool is_bounded = false; 23376: static const bool is_modulo = false; 23376: static const bool traps = false; 23376: static const bool tinyness_before = false; 23376: static const float_round_style round_style = round_toward_zero; 23376: }; 23376: 23376: template <> class numeric_limits 23376: { 23376: public: 23376: static const bool is_specialized = true; 23376: static mpq_class min() { return mpq_class(); } 23376: static mpq_class max() { return mpq_class(); } 23376: static mpq_class lowest() { return mpq_class(); } 23376: static const int digits = 0; 23376: static const int digits10 = 0; 23376: static const int max_digits10 = 0; 23376: static const bool is_signed = true; 23376: static const bool is_integer = false; 23376: static const bool is_exact = true; 23376: static const int radix = 2; 23376: static mpq_class epsilon() { return mpq_class(); } 23376: static mpq_class round_error() { return mpq_class(); } 23376: static const int min_exponent = 0; 23376: static const int min_exponent10 = 0; 23376: static const int max_exponent = 0; 23376: static const int max_exponent10 = 0; 23376: static const bool has_infinity = false; 23376: static const bool has_quiet_NaN = false; 23376: static const bool has_signaling_NaN = false; 23376: static const float_denorm_style has_denorm = denorm_absent; 23376: static const bool has_denorm_loss = false; 23376: static mpq_class infinity() { return mpq_class(); } 23376: static mpq_class quiet_NaN() { return mpq_class(); } 23376: static mpq_class signaling_NaN() { return mpq_class(); } 23376: static mpq_class denorm_min() { return mpq_class(); } 23376: static const bool is_iec559 = false; 23376: static const bool is_bounded = false; 23376: static const bool is_modulo = false; 23376: static const bool traps = false; 23376: static const bool tinyness_before = false; 23376: static const float_round_style round_style = round_toward_zero; 23376: }; 23376: 23376: template <> class numeric_limits 23376: { 23376: public: 23376: static const bool is_specialized = true; 23376: static mpf_class min() { return mpf_class(); } 23376: static mpf_class max() { return mpf_class(); } 23376: static mpf_class lowest() { return mpf_class(); } 23376: static const int digits = 0; 23376: static const int digits10 = 0; 23376: static const int max_digits10 = 0; 23376: static const bool is_signed = true; 23376: static const bool is_integer = false; 23376: static const bool is_exact = false; 23376: static const int radix = 2; 23376: static mpf_class epsilon() { return mpf_class(); } 23376: static mpf_class round_error() { return mpf_class(); } 23376: static const int min_exponent = 0; 23376: static const int min_exponent10 = 0; 23376: static const int max_exponent = 0; 23376: static const int max_exponent10 = 0; 23376: static const bool has_infinity = false; 23376: static const bool has_quiet_NaN = false; 23376: static const bool has_signaling_NaN = false; 23376: static const float_denorm_style has_denorm = denorm_absent; 23376: static const bool has_denorm_loss = false; 23376: static mpf_class infinity() { return mpf_class(); } 23376: static mpf_class quiet_NaN() { return mpf_class(); } 23376: static mpf_class signaling_NaN() { return mpf_class(); } 23376: static mpf_class denorm_min() { return mpf_class(); } 23376: static const bool is_iec559 = false; 23376: static const bool is_bounded = false; 23376: static const bool is_modulo = false; 23376: static const bool traps = false; 23376: static const bool tinyness_before = false; 23376: static const float_round_style round_style = round_indeterminate; 23376: }; 23376: } 23376: # 29 "../../src/mp_std_bits_defs.hh" 2 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 34 "../../src/mp_std_bits_defs.hh" 23376: void swap(mpz_class& x, mpz_class& y); 23376: 23376: 23376: 23376: 23376: void swap(mpq_class& x, mpq_class& y); 23376: # 173 "../../src/mp_std_bits_defs.hh" 23376: # 1 "../../src/mp_std_bits_inlines.hh" 1 23376: # 28 "../../src/mp_std_bits_inlines.hh" 23376: inline void 23376: swap(mpz_class& x, mpz_class& y) { 23376: 23376: # 30 "../../src/mp_std_bits_inlines.hh" 3 4 23376: __gmpz_swap 23376: # 30 "../../src/mp_std_bits_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: swap(mpq_class& x, mpq_class& y) { 23376: 23376: # 35 "../../src/mp_std_bits_inlines.hh" 3 4 23376: __gmpq_swap 23376: # 35 "../../src/mp_std_bits_inlines.hh" 23376: (x.get_mpq_t(), y.get_mpq_t()); 23376: } 23376: # 174 "../../src/mp_std_bits_defs.hh" 2 23376: # 28 "../../src/checked_defs.hh" 2 23376: # 1 "../../src/Temp_defs.hh" 1 23376: # 27 "../../src/Temp_defs.hh" 23376: # 1 "../../src/meta_programming.hh" 1 23376: # 29 "../../src/meta_programming.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 102 "../../src/meta_programming.hh" 23376: template 23376: struct Compile_Time_Check; 23376: # 114 "../../src/meta_programming.hh" 23376: template <> 23376: struct Compile_Time_Check { 23376: }; 23376: # 142 "../../src/meta_programming.hh" 23376: template 23376: struct Bool { 23376: enum const_bool_value { 23376: value = b 23376: }; 23376: }; 23376: # 156 "../../src/meta_programming.hh" 23376: struct True : public Bool { 23376: }; 23376: # 166 "../../src/meta_programming.hh" 23376: struct False : public Bool { 23376: }; 23376: # 178 "../../src/meta_programming.hh" 23376: template 23376: struct Is_Same : public False { 23376: }; 23376: # 191 "../../src/meta_programming.hh" 23376: template 23376: struct Is_Same : public True { 23376: }; 23376: # 222 "../../src/meta_programming.hh" 23376: template 23376: struct Is_Same_Or_Derived { 23376: 23376: 23376: 23376: 23376: struct Any { 23376: 23376: template 23376: Any(const T&); 23376: }; 23376: 23376: 23376: static char func(const Base&); 23376: 23376: 23376: static double func(Any); 23376: 23376: 23376: static const Derived& derived_object(); 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_245 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(sizeof(char) != sizeof(double))>) } 23376: 23376: ; 23376: 23376: enum const_bool_value { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: value = (sizeof(func(derived_object())) == sizeof(char)) 23376: }; 23376: }; 23376: # 269 "../../src/meta_programming.hh" 23376: template 23376: struct Enable_If { 23376: }; 23376: 23376: template 23376: struct Enable_If_Is { 23376: typedef T type; 23376: }; 23376: # 304 "../../src/meta_programming.hh" 23376: template 23376: struct Enable_If { 23376: typedef T type; 23376: }; 23376: 23376: template 23376: struct Is_Native : public False { 23376: }; 23376: 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: template <> struct Is_Native : public True { }; 23376: # 335 "../../src/meta_programming.hh" 23376: template <> struct Is_Native : public True { }; 23376: 23376: template <> struct Is_Native : public True { }; 23376: 23376: } 23376: # 28 "../../src/Temp_defs.hh" 2 23376: # 1 "../../src/Slow_Copy.hh" 1 23376: # 30 "../../src/Slow_Copy.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct Slow_Copy : public False { 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template <> 23376: struct Slow_Copy : public True { 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template <> 23376: struct Slow_Copy : public True { 23376: }; 23376: 23376: } 23376: # 29 "../../src/Temp_defs.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: template 23376: class Temp_Item { 23376: public: 23376: 23376: static Temp_Item& obtain(); 23376: 23376: 23376: static void release(Temp_Item& p); 23376: 23376: 23376: T& item(); 23376: 23376: private: 23376: 23376: T item_; 23376: 23376: 23376: Temp_Item* next; 23376: 23376: class Free_List { 23376: public: 23376: Free_List(); 23376: ~Free_List(); 23376: Temp_Item* head_ptr; 23376: private: 23376: Free_List(const Free_List&); 23376: Free_List& operator=(const Free_List&); 23376: }; 23376: 23376: friend class Free_List; 23376: 23376: 23376: static Temp_Item*& free_list_ref(); 23376: 23376: 23376: Temp_Item(); 23376: 23376: 23376: Temp_Item(const Temp_Item&); 23376: 23376: 23376: Temp_Item& operator=(const Temp_Item&); 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class Temp_Reference_Holder { 23376: public: 23376: 23376: Temp_Reference_Holder(); 23376: 23376: 23376: ~Temp_Reference_Holder(); 23376: 23376: 23376: T& item(); 23376: 23376: private: 23376: 23376: Temp_Reference_Holder(const Temp_Reference_Holder&); 23376: 23376: 23376: Temp_Reference_Holder& operator=(const Temp_Reference_Holder&); 23376: 23376: 23376: Temp_Item& held; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class Temp_Value_Holder { 23376: public: 23376: 23376: Temp_Value_Holder(); 23376: 23376: 23376: T& item(); 23376: 23376: private: 23376: 23376: Temp_Value_Holder(const Temp_Value_Holder&); 23376: 23376: 23376: Temp_Value_Holder& operator=(const Temp_Value_Holder&); 23376: 23376: 23376: T item_; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class Dirty_Temp; 23376: 23376: 23376: 23376: 23376: template 23376: class Dirty_Temp::value>::type> 23376: : public Temp_Reference_Holder { 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class Dirty_Temp::value>::type> 23376: : public Temp_Value_Holder { 23376: }; 23376: 23376: } 23376: 23376: # 1 "../../src/Temp_inlines.hh" 1 23376: # 29 "../../src/Temp_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline 23376: Temp_Item::Temp_Item() 23376: : item_() { 23376: } 23376: 23376: template 23376: inline T& 23376: Temp_Item::item() { 23376: return item_; 23376: } 23376: 23376: template 23376: inline 23376: Temp_Item::Free_List::Free_List() 23376: : head_ptr(0) { 23376: } 23376: 23376: template 23376: inline Temp_Item*& 23376: Temp_Item::free_list_ref() { 23376: static Free_List free_list; 23376: return free_list.head_ptr; 23376: } 23376: 23376: template 23376: inline Temp_Item& 23376: Temp_Item::obtain() { 23376: Temp_Item* const p = free_list_ref(); 23376: if (p != 0) { 23376: free_list_ref() = p->next; 23376: return *p; 23376: } 23376: else { 23376: return *new Temp_Item(); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Temp_Item::release(Temp_Item& p) { 23376: p.next = free_list_ref(); 23376: free_list_ref() = &p; 23376: } 23376: 23376: template 23376: inline 23376: Temp_Reference_Holder::Temp_Reference_Holder() 23376: : held(Temp_Item::obtain()) { 23376: } 23376: 23376: template 23376: inline 23376: Temp_Reference_Holder::~Temp_Reference_Holder() { 23376: Temp_Item::release(held); 23376: } 23376: 23376: template 23376: inline T& 23376: Temp_Reference_Holder::item() { 23376: return held.item(); 23376: } 23376: 23376: template 23376: inline 23376: Temp_Value_Holder::Temp_Value_Holder() { 23376: } 23376: 23376: template 23376: inline T& 23376: Temp_Value_Holder::item() { 23376: return item_; 23376: } 23376: 23376: } 23376: # 153 "../../src/Temp_defs.hh" 2 23376: # 1 "../../src/Temp_templates.hh" 1 23376: # 27 "../../src/Temp_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: Temp_Item::Free_List::~Free_List() { 23376: while (head_ptr != 0) { 23376: Temp_Item* const p = head_ptr; 23376: head_ptr = head_ptr->next; 23376: delete p; 23376: } 23376: } 23376: 23376: } 23376: # 154 "../../src/Temp_defs.hh" 2 23376: # 29 "../../src/checked_defs.hh" 2 23376: # 1 "../../src/Rounding_Dir_defs.hh" 1 23376: # 27 "../../src/Rounding_Dir_defs.hh" 23376: # 1 "../../src/Result_defs.hh" 1 23376: # 27 "../../src/Result_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: enum Result_Class { 23376: 23376: VC_NORMAL = 0U << 4, 23376: 23376: 23376: VC_MINUS_INFINITY = 1U << 4, 23376: 23376: 23376: VC_PLUS_INFINITY = 2U << 4, 23376: 23376: 23376: VC_NAN = 3U << 4, 23376: 23376: VC_MASK = VC_NAN 23376: }; 23376: 23376: 23376: enum Result_Relation { 23376: 23376: VR_EMPTY = 0U, 23376: 23376: 23376: VR_EQ = 1U, 23376: 23376: 23376: VR_LT = 2U, 23376: 23376: 23376: VR_GT = 4U, 23376: 23376: 23376: VR_NE = VR_LT | VR_GT, 23376: 23376: 23376: VR_LE = VR_EQ | VR_LT, 23376: 23376: 23376: VR_GE = VR_EQ | VR_GT, 23376: 23376: 23376: VR_LGE = VR_LT | VR_EQ | VR_GT, 23376: 23376: VR_MASK = VR_LGE 23376: }; 23376: 23376: 23376: 23376: enum Result { 23376: 23376: V_EMPTY = VR_EMPTY, 23376: 23376: 23376: V_EQ = static_cast(VR_EQ), 23376: 23376: 23376: V_LT = static_cast(VR_LT), 23376: 23376: 23376: V_GT = static_cast(VR_GT), 23376: 23376: 23376: V_NE = VR_NE, 23376: 23376: 23376: V_LE = VR_LE, 23376: 23376: 23376: V_GE = VR_GE, 23376: 23376: 23376: V_LGE = VR_LGE, 23376: 23376: 23376: V_OVERFLOW = 1U << 6, 23376: 23376: 23376: V_LT_INF = V_LT | V_OVERFLOW, 23376: 23376: 23376: V_GT_SUP = V_GT | V_OVERFLOW, 23376: 23376: 23376: V_LT_PLUS_INFINITY = V_LT | static_cast(VC_PLUS_INFINITY), 23376: 23376: 23376: V_GT_MINUS_INFINITY = V_GT | static_cast(VC_MINUS_INFINITY), 23376: 23376: 23376: V_EQ_MINUS_INFINITY = V_EQ | static_cast(VC_MINUS_INFINITY), 23376: 23376: 23376: V_EQ_PLUS_INFINITY = V_EQ | static_cast(VC_PLUS_INFINITY), 23376: 23376: 23376: V_NAN = static_cast(VC_NAN), 23376: 23376: 23376: V_CVT_STR_UNK = V_NAN | (1U << 8), 23376: 23376: 23376: V_DIV_ZERO = V_NAN | (2U << 8), 23376: 23376: 23376: V_INF_ADD_INF = V_NAN | (3U << 8), 23376: 23376: 23376: V_INF_DIV_INF = V_NAN | (4U << 8), 23376: 23376: 23376: V_INF_MOD = V_NAN | (5U << 8), 23376: 23376: 23376: V_INF_MUL_ZERO = V_NAN | (6U << 8), 23376: 23376: 23376: V_INF_SUB_INF = V_NAN | (7U << 8), 23376: 23376: 23376: V_MOD_ZERO = V_NAN | (8U << 8), 23376: 23376: 23376: V_SQRT_NEG = V_NAN | (9U << 8), 23376: 23376: 23376: V_UNKNOWN_NEG_OVERFLOW = V_NAN | (10U << 8), 23376: 23376: 23376: V_UNKNOWN_POS_OVERFLOW = V_NAN | (11U << 8), 23376: 23376: 23376: V_UNREPRESENTABLE = 1U << 7 23376: 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: Result operator&(Result x, Result y); 23376: 23376: 23376: Result operator|(Result x, Result y); 23376: 23376: 23376: Result operator-(Result x, Result y); 23376: 23376: 23376: 23376: 23376: 23376: Result_Class result_class(Result r); 23376: 23376: 23376: 23376: 23376: Result_Relation result_relation(Result r); 23376: 23376: 23376: Result result_relation_class(Result r); 23376: 23376: 23376: 23376: } 23376: 23376: # 1 "../../src/Result_inlines.hh" 1 23376: # 27 "../../src/Result_inlines.hh" 23376: # 1 "../../src/assertions.hh" 1 23376: # 99 "../../src/assertions.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 110 "../../src/assertions.hh" 23376: void ppl_unreachable() __attribute__((weak, noreturn)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void ppl_unreachable_msg(const char* msg, 23376: const char* file, unsigned int line, 23376: const char* function) __attribute__((weak, noreturn)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void ppl_assertion_failed(const char* assertion_text, 23376: const char* file, unsigned int line, 23376: const char* function) __attribute__((weak, noreturn)); 23376: # 143 "../../src/assertions.hh" 23376: template 23376: bool copy_contains(T x_copy, T y_copy) { 23376: return x_copy.contains(y_copy); 23376: } 23376: 23376: } 23376: # 28 "../../src/Result_inlines.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: inline Result 23376: operator&(Result x, Result y) { 23376: const unsigned res = static_cast(x) & static_cast(y); 23376: return static_cast(res); 23376: } 23376: 23376: 23376: inline Result 23376: operator|(Result x, Result y) { 23376: const unsigned res = static_cast(x) | static_cast(y); 23376: return static_cast(res); 23376: } 23376: 23376: 23376: inline Result 23376: operator-(Result x, Result y) { 23376: const Result y_neg = static_cast(~static_cast(y)); 23376: return x & y_neg; 23376: } 23376: 23376: 23376: inline Result_Class 23376: result_class(Result r) { 23376: const Result rc = r & static_cast(VC_MASK); 23376: return static_cast(rc); 23376: } 23376: 23376: 23376: inline Result_Relation 23376: result_relation(Result r) { 23376: const Result rc = r & static_cast(VR_MASK); 23376: return static_cast(rc); 23376: } 23376: 23376: 23376: inline Result 23376: result_relation_class(Result r) { 23376: return r & (static_cast(VR_MASK) | static_cast(VC_MASK)); 23376: } 23376: 23376: inline int 23376: result_overflow(Result r) { 23376: switch (result_class(r)) { 23376: case VC_NORMAL: 23376: switch (r) { 23376: case V_LT_INF: 23376: return -1; 23376: case V_GT_SUP: 23376: return 1; 23376: default: 23376: break; 23376: } 23376: break; 23376: case VC_MINUS_INFINITY: 23376: return -1; 23376: case VC_PLUS_INFINITY: 23376: return 1; 23376: default: 23376: break; 23376: } 23376: return 0; 23376: } 23376: 23376: inline bool 23376: result_representable(Result r) { 23376: return (r & V_UNREPRESENTABLE) != V_UNREPRESENTABLE; 23376: } 23376: 23376: } 23376: # 194 "../../src/Result_defs.hh" 2 23376: # 28 "../../src/Rounding_Dir_defs.hh" 2 23376: # 1 "../../src/fpu_defs.hh" 1 23376: # 27 "../../src/fpu_defs.hh" 23376: # 1 "../../src/fpu_types.hh" 1 23376: # 20 "../../src/fpu_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: enum fpu_rounding_direction_type {}; 23376: enum fpu_rounding_control_word_type {}; 23376: 23376: } 23376: # 28 "../../src/fpu_defs.hh" 2 23376: # 1 "../../src/compiler.hh" 1 23376: # 27 "../../src/compiler.hh" 23376: # 1 "/usr/include/c++/8/cstddef" 1 3 23376: # 42 "/usr/include/c++/8/cstddef" 3 23376: 23376: # 43 "/usr/include/c++/8/cstddef" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 23376: # 51 "/usr/include/c++/8/cstddef" 2 3 23376: 23376: 23376: 23376: # 53 "/usr/include/c++/8/cstddef" 3 23376: namespace std 23376: { 23376: 23376: using ::max_align_t; 23376: } 23376: # 28 "../../src/compiler.hh" 2 23376: # 1 "/usr/include/c++/8/climits" 1 3 23376: # 39 "/usr/include/c++/8/climits" 3 23376: 23376: # 40 "/usr/include/c++/8/climits" 3 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 23376: # 43 "/usr/include/c++/8/climits" 2 3 23376: # 29 "../../src/compiler.hh" 2 23376: # 1 "/usr/include/c++/8/cassert" 1 3 23376: # 41 "/usr/include/c++/8/cassert" 3 23376: 23376: # 42 "/usr/include/c++/8/cassert" 3 23376: 23376: 23376: # 1 "/usr/include/assert.h" 1 3 4 23376: # 44 "/usr/include/c++/8/cassert" 2 3 23376: # 30 "../../src/compiler.hh" 2 23376: 23376: 23376: # 31 "../../src/compiler.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 47 "../../src/compiler.hh" 23376: template 23376: inline void 23376: PPL_CC_FLUSH(const T& x) { 23376: 23376: __asm__ __volatile__ ("" : "+m" (const_cast(x))); 23376: 23376: 23376: 23376: 23376: } 23376: # 67 "../../src/compiler.hh" 23376: template 23376: struct Suppress_Uninitialized_Warnings_Type { 23376: typedef T synonym; 23376: }; 23376: # 142 "../../src/compiler.hh" 23376: inline unsigned int 23376: clz(unsigned int u) { 23376: 23376: # 144 "../../src/compiler.hh" 3 4 23376: (static_cast (0)) 23376: # 144 "../../src/compiler.hh" 23376: ; 23376: 23376: return static_cast(__builtin_clz(u)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: inline unsigned int 23376: clz(unsigned long ul) { 23376: 23376: # 158 "../../src/compiler.hh" 3 4 23376: (static_cast (0)) 23376: # 158 "../../src/compiler.hh" 23376: ; 23376: 23376: return static_cast(__builtin_clzl(ul)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: inline unsigned int 23376: clz(unsigned long long ull) { 23376: 23376: # 172 "../../src/compiler.hh" 3 4 23376: (static_cast (0)) 23376: # 172 "../../src/compiler.hh" 23376: ; 23376: 23376: return static_cast(__builtin_clzll(ull)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: 23376: inline unsigned int 23376: ctz(unsigned int u) { 23376: 23376: # 187 "../../src/compiler.hh" 3 4 23376: (static_cast (0)) 23376: # 187 "../../src/compiler.hh" 23376: ; 23376: 23376: return static_cast(__builtin_ctz(u)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: inline unsigned int 23376: ctz(unsigned long ul) { 23376: 23376: # 201 "../../src/compiler.hh" 3 4 23376: (static_cast (0)) 23376: # 201 "../../src/compiler.hh" 23376: ; 23376: 23376: return static_cast(__builtin_ctzl(ul)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: inline unsigned int 23376: ctz(unsigned long long ull) { 23376: 23376: # 215 "../../src/compiler.hh" 3 4 23376: (static_cast (0)) 23376: # 215 "../../src/compiler.hh" 23376: ; 23376: 23376: return static_cast(__builtin_ctzll(ull)); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: } 23376: # 29 "../../src/fpu_defs.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: void 23376: fpu_initialize_control_functions(); 23376: 23376: 23376: fpu_rounding_direction_type 23376: fpu_get_rounding_direction(); 23376: 23376: 23376: void 23376: fpu_set_rounding_direction(fpu_rounding_direction_type dir); 23376: 23376: 23376: 23376: 23376: 23376: fpu_rounding_control_word_type 23376: fpu_save_rounding_direction(fpu_rounding_direction_type dir); 23376: 23376: 23376: 23376: 23376: 23376: 23376: fpu_rounding_control_word_type 23376: fpu_save_rounding_direction_reset_inexact(fpu_rounding_direction_type dir); 23376: 23376: 23376: void 23376: fpu_restore_rounding_direction(fpu_rounding_control_word_type w); 23376: 23376: 23376: void 23376: fpu_reset_inexact(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: int 23376: fpu_check_inexact(); 23376: 23376: 23376: 23376: } 23376: # 100 "../../src/fpu_defs.hh" 23376: # 1 "../../src/fpu-none_inlines.hh" 1 23376: # 29 "../../src/fpu-none_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline void 23376: fpu_initialize_control_functions() { 23376: throw std::logic_error("PPL::fpu_initialize_control_functions():" 23376: " cannot control the FPU"); 23376: } 23376: 23376: inline fpu_rounding_direction_type 23376: fpu_get_rounding_direction() { 23376: throw std::logic_error("PPL::fpu_get_rounding_direction():" 23376: " cannot control the FPU"); 23376: } 23376: 23376: inline void 23376: fpu_set_rounding_direction(int) { 23376: throw std::logic_error("PPL::fpu_set_rounding_direction():" 23376: " cannot control the FPU"); 23376: } 23376: 23376: inline int 23376: fpu_save_rounding_direction(int) { 23376: throw std::logic_error("PPL::fpu_save_rounding_direction():" 23376: " cannot control the FPU"); 23376: } 23376: 23376: inline void 23376: fpu_reset_inexact() { 23376: throw std::logic_error("PPL::fpu_reset_inexact():" 23376: " cannot control the FPU"); 23376: } 23376: 23376: inline void 23376: fpu_restore_rounding_direction(int) { 23376: throw std::logic_error("PPL::fpu_restore_rounding_direction():" 23376: " cannot control the FPU"); 23376: } 23376: 23376: inline int 23376: fpu_check_inexact() { 23376: throw std::logic_error("PPL::fpu_check_inexact():" 23376: " cannot control the FPU"); 23376: } 23376: 23376: } 23376: # 101 "../../src/fpu_defs.hh" 2 23376: # 29 "../../src/Rounding_Dir_defs.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: enum Rounding_Dir { 23376: 23376: 23376: 23376: ROUND_DOWN = 0U, 23376: 23376: 23376: 23376: 23376: ROUND_UP = 1U, 23376: 23376: 23376: 23376: 23376: ROUND_IGNORE = 6U, 23376: ROUND_NATIVE = ROUND_IGNORE, 23376: 23376: 23376: 23376: 23376: 23376: 23376: ROUND_NOT_NEEDED = 7U, 23376: 23376: ROUND_DIRECT = ROUND_UP, 23376: ROUND_INVERSE = ROUND_DOWN, 23376: 23376: ROUND_DIR_MASK = 7U, 23376: 23376: 23376: 23376: 23376: 23376: ROUND_STRICT_RELATION = 8U, 23376: 23376: ROUND_CHECK = ROUND_DIRECT | ROUND_STRICT_RELATION 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: Rounding_Dir operator&(Rounding_Dir x, Rounding_Dir y); 23376: 23376: 23376: Rounding_Dir operator|(Rounding_Dir x, Rounding_Dir y); 23376: 23376: 23376: 23376: 23376: 23376: Rounding_Dir inverse(Rounding_Dir dir); 23376: 23376: 23376: Rounding_Dir round_dir(Rounding_Dir dir); 23376: 23376: 23376: bool round_down(Rounding_Dir dir); 23376: 23376: 23376: bool round_up(Rounding_Dir dir); 23376: 23376: 23376: bool round_ignore(Rounding_Dir dir); 23376: 23376: 23376: bool round_not_needed(Rounding_Dir dir); 23376: 23376: 23376: bool round_not_requested(Rounding_Dir dir); 23376: 23376: 23376: bool round_direct(Rounding_Dir dir); 23376: 23376: 23376: bool round_inverse(Rounding_Dir dir); 23376: 23376: 23376: bool round_strict_relation(Rounding_Dir dir); 23376: 23376: 23376: fpu_rounding_direction_type round_fpu_dir(Rounding_Dir dir); 23376: 23376: 23376: 23376: } 23376: 23376: # 1 "../../src/Rounding_Dir_inlines.hh" 1 23376: # 29 "../../src/Rounding_Dir_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: inline Rounding_Dir 23376: operator&(Rounding_Dir x, Rounding_Dir y) { 23376: const unsigned res = static_cast(x) & static_cast(y); 23376: return static_cast(res); 23376: } 23376: 23376: 23376: inline Rounding_Dir 23376: operator|(Rounding_Dir x, Rounding_Dir y) { 23376: const unsigned res = static_cast(x) | static_cast(y); 23376: return static_cast(res); 23376: } 23376: 23376: 23376: inline Rounding_Dir 23376: round_dir(Rounding_Dir dir) { 23376: return dir & ROUND_DIR_MASK; 23376: } 23376: 23376: 23376: inline bool 23376: round_down(Rounding_Dir dir) { 23376: return round_dir(dir) == ROUND_DOWN; 23376: } 23376: 23376: 23376: inline bool 23376: round_up(Rounding_Dir dir) { 23376: return round_dir(dir) == ROUND_UP; 23376: } 23376: 23376: 23376: inline bool 23376: round_ignore(Rounding_Dir dir) { 23376: return round_dir(dir) == ROUND_IGNORE; 23376: } 23376: 23376: 23376: inline bool 23376: round_not_needed(Rounding_Dir dir) { 23376: return round_dir(dir) == ROUND_NOT_NEEDED; 23376: } 23376: 23376: 23376: inline bool 23376: round_not_requested(Rounding_Dir dir) { 23376: return round_dir(dir) == ROUND_IGNORE || round_dir(dir) == ROUND_NOT_NEEDED; 23376: } 23376: 23376: 23376: inline bool 23376: round_direct(Rounding_Dir dir) { 23376: return round_dir(dir) == ROUND_DIRECT; 23376: } 23376: 23376: 23376: inline bool 23376: round_inverse(Rounding_Dir dir) { 23376: return round_dir(dir) == ROUND_INVERSE; 23376: } 23376: 23376: 23376: inline bool 23376: round_strict_relation(Rounding_Dir dir) { 23376: return (dir & ROUND_STRICT_RELATION) == ROUND_STRICT_RELATION; 23376: } 23376: # 124 "../../src/Rounding_Dir_inlines.hh" 23376: inline Rounding_Dir 23376: inverse(Rounding_Dir dir) { 23376: switch (round_dir(dir)) { 23376: case ROUND_UP: 23376: return ROUND_DOWN | (dir & ROUND_STRICT_RELATION); 23376: case ROUND_DOWN: 23376: return ROUND_UP | (dir & ROUND_STRICT_RELATION); 23376: case ROUND_IGNORE: 23376: return dir; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return dir; 23376: } 23376: } 23376: 23376: } 23376: # 122 "../../src/Rounding_Dir_defs.hh" 2 23376: # 30 "../../src/checked_defs.hh" 2 23376: # 1 "../../src/Numeric_Format_defs.hh" 1 23376: # 30 "../../src/Numeric_Format_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Numeric_Format { 23376: }; 23376: 23376: } 23376: # 31 "../../src/checked_defs.hh" 2 23376: # 1 "../../src/Float_defs.hh" 1 23376: # 27 "../../src/Float_defs.hh" 23376: # 1 "../../src/globals_types.hh" 1 23376: # 18 "../../src/globals_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: typedef size_t dimension_type; 23376: 23376: 23376: 23376: typedef size_t memory_size_type; 23376: 23376: 23376: 23376: enum Degenerate_Element { 23376: 23376: UNIVERSE, 23376: 23376: EMPTY 23376: }; 23376: 23376: 23376: 23376: 23376: enum Relation_Symbol { 23376: 23376: EQUAL = 1U, 23376: 23376: LESS_THAN = 2U, 23376: 23376: LESS_OR_EQUAL = LESS_THAN | EQUAL, 23376: 23376: GREATER_THAN = 4U, 23376: 23376: GREATER_OR_EQUAL = GREATER_THAN | EQUAL, 23376: 23376: NOT_EQUAL = LESS_THAN | GREATER_THAN 23376: }; 23376: 23376: 23376: 23376: enum Complexity_Class { 23376: 23376: POLYNOMIAL_COMPLEXITY, 23376: 23376: SIMPLEX_COMPLEXITY, 23376: 23376: ANY_COMPLEXITY 23376: }; 23376: 23376: 23376: 23376: enum Optimization_Mode { 23376: 23376: MINIMIZATION, 23376: 23376: MAXIMIZATION 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: enum Bounded_Integer_Type_Width { 23376: 23376: BITS_8 = 8, 23376: 23376: 23376: BITS_16 = 16, 23376: 23376: 23376: BITS_32 = 32, 23376: 23376: 23376: BITS_64 = 64, 23376: 23376: 23376: BITS_128 = 128 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: enum Bounded_Integer_Type_Representation { 23376: 23376: UNSIGNED, 23376: 23376: 23376: 23376: 23376: 23376: SIGNED_2_COMPLEMENT 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: enum Bounded_Integer_Type_Overflow { 23376: 23376: 23376: 23376: 23376: 23376: 23376: OVERFLOW_WRAPS, 23376: # 143 "../../src/globals_types.hh" 23376: OVERFLOW_UNDEFINED, 23376: # 153 "../../src/globals_types.hh" 23376: OVERFLOW_IMPOSSIBLE 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: enum Representation { 23376: 23376: 23376: 23376: 23376: 23376: 23376: DENSE, 23376: # 177 "../../src/globals_types.hh" 23376: SPARSE 23376: }; 23376: # 187 "../../src/globals_types.hh" 23376: enum Floating_Point_Format { 23376: 23376: IEEE754_HALF, 23376: 23376: 23376: IEEE754_SINGLE, 23376: 23376: 23376: IEEE754_DOUBLE, 23376: 23376: 23376: IEEE754_QUAD, 23376: 23376: 23376: INTEL_DOUBLE_EXTENDED, 23376: 23376: 23376: IBM_SINGLE, 23376: 23376: 23376: IBM_DOUBLE 23376: }; 23376: 23376: struct Weightwatch_Traits; 23376: 23376: } 23376: # 28 "../../src/Float_defs.hh" 2 23376: 23376: 23376: # 1 "../../src/Concrete_Expression_types.hh" 1 23376: # 16 "../../src/Concrete_Expression_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 27 "../../src/Concrete_Expression_types.hh" 23376: template 23376: class Concrete_Expression; 23376: 23376: 23376: 23376: 23376: template 23376: class Binary_Operator; 23376: 23376: 23376: 23376: 23376: template 23376: class Unary_Operator; 23376: 23376: 23376: 23376: 23376: template 23376: class Cast_Operator; 23376: 23376: 23376: 23376: 23376: template 23376: class Integer_Constant; 23376: 23376: 23376: 23376: 23376: template 23376: class Floating_Point_Constant; 23376: 23376: 23376: 23376: 23376: template 23376: class Approximable_Reference; 23376: 23376: class Concrete_Expression_Type; 23376: # 78 "../../src/Concrete_Expression_types.hh" 23376: typedef int Concrete_Expression_Kind; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef int Concrete_Expression_BOP; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef int Concrete_Expression_UOP; 23376: 23376: } 23376: # 31 "../../src/Float_defs.hh" 2 23376: # 1 "../../src/Variable_types.hh" 1 23376: # 16 "../../src/Variable_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Variable; 23376: 23376: } 23376: # 32 "../../src/Float_defs.hh" 2 23376: # 1 "../../src/Linear_Form_types.hh" 1 23376: # 16 "../../src/Linear_Form_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Linear_Form; 23376: 23376: } 23376: # 33 "../../src/Float_defs.hh" 2 23376: # 1 "/usr/include/c++/8/set" 1 3 23376: # 58 "/usr/include/c++/8/set" 3 23376: 23376: # 59 "/usr/include/c++/8/set" 3 23376: 23376: # 1 "/usr/include/c++/8/bits/stl_tree.h" 1 3 23376: # 61 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: 23376: # 62 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/ext/aligned_buffer.h" 1 3 23376: # 32 "/usr/include/c++/8/ext/aligned_buffer.h" 3 23376: 23376: # 33 "/usr/include/c++/8/ext/aligned_buffer.h" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 40 "/usr/include/c++/8/ext/aligned_buffer.h" 3 23376: namespace __gnu_cxx 23376: { 23376: 23376: 23376: 23376: 23376: template 23376: struct __aligned_membuf 23376: { 23376: 23376: 23376: 23376: 23376: 23376: struct _Tp2 { _Tp _M_t; }; 23376: 23376: alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; 23376: 23376: __aligned_membuf() = default; 23376: 23376: 23376: __aligned_membuf(std::nullptr_t) { } 23376: 23376: void* 23376: _M_addr() noexcept 23376: { return static_cast(&_M_storage); } 23376: 23376: const void* 23376: _M_addr() const noexcept 23376: { return static_cast(&_M_storage); } 23376: 23376: _Tp* 23376: _M_ptr() noexcept 23376: { return static_cast<_Tp*>(_M_addr()); } 23376: 23376: const _Tp* 23376: _M_ptr() const noexcept 23376: { return static_cast(_M_addr()); } 23376: }; 23376: # 89 "/usr/include/c++/8/ext/aligned_buffer.h" 3 23376: template 23376: struct __aligned_buffer 23376: : std::aligned_storage 23376: { 23376: typename 23376: std::aligned_storage::type _M_storage; 23376: 23376: __aligned_buffer() = default; 23376: 23376: 23376: __aligned_buffer(std::nullptr_t) { } 23376: 23376: void* 23376: _M_addr() noexcept 23376: { 23376: return static_cast(&_M_storage); 23376: } 23376: 23376: const void* 23376: _M_addr() const noexcept 23376: { 23376: return static_cast(&_M_storage); 23376: } 23376: 23376: _Tp* 23376: _M_ptr() noexcept 23376: { return static_cast<_Tp*>(_M_addr()); } 23376: 23376: const _Tp* 23376: _M_ptr() const noexcept 23376: { return static_cast(_M_addr()); } 23376: }; 23376: 23376: 23376: } 23376: # 70 "/usr/include/c++/8/bits/stl_tree.h" 2 3 23376: 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 99 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: enum _Rb_tree_color { _S_red = false, _S_black = true }; 23376: 23376: struct _Rb_tree_node_base 23376: { 23376: typedef _Rb_tree_node_base* _Base_ptr; 23376: typedef const _Rb_tree_node_base* _Const_Base_ptr; 23376: 23376: _Rb_tree_color _M_color; 23376: _Base_ptr _M_parent; 23376: _Base_ptr _M_left; 23376: _Base_ptr _M_right; 23376: 23376: static _Base_ptr 23376: _S_minimum(_Base_ptr __x) noexcept 23376: { 23376: while (__x->_M_left != 0) __x = __x->_M_left; 23376: return __x; 23376: } 23376: 23376: static _Const_Base_ptr 23376: _S_minimum(_Const_Base_ptr __x) noexcept 23376: { 23376: while (__x->_M_left != 0) __x = __x->_M_left; 23376: return __x; 23376: } 23376: 23376: static _Base_ptr 23376: _S_maximum(_Base_ptr __x) noexcept 23376: { 23376: while (__x->_M_right != 0) __x = __x->_M_right; 23376: return __x; 23376: } 23376: 23376: static _Const_Base_ptr 23376: _S_maximum(_Const_Base_ptr __x) noexcept 23376: { 23376: while (__x->_M_right != 0) __x = __x->_M_right; 23376: return __x; 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct _Rb_tree_key_compare 23376: { 23376: _Key_compare _M_key_compare; 23376: 23376: _Rb_tree_key_compare() 23376: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 23376: 23376: : _M_key_compare() 23376: { } 23376: 23376: _Rb_tree_key_compare(const _Key_compare& __comp) 23376: : _M_key_compare(__comp) 23376: { } 23376: 23376: 23376: 23376: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 23376: 23376: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 23376: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 23376: : _M_key_compare(__x._M_key_compare) 23376: { } 23376: 23376: }; 23376: 23376: 23376: struct _Rb_tree_header 23376: { 23376: _Rb_tree_node_base _M_header; 23376: size_t _M_node_count; 23376: 23376: _Rb_tree_header() noexcept 23376: { 23376: _M_header._M_color = _S_red; 23376: _M_reset(); 23376: } 23376: 23376: 23376: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 23376: { 23376: if (__x._M_header._M_parent != nullptr) 23376: _M_move_data(__x); 23376: else 23376: { 23376: _M_header._M_color = _S_red; 23376: _M_reset(); 23376: } 23376: } 23376: 23376: 23376: void 23376: _M_move_data(_Rb_tree_header& __from) 23376: { 23376: _M_header._M_color = __from._M_header._M_color; 23376: _M_header._M_parent = __from._M_header._M_parent; 23376: _M_header._M_left = __from._M_header._M_left; 23376: _M_header._M_right = __from._M_header._M_right; 23376: _M_header._M_parent->_M_parent = &_M_header; 23376: _M_node_count = __from._M_node_count; 23376: 23376: __from._M_reset(); 23376: } 23376: 23376: void 23376: _M_reset() 23376: { 23376: _M_header._M_parent = 0; 23376: _M_header._M_left = &_M_header; 23376: _M_header._M_right = &_M_header; 23376: _M_node_count = 0; 23376: } 23376: }; 23376: 23376: template 23376: struct _Rb_tree_node : public _Rb_tree_node_base 23376: { 23376: typedef _Rb_tree_node<_Val>* _Link_type; 23376: # 231 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 23376: 23376: _Val* 23376: _M_valptr() 23376: { return _M_storage._M_ptr(); } 23376: 23376: const _Val* 23376: _M_valptr() const 23376: { return _M_storage._M_ptr(); } 23376: 23376: }; 23376: 23376: __attribute__ ((__pure__)) _Rb_tree_node_base* 23376: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 23376: 23376: __attribute__ ((__pure__)) const _Rb_tree_node_base* 23376: _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); 23376: 23376: __attribute__ ((__pure__)) _Rb_tree_node_base* 23376: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 23376: 23376: __attribute__ ((__pure__)) const _Rb_tree_node_base* 23376: _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); 23376: 23376: template 23376: struct _Rb_tree_iterator 23376: { 23376: typedef _Tp value_type; 23376: typedef _Tp& reference; 23376: typedef _Tp* pointer; 23376: 23376: typedef bidirectional_iterator_tag iterator_category; 23376: typedef ptrdiff_t difference_type; 23376: 23376: typedef _Rb_tree_iterator<_Tp> _Self; 23376: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 23376: typedef _Rb_tree_node<_Tp>* _Link_type; 23376: 23376: _Rb_tree_iterator() noexcept 23376: : _M_node() { } 23376: 23376: explicit 23376: _Rb_tree_iterator(_Base_ptr __x) noexcept 23376: : _M_node(__x) { } 23376: 23376: reference 23376: operator*() const noexcept 23376: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 23376: 23376: pointer 23376: operator->() const noexcept 23376: { return static_cast<_Link_type> (_M_node)->_M_valptr(); } 23376: 23376: _Self& 23376: operator++() noexcept 23376: { 23376: _M_node = _Rb_tree_increment(_M_node); 23376: return *this; 23376: } 23376: 23376: _Self 23376: operator++(int) noexcept 23376: { 23376: _Self __tmp = *this; 23376: _M_node = _Rb_tree_increment(_M_node); 23376: return __tmp; 23376: } 23376: 23376: _Self& 23376: operator--() noexcept 23376: { 23376: _M_node = _Rb_tree_decrement(_M_node); 23376: return *this; 23376: } 23376: 23376: _Self 23376: operator--(int) noexcept 23376: { 23376: _Self __tmp = *this; 23376: _M_node = _Rb_tree_decrement(_M_node); 23376: return __tmp; 23376: } 23376: 23376: bool 23376: operator==(const _Self& __x) const noexcept 23376: { return _M_node == __x._M_node; } 23376: 23376: bool 23376: operator!=(const _Self& __x) const noexcept 23376: { return _M_node != __x._M_node; } 23376: 23376: _Base_ptr _M_node; 23376: }; 23376: 23376: template 23376: struct _Rb_tree_const_iterator 23376: { 23376: typedef _Tp value_type; 23376: typedef const _Tp& reference; 23376: typedef const _Tp* pointer; 23376: 23376: typedef _Rb_tree_iterator<_Tp> iterator; 23376: 23376: typedef bidirectional_iterator_tag iterator_category; 23376: typedef ptrdiff_t difference_type; 23376: 23376: typedef _Rb_tree_const_iterator<_Tp> _Self; 23376: typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; 23376: typedef const _Rb_tree_node<_Tp>* _Link_type; 23376: 23376: _Rb_tree_const_iterator() noexcept 23376: : _M_node() { } 23376: 23376: explicit 23376: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 23376: : _M_node(__x) { } 23376: 23376: _Rb_tree_const_iterator(const iterator& __it) noexcept 23376: : _M_node(__it._M_node) { } 23376: 23376: iterator 23376: _M_const_cast() const noexcept 23376: { return iterator(const_cast(_M_node)); } 23376: 23376: reference 23376: operator*() const noexcept 23376: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 23376: 23376: pointer 23376: operator->() const noexcept 23376: { return static_cast<_Link_type>(_M_node)->_M_valptr(); } 23376: 23376: _Self& 23376: operator++() noexcept 23376: { 23376: _M_node = _Rb_tree_increment(_M_node); 23376: return *this; 23376: } 23376: 23376: _Self 23376: operator++(int) noexcept 23376: { 23376: _Self __tmp = *this; 23376: _M_node = _Rb_tree_increment(_M_node); 23376: return __tmp; 23376: } 23376: 23376: _Self& 23376: operator--() noexcept 23376: { 23376: _M_node = _Rb_tree_decrement(_M_node); 23376: return *this; 23376: } 23376: 23376: _Self 23376: operator--(int) noexcept 23376: { 23376: _Self __tmp = *this; 23376: _M_node = _Rb_tree_decrement(_M_node); 23376: return __tmp; 23376: } 23376: 23376: bool 23376: operator==(const _Self& __x) const noexcept 23376: { return _M_node == __x._M_node; } 23376: 23376: bool 23376: operator!=(const _Self& __x) const noexcept 23376: { return _M_node != __x._M_node; } 23376: 23376: _Base_ptr _M_node; 23376: }; 23376: 23376: template 23376: inline bool 23376: operator==(const _Rb_tree_iterator<_Val>& __x, 23376: const _Rb_tree_const_iterator<_Val>& __y) noexcept 23376: { return __x._M_node == __y._M_node; } 23376: 23376: template 23376: inline bool 23376: operator!=(const _Rb_tree_iterator<_Val>& __x, 23376: const _Rb_tree_const_iterator<_Val>& __y) noexcept 23376: { return __x._M_node != __y._M_node; } 23376: 23376: void 23376: _Rb_tree_insert_and_rebalance(const bool __insert_left, 23376: _Rb_tree_node_base* __x, 23376: _Rb_tree_node_base* __p, 23376: _Rb_tree_node_base& __header) throw (); 23376: 23376: _Rb_tree_node_base* 23376: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 23376: _Rb_tree_node_base& __header) throw (); 23376: 23376: 23376: template> 23376: struct __has_is_transparent 23376: { }; 23376: 23376: template 23376: struct __has_is_transparent<_Cmp, _SfinaeType, 23376: __void_t> 23376: { typedef void type; }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template > 23376: class _Rb_tree 23376: { 23376: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 23376: rebind<_Rb_tree_node<_Val> >::other _Node_allocator; 23376: 23376: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; 23376: 23376: 23376: static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, 23376: "comparison object must be invocable with two arguments of key type"); 23376: # 462 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: protected: 23376: typedef _Rb_tree_node_base* _Base_ptr; 23376: typedef const _Rb_tree_node_base* _Const_Base_ptr; 23376: typedef _Rb_tree_node<_Val>* _Link_type; 23376: typedef const _Rb_tree_node<_Val>* _Const_Link_type; 23376: 23376: private: 23376: 23376: 23376: struct _Reuse_or_alloc_node 23376: { 23376: _Reuse_or_alloc_node(_Rb_tree& __t) 23376: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 23376: { 23376: if (_M_root) 23376: { 23376: _M_root->_M_parent = 0; 23376: 23376: if (_M_nodes->_M_left) 23376: _M_nodes = _M_nodes->_M_left; 23376: } 23376: else 23376: _M_nodes = 0; 23376: } 23376: 23376: 23376: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 23376: 23376: 23376: ~_Reuse_or_alloc_node() 23376: { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } 23376: 23376: template 23376: _Link_type 23376: 23376: 23376: 23376: operator()(_Arg&& __arg) 23376: 23376: { 23376: _Link_type __node = static_cast<_Link_type>(_M_extract()); 23376: if (__node) 23376: { 23376: _M_t._M_destroy_node(__node); 23376: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 23376: return __node; 23376: } 23376: 23376: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 23376: } 23376: 23376: private: 23376: _Base_ptr 23376: _M_extract() 23376: { 23376: if (!_M_nodes) 23376: return _M_nodes; 23376: 23376: _Base_ptr __node = _M_nodes; 23376: _M_nodes = _M_nodes->_M_parent; 23376: if (_M_nodes) 23376: { 23376: if (_M_nodes->_M_right == __node) 23376: { 23376: _M_nodes->_M_right = 0; 23376: 23376: if (_M_nodes->_M_left) 23376: { 23376: _M_nodes = _M_nodes->_M_left; 23376: 23376: while (_M_nodes->_M_right) 23376: _M_nodes = _M_nodes->_M_right; 23376: 23376: if (_M_nodes->_M_left) 23376: _M_nodes = _M_nodes->_M_left; 23376: } 23376: } 23376: else 23376: _M_nodes->_M_left = 0; 23376: } 23376: else 23376: _M_root = 0; 23376: 23376: return __node; 23376: } 23376: 23376: _Base_ptr _M_root; 23376: _Base_ptr _M_nodes; 23376: _Rb_tree& _M_t; 23376: }; 23376: 23376: 23376: 23376: struct _Alloc_node 23376: { 23376: _Alloc_node(_Rb_tree& __t) 23376: : _M_t(__t) { } 23376: 23376: template 23376: _Link_type 23376: 23376: 23376: 23376: operator()(_Arg&& __arg) const 23376: 23376: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 23376: 23376: private: 23376: _Rb_tree& _M_t; 23376: }; 23376: 23376: public: 23376: typedef _Key key_type; 23376: typedef _Val value_type; 23376: typedef value_type* pointer; 23376: typedef const value_type* const_pointer; 23376: typedef value_type& reference; 23376: typedef const value_type& const_reference; 23376: typedef size_t size_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef _Alloc allocator_type; 23376: 23376: _Node_allocator& 23376: _M_get_Node_allocator() noexcept 23376: { return this->_M_impl; } 23376: 23376: const _Node_allocator& 23376: _M_get_Node_allocator() const noexcept 23376: { return this->_M_impl; } 23376: 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return allocator_type(_M_get_Node_allocator()); } 23376: 23376: protected: 23376: _Link_type 23376: _M_get_node() 23376: { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } 23376: 23376: void 23376: _M_put_node(_Link_type __p) noexcept 23376: { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } 23376: # 630 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: template 23376: void 23376: _M_construct_node(_Link_type __node, _Args&&... __args) 23376: { 23376: try 23376: { 23376: ::new(__node) _Rb_tree_node<_Val>; 23376: _Alloc_traits::construct(_M_get_Node_allocator(), 23376: __node->_M_valptr(), 23376: std::forward<_Args>(__args)...); 23376: } 23376: catch(...) 23376: { 23376: __node->~_Rb_tree_node<_Val>(); 23376: _M_put_node(__node); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: _Link_type 23376: _M_create_node(_Args&&... __args) 23376: { 23376: _Link_type __tmp = _M_get_node(); 23376: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 23376: return __tmp; 23376: } 23376: 23376: void 23376: _M_destroy_node(_Link_type __p) noexcept 23376: { 23376: _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 23376: __p->~_Rb_tree_node<_Val>(); 23376: } 23376: 23376: 23376: void 23376: _M_drop_node(_Link_type __p) noexcept 23376: { 23376: _M_destroy_node(__p); 23376: _M_put_node(__p); 23376: } 23376: 23376: template 23376: _Link_type 23376: _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen) 23376: { 23376: _Link_type __tmp = __node_gen(*__x->_M_valptr()); 23376: __tmp->_M_color = __x->_M_color; 23376: __tmp->_M_left = 0; 23376: __tmp->_M_right = 0; 23376: return __tmp; 23376: } 23376: 23376: protected: 23376: 23376: 23376: 23376: 23376: template 23376: 23376: struct _Rb_tree_impl 23376: : public _Node_allocator 23376: , public _Rb_tree_key_compare<_Key_compare> 23376: , public _Rb_tree_header 23376: { 23376: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 23376: 23376: _Rb_tree_impl() 23376: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 23376: 23376: 23376: : _Node_allocator() 23376: { } 23376: 23376: _Rb_tree_impl(const _Rb_tree_impl& __x) 23376: : _Node_allocator(_Alloc_traits::_S_select_on_copy(__x)) 23376: , _Base_key_compare(__x._M_key_compare) 23376: { } 23376: 23376: 23376: 23376: 23376: 23376: 23376: _Rb_tree_impl(_Rb_tree_impl&&) = default; 23376: 23376: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 23376: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 23376: { } 23376: 23376: }; 23376: 23376: _Rb_tree_impl<_Compare> _M_impl; 23376: 23376: protected: 23376: _Base_ptr& 23376: _M_root() noexcept 23376: { return this->_M_impl._M_header._M_parent; } 23376: 23376: _Const_Base_ptr 23376: _M_root() const noexcept 23376: { return this->_M_impl._M_header._M_parent; } 23376: 23376: _Base_ptr& 23376: _M_leftmost() noexcept 23376: { return this->_M_impl._M_header._M_left; } 23376: 23376: _Const_Base_ptr 23376: _M_leftmost() const noexcept 23376: { return this->_M_impl._M_header._M_left; } 23376: 23376: _Base_ptr& 23376: _M_rightmost() noexcept 23376: { return this->_M_impl._M_header._M_right; } 23376: 23376: _Const_Base_ptr 23376: _M_rightmost() const noexcept 23376: { return this->_M_impl._M_header._M_right; } 23376: 23376: _Link_type 23376: _M_begin() noexcept 23376: { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 23376: 23376: _Const_Link_type 23376: _M_begin() const noexcept 23376: { 23376: return static_cast<_Const_Link_type> 23376: (this->_M_impl._M_header._M_parent); 23376: } 23376: 23376: _Base_ptr 23376: _M_end() noexcept 23376: { return &this->_M_impl._M_header; } 23376: 23376: _Const_Base_ptr 23376: _M_end() const noexcept 23376: { return &this->_M_impl._M_header; } 23376: 23376: static const_reference 23376: _S_value(_Const_Link_type __x) 23376: { return *__x->_M_valptr(); } 23376: 23376: static const _Key& 23376: _S_key(_Const_Link_type __x) 23376: { return _KeyOfValue()(_S_value(__x)); } 23376: 23376: static _Link_type 23376: _S_left(_Base_ptr __x) noexcept 23376: { return static_cast<_Link_type>(__x->_M_left); } 23376: 23376: static _Const_Link_type 23376: _S_left(_Const_Base_ptr __x) noexcept 23376: { return static_cast<_Const_Link_type>(__x->_M_left); } 23376: 23376: static _Link_type 23376: _S_right(_Base_ptr __x) noexcept 23376: { return static_cast<_Link_type>(__x->_M_right); } 23376: 23376: static _Const_Link_type 23376: _S_right(_Const_Base_ptr __x) noexcept 23376: { return static_cast<_Const_Link_type>(__x->_M_right); } 23376: 23376: static const_reference 23376: _S_value(_Const_Base_ptr __x) 23376: { return *static_cast<_Const_Link_type>(__x)->_M_valptr(); } 23376: 23376: static const _Key& 23376: _S_key(_Const_Base_ptr __x) 23376: { return _KeyOfValue()(_S_value(__x)); } 23376: 23376: static _Base_ptr 23376: _S_minimum(_Base_ptr __x) noexcept 23376: { return _Rb_tree_node_base::_S_minimum(__x); } 23376: 23376: static _Const_Base_ptr 23376: _S_minimum(_Const_Base_ptr __x) noexcept 23376: { return _Rb_tree_node_base::_S_minimum(__x); } 23376: 23376: static _Base_ptr 23376: _S_maximum(_Base_ptr __x) noexcept 23376: { return _Rb_tree_node_base::_S_maximum(__x); } 23376: 23376: static _Const_Base_ptr 23376: _S_maximum(_Const_Base_ptr __x) noexcept 23376: { return _Rb_tree_node_base::_S_maximum(__x); } 23376: 23376: public: 23376: typedef _Rb_tree_iterator iterator; 23376: typedef _Rb_tree_const_iterator const_iterator; 23376: 23376: typedef std::reverse_iterator reverse_iterator; 23376: typedef std::reverse_iterator const_reverse_iterator; 23376: # 832 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: pair<_Base_ptr, _Base_ptr> 23376: _M_get_insert_unique_pos(const key_type& __k); 23376: 23376: pair<_Base_ptr, _Base_ptr> 23376: _M_get_insert_equal_pos(const key_type& __k); 23376: 23376: pair<_Base_ptr, _Base_ptr> 23376: _M_get_insert_hint_unique_pos(const_iterator __pos, 23376: const key_type& __k); 23376: 23376: pair<_Base_ptr, _Base_ptr> 23376: _M_get_insert_hint_equal_pos(const_iterator __pos, 23376: const key_type& __k); 23376: 23376: private: 23376: 23376: template 23376: iterator 23376: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 23376: 23376: iterator 23376: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); 23376: 23376: template 23376: iterator 23376: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 23376: 23376: template 23376: iterator 23376: _M_insert_equal_lower(_Arg&& __x); 23376: 23376: iterator 23376: _M_insert_lower_node(_Base_ptr __p, _Link_type __z); 23376: 23376: iterator 23376: _M_insert_equal_lower_node(_Link_type __z); 23376: # 883 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: template 23376: _Link_type 23376: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen&); 23376: 23376: template 23376: _Link_type 23376: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 23376: { 23376: _Link_type __root = _M_copy(__x._M_begin(), _M_end(), __gen); 23376: _M_leftmost() = _S_minimum(__root); 23376: _M_rightmost() = _S_maximum(__root); 23376: _M_impl._M_node_count = __x._M_impl._M_node_count; 23376: return __root; 23376: } 23376: 23376: _Link_type 23376: _M_copy(const _Rb_tree& __x) 23376: { 23376: _Alloc_node __an(*this); 23376: return _M_copy(__x, __an); 23376: } 23376: 23376: void 23376: _M_erase(_Link_type __x); 23376: 23376: iterator 23376: _M_lower_bound(_Link_type __x, _Base_ptr __y, 23376: const _Key& __k); 23376: 23376: const_iterator 23376: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 23376: const _Key& __k) const; 23376: 23376: iterator 23376: _M_upper_bound(_Link_type __x, _Base_ptr __y, 23376: const _Key& __k); 23376: 23376: const_iterator 23376: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 23376: const _Key& __k) const; 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: _Rb_tree() = default; 23376: 23376: 23376: _Rb_tree(const _Compare& __comp, 23376: const allocator_type& __a = allocator_type()) 23376: : _M_impl(__comp, _Node_allocator(__a)) { } 23376: 23376: _Rb_tree(const _Rb_tree& __x) 23376: : _M_impl(__x._M_impl) 23376: { 23376: if (__x._M_root() != 0) 23376: _M_root() = _M_copy(__x); 23376: } 23376: 23376: 23376: _Rb_tree(const allocator_type& __a) 23376: : _M_impl(_Compare(), _Node_allocator(__a)) 23376: { } 23376: 23376: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 23376: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 23376: { 23376: if (__x._M_root() != nullptr) 23376: _M_root() = _M_copy(__x); 23376: } 23376: 23376: _Rb_tree(_Rb_tree&&) = default; 23376: 23376: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 23376: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 23376: { } 23376: 23376: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a); 23376: 23376: 23376: ~_Rb_tree() noexcept 23376: { _M_erase(_M_begin()); } 23376: 23376: _Rb_tree& 23376: operator=(const _Rb_tree& __x); 23376: 23376: 23376: _Compare 23376: key_comp() const 23376: { return _M_impl._M_key_compare; } 23376: 23376: iterator 23376: begin() noexcept 23376: { return iterator(this->_M_impl._M_header._M_left); } 23376: 23376: const_iterator 23376: begin() const noexcept 23376: { return const_iterator(this->_M_impl._M_header._M_left); } 23376: 23376: iterator 23376: end() noexcept 23376: { return iterator(&this->_M_impl._M_header); } 23376: 23376: const_iterator 23376: end() const noexcept 23376: { return const_iterator(&this->_M_impl._M_header); } 23376: 23376: reverse_iterator 23376: rbegin() noexcept 23376: { return reverse_iterator(end()); } 23376: 23376: const_reverse_iterator 23376: rbegin() const noexcept 23376: { return const_reverse_iterator(end()); } 23376: 23376: reverse_iterator 23376: rend() noexcept 23376: { return reverse_iterator(begin()); } 23376: 23376: const_reverse_iterator 23376: rend() const noexcept 23376: { return const_reverse_iterator(begin()); } 23376: 23376: bool 23376: empty() const noexcept 23376: { return _M_impl._M_node_count == 0; } 23376: 23376: size_type 23376: size() const noexcept 23376: { return _M_impl._M_node_count; } 23376: 23376: size_type 23376: max_size() const noexcept 23376: { return _Alloc_traits::max_size(_M_get_Node_allocator()); } 23376: 23376: void 23376: swap(_Rb_tree& __t) 23376: noexcept(__is_nothrow_swappable<_Compare>::value); 23376: 23376: 23376: 23376: template 23376: pair 23376: _M_insert_unique(_Arg&& __x); 23376: 23376: template 23376: iterator 23376: _M_insert_equal(_Arg&& __x); 23376: 23376: template 23376: iterator 23376: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 23376: 23376: template 23376: iterator 23376: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 23376: { 23376: _Alloc_node __an(*this); 23376: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 23376: } 23376: 23376: template 23376: iterator 23376: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 23376: 23376: template 23376: iterator 23376: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 23376: { 23376: _Alloc_node __an(*this); 23376: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 23376: } 23376: 23376: template 23376: pair 23376: _M_emplace_unique(_Args&&... __args); 23376: 23376: template 23376: iterator 23376: _M_emplace_equal(_Args&&... __args); 23376: 23376: template 23376: iterator 23376: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 23376: 23376: template 23376: iterator 23376: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 23376: # 1103 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: template 23376: void 23376: _M_insert_unique(_InputIterator __first, _InputIterator __last); 23376: 23376: template 23376: void 23376: _M_insert_equal(_InputIterator __first, _InputIterator __last); 23376: 23376: private: 23376: void 23376: _M_erase_aux(const_iterator __position); 23376: 23376: void 23376: _M_erase_aux(const_iterator __first, const_iterator __last); 23376: 23376: public: 23376: 23376: 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iterator 23376: erase(const_iterator __position) 23376: { 23376: ; 23376: const_iterator __result = __position; 23376: ++__result; 23376: _M_erase_aux(__position); 23376: return __result._M_const_cast(); 23376: } 23376: 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iterator 23376: erase(iterator __position) 23376: { 23376: ; 23376: iterator __result = __position; 23376: ++__result; 23376: _M_erase_aux(__position); 23376: return __result; 23376: } 23376: # 1159 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: size_type 23376: erase(const key_type& __x); 23376: 23376: 23376: 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iterator 23376: erase(const_iterator __first, const_iterator __last) 23376: { 23376: _M_erase_aux(__first, __last); 23376: return __last._M_const_cast(); 23376: } 23376: # 1181 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: void 23376: erase(const key_type* __first, const key_type* __last); 23376: 23376: void 23376: clear() noexcept 23376: { 23376: _M_erase(_M_begin()); 23376: _M_impl._M_reset(); 23376: } 23376: 23376: 23376: iterator 23376: find(const key_type& __k); 23376: 23376: const_iterator 23376: find(const key_type& __k) const; 23376: 23376: size_type 23376: count(const key_type& __k) const; 23376: 23376: iterator 23376: lower_bound(const key_type& __k) 23376: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 23376: 23376: const_iterator 23376: lower_bound(const key_type& __k) const 23376: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 23376: 23376: iterator 23376: upper_bound(const key_type& __k) 23376: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 23376: 23376: const_iterator 23376: upper_bound(const key_type& __k) const 23376: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 23376: 23376: pair 23376: equal_range(const key_type& __k); 23376: 23376: pair 23376: equal_range(const key_type& __k) const; 23376: 23376: 23376: template::type> 23376: iterator 23376: _M_find_tr(const _Kt& __k) 23376: { 23376: const _Rb_tree* __const_this = this; 23376: return __const_this->_M_find_tr(__k)._M_const_cast(); 23376: } 23376: 23376: template::type> 23376: const_iterator 23376: _M_find_tr(const _Kt& __k) const 23376: { 23376: auto __j = _M_lower_bound_tr(__k); 23376: if (__j != end() && _M_impl._M_key_compare(__k, _S_key(__j._M_node))) 23376: __j = end(); 23376: return __j; 23376: } 23376: 23376: template::type> 23376: size_type 23376: _M_count_tr(const _Kt& __k) const 23376: { 23376: auto __p = _M_equal_range_tr(__k); 23376: return std::distance(__p.first, __p.second); 23376: } 23376: 23376: template::type> 23376: iterator 23376: _M_lower_bound_tr(const _Kt& __k) 23376: { 23376: const _Rb_tree* __const_this = this; 23376: return __const_this->_M_lower_bound_tr(__k)._M_const_cast(); 23376: } 23376: 23376: template::type> 23376: const_iterator 23376: _M_lower_bound_tr(const _Kt& __k) const 23376: { 23376: auto __x = _M_begin(); 23376: auto __y = _M_end(); 23376: while (__x != 0) 23376: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 23376: { 23376: __y = __x; 23376: __x = _S_left(__x); 23376: } 23376: else 23376: __x = _S_right(__x); 23376: return const_iterator(__y); 23376: } 23376: 23376: template::type> 23376: iterator 23376: _M_upper_bound_tr(const _Kt& __k) 23376: { 23376: const _Rb_tree* __const_this = this; 23376: return __const_this->_M_upper_bound_tr(__k)._M_const_cast(); 23376: } 23376: 23376: template::type> 23376: const_iterator 23376: _M_upper_bound_tr(const _Kt& __k) const 23376: { 23376: auto __x = _M_begin(); 23376: auto __y = _M_end(); 23376: while (__x != 0) 23376: if (_M_impl._M_key_compare(__k, _S_key(__x))) 23376: { 23376: __y = __x; 23376: __x = _S_left(__x); 23376: } 23376: else 23376: __x = _S_right(__x); 23376: return const_iterator(__y); 23376: } 23376: 23376: template::type> 23376: pair 23376: _M_equal_range_tr(const _Kt& __k) 23376: { 23376: const _Rb_tree* __const_this = this; 23376: auto __ret = __const_this->_M_equal_range_tr(__k); 23376: return { __ret.first._M_const_cast(), __ret.second._M_const_cast() }; 23376: } 23376: 23376: template::type> 23376: pair 23376: _M_equal_range_tr(const _Kt& __k) const 23376: { 23376: auto __low = _M_lower_bound_tr(__k); 23376: auto __high = __low; 23376: auto& __cmp = _M_impl._M_key_compare; 23376: while (__high != end() && !__cmp(__k, _S_key(__high._M_node))) 23376: ++__high; 23376: return { __low, __high }; 23376: } 23376: 23376: 23376: 23376: bool 23376: __rb_verify() const; 23376: 23376: 23376: _Rb_tree& 23376: operator=(_Rb_tree&&) 23376: noexcept(_Alloc_traits::_S_nothrow_move() 23376: && is_nothrow_move_assignable<_Compare>::value); 23376: 23376: template 23376: void 23376: _M_assign_unique(_Iterator, _Iterator); 23376: 23376: template 23376: void 23376: _M_assign_equal(_Iterator, _Iterator); 23376: 23376: private: 23376: 23376: void 23376: _M_move_data(_Rb_tree& __x, std::true_type) 23376: { _M_impl._M_move_data(__x._M_impl); } 23376: 23376: 23376: 23376: void 23376: _M_move_data(_Rb_tree&, std::false_type); 23376: 23376: 23376: void 23376: _M_move_assign(_Rb_tree&, std::true_type); 23376: 23376: 23376: 23376: void 23376: _M_move_assign(_Rb_tree&, std::false_type); 23376: # 1544 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: }; 23376: 23376: template 23376: inline bool 23376: operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 23376: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 23376: { 23376: return __x.size() == __y.size() 23376: && std::equal(__x.begin(), __x.end(), __y.begin()); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 23376: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 23376: { 23376: return std::lexicographical_compare(__x.begin(), __x.end(), 23376: __y.begin(), __y.end()); 23376: } 23376: 23376: template 23376: inline bool 23376: operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 23376: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 23376: { return !(__x == __y); } 23376: 23376: template 23376: inline bool 23376: operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 23376: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 23376: { return __y < __x; } 23376: 23376: template 23376: inline bool 23376: operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 23376: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 23376: { return !(__y < __x); } 23376: 23376: template 23376: inline bool 23376: operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 23376: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 23376: { return !(__x < __y); } 23376: 23376: template 23376: inline void 23376: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 23376: { __x.swap(__y); } 23376: 23376: 23376: template 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 23376: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 23376: { 23376: using __eq = typename _Alloc_traits::is_always_equal; 23376: if (__x._M_root() != nullptr) 23376: _M_move_data(__x, __eq()); 23376: } 23376: 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_move_data(_Rb_tree& __x, std::false_type) 23376: { 23376: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 23376: _M_move_data(__x, std::true_type()); 23376: else 23376: { 23376: _Alloc_node __an(*this); 23376: auto __lbd = 23376: [&__an](const value_type& __cval) 23376: { 23376: auto& __val = const_cast(__cval); 23376: return __an(std::move_if_noexcept(__val)); 23376: }; 23376: _M_root() = _M_copy(__x, __lbd); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_move_assign(_Rb_tree& __x, true_type) 23376: { 23376: clear(); 23376: if (__x._M_root() != nullptr) 23376: _M_move_data(__x, std::true_type()); 23376: std::__alloc_on_move(_M_get_Node_allocator(), 23376: __x._M_get_Node_allocator()); 23376: } 23376: 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_move_assign(_Rb_tree& __x, false_type) 23376: { 23376: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 23376: return _M_move_assign(__x, true_type{}); 23376: 23376: 23376: 23376: _Reuse_or_alloc_node __roan(*this); 23376: _M_impl._M_reset(); 23376: if (__x._M_root() != nullptr) 23376: { 23376: auto __lbd = 23376: [&__roan](const value_type& __cval) 23376: { 23376: auto& __val = const_cast(__cval); 23376: return __roan(std::move_if_noexcept(__val)); 23376: }; 23376: _M_root() = _M_copy(__x, __lbd); 23376: __x.clear(); 23376: } 23376: } 23376: 23376: template 23376: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: operator=(_Rb_tree&& __x) 23376: noexcept(_Alloc_traits::_S_nothrow_move() 23376: && is_nothrow_move_assignable<_Compare>::value) 23376: { 23376: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 23376: _M_move_assign(__x, __bool_constant<_Alloc_traits::_S_nothrow_move()>()); 23376: return *this; 23376: } 23376: 23376: template 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_assign_unique(_Iterator __first, _Iterator __last) 23376: { 23376: _Reuse_or_alloc_node __roan(*this); 23376: _M_impl._M_reset(); 23376: for (; __first != __last; ++__first) 23376: _M_insert_unique_(end(), *__first, __roan); 23376: } 23376: 23376: template 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_assign_equal(_Iterator __first, _Iterator __last) 23376: { 23376: _Reuse_or_alloc_node __roan(*this); 23376: _M_impl._M_reset(); 23376: for (; __first != __last; ++__first) 23376: _M_insert_equal_(end(), *__first, __roan); 23376: } 23376: 23376: 23376: template 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: operator=(const _Rb_tree& __x) 23376: { 23376: if (this != &__x) 23376: { 23376: 23376: 23376: if (_Alloc_traits::_S_propagate_on_copy_assign()) 23376: { 23376: auto& __this_alloc = this->_M_get_Node_allocator(); 23376: auto& __that_alloc = __x._M_get_Node_allocator(); 23376: if (!_Alloc_traits::_S_always_equal() 23376: && __this_alloc != __that_alloc) 23376: { 23376: 23376: 23376: clear(); 23376: std::__alloc_on_copy(__this_alloc, __that_alloc); 23376: } 23376: } 23376: 23376: 23376: _Reuse_or_alloc_node __roan(*this); 23376: _M_impl._M_reset(); 23376: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 23376: if (__x._M_root() != 0) 23376: _M_root() = _M_copy(__x, __roan); 23376: } 23376: 23376: return *this; 23376: } 23376: 23376: template 23376: 23376: template 23376: 23376: 23376: 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_insert_(_Base_ptr __x, _Base_ptr __p, 23376: 23376: _Arg&& __v, 23376: 23376: 23376: 23376: _NodeGen& __node_gen) 23376: { 23376: bool __insert_left = (__x != 0 || __p == _M_end() 23376: || _M_impl._M_key_compare(_KeyOfValue()(__v), 23376: _S_key(__p))); 23376: 23376: _Link_type __z = __node_gen(std::forward<_Arg>(__v)); 23376: 23376: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 23376: this->_M_impl._M_header); 23376: ++_M_impl._M_node_count; 23376: return iterator(__z); 23376: } 23376: 23376: template 23376: 23376: template 23376: 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: 23376: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 23376: 23376: 23376: 23376: { 23376: bool __insert_left = (__p == _M_end() 23376: || !_M_impl._M_key_compare(_S_key(__p), 23376: _KeyOfValue()(__v))); 23376: 23376: _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); 23376: 23376: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 23376: this->_M_impl._M_header); 23376: ++_M_impl._M_node_count; 23376: return iterator(__z); 23376: } 23376: 23376: template 23376: 23376: template 23376: 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: 23376: _M_insert_equal_lower(_Arg&& __v) 23376: 23376: 23376: 23376: { 23376: _Link_type __x = _M_begin(); 23376: _Base_ptr __y = _M_end(); 23376: while (__x != 0) 23376: { 23376: __y = __x; 23376: __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 23376: _S_left(__x) : _S_right(__x); 23376: } 23376: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 23376: } 23376: 23376: template 23376: template 23376: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type 23376: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 23376: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen) 23376: { 23376: 23376: _Link_type __top = _M_clone_node(__x, __node_gen); 23376: __top->_M_parent = __p; 23376: 23376: try 23376: { 23376: if (__x->_M_right) 23376: __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen); 23376: __p = __top; 23376: __x = _S_left(__x); 23376: 23376: while (__x != 0) 23376: { 23376: _Link_type __y = _M_clone_node(__x, __node_gen); 23376: __p->_M_left = __y; 23376: __y->_M_parent = __p; 23376: if (__x->_M_right) 23376: __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen); 23376: __p = __y; 23376: __x = _S_left(__x); 23376: } 23376: } 23376: catch(...) 23376: { 23376: _M_erase(__top); 23376: throw; 23376: } 23376: return __top; 23376: } 23376: 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_erase(_Link_type __x) 23376: { 23376: 23376: while (__x != 0) 23376: { 23376: _M_erase(_S_right(__x)); 23376: _Link_type __y = _S_left(__x); 23376: _M_drop_node(__x); 23376: __x = __y; 23376: } 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_lower_bound(_Link_type __x, _Base_ptr __y, 23376: const _Key& __k) 23376: { 23376: while (__x != 0) 23376: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 23376: __y = __x, __x = _S_left(__x); 23376: else 23376: __x = _S_right(__x); 23376: return iterator(__y); 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::const_iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 23376: const _Key& __k) const 23376: { 23376: while (__x != 0) 23376: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 23376: __y = __x, __x = _S_left(__x); 23376: else 23376: __x = _S_right(__x); 23376: return const_iterator(__y); 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_upper_bound(_Link_type __x, _Base_ptr __y, 23376: const _Key& __k) 23376: { 23376: while (__x != 0) 23376: if (_M_impl._M_key_compare(__k, _S_key(__x))) 23376: __y = __x, __x = _S_left(__x); 23376: else 23376: __x = _S_right(__x); 23376: return iterator(__y); 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::const_iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 23376: const _Key& __k) const 23376: { 23376: while (__x != 0) 23376: if (_M_impl._M_key_compare(__k, _S_key(__x))) 23376: __y = __x, __x = _S_left(__x); 23376: else 23376: __x = _S_right(__x); 23376: return const_iterator(__y); 23376: } 23376: 23376: template 23376: pair::iterator, 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::iterator> 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: equal_range(const _Key& __k) 23376: { 23376: _Link_type __x = _M_begin(); 23376: _Base_ptr __y = _M_end(); 23376: while (__x != 0) 23376: { 23376: if (_M_impl._M_key_compare(_S_key(__x), __k)) 23376: __x = _S_right(__x); 23376: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 23376: __y = __x, __x = _S_left(__x); 23376: else 23376: { 23376: _Link_type __xu(__x); 23376: _Base_ptr __yu(__y); 23376: __y = __x, __x = _S_left(__x); 23376: __xu = _S_right(__xu); 23376: return pair(_M_lower_bound(__x, __y, __k), 23376: _M_upper_bound(__xu, __yu, __k)); 23376: } 23376: } 23376: return pair(iterator(__y), 23376: iterator(__y)); 23376: } 23376: 23376: template 23376: pair::const_iterator, 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::const_iterator> 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: equal_range(const _Key& __k) const 23376: { 23376: _Const_Link_type __x = _M_begin(); 23376: _Const_Base_ptr __y = _M_end(); 23376: while (__x != 0) 23376: { 23376: if (_M_impl._M_key_compare(_S_key(__x), __k)) 23376: __x = _S_right(__x); 23376: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 23376: __y = __x, __x = _S_left(__x); 23376: else 23376: { 23376: _Const_Link_type __xu(__x); 23376: _Const_Base_ptr __yu(__y); 23376: __y = __x, __x = _S_left(__x); 23376: __xu = _S_right(__xu); 23376: return pair(_M_lower_bound(__x, __y, __k), 23376: _M_upper_bound(__xu, __yu, __k)); 23376: } 23376: } 23376: return pair(const_iterator(__y), 23376: const_iterator(__y)); 23376: } 23376: 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: swap(_Rb_tree& __t) 23376: noexcept(__is_nothrow_swappable<_Compare>::value) 23376: { 23376: if (_M_root() == 0) 23376: { 23376: if (__t._M_root() != 0) 23376: _M_impl._M_move_data(__t._M_impl); 23376: } 23376: else if (__t._M_root() == 0) 23376: __t._M_impl._M_move_data(_M_impl); 23376: else 23376: { 23376: std::swap(_M_root(),__t._M_root()); 23376: std::swap(_M_leftmost(),__t._M_leftmost()); 23376: std::swap(_M_rightmost(),__t._M_rightmost()); 23376: 23376: _M_root()->_M_parent = _M_end(); 23376: __t._M_root()->_M_parent = __t._M_end(); 23376: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 23376: } 23376: 23376: std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 23376: 23376: _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), 23376: __t._M_get_Node_allocator()); 23376: } 23376: 23376: template 23376: pair::_Base_ptr, 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::_Base_ptr> 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_get_insert_unique_pos(const key_type& __k) 23376: { 23376: typedef pair<_Base_ptr, _Base_ptr> _Res; 23376: _Link_type __x = _M_begin(); 23376: _Base_ptr __y = _M_end(); 23376: bool __comp = true; 23376: while (__x != 0) 23376: { 23376: __y = __x; 23376: __comp = _M_impl._M_key_compare(__k, _S_key(__x)); 23376: __x = __comp ? _S_left(__x) : _S_right(__x); 23376: } 23376: iterator __j = iterator(__y); 23376: if (__comp) 23376: { 23376: if (__j == begin()) 23376: return _Res(__x, __y); 23376: else 23376: --__j; 23376: } 23376: if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) 23376: return _Res(__x, __y); 23376: return _Res(__j._M_node, 0); 23376: } 23376: 23376: template 23376: pair::_Base_ptr, 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::_Base_ptr> 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_get_insert_equal_pos(const key_type& __k) 23376: { 23376: typedef pair<_Base_ptr, _Base_ptr> _Res; 23376: _Link_type __x = _M_begin(); 23376: _Base_ptr __y = _M_end(); 23376: while (__x != 0) 23376: { 23376: __y = __x; 23376: __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? 23376: _S_left(__x) : _S_right(__x); 23376: } 23376: return _Res(__x, __y); 23376: } 23376: 23376: template 23376: 23376: template 23376: 23376: pair::iterator, bool> 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: 23376: _M_insert_unique(_Arg&& __v) 23376: 23376: 23376: 23376: { 23376: typedef pair _Res; 23376: pair<_Base_ptr, _Base_ptr> __res 23376: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 23376: 23376: if (__res.second) 23376: { 23376: _Alloc_node __an(*this); 23376: return _Res(_M_insert_(__res.first, __res.second, 23376: std::forward<_Arg>(__v), __an), 23376: true); 23376: } 23376: 23376: return _Res(iterator(__res.first), false); 23376: } 23376: 23376: template 23376: 23376: template 23376: 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: 23376: _M_insert_equal(_Arg&& __v) 23376: 23376: 23376: 23376: { 23376: pair<_Base_ptr, _Base_ptr> __res 23376: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 23376: _Alloc_node __an(*this); 23376: return _M_insert_(__res.first, __res.second, 23376: std::forward<_Arg>(__v), __an); 23376: } 23376: 23376: template 23376: pair::_Base_ptr, 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::_Base_ptr> 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_get_insert_hint_unique_pos(const_iterator __position, 23376: const key_type& __k) 23376: { 23376: iterator __pos = __position._M_const_cast(); 23376: typedef pair<_Base_ptr, _Base_ptr> _Res; 23376: 23376: 23376: if (__pos._M_node == _M_end()) 23376: { 23376: if (size() > 0 23376: && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) 23376: return _Res(0, _M_rightmost()); 23376: else 23376: return _M_get_insert_unique_pos(__k); 23376: } 23376: else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) 23376: { 23376: 23376: iterator __before = __pos; 23376: if (__pos._M_node == _M_leftmost()) 23376: return _Res(_M_leftmost(), _M_leftmost()); 23376: else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) 23376: { 23376: if (_S_right(__before._M_node) == 0) 23376: return _Res(0, __before._M_node); 23376: else 23376: return _Res(__pos._M_node, __pos._M_node); 23376: } 23376: else 23376: return _M_get_insert_unique_pos(__k); 23376: } 23376: else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 23376: { 23376: 23376: iterator __after = __pos; 23376: if (__pos._M_node == _M_rightmost()) 23376: return _Res(0, _M_rightmost()); 23376: else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) 23376: { 23376: if (_S_right(__pos._M_node) == 0) 23376: return _Res(0, __pos._M_node); 23376: else 23376: return _Res(__after._M_node, __after._M_node); 23376: } 23376: else 23376: return _M_get_insert_unique_pos(__k); 23376: } 23376: else 23376: 23376: return _Res(__pos._M_node, 0); 23376: } 23376: 23376: template 23376: 23376: template 23376: 23376: 23376: 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_insert_unique_(const_iterator __position, 23376: 23376: _Arg&& __v, 23376: 23376: 23376: 23376: _NodeGen& __node_gen) 23376: { 23376: pair<_Base_ptr, _Base_ptr> __res 23376: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 23376: 23376: if (__res.second) 23376: return _M_insert_(__res.first, __res.second, 23376: std::forward<_Arg>(__v), 23376: __node_gen); 23376: return iterator(__res.first); 23376: } 23376: 23376: template 23376: pair::_Base_ptr, 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::_Base_ptr> 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 23376: { 23376: iterator __pos = __position._M_const_cast(); 23376: typedef pair<_Base_ptr, _Base_ptr> _Res; 23376: 23376: 23376: if (__pos._M_node == _M_end()) 23376: { 23376: if (size() > 0 23376: && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) 23376: return _Res(0, _M_rightmost()); 23376: else 23376: return _M_get_insert_equal_pos(__k); 23376: } 23376: else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 23376: { 23376: 23376: iterator __before = __pos; 23376: if (__pos._M_node == _M_leftmost()) 23376: return _Res(_M_leftmost(), _M_leftmost()); 23376: else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) 23376: { 23376: if (_S_right(__before._M_node) == 0) 23376: return _Res(0, __before._M_node); 23376: else 23376: return _Res(__pos._M_node, __pos._M_node); 23376: } 23376: else 23376: return _M_get_insert_equal_pos(__k); 23376: } 23376: else 23376: { 23376: 23376: iterator __after = __pos; 23376: if (__pos._M_node == _M_rightmost()) 23376: return _Res(0, _M_rightmost()); 23376: else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) 23376: { 23376: if (_S_right(__pos._M_node) == 0) 23376: return _Res(0, __pos._M_node); 23376: else 23376: return _Res(__after._M_node, __after._M_node); 23376: } 23376: else 23376: return _Res(0, 0); 23376: } 23376: } 23376: 23376: template 23376: 23376: template 23376: 23376: 23376: 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_insert_equal_(const_iterator __position, 23376: 23376: _Arg&& __v, 23376: 23376: 23376: 23376: _NodeGen& __node_gen) 23376: { 23376: pair<_Base_ptr, _Base_ptr> __res 23376: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 23376: 23376: if (__res.second) 23376: return _M_insert_(__res.first, __res.second, 23376: std::forward<_Arg>(__v), 23376: __node_gen); 23376: 23376: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 23376: } 23376: 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) 23376: { 23376: bool __insert_left = (__x != 0 || __p == _M_end() 23376: || _M_impl._M_key_compare(_S_key(__z), 23376: _S_key(__p))); 23376: 23376: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 23376: this->_M_impl._M_header); 23376: ++_M_impl._M_node_count; 23376: return iterator(__z); 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_insert_lower_node(_Base_ptr __p, _Link_type __z) 23376: { 23376: bool __insert_left = (__p == _M_end() 23376: || !_M_impl._M_key_compare(_S_key(__p), 23376: _S_key(__z))); 23376: 23376: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 23376: this->_M_impl._M_header); 23376: ++_M_impl._M_node_count; 23376: return iterator(__z); 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_insert_equal_lower_node(_Link_type __z) 23376: { 23376: _Link_type __x = _M_begin(); 23376: _Base_ptr __y = _M_end(); 23376: while (__x != 0) 23376: { 23376: __y = __x; 23376: __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? 23376: _S_left(__x) : _S_right(__x); 23376: } 23376: return _M_insert_lower_node(__y, __z); 23376: } 23376: 23376: template 23376: template 23376: pair::iterator, bool> 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_emplace_unique(_Args&&... __args) 23376: { 23376: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 23376: 23376: try 23376: { 23376: typedef pair _Res; 23376: auto __res = _M_get_insert_unique_pos(_S_key(__z)); 23376: if (__res.second) 23376: return _Res(_M_insert_node(__res.first, __res.second, __z), true); 23376: 23376: _M_drop_node(__z); 23376: return _Res(iterator(__res.first), false); 23376: } 23376: catch(...) 23376: { 23376: _M_drop_node(__z); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_emplace_equal(_Args&&... __args) 23376: { 23376: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 23376: 23376: try 23376: { 23376: auto __res = _M_get_insert_equal_pos(_S_key(__z)); 23376: return _M_insert_node(__res.first, __res.second, __z); 23376: } 23376: catch(...) 23376: { 23376: _M_drop_node(__z); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 23376: { 23376: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 23376: 23376: try 23376: { 23376: auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z)); 23376: 23376: if (__res.second) 23376: return _M_insert_node(__res.first, __res.second, __z); 23376: 23376: _M_drop_node(__z); 23376: return iterator(__res.first); 23376: } 23376: catch(...) 23376: { 23376: _M_drop_node(__z); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 23376: { 23376: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 23376: 23376: try 23376: { 23376: auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z)); 23376: 23376: if (__res.second) 23376: return _M_insert_node(__res.first, __res.second, __z); 23376: 23376: return _M_insert_equal_lower_node(__z); 23376: } 23376: catch(...) 23376: { 23376: _M_drop_node(__z); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: template 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 23376: _M_insert_unique(_II __first, _II __last) 23376: { 23376: _Alloc_node __an(*this); 23376: for (; __first != __last; ++__first) 23376: _M_insert_unique_(end(), *__first, __an); 23376: } 23376: 23376: template 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 23376: _M_insert_equal(_II __first, _II __last) 23376: { 23376: _Alloc_node __an(*this); 23376: for (; __first != __last; ++__first) 23376: _M_insert_equal_(end(), *__first, __an); 23376: } 23376: 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_erase_aux(const_iterator __position) 23376: { 23376: _Link_type __y = 23376: static_cast<_Link_type>(_Rb_tree_rebalance_for_erase 23376: (const_cast<_Base_ptr>(__position._M_node), 23376: this->_M_impl._M_header)); 23376: _M_drop_node(__y); 23376: --_M_impl._M_node_count; 23376: } 23376: 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: _M_erase_aux(const_iterator __first, const_iterator __last) 23376: { 23376: if (__first == begin() && __last == end()) 23376: clear(); 23376: else 23376: while (__first != __last) 23376: _M_erase_aux(__first++); 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: erase(const _Key& __x) 23376: { 23376: pair __p = equal_range(__x); 23376: const size_type __old_size = size(); 23376: _M_erase_aux(__p.first, __p.second); 23376: return __old_size - size(); 23376: } 23376: 23376: template 23376: void 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: erase(const _Key* __first, const _Key* __last) 23376: { 23376: while (__first != __last) 23376: erase(*__first++); 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: find(const _Key& __k) 23376: { 23376: iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 23376: return (__j == end() 23376: || _M_impl._M_key_compare(__k, 23376: _S_key(__j._M_node))) ? end() : __j; 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, 23376: _Compare, _Alloc>::const_iterator 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: find(const _Key& __k) const 23376: { 23376: const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 23376: return (__j == end() 23376: || _M_impl._M_key_compare(__k, 23376: _S_key(__j._M_node))) ? end() : __j; 23376: } 23376: 23376: template 23376: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 23376: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 23376: count(const _Key& __k) const 23376: { 23376: pair __p = equal_range(__k); 23376: const size_type __n = std::distance(__p.first, __p.second); 23376: return __n; 23376: } 23376: 23376: __attribute__ ((__pure__)) unsigned int 23376: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 23376: const _Rb_tree_node_base* __root) throw (); 23376: 23376: template 23376: bool 23376: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 23376: { 23376: if (_M_impl._M_node_count == 0 || begin() == end()) 23376: return _M_impl._M_node_count == 0 && begin() == end() 23376: && this->_M_impl._M_header._M_left == _M_end() 23376: && this->_M_impl._M_header._M_right == _M_end(); 23376: 23376: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 23376: for (const_iterator __it = begin(); __it != end(); ++__it) 23376: { 23376: _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); 23376: _Const_Link_type __L = _S_left(__x); 23376: _Const_Link_type __R = _S_right(__x); 23376: 23376: if (__x->_M_color == _S_red) 23376: if ((__L && __L->_M_color == _S_red) 23376: || (__R && __R->_M_color == _S_red)) 23376: return false; 23376: 23376: if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) 23376: return false; 23376: if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) 23376: return false; 23376: 23376: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 23376: return false; 23376: } 23376: 23376: if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) 23376: return false; 23376: if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) 23376: return false; 23376: return true; 23376: } 23376: # 2627 "/usr/include/c++/8/bits/stl_tree.h" 3 23376: 23376: } 23376: # 61 "/usr/include/c++/8/set" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_set.h" 1 3 23376: # 64 "/usr/include/c++/8/bits/stl_set.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: class multiset; 23376: # 92 "/usr/include/c++/8/bits/stl_set.h" 3 23376: template, 23376: typename _Alloc = std::allocator<_Key> > 23376: class set 23376: { 23376: # 108 "/usr/include/c++/8/bits/stl_set.h" 3 23376: static_assert(is_same::type, _Key>::value, 23376: "std::set must have a non-const, non-volatile value_type"); 23376: 23376: 23376: 23376: 23376: 23376: 23376: public: 23376: 23376: 23376: 23376: typedef _Key key_type; 23376: typedef _Key value_type; 23376: typedef _Compare key_compare; 23376: typedef _Compare value_compare; 23376: typedef _Alloc allocator_type; 23376: 23376: 23376: private: 23376: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 23376: rebind<_Key>::other _Key_alloc_type; 23376: 23376: typedef _Rb_tree, 23376: key_compare, _Key_alloc_type> _Rep_type; 23376: _Rep_type _M_t; 23376: 23376: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 23376: 23376: public: 23376: 23376: 23376: typedef typename _Alloc_traits::pointer pointer; 23376: typedef typename _Alloc_traits::const_pointer const_pointer; 23376: typedef typename _Alloc_traits::reference reference; 23376: typedef typename _Alloc_traits::const_reference const_reference; 23376: 23376: 23376: 23376: typedef typename _Rep_type::const_iterator iterator; 23376: typedef typename _Rep_type::const_iterator const_iterator; 23376: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 23376: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 23376: typedef typename _Rep_type::size_type size_type; 23376: typedef typename _Rep_type::difference_type difference_type; 23376: # 167 "/usr/include/c++/8/bits/stl_set.h" 3 23376: set() = default; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: set(const _Compare& __comp, 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Key_alloc_type(__a)) { } 23376: # 190 "/usr/include/c++/8/bits/stl_set.h" 3 23376: template 23376: set(_InputIterator __first, _InputIterator __last) 23376: : _M_t() 23376: { _M_t._M_insert_unique(__first, __last); } 23376: # 207 "/usr/include/c++/8/bits/stl_set.h" 3 23376: template 23376: set(_InputIterator __first, _InputIterator __last, 23376: const _Compare& __comp, 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Key_alloc_type(__a)) 23376: { _M_t._M_insert_unique(__first, __last); } 23376: # 223 "/usr/include/c++/8/bits/stl_set.h" 3 23376: set(const set&) = default; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: set(set&&) = default; 23376: # 243 "/usr/include/c++/8/bits/stl_set.h" 3 23376: set(initializer_list __l, 23376: const _Compare& __comp = _Compare(), 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Key_alloc_type(__a)) 23376: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 23376: 23376: 23376: explicit 23376: set(const allocator_type& __a) 23376: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 23376: 23376: 23376: set(const set& __x, const allocator_type& __a) 23376: : _M_t(__x._M_t, _Key_alloc_type(__a)) { } 23376: 23376: 23376: set(set&& __x, const allocator_type& __a) 23376: noexcept(is_nothrow_copy_constructible<_Compare>::value 23376: && _Alloc_traits::_S_always_equal()) 23376: : _M_t(std::move(__x._M_t), _Key_alloc_type(__a)) { } 23376: 23376: 23376: set(initializer_list __l, const allocator_type& __a) 23376: : _M_t(_Compare(), _Key_alloc_type(__a)) 23376: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 23376: 23376: 23376: template 23376: set(_InputIterator __first, _InputIterator __last, 23376: const allocator_type& __a) 23376: : _M_t(_Compare(), _Key_alloc_type(__a)) 23376: { _M_t._M_insert_unique(__first, __last); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: ~set() = default; 23376: # 297 "/usr/include/c++/8/bits/stl_set.h" 3 23376: set& 23376: operator=(const set&) = default; 23376: 23376: 23376: set& 23376: operator=(set&&) = default; 23376: # 315 "/usr/include/c++/8/bits/stl_set.h" 3 23376: set& 23376: operator=(initializer_list __l) 23376: { 23376: _M_t._M_assign_unique(__l.begin(), __l.end()); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: key_compare 23376: key_comp() const 23376: { return _M_t.key_comp(); } 23376: 23376: value_compare 23376: value_comp() const 23376: { return _M_t.key_comp(); } 23376: 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return allocator_type(_M_t.get_allocator()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: begin() const noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: end() const noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rbegin() const noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rend() const noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: cbegin() const noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: cend() const noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: crbegin() const noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: crend() const noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: bool 23376: empty() const noexcept 23376: { return _M_t.empty(); } 23376: 23376: 23376: size_type 23376: size() const noexcept 23376: { return _M_t.size(); } 23376: 23376: 23376: size_type 23376: max_size() const noexcept 23376: { return _M_t.max_size(); } 23376: # 440 "/usr/include/c++/8/bits/stl_set.h" 3 23376: void 23376: swap(set& __x) 23376: noexcept(__is_nothrow_swappable<_Compare>::value) 23376: { _M_t.swap(__x._M_t); } 23376: # 460 "/usr/include/c++/8/bits/stl_set.h" 3 23376: template 23376: std::pair 23376: emplace(_Args&&... __args) 23376: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 23376: # 486 "/usr/include/c++/8/bits/stl_set.h" 3 23376: template 23376: iterator 23376: emplace_hint(const_iterator __pos, _Args&&... __args) 23376: { 23376: return _M_t._M_emplace_hint_unique(__pos, 23376: std::forward<_Args>(__args)...); 23376: } 23376: # 508 "/usr/include/c++/8/bits/stl_set.h" 3 23376: std::pair 23376: insert(const value_type& __x) 23376: { 23376: std::pair __p = 23376: _M_t._M_insert_unique(__x); 23376: return std::pair(__p.first, __p.second); 23376: } 23376: 23376: 23376: std::pair 23376: insert(value_type&& __x) 23376: { 23376: std::pair __p = 23376: _M_t._M_insert_unique(std::move(__x)); 23376: return std::pair(__p.first, __p.second); 23376: } 23376: # 545 "/usr/include/c++/8/bits/stl_set.h" 3 23376: iterator 23376: insert(const_iterator __position, const value_type& __x) 23376: { return _M_t._M_insert_unique_(__position, __x); } 23376: 23376: 23376: iterator 23376: insert(const_iterator __position, value_type&& __x) 23376: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 23376: # 564 "/usr/include/c++/8/bits/stl_set.h" 3 23376: template 23376: void 23376: insert(_InputIterator __first, _InputIterator __last) 23376: { _M_t._M_insert_unique(__first, __last); } 23376: # 577 "/usr/include/c++/8/bits/stl_set.h" 3 23376: void 23376: insert(initializer_list __l) 23376: { this->insert(__l.begin(), __l.end()); } 23376: # 652 "/usr/include/c++/8/bits/stl_set.h" 3 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iterator 23376: erase(const_iterator __position) 23376: { return _M_t.erase(__position); } 23376: # 683 "/usr/include/c++/8/bits/stl_set.h" 3 23376: size_type 23376: erase(const key_type& __x) 23376: { return _M_t.erase(__x); } 23376: # 704 "/usr/include/c++/8/bits/stl_set.h" 3 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iterator 23376: erase(const_iterator __first, const_iterator __last) 23376: { return _M_t.erase(__first, __last); } 23376: # 732 "/usr/include/c++/8/bits/stl_set.h" 3 23376: void 23376: clear() noexcept 23376: { _M_t.clear(); } 23376: # 747 "/usr/include/c++/8/bits/stl_set.h" 3 23376: size_type 23376: count(const key_type& __x) const 23376: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 23376: 23376: 23376: template 23376: auto 23376: count(const _Kt& __x) const 23376: -> decltype(_M_t._M_count_tr(__x)) 23376: { return _M_t._M_count_tr(__x); } 23376: # 774 "/usr/include/c++/8/bits/stl_set.h" 3 23376: iterator 23376: find(const key_type& __x) 23376: { return _M_t.find(__x); } 23376: 23376: const_iterator 23376: find(const key_type& __x) const 23376: { return _M_t.find(__x); } 23376: 23376: 23376: template 23376: auto 23376: find(const _Kt& __x) 23376: -> decltype(iterator{_M_t._M_find_tr(__x)}) 23376: { return iterator{_M_t._M_find_tr(__x)}; } 23376: 23376: template 23376: auto 23376: find(const _Kt& __x) const 23376: -> decltype(const_iterator{_M_t._M_find_tr(__x)}) 23376: { return const_iterator{_M_t._M_find_tr(__x)}; } 23376: # 809 "/usr/include/c++/8/bits/stl_set.h" 3 23376: iterator 23376: lower_bound(const key_type& __x) 23376: { return _M_t.lower_bound(__x); } 23376: 23376: const_iterator 23376: lower_bound(const key_type& __x) const 23376: { return _M_t.lower_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: lower_bound(const _Kt& __x) 23376: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 23376: { return iterator(_M_t._M_lower_bound_tr(__x)); } 23376: 23376: template 23376: auto 23376: lower_bound(const _Kt& __x) const 23376: -> decltype(const_iterator(_M_t._M_lower_bound_tr(__x))) 23376: { return const_iterator(_M_t._M_lower_bound_tr(__x)); } 23376: # 839 "/usr/include/c++/8/bits/stl_set.h" 3 23376: iterator 23376: upper_bound(const key_type& __x) 23376: { return _M_t.upper_bound(__x); } 23376: 23376: const_iterator 23376: upper_bound(const key_type& __x) const 23376: { return _M_t.upper_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: upper_bound(const _Kt& __x) 23376: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 23376: { return iterator(_M_t._M_upper_bound_tr(__x)); } 23376: 23376: template 23376: auto 23376: upper_bound(const _Kt& __x) const 23376: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 23376: { return const_iterator(_M_t._M_upper_bound_tr(__x)); } 23376: # 878 "/usr/include/c++/8/bits/stl_set.h" 3 23376: std::pair 23376: equal_range(const key_type& __x) 23376: { return _M_t.equal_range(__x); } 23376: 23376: std::pair 23376: equal_range(const key_type& __x) const 23376: { return _M_t.equal_range(__x); } 23376: 23376: 23376: template 23376: auto 23376: equal_range(const _Kt& __x) 23376: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 23376: { return pair(_M_t._M_equal_range_tr(__x)); } 23376: 23376: template 23376: auto 23376: equal_range(const _Kt& __x) const 23376: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 23376: { return pair(_M_t._M_equal_range_tr(__x)); } 23376: 23376: 23376: 23376: template 23376: friend bool 23376: operator==(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 23376: 23376: template 23376: friend bool 23376: operator<(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 23376: }; 23376: # 956 "/usr/include/c++/8/bits/stl_set.h" 3 23376: template 23376: inline bool 23376: operator==(const set<_Key, _Compare, _Alloc>& __x, 23376: const set<_Key, _Compare, _Alloc>& __y) 23376: { return __x._M_t == __y._M_t; } 23376: # 973 "/usr/include/c++/8/bits/stl_set.h" 3 23376: template 23376: inline bool 23376: operator<(const set<_Key, _Compare, _Alloc>& __x, 23376: const set<_Key, _Compare, _Alloc>& __y) 23376: { return __x._M_t < __y._M_t; } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const set<_Key, _Compare, _Alloc>& __x, 23376: const set<_Key, _Compare, _Alloc>& __y) 23376: { return !(__x == __y); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>(const set<_Key, _Compare, _Alloc>& __x, 23376: const set<_Key, _Compare, _Alloc>& __y) 23376: { return __y < __x; } 23376: 23376: 23376: template 23376: inline bool 23376: operator<=(const set<_Key, _Compare, _Alloc>& __x, 23376: const set<_Key, _Compare, _Alloc>& __y) 23376: { return !(__y < __x); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>=(const set<_Key, _Compare, _Alloc>& __x, 23376: const set<_Key, _Compare, _Alloc>& __y) 23376: { return !(__x < __y); } 23376: 23376: 23376: template 23376: inline void 23376: swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y) 23376: noexcept(noexcept(__x.swap(__y))) 23376: { __x.swap(__y); } 23376: 23376: 23376: # 1035 "/usr/include/c++/8/bits/stl_set.h" 3 23376: 23376: } 23376: # 62 "/usr/include/c++/8/set" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_multiset.h" 1 3 23376: # 64 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: class set; 23376: # 94 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: template , 23376: typename _Alloc = std::allocator<_Key> > 23376: class multiset 23376: { 23376: # 110 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: static_assert(is_same::type, _Key>::value, 23376: "std::multiset must have a non-const, non-volatile value_type"); 23376: 23376: 23376: 23376: 23376: 23376: 23376: public: 23376: 23376: typedef _Key key_type; 23376: typedef _Key value_type; 23376: typedef _Compare key_compare; 23376: typedef _Compare value_compare; 23376: typedef _Alloc allocator_type; 23376: 23376: private: 23376: 23376: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 23376: rebind<_Key>::other _Key_alloc_type; 23376: 23376: typedef _Rb_tree, 23376: key_compare, _Key_alloc_type> _Rep_type; 23376: 23376: _Rep_type _M_t; 23376: 23376: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 23376: 23376: public: 23376: typedef typename _Alloc_traits::pointer pointer; 23376: typedef typename _Alloc_traits::const_pointer const_pointer; 23376: typedef typename _Alloc_traits::reference reference; 23376: typedef typename _Alloc_traits::const_reference const_reference; 23376: 23376: 23376: 23376: typedef typename _Rep_type::const_iterator iterator; 23376: typedef typename _Rep_type::const_iterator const_iterator; 23376: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 23376: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 23376: typedef typename _Rep_type::size_type size_type; 23376: typedef typename _Rep_type::difference_type difference_type; 23376: # 164 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: multiset() = default; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: multiset(const _Compare& __comp, 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Key_alloc_type(__a)) { } 23376: # 186 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: template 23376: multiset(_InputIterator __first, _InputIterator __last) 23376: : _M_t() 23376: { _M_t._M_insert_equal(__first, __last); } 23376: # 202 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: template 23376: multiset(_InputIterator __first, _InputIterator __last, 23376: const _Compare& __comp, 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Key_alloc_type(__a)) 23376: { _M_t._M_insert_equal(__first, __last); } 23376: # 218 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: multiset(const multiset&) = default; 23376: # 227 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: multiset(multiset&&) = default; 23376: # 239 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: multiset(initializer_list __l, 23376: const _Compare& __comp = _Compare(), 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Key_alloc_type(__a)) 23376: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 23376: 23376: 23376: explicit 23376: multiset(const allocator_type& __a) 23376: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 23376: 23376: 23376: multiset(const multiset& __m, const allocator_type& __a) 23376: : _M_t(__m._M_t, _Key_alloc_type(__a)) { } 23376: 23376: 23376: multiset(multiset&& __m, const allocator_type& __a) 23376: noexcept(is_nothrow_copy_constructible<_Compare>::value 23376: && _Alloc_traits::_S_always_equal()) 23376: : _M_t(std::move(__m._M_t), _Key_alloc_type(__a)) { } 23376: 23376: 23376: multiset(initializer_list __l, const allocator_type& __a) 23376: : _M_t(_Compare(), _Key_alloc_type(__a)) 23376: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 23376: 23376: 23376: template 23376: multiset(_InputIterator __first, _InputIterator __last, 23376: const allocator_type& __a) 23376: : _M_t(_Compare(), _Key_alloc_type(__a)) 23376: { _M_t._M_insert_equal(__first, __last); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: ~multiset() = default; 23376: # 293 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: multiset& 23376: operator=(const multiset&) = default; 23376: 23376: 23376: multiset& 23376: operator=(multiset&&) = default; 23376: # 311 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: multiset& 23376: operator=(initializer_list __l) 23376: { 23376: _M_t._M_assign_equal(__l.begin(), __l.end()); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: key_compare 23376: key_comp() const 23376: { return _M_t.key_comp(); } 23376: 23376: value_compare 23376: value_comp() const 23376: { return _M_t.key_comp(); } 23376: 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return allocator_type(_M_t.get_allocator()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: begin() const noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: end() const noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rbegin() const noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rend() const noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: cbegin() const noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: cend() const noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: crbegin() const noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: crend() const noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: bool 23376: empty() const noexcept 23376: { return _M_t.empty(); } 23376: 23376: 23376: size_type 23376: size() const noexcept 23376: { return _M_t.size(); } 23376: 23376: 23376: size_type 23376: max_size() const noexcept 23376: { return _M_t.max_size(); } 23376: # 436 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: void 23376: swap(multiset& __x) 23376: noexcept(__is_nothrow_swappable<_Compare>::value) 23376: { _M_t.swap(__x._M_t); } 23376: # 455 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: template 23376: iterator 23376: emplace(_Args&&... __args) 23376: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 23376: # 481 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: template 23376: iterator 23376: emplace_hint(const_iterator __pos, _Args&&... __args) 23376: { 23376: return _M_t._M_emplace_hint_equal(__pos, 23376: std::forward<_Args>(__args)...); 23376: } 23376: # 501 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: iterator 23376: insert(const value_type& __x) 23376: { return _M_t._M_insert_equal(__x); } 23376: 23376: 23376: iterator 23376: insert(value_type&& __x) 23376: { return _M_t._M_insert_equal(std::move(__x)); } 23376: # 531 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: iterator 23376: insert(const_iterator __position, const value_type& __x) 23376: { return _M_t._M_insert_equal_(__position, __x); } 23376: 23376: 23376: iterator 23376: insert(const_iterator __position, value_type&& __x) 23376: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 23376: # 549 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: template 23376: void 23376: insert(_InputIterator __first, _InputIterator __last) 23376: { _M_t._M_insert_equal(__first, __last); } 23376: # 562 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: void 23376: insert(initializer_list __l) 23376: { this->insert(__l.begin(), __l.end()); } 23376: # 637 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iterator 23376: erase(const_iterator __position) 23376: { return _M_t.erase(__position); } 23376: # 668 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: size_type 23376: erase(const key_type& __x) 23376: { return _M_t.erase(__x); } 23376: # 689 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iterator 23376: erase(const_iterator __first, const_iterator __last) 23376: { return _M_t.erase(__first, __last); } 23376: # 717 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: void 23376: clear() noexcept 23376: { _M_t.clear(); } 23376: # 729 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: size_type 23376: count(const key_type& __x) const 23376: { return _M_t.count(__x); } 23376: 23376: 23376: template 23376: auto 23376: count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x)) 23376: { return _M_t._M_count_tr(__x); } 23376: # 755 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: iterator 23376: find(const key_type& __x) 23376: { return _M_t.find(__x); } 23376: 23376: const_iterator 23376: find(const key_type& __x) const 23376: { return _M_t.find(__x); } 23376: 23376: 23376: template 23376: auto 23376: find(const _Kt& __x) 23376: -> decltype(iterator{_M_t._M_find_tr(__x)}) 23376: { return iterator{_M_t._M_find_tr(__x)}; } 23376: 23376: template 23376: auto 23376: find(const _Kt& __x) const 23376: -> decltype(const_iterator{_M_t._M_find_tr(__x)}) 23376: { return const_iterator{_M_t._M_find_tr(__x)}; } 23376: # 790 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: iterator 23376: lower_bound(const key_type& __x) 23376: { return _M_t.lower_bound(__x); } 23376: 23376: const_iterator 23376: lower_bound(const key_type& __x) const 23376: { return _M_t.lower_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: lower_bound(const _Kt& __x) 23376: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 23376: { return iterator(_M_t._M_lower_bound_tr(__x)); } 23376: 23376: template 23376: auto 23376: lower_bound(const _Kt& __x) const 23376: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 23376: { return iterator(_M_t._M_lower_bound_tr(__x)); } 23376: # 820 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: iterator 23376: upper_bound(const key_type& __x) 23376: { return _M_t.upper_bound(__x); } 23376: 23376: const_iterator 23376: upper_bound(const key_type& __x) const 23376: { return _M_t.upper_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: upper_bound(const _Kt& __x) 23376: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 23376: { return iterator(_M_t._M_upper_bound_tr(__x)); } 23376: 23376: template 23376: auto 23376: upper_bound(const _Kt& __x) const 23376: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 23376: { return iterator(_M_t._M_upper_bound_tr(__x)); } 23376: # 859 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: std::pair 23376: equal_range(const key_type& __x) 23376: { return _M_t.equal_range(__x); } 23376: 23376: std::pair 23376: equal_range(const key_type& __x) const 23376: { return _M_t.equal_range(__x); } 23376: 23376: 23376: template 23376: auto 23376: equal_range(const _Kt& __x) 23376: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 23376: { return pair(_M_t._M_equal_range_tr(__x)); } 23376: 23376: template 23376: auto 23376: equal_range(const _Kt& __x) const 23376: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 23376: { return pair(_M_t._M_equal_range_tr(__x)); } 23376: 23376: 23376: 23376: template 23376: friend bool 23376: operator==(const multiset<_K1, _C1, _A1>&, 23376: const multiset<_K1, _C1, _A1>&); 23376: 23376: template 23376: friend bool 23376: operator< (const multiset<_K1, _C1, _A1>&, 23376: const multiset<_K1, _C1, _A1>&); 23376: }; 23376: # 941 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: template 23376: inline bool 23376: operator==(const multiset<_Key, _Compare, _Alloc>& __x, 23376: const multiset<_Key, _Compare, _Alloc>& __y) 23376: { return __x._M_t == __y._M_t; } 23376: # 958 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: template 23376: inline bool 23376: operator<(const multiset<_Key, _Compare, _Alloc>& __x, 23376: const multiset<_Key, _Compare, _Alloc>& __y) 23376: { return __x._M_t < __y._M_t; } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const multiset<_Key, _Compare, _Alloc>& __x, 23376: const multiset<_Key, _Compare, _Alloc>& __y) 23376: { return !(__x == __y); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>(const multiset<_Key,_Compare,_Alloc>& __x, 23376: const multiset<_Key,_Compare,_Alloc>& __y) 23376: { return __y < __x; } 23376: 23376: 23376: template 23376: inline bool 23376: operator<=(const multiset<_Key, _Compare, _Alloc>& __x, 23376: const multiset<_Key, _Compare, _Alloc>& __y) 23376: { return !(__y < __x); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>=(const multiset<_Key, _Compare, _Alloc>& __x, 23376: const multiset<_Key, _Compare, _Alloc>& __y) 23376: { return !(__x < __y); } 23376: 23376: 23376: template 23376: inline void 23376: swap(multiset<_Key, _Compare, _Alloc>& __x, 23376: multiset<_Key, _Compare, _Alloc>& __y) 23376: noexcept(noexcept(__x.swap(__y))) 23376: { __x.swap(__y); } 23376: 23376: 23376: # 1023 "/usr/include/c++/8/bits/stl_multiset.h" 3 23376: 23376: } 23376: # 63 "/usr/include/c++/8/set" 2 3 23376: # 34 "../../src/Float_defs.hh" 2 23376: # 1 "/usr/include/c++/8/cmath" 1 3 23376: # 39 "/usr/include/c++/8/cmath" 3 23376: 23376: # 40 "/usr/include/c++/8/cmath" 3 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/math.h" 1 3 4 23376: # 27 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 23376: # 28 "/usr/include/math.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern "C" { 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/math-vector.h" 1 3 4 23376: # 27 "/usr/include/arm-linux-gnueabihf/bits/math-vector.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/libm-simd-decl-stubs.h" 1 3 4 23376: # 27 "/usr/include/arm-linux-gnueabihf/bits/math-vector.h" 2 3 4 23376: # 41 "/usr/include/math.h" 2 3 4 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/floatn.h" 1 3 4 23376: # 44 "/usr/include/math.h" 2 3 4 23376: # 138 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/flt-eval-method.h" 1 3 4 23376: # 139 "/usr/include/math.h" 2 3 4 23376: # 149 "/usr/include/math.h" 3 4 23376: typedef float float_t; 23376: typedef double double_t; 23376: # 190 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/fp-logb.h" 1 3 4 23376: # 191 "/usr/include/math.h" 2 3 4 23376: # 233 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/fp-fast.h" 1 3 4 23376: # 234 "/usr/include/math.h" 2 3 4 23376: 23376: 23376: 23376: enum 23376: { 23376: FP_INT_UPWARD = 23376: 23376: 0, 23376: FP_INT_DOWNWARD = 23376: 23376: 1, 23376: FP_INT_TOWARDZERO = 23376: 23376: 2, 23376: FP_INT_TONEARESTFROMZERO = 23376: 23376: 3, 23376: FP_INT_TONEAREST = 23376: 23376: 4, 23376: }; 23376: # 289 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-helper-functions.h" 1 3 4 23376: # 21 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-helper-functions.h" 3 4 23376: extern int __fpclassify (double __value) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int __signbit (double __value) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern int __isinf (double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int __finite (double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int __isnan (double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int __iseqsig (double __x, double __y) throw (); 23376: 23376: 23376: extern int __issignaling (double __value) throw () 23376: __attribute__ ((__const__)); 23376: # 290 "/usr/include/math.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 1 3 4 23376: # 53 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern double acos (double __x) throw (); extern double __acos (double __x) throw (); 23376: 23376: extern double asin (double __x) throw (); extern double __asin (double __x) throw (); 23376: 23376: extern double atan (double __x) throw (); extern double __atan (double __x) throw (); 23376: 23376: extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); 23376: 23376: 23376: extern double cos (double __x) throw (); extern double __cos (double __x) throw (); 23376: 23376: extern double sin (double __x) throw (); extern double __sin (double __x) throw (); 23376: 23376: extern double tan (double __x) throw (); extern double __tan (double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); 23376: 23376: extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); 23376: 23376: extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); 23376: 23376: 23376: 23376: extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); 23376: 23376: extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); 23376: 23376: extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern double exp (double __x) throw (); extern double __exp (double __x) throw (); 23376: 23376: 23376: extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); 23376: 23376: 23376: extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); 23376: 23376: 23376: extern double log (double __x) throw (); extern double __log (double __x) throw (); 23376: 23376: 23376: extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); 23376: 23376: 23376: extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); 23376: 23376: 23376: extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); 23376: 23376: 23376: extern double logb (double __x) throw (); extern double __logb (double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); 23376: 23376: 23376: extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); 23376: 23376: 23376: extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); 23376: 23376: 23376: 23376: extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); 23376: 23376: 23376: 23376: 23376: extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); 23376: # 182 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern int finite (double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); 23376: 23376: 23376: 23376: extern double significand (double __x) throw (); extern double __significand (double __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern double nan (const char *__tagb) throw (); extern double __nan (const char *__tagb) throw (); 23376: # 217 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern double j0 (double) throw (); extern double __j0 (double) throw (); 23376: extern double j1 (double) throw (); extern double __j1 (double) throw (); 23376: extern double jn (int, double) throw (); extern double __jn (int, double) throw (); 23376: extern double y0 (double) throw (); extern double __y0 (double) throw (); 23376: extern double y1 (double) throw (); extern double __y1 (double) throw (); 23376: extern double yn (int, double) throw (); extern double __yn (int, double) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern double erf (double) throw (); extern double __erf (double) throw (); 23376: extern double erfc (double) throw (); extern double __erfc (double) throw (); 23376: extern double lgamma (double) throw (); extern double __lgamma (double) throw (); 23376: 23376: 23376: 23376: 23376: extern double tgamma (double) throw (); extern double __tgamma (double) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern double gamma (double) throw (); extern double __gamma (double) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern double rint (double __x) throw (); extern double __rint (double __x) throw (); 23376: 23376: 23376: extern double nextafter (double __x, double __y) throw (); extern double __nextafter (double __x, double __y) throw (); 23376: 23376: extern double nexttoward (double __x, long double __y) throw (); extern double __nexttoward (double __x, long double __y) throw (); 23376: 23376: 23376: 23376: 23376: extern double nextdown (double __x) throw (); extern double __nextdown (double __x) throw (); 23376: 23376: extern double nextup (double __x) throw (); extern double __nextup (double __x) throw (); 23376: 23376: 23376: 23376: extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); 23376: 23376: 23376: 23376: extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); 23376: 23376: 23376: 23376: extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long int llogb (double __x) throw (); extern long int __llogb (double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); 23376: 23376: 23376: 23376: extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); 23376: 23376: 23376: 23376: extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); 23376: __extension__ 23376: extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); 23376: 23376: 23376: 23376: extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); 23376: __extension__ 23376: extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); 23376: 23376: 23376: 23376: extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); 23376: 23376: 23376: extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); 23376: 23376: 23376: 23376: 23376: extern double roundeven (double __x) throw () __attribute__ ((__const__)); extern double __roundeven (double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern __intmax_t fromfp (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: extern double fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern double fminmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalorder (double __x, double __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalordermag (double __x, double __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int canonicalize (double *__cx, const double *__x) throw (); 23376: 23376: 23376: extern double getpayload (const double *__x) throw (); extern double __getpayload (const double *__x) throw (); 23376: 23376: 23376: extern int setpayload (double *__x, double __payload) throw (); 23376: 23376: 23376: extern int setpayloadsig (double *__x, double __payload) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); 23376: # 291 "/usr/include/math.h" 2 3 4 23376: # 306 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-helper-functions.h" 1 3 4 23376: # 21 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-helper-functions.h" 3 4 23376: extern int __fpclassifyf (float __value) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int __signbitf (float __value) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern int __isinff (float __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int __finitef (float __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int __isnanf (float __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int __iseqsigf (float __x, float __y) throw (); 23376: 23376: 23376: extern int __issignalingf (float __value) throw () 23376: __attribute__ ((__const__)); 23376: # 307 "/usr/include/math.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 1 3 4 23376: # 53 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); 23376: 23376: extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); 23376: 23376: extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); 23376: 23376: extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); 23376: 23376: 23376: extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); 23376: 23376: extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); 23376: 23376: extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); 23376: 23376: 23376: 23376: 23376: extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); 23376: 23376: extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); 23376: 23376: extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); 23376: 23376: 23376: 23376: extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); 23376: 23376: extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); 23376: 23376: extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern float expf (float __x) throw (); extern float __expf (float __x) throw (); 23376: 23376: 23376: extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); 23376: 23376: 23376: extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); 23376: 23376: 23376: extern float logf (float __x) throw (); extern float __logf (float __x) throw (); 23376: 23376: 23376: extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); 23376: 23376: 23376: extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); 23376: 23376: 23376: 23376: 23376: extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); 23376: 23376: 23376: extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); 23376: 23376: 23376: extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); 23376: 23376: 23376: 23376: 23376: extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); 23376: 23376: 23376: extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); 23376: 23376: 23376: extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); 23376: 23376: 23376: 23376: extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); 23376: 23376: 23376: 23376: 23376: extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); 23376: # 177 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern int isinff (float __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern int finitef (float __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); 23376: 23376: 23376: 23376: extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern float nanf (const char *__tagb) throw (); extern float __nanf (const char *__tagb) throw (); 23376: # 211 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern int isnanf (float __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: 23376: extern float j0f (float) throw (); extern float __j0f (float) throw (); 23376: extern float j1f (float) throw (); extern float __j1f (float) throw (); 23376: extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); 23376: extern float y0f (float) throw (); extern float __y0f (float) throw (); 23376: extern float y1f (float) throw (); extern float __y1f (float) throw (); 23376: extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern float erff (float) throw (); extern float __erff (float) throw (); 23376: extern float erfcf (float) throw (); extern float __erfcf (float) throw (); 23376: extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); 23376: 23376: 23376: 23376: 23376: extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern float gammaf (float) throw (); extern float __gammaf (float) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); 23376: 23376: 23376: extern float nextafterf (float __x, float __y) throw (); extern float __nextafterf (float __x, float __y) throw (); 23376: 23376: extern float nexttowardf (float __x, long double __y) throw (); extern float __nexttowardf (float __x, long double __y) throw (); 23376: 23376: 23376: 23376: 23376: extern float nextdownf (float __x) throw (); extern float __nextdownf (float __x) throw (); 23376: 23376: extern float nextupf (float __x) throw (); extern float __nextupf (float __x) throw (); 23376: 23376: 23376: 23376: extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); 23376: 23376: 23376: 23376: extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); 23376: 23376: 23376: 23376: extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long int llogbf (float __x) throw (); extern long int __llogbf (float __x) throw (); 23376: 23376: 23376: 23376: 23376: extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); 23376: 23376: 23376: 23376: extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); 23376: 23376: 23376: 23376: extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); 23376: __extension__ 23376: extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); 23376: 23376: 23376: 23376: extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); 23376: __extension__ 23376: extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); 23376: 23376: 23376: 23376: extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); 23376: 23376: 23376: extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); 23376: 23376: 23376: 23376: 23376: extern float roundevenf (float __x) throw () __attribute__ ((__const__)); extern float __roundevenf (float __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: extern float fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern float fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalorderf (float __x, float __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalordermagf (float __x, float __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int canonicalizef (float *__cx, const float *__x) throw (); 23376: 23376: 23376: extern float getpayloadf (const float *__x) throw (); extern float __getpayloadf (const float *__x) throw (); 23376: 23376: 23376: extern int setpayloadf (float *__x, float __payload) throw (); 23376: 23376: 23376: extern int setpayloadsigf (float *__x, float __payload) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); 23376: # 308 "/usr/include/math.h" 2 3 4 23376: # 349 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-helper-functions.h" 1 3 4 23376: # 21 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-helper-functions.h" 3 4 23376: extern int __fpclassifyl (long double __value) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int __signbitl (long double __value) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int __finitel (long double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int __iseqsigl (long double __x, long double __y) throw (); 23376: 23376: 23376: extern int __issignalingl (long double __value) throw () 23376: __attribute__ ((__const__)); 23376: # 350 "/usr/include/math.h" 2 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 1 3 4 23376: # 53 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); 23376: 23376: extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); 23376: 23376: extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); 23376: 23376: extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); 23376: 23376: 23376: extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); 23376: 23376: extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); 23376: 23376: extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); 23376: 23376: extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); 23376: 23376: extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); 23376: 23376: 23376: 23376: extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); 23376: 23376: extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); 23376: 23376: extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); 23376: 23376: 23376: extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); 23376: 23376: 23376: extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); 23376: 23376: 23376: extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); 23376: 23376: 23376: extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); 23376: 23376: 23376: extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); 23376: 23376: 23376: extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); 23376: 23376: 23376: extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); 23376: 23376: 23376: extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); 23376: 23376: 23376: extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); 23376: 23376: 23376: 23376: extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); 23376: 23376: 23376: 23376: 23376: extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); 23376: # 177 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern int isinfl (long double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern int finitel (long double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); 23376: 23376: 23376: 23376: extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern long double nanl (const char *__tagb) throw (); extern long double __nanl (const char *__tagb) throw (); 23376: # 211 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern int isnanl (long double __value) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: 23376: extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); 23376: extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); 23376: extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); 23376: extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); 23376: extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); 23376: extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); 23376: extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); 23376: extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); 23376: 23376: 23376: 23376: 23376: extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); 23376: 23376: 23376: extern long double nextafterl (long double __x, long double __y) throw (); extern long double __nextafterl (long double __x, long double __y) throw (); 23376: 23376: extern long double nexttowardl (long double __x, long double __y) throw (); extern long double __nexttowardl (long double __x, long double __y) throw (); 23376: 23376: 23376: 23376: 23376: extern long double nextdownl (long double __x) throw (); extern long double __nextdownl (long double __x) throw (); 23376: 23376: extern long double nextupl (long double __x) throw (); extern long double __nextupl (long double __x) throw (); 23376: 23376: 23376: 23376: extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); 23376: 23376: 23376: 23376: extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); 23376: 23376: 23376: 23376: extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long int llogbl (long double __x) throw (); extern long int __llogbl (long double __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); 23376: 23376: 23376: 23376: extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); 23376: 23376: 23376: 23376: extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); 23376: __extension__ 23376: extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); 23376: 23376: 23376: 23376: extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); 23376: __extension__ 23376: extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); 23376: 23376: 23376: 23376: extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); 23376: 23376: 23376: extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); 23376: 23376: 23376: 23376: 23376: extern long double roundevenl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundevenl (long double __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: extern long double fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern long double fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalorderl (long double __x, long double __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalordermagl (long double __x, long double __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int canonicalizel (long double *__cx, const long double *__x) throw (); 23376: 23376: 23376: extern long double getpayloadl (const long double *__x) throw (); extern long double __getpayloadl (const long double *__x) throw (); 23376: 23376: 23376: extern int setpayloadl (long double *__x, long double __payload) throw (); 23376: 23376: 23376: extern int setpayloadsigl (long double *__x, long double __payload) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); 23376: # 351 "/usr/include/math.h" 2 3 4 23376: # 389 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 1 3 4 23376: # 53 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float32 acosf32 (_Float32 __x) throw (); extern _Float32 __acosf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 asinf32 (_Float32 __x) throw (); extern _Float32 __asinf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 atanf32 (_Float32 __x) throw (); extern _Float32 __atanf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) throw (); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) throw (); 23376: 23376: 23376: extern _Float32 cosf32 (_Float32 __x) throw (); extern _Float32 __cosf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 sinf32 (_Float32 __x) throw (); extern _Float32 __sinf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 tanf32 (_Float32 __x) throw (); extern _Float32 __tanf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32 coshf32 (_Float32 __x) throw (); extern _Float32 __coshf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 sinhf32 (_Float32 __x) throw (); extern _Float32 __sinhf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 tanhf32 (_Float32 __x) throw (); extern _Float32 __tanhf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern _Float32 acoshf32 (_Float32 __x) throw (); extern _Float32 __acoshf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 asinhf32 (_Float32 __x) throw (); extern _Float32 __asinhf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 atanhf32 (_Float32 __x) throw (); extern _Float32 __atanhf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32 expf32 (_Float32 __x) throw (); extern _Float32 __expf32 (_Float32 __x) throw (); 23376: 23376: 23376: extern _Float32 frexpf32 (_Float32 __x, int *__exponent) throw (); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) throw (); 23376: 23376: 23376: extern _Float32 ldexpf32 (_Float32 __x, int __exponent) throw (); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) throw (); 23376: 23376: 23376: extern _Float32 logf32 (_Float32 __x) throw (); extern _Float32 __logf32 (_Float32 __x) throw (); 23376: 23376: 23376: extern _Float32 log10f32 (_Float32 __x) throw (); extern _Float32 __log10f32 (_Float32 __x) throw (); 23376: 23376: 23376: extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) throw (); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: extern _Float32 exp10f32 (_Float32 __x) throw (); extern _Float32 __exp10f32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32 expm1f32 (_Float32 __x) throw (); extern _Float32 __expm1f32 (_Float32 __x) throw (); 23376: 23376: 23376: extern _Float32 log1pf32 (_Float32 __x) throw (); extern _Float32 __log1pf32 (_Float32 __x) throw (); 23376: 23376: 23376: extern _Float32 logbf32 (_Float32 __x) throw (); extern _Float32 __logbf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32 exp2f32 (_Float32 __x) throw (); extern _Float32 __exp2f32 (_Float32 __x) throw (); 23376: 23376: 23376: extern _Float32 log2f32 (_Float32 __x) throw (); extern _Float32 __log2f32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32 powf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) throw (); 23376: 23376: 23376: extern _Float32 sqrtf32 (_Float32 __x) throw (); extern _Float32 __sqrtf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32 cbrtf32 (_Float32 __x) throw (); extern _Float32 __cbrtf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32 ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32 fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32 floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) throw (); 23376: # 196 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern _Float32 nanf32 (const char *__tagb) throw (); extern _Float32 __nanf32 (const char *__tagb) throw (); 23376: # 217 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float32 j0f32 (_Float32) throw (); extern _Float32 __j0f32 (_Float32) throw (); 23376: extern _Float32 j1f32 (_Float32) throw (); extern _Float32 __j1f32 (_Float32) throw (); 23376: extern _Float32 jnf32 (int, _Float32) throw (); extern _Float32 __jnf32 (int, _Float32) throw (); 23376: extern _Float32 y0f32 (_Float32) throw (); extern _Float32 __y0f32 (_Float32) throw (); 23376: extern _Float32 y1f32 (_Float32) throw (); extern _Float32 __y1f32 (_Float32) throw (); 23376: extern _Float32 ynf32 (int, _Float32) throw (); extern _Float32 __ynf32 (int, _Float32) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32 erff32 (_Float32) throw (); extern _Float32 __erff32 (_Float32) throw (); 23376: extern _Float32 erfcf32 (_Float32) throw (); extern _Float32 __erfcf32 (_Float32) throw (); 23376: extern _Float32 lgammaf32 (_Float32) throw (); extern _Float32 __lgammaf32 (_Float32) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32 tgammaf32 (_Float32) throw (); extern _Float32 __tgammaf32 (_Float32) throw (); 23376: # 249 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float32 lgammaf32_r (_Float32, int *__signgamp) throw (); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32 rintf32 (_Float32 __x) throw (); extern _Float32 __rintf32 (_Float32 __x) throw (); 23376: 23376: 23376: extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32 nextdownf32 (_Float32 __x) throw (); extern _Float32 __nextdownf32 (_Float32 __x) throw (); 23376: 23376: extern _Float32 nextupf32 (_Float32 __x) throw (); extern _Float32 __nextupf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) throw (); 23376: 23376: 23376: 23376: extern _Float32 scalbnf32 (_Float32 __x, int __n) throw (); extern _Float32 __scalbnf32 (_Float32 __x, int __n) throw (); 23376: 23376: 23376: 23376: extern int ilogbf32 (_Float32 __x) throw (); extern int __ilogbf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long int llogbf32 (_Float32 __x) throw (); extern long int __llogbf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32 scalblnf32 (_Float32 __x, long int __n) throw (); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) throw (); 23376: 23376: 23376: 23376: extern _Float32 nearbyintf32 (_Float32 __x) throw (); extern _Float32 __nearbyintf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: extern _Float32 roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern _Float32 truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long int lrintf32 (_Float32 __x) throw (); extern long int __lrintf32 (_Float32 __x) throw (); 23376: __extension__ 23376: extern long long int llrintf32 (_Float32 __x) throw (); extern long long int __llrintf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: extern long int lroundf32 (_Float32 __x) throw (); extern long int __lroundf32 (_Float32 __x) throw (); 23376: __extension__ 23376: extern long long int llroundf32 (_Float32 __x) throw (); extern long long int __llroundf32 (_Float32 __x) throw (); 23376: 23376: 23376: 23376: extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) throw (); 23376: 23376: 23376: extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32 fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32 roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalorderf32 (_Float32 __x, _Float32 __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalordermagf32 (_Float32 __x, _Float32 __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) throw (); 23376: 23376: 23376: extern _Float32 getpayloadf32 (const _Float32 *__x) throw (); extern _Float32 __getpayloadf32 (const _Float32 *__x) throw (); 23376: 23376: 23376: extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) throw (); 23376: 23376: 23376: extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) throw (); 23376: # 390 "/usr/include/math.h" 2 3 4 23376: # 406 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 1 3 4 23376: # 53 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float64 acosf64 (_Float64 __x) throw (); extern _Float64 __acosf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 asinf64 (_Float64 __x) throw (); extern _Float64 __asinf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 atanf64 (_Float64 __x) throw (); extern _Float64 __atanf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) throw (); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) throw (); 23376: 23376: 23376: extern _Float64 cosf64 (_Float64 __x) throw (); extern _Float64 __cosf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 sinf64 (_Float64 __x) throw (); extern _Float64 __sinf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 tanf64 (_Float64 __x) throw (); extern _Float64 __tanf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float64 coshf64 (_Float64 __x) throw (); extern _Float64 __coshf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 sinhf64 (_Float64 __x) throw (); extern _Float64 __sinhf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 tanhf64 (_Float64 __x) throw (); extern _Float64 __tanhf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern _Float64 acoshf64 (_Float64 __x) throw (); extern _Float64 __acoshf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 asinhf64 (_Float64 __x) throw (); extern _Float64 __asinhf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 atanhf64 (_Float64 __x) throw (); extern _Float64 __atanhf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern _Float64 expf64 (_Float64 __x) throw (); extern _Float64 __expf64 (_Float64 __x) throw (); 23376: 23376: 23376: extern _Float64 frexpf64 (_Float64 __x, int *__exponent) throw (); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) throw (); 23376: 23376: 23376: extern _Float64 ldexpf64 (_Float64 __x, int __exponent) throw (); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) throw (); 23376: 23376: 23376: extern _Float64 logf64 (_Float64 __x) throw (); extern _Float64 __logf64 (_Float64 __x) throw (); 23376: 23376: 23376: extern _Float64 log10f64 (_Float64 __x) throw (); extern _Float64 __log10f64 (_Float64 __x) throw (); 23376: 23376: 23376: extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) throw (); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: extern _Float64 exp10f64 (_Float64 __x) throw (); extern _Float64 __exp10f64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float64 expm1f64 (_Float64 __x) throw (); extern _Float64 __expm1f64 (_Float64 __x) throw (); 23376: 23376: 23376: extern _Float64 log1pf64 (_Float64 __x) throw (); extern _Float64 __log1pf64 (_Float64 __x) throw (); 23376: 23376: 23376: extern _Float64 logbf64 (_Float64 __x) throw (); extern _Float64 __logbf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float64 exp2f64 (_Float64 __x) throw (); extern _Float64 __exp2f64 (_Float64 __x) throw (); 23376: 23376: 23376: extern _Float64 log2f64 (_Float64 __x) throw (); extern _Float64 __log2f64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float64 powf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: extern _Float64 sqrtf64 (_Float64 __x) throw (); extern _Float64 __sqrtf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float64 cbrtf64 (_Float64 __x) throw (); extern _Float64 __cbrtf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float64 ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float64 fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float64 floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) throw (); 23376: # 196 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern _Float64 nanf64 (const char *__tagb) throw (); extern _Float64 __nanf64 (const char *__tagb) throw (); 23376: # 217 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float64 j0f64 (_Float64) throw (); extern _Float64 __j0f64 (_Float64) throw (); 23376: extern _Float64 j1f64 (_Float64) throw (); extern _Float64 __j1f64 (_Float64) throw (); 23376: extern _Float64 jnf64 (int, _Float64) throw (); extern _Float64 __jnf64 (int, _Float64) throw (); 23376: extern _Float64 y0f64 (_Float64) throw (); extern _Float64 __y0f64 (_Float64) throw (); 23376: extern _Float64 y1f64 (_Float64) throw (); extern _Float64 __y1f64 (_Float64) throw (); 23376: extern _Float64 ynf64 (int, _Float64) throw (); extern _Float64 __ynf64 (int, _Float64) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern _Float64 erff64 (_Float64) throw (); extern _Float64 __erff64 (_Float64) throw (); 23376: extern _Float64 erfcf64 (_Float64) throw (); extern _Float64 __erfcf64 (_Float64) throw (); 23376: extern _Float64 lgammaf64 (_Float64) throw (); extern _Float64 __lgammaf64 (_Float64) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float64 tgammaf64 (_Float64) throw (); extern _Float64 __tgammaf64 (_Float64) throw (); 23376: # 249 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float64 lgammaf64_r (_Float64, int *__signgamp) throw (); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float64 rintf64 (_Float64 __x) throw (); extern _Float64 __rintf64 (_Float64 __x) throw (); 23376: 23376: 23376: extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float64 nextdownf64 (_Float64 __x) throw (); extern _Float64 __nextdownf64 (_Float64 __x) throw (); 23376: 23376: extern _Float64 nextupf64 (_Float64 __x) throw (); extern _Float64 __nextupf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: 23376: extern _Float64 scalbnf64 (_Float64 __x, int __n) throw (); extern _Float64 __scalbnf64 (_Float64 __x, int __n) throw (); 23376: 23376: 23376: 23376: extern int ilogbf64 (_Float64 __x) throw (); extern int __ilogbf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long int llogbf64 (_Float64 __x) throw (); extern long int __llogbf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float64 scalblnf64 (_Float64 __x, long int __n) throw (); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) throw (); 23376: 23376: 23376: 23376: extern _Float64 nearbyintf64 (_Float64 __x) throw (); extern _Float64 __nearbyintf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: extern _Float64 roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern _Float64 truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long int lrintf64 (_Float64 __x) throw (); extern long int __lrintf64 (_Float64 __x) throw (); 23376: __extension__ 23376: extern long long int llrintf64 (_Float64 __x) throw (); extern long long int __llrintf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: extern long int lroundf64 (_Float64 __x) throw (); extern long int __lroundf64 (_Float64 __x) throw (); 23376: __extension__ 23376: extern long long int llroundf64 (_Float64 __x) throw (); extern long long int __llroundf64 (_Float64 __x) throw (); 23376: 23376: 23376: 23376: extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float64 fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float64 roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalorderf64 (_Float64 __x, _Float64 __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalordermagf64 (_Float64 __x, _Float64 __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) throw (); 23376: 23376: 23376: extern _Float64 getpayloadf64 (const _Float64 *__x) throw (); extern _Float64 __getpayloadf64 (const _Float64 *__x) throw (); 23376: 23376: 23376: extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) throw (); 23376: 23376: 23376: extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) throw (); 23376: # 407 "/usr/include/math.h" 2 3 4 23376: # 440 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 1 3 4 23376: # 53 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float32x acosf32x (_Float32x __x) throw (); extern _Float32x __acosf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x asinf32x (_Float32x __x) throw (); extern _Float32x __asinf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x atanf32x (_Float32x __x) throw (); extern _Float32x __atanf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) throw (); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) throw (); 23376: 23376: 23376: extern _Float32x cosf32x (_Float32x __x) throw (); extern _Float32x __cosf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x sinf32x (_Float32x __x) throw (); extern _Float32x __sinf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x tanf32x (_Float32x __x) throw (); extern _Float32x __tanf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32x coshf32x (_Float32x __x) throw (); extern _Float32x __coshf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x sinhf32x (_Float32x __x) throw (); extern _Float32x __sinhf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x tanhf32x (_Float32x __x) throw (); extern _Float32x __tanhf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern _Float32x acoshf32x (_Float32x __x) throw (); extern _Float32x __acoshf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x asinhf32x (_Float32x __x) throw (); extern _Float32x __asinhf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x atanhf32x (_Float32x __x) throw (); extern _Float32x __atanhf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32x expf32x (_Float32x __x) throw (); extern _Float32x __expf32x (_Float32x __x) throw (); 23376: 23376: 23376: extern _Float32x frexpf32x (_Float32x __x, int *__exponent) throw (); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) throw (); 23376: 23376: 23376: extern _Float32x ldexpf32x (_Float32x __x, int __exponent) throw (); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) throw (); 23376: 23376: 23376: extern _Float32x logf32x (_Float32x __x) throw (); extern _Float32x __logf32x (_Float32x __x) throw (); 23376: 23376: 23376: extern _Float32x log10f32x (_Float32x __x) throw (); extern _Float32x __log10f32x (_Float32x __x) throw (); 23376: 23376: 23376: extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) throw (); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) throw () __attribute__ ((__nonnull__ (2))); 23376: 23376: 23376: 23376: extern _Float32x exp10f32x (_Float32x __x) throw (); extern _Float32x __exp10f32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32x expm1f32x (_Float32x __x) throw (); extern _Float32x __expm1f32x (_Float32x __x) throw (); 23376: 23376: 23376: extern _Float32x log1pf32x (_Float32x __x) throw (); extern _Float32x __log1pf32x (_Float32x __x) throw (); 23376: 23376: 23376: extern _Float32x logbf32x (_Float32x __x) throw (); extern _Float32x __logbf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32x exp2f32x (_Float32x __x) throw (); extern _Float32x __exp2f32x (_Float32x __x) throw (); 23376: 23376: 23376: extern _Float32x log2f32x (_Float32x __x) throw (); extern _Float32x __log2f32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32x powf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) throw (); 23376: 23376: 23376: extern _Float32x sqrtf32x (_Float32x __x) throw (); extern _Float32x __sqrtf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32x cbrtf32x (_Float32x __x) throw (); extern _Float32x __cbrtf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32x ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32x fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32x floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) throw (); 23376: # 196 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern _Float32x nanf32x (const char *__tagb) throw (); extern _Float32x __nanf32x (const char *__tagb) throw (); 23376: # 217 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float32x j0f32x (_Float32x) throw (); extern _Float32x __j0f32x (_Float32x) throw (); 23376: extern _Float32x j1f32x (_Float32x) throw (); extern _Float32x __j1f32x (_Float32x) throw (); 23376: extern _Float32x jnf32x (int, _Float32x) throw (); extern _Float32x __jnf32x (int, _Float32x) throw (); 23376: extern _Float32x y0f32x (_Float32x) throw (); extern _Float32x __y0f32x (_Float32x) throw (); 23376: extern _Float32x y1f32x (_Float32x) throw (); extern _Float32x __y1f32x (_Float32x) throw (); 23376: extern _Float32x ynf32x (int, _Float32x) throw (); extern _Float32x __ynf32x (int, _Float32x) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32x erff32x (_Float32x) throw (); extern _Float32x __erff32x (_Float32x) throw (); 23376: extern _Float32x erfcf32x (_Float32x) throw (); extern _Float32x __erfcf32x (_Float32x) throw (); 23376: extern _Float32x lgammaf32x (_Float32x) throw (); extern _Float32x __lgammaf32x (_Float32x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32x tgammaf32x (_Float32x) throw (); extern _Float32x __tgammaf32x (_Float32x) throw (); 23376: # 249 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4 23376: extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) throw (); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32x rintf32x (_Float32x __x) throw (); extern _Float32x __rintf32x (_Float32x __x) throw (); 23376: 23376: 23376: extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern _Float32x nextdownf32x (_Float32x __x) throw (); extern _Float32x __nextdownf32x (_Float32x __x) throw (); 23376: 23376: extern _Float32x nextupf32x (_Float32x __x) throw (); extern _Float32x __nextupf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) throw (); 23376: 23376: 23376: 23376: extern _Float32x scalbnf32x (_Float32x __x, int __n) throw (); extern _Float32x __scalbnf32x (_Float32x __x, int __n) throw (); 23376: 23376: 23376: 23376: extern int ilogbf32x (_Float32x __x) throw (); extern int __ilogbf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: 23376: extern long int llogbf32x (_Float32x __x) throw (); extern long int __llogbf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32x scalblnf32x (_Float32x __x, long int __n) throw (); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) throw (); 23376: 23376: 23376: 23376: extern _Float32x nearbyintf32x (_Float32x __x) throw (); extern _Float32x __nearbyintf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: extern _Float32x roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern _Float32x truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: 23376: extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern long int lrintf32x (_Float32x __x) throw (); extern long int __lrintf32x (_Float32x __x) throw (); 23376: __extension__ 23376: extern long long int llrintf32x (_Float32x __x) throw (); extern long long int __llrintf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: extern long int lroundf32x (_Float32x __x) throw (); extern long int __lroundf32x (_Float32x __x) throw (); 23376: __extension__ 23376: extern long long int llroundf32x (_Float32x __x) throw (); extern long long int __llroundf32x (_Float32x __x) throw (); 23376: 23376: 23376: 23376: extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) throw (); 23376: 23376: 23376: extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32x fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); 23376: 23376: 23376: 23376: 23376: extern _Float32x roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); 23376: 23376: 23376: 23376: extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: 23376: 23376: extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () 23376: ; 23376: 23376: 23376: extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalorderf32x (_Float32x __x, _Float32x __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int totalordermagf32x (_Float32x __x, _Float32x __y) throw () 23376: __attribute__ ((__const__)); 23376: 23376: 23376: extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) throw (); 23376: 23376: 23376: extern _Float32x getpayloadf32x (const _Float32x *__x) throw (); extern _Float32x __getpayloadf32x (const _Float32x *__x) throw (); 23376: 23376: 23376: extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) throw (); 23376: 23376: 23376: extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) throw (); 23376: # 441 "/usr/include/math.h" 2 3 4 23376: # 503 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 3 4 23376: extern float fadd (double __x, double __y) throw (); 23376: 23376: 23376: extern float fdiv (double __x, double __y) throw (); 23376: 23376: 23376: extern float fmul (double __x, double __y) throw (); 23376: 23376: 23376: extern float fsub (double __x, double __y) throw (); 23376: # 504 "/usr/include/math.h" 2 3 4 23376: # 517 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 3 4 23376: extern float faddl (long double __x, long double __y) throw (); 23376: 23376: 23376: extern float fdivl (long double __x, long double __y) throw (); 23376: 23376: 23376: extern float fmull (long double __x, long double __y) throw (); 23376: 23376: 23376: extern float fsubl (long double __x, long double __y) throw (); 23376: # 518 "/usr/include/math.h" 2 3 4 23376: # 537 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 3 4 23376: extern double daddl (long double __x, long double __y) throw (); 23376: 23376: 23376: extern double ddivl (long double __x, long double __y) throw (); 23376: 23376: 23376: extern double dmull (long double __x, long double __y) throw (); 23376: 23376: 23376: extern double dsubl (long double __x, long double __y) throw (); 23376: # 538 "/usr/include/math.h" 2 3 4 23376: # 616 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 3 4 23376: extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) throw (); 23376: 23376: 23376: extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) throw (); 23376: 23376: 23376: extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) throw (); 23376: 23376: 23376: extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) throw (); 23376: # 617 "/usr/include/math.h" 2 3 4 23376: # 626 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 3 4 23376: extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) throw (); 23376: # 627 "/usr/include/math.h" 2 3 4 23376: # 666 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 1 3 4 23376: # 24 "/usr/include/arm-linux-gnueabihf/bits/mathcalls-narrow.h" 3 4 23376: extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) throw (); 23376: 23376: 23376: extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) throw (); 23376: # 667 "/usr/include/math.h" 2 3 4 23376: # 773 "/usr/include/math.h" 3 4 23376: extern int signgam; 23376: # 853 "/usr/include/math.h" 3 4 23376: enum 23376: { 23376: FP_NAN = 23376: 23376: 0, 23376: FP_INFINITE = 23376: 23376: 1, 23376: FP_ZERO = 23376: 23376: 2, 23376: FP_SUBNORMAL = 23376: 23376: 3, 23376: FP_NORMAL = 23376: 23376: 4 23376: }; 23376: # 968 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/iscanonical.h" 1 3 4 23376: # 969 "/usr/include/math.h" 2 3 4 23376: # 980 "/usr/include/math.h" 3 4 23376: extern "C++" { 23376: inline int issignaling (float __val) { return __issignalingf (__val); } 23376: inline int issignaling (double __val) { return __issignaling (__val); } 23376: inline int 23376: issignaling (long double __val) 23376: { 23376: 23376: return __issignaling (__val); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 1011 "/usr/include/math.h" 3 4 23376: extern "C++" { 23376: # 1042 "/usr/include/math.h" 3 4 23376: template inline bool 23376: iszero (__T __val) 23376: { 23376: return __val == 0; 23376: } 23376: 23376: } 23376: # 1240 "/usr/include/math.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/mathinline.h" 1 3 4 23376: # 1241 "/usr/include/math.h" 2 3 4 23376: # 1493 "/usr/include/math.h" 3 4 23376: extern "C++" { 23376: template struct __iseqsig_type; 23376: 23376: template<> struct __iseqsig_type 23376: { 23376: static int __call (float __x, float __y) throw () 23376: { 23376: return __iseqsigf (__x, __y); 23376: } 23376: }; 23376: 23376: template<> struct __iseqsig_type 23376: { 23376: static int __call (double __x, double __y) throw () 23376: { 23376: return __iseqsig (__x, __y); 23376: } 23376: }; 23376: 23376: template<> struct __iseqsig_type 23376: { 23376: static int __call (long double __x, long double __y) throw () 23376: { 23376: 23376: 23376: 23376: return __iseqsig (__x, __y); 23376: 23376: } 23376: }; 23376: # 1536 "/usr/include/math.h" 3 4 23376: template 23376: inline int 23376: iseqsig (_T1 __x, _T2 __y) throw () 23376: { 23376: 23376: typedef decltype (((__x) + (__y) + 0.0f)) _T3; 23376: 23376: 23376: 23376: return __iseqsig_type<_T3>::__call (__x, __y); 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: # 46 "/usr/include/c++/8/cmath" 2 3 23376: # 77 "/usr/include/c++/8/cmath" 3 23376: extern "C++" 23376: { 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: using ::acos; 23376: 23376: 23376: inline constexpr float 23376: acos(float __x) 23376: { return __builtin_acosf(__x); } 23376: 23376: inline constexpr long double 23376: acos(long double __x) 23376: { return __builtin_acosl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: acos(_Tp __x) 23376: { return __builtin_acos(__x); } 23376: 23376: using ::asin; 23376: 23376: 23376: inline constexpr float 23376: asin(float __x) 23376: { return __builtin_asinf(__x); } 23376: 23376: inline constexpr long double 23376: asin(long double __x) 23376: { return __builtin_asinl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: asin(_Tp __x) 23376: { return __builtin_asin(__x); } 23376: 23376: using ::atan; 23376: 23376: 23376: inline constexpr float 23376: atan(float __x) 23376: { return __builtin_atanf(__x); } 23376: 23376: inline constexpr long double 23376: atan(long double __x) 23376: { return __builtin_atanl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: atan(_Tp __x) 23376: { return __builtin_atan(__x); } 23376: 23376: using ::atan2; 23376: 23376: 23376: inline constexpr float 23376: atan2(float __y, float __x) 23376: { return __builtin_atan2f(__y, __x); } 23376: 23376: inline constexpr long double 23376: atan2(long double __y, long double __x) 23376: { return __builtin_atan2l(__y, __x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: atan2(_Tp __y, _Up __x) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return atan2(__type(__y), __type(__x)); 23376: } 23376: 23376: using ::ceil; 23376: 23376: 23376: inline constexpr float 23376: ceil(float __x) 23376: { return __builtin_ceilf(__x); } 23376: 23376: inline constexpr long double 23376: ceil(long double __x) 23376: { return __builtin_ceill(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: ceil(_Tp __x) 23376: { return __builtin_ceil(__x); } 23376: 23376: using ::cos; 23376: 23376: 23376: inline constexpr float 23376: cos(float __x) 23376: { return __builtin_cosf(__x); } 23376: 23376: inline constexpr long double 23376: cos(long double __x) 23376: { return __builtin_cosl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: cos(_Tp __x) 23376: { return __builtin_cos(__x); } 23376: 23376: using ::cosh; 23376: 23376: 23376: inline constexpr float 23376: cosh(float __x) 23376: { return __builtin_coshf(__x); } 23376: 23376: inline constexpr long double 23376: cosh(long double __x) 23376: { return __builtin_coshl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: cosh(_Tp __x) 23376: { return __builtin_cosh(__x); } 23376: 23376: using ::exp; 23376: 23376: 23376: inline constexpr float 23376: exp(float __x) 23376: { return __builtin_expf(__x); } 23376: 23376: inline constexpr long double 23376: exp(long double __x) 23376: { return __builtin_expl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: exp(_Tp __x) 23376: { return __builtin_exp(__x); } 23376: 23376: using ::fabs; 23376: 23376: 23376: inline constexpr float 23376: fabs(float __x) 23376: { return __builtin_fabsf(__x); } 23376: 23376: inline constexpr long double 23376: fabs(long double __x) 23376: { return __builtin_fabsl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: fabs(_Tp __x) 23376: { return __builtin_fabs(__x); } 23376: 23376: using ::floor; 23376: 23376: 23376: inline constexpr float 23376: floor(float __x) 23376: { return __builtin_floorf(__x); } 23376: 23376: inline constexpr long double 23376: floor(long double __x) 23376: { return __builtin_floorl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: floor(_Tp __x) 23376: { return __builtin_floor(__x); } 23376: 23376: using ::fmod; 23376: 23376: 23376: inline constexpr float 23376: fmod(float __x, float __y) 23376: { return __builtin_fmodf(__x, __y); } 23376: 23376: inline constexpr long double 23376: fmod(long double __x, long double __y) 23376: { return __builtin_fmodl(__x, __y); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: fmod(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return fmod(__type(__x), __type(__y)); 23376: } 23376: 23376: using ::frexp; 23376: 23376: 23376: inline float 23376: frexp(float __x, int* __exp) 23376: { return __builtin_frexpf(__x, __exp); } 23376: 23376: inline long double 23376: frexp(long double __x, int* __exp) 23376: { return __builtin_frexpl(__x, __exp); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: frexp(_Tp __x, int* __exp) 23376: { return __builtin_frexp(__x, __exp); } 23376: 23376: using ::ldexp; 23376: 23376: 23376: inline constexpr float 23376: ldexp(float __x, int __exp) 23376: { return __builtin_ldexpf(__x, __exp); } 23376: 23376: inline constexpr long double 23376: ldexp(long double __x, int __exp) 23376: { return __builtin_ldexpl(__x, __exp); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: ldexp(_Tp __x, int __exp) 23376: { return __builtin_ldexp(__x, __exp); } 23376: 23376: using ::log; 23376: 23376: 23376: inline constexpr float 23376: log(float __x) 23376: { return __builtin_logf(__x); } 23376: 23376: inline constexpr long double 23376: log(long double __x) 23376: { return __builtin_logl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: log(_Tp __x) 23376: { return __builtin_log(__x); } 23376: 23376: using ::log10; 23376: 23376: 23376: inline constexpr float 23376: log10(float __x) 23376: { return __builtin_log10f(__x); } 23376: 23376: inline constexpr long double 23376: log10(long double __x) 23376: { return __builtin_log10l(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: log10(_Tp __x) 23376: { return __builtin_log10(__x); } 23376: 23376: using ::modf; 23376: 23376: 23376: inline float 23376: modf(float __x, float* __iptr) 23376: { return __builtin_modff(__x, __iptr); } 23376: 23376: inline long double 23376: modf(long double __x, long double* __iptr) 23376: { return __builtin_modfl(__x, __iptr); } 23376: 23376: 23376: using ::pow; 23376: 23376: 23376: inline constexpr float 23376: pow(float __x, float __y) 23376: { return __builtin_powf(__x, __y); } 23376: 23376: inline constexpr long double 23376: pow(long double __x, long double __y) 23376: { return __builtin_powl(__x, __y); } 23376: # 412 "/usr/include/c++/8/cmath" 3 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: pow(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return pow(__type(__x), __type(__y)); 23376: } 23376: 23376: using ::sin; 23376: 23376: 23376: inline constexpr float 23376: sin(float __x) 23376: { return __builtin_sinf(__x); } 23376: 23376: inline constexpr long double 23376: sin(long double __x) 23376: { return __builtin_sinl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: sin(_Tp __x) 23376: { return __builtin_sin(__x); } 23376: 23376: using ::sinh; 23376: 23376: 23376: inline constexpr float 23376: sinh(float __x) 23376: { return __builtin_sinhf(__x); } 23376: 23376: inline constexpr long double 23376: sinh(long double __x) 23376: { return __builtin_sinhl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: sinh(_Tp __x) 23376: { return __builtin_sinh(__x); } 23376: 23376: using ::sqrt; 23376: 23376: 23376: inline constexpr float 23376: sqrt(float __x) 23376: { return __builtin_sqrtf(__x); } 23376: 23376: inline constexpr long double 23376: sqrt(long double __x) 23376: { return __builtin_sqrtl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: sqrt(_Tp __x) 23376: { return __builtin_sqrt(__x); } 23376: 23376: using ::tan; 23376: 23376: 23376: inline constexpr float 23376: tan(float __x) 23376: { return __builtin_tanf(__x); } 23376: 23376: inline constexpr long double 23376: tan(long double __x) 23376: { return __builtin_tanl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: tan(_Tp __x) 23376: { return __builtin_tan(__x); } 23376: 23376: using ::tanh; 23376: 23376: 23376: inline constexpr float 23376: tanh(float __x) 23376: { return __builtin_tanhf(__x); } 23376: 23376: inline constexpr long double 23376: tanh(long double __x) 23376: { return __builtin_tanhl(__x); } 23376: 23376: 23376: template 23376: inline constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: tanh(_Tp __x) 23376: { return __builtin_tanh(__x); } 23376: # 536 "/usr/include/c++/8/cmath" 3 23376: constexpr int 23376: fpclassify(float __x) 23376: { return __builtin_fpclassify(0, 1, 4, 23376: 3, 2, __x); } 23376: 23376: constexpr int 23376: fpclassify(double __x) 23376: { return __builtin_fpclassify(0, 1, 4, 23376: 3, 2, __x); } 23376: 23376: constexpr int 23376: fpclassify(long double __x) 23376: { return __builtin_fpclassify(0, 1, 4, 23376: 3, 2, __x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: int>::__type 23376: fpclassify(_Tp __x) 23376: { return __x != 0 ? 4 : 2; } 23376: 23376: 23376: 23376: constexpr bool 23376: isfinite(float __x) 23376: { return __builtin_isfinite(__x); } 23376: 23376: constexpr bool 23376: isfinite(double __x) 23376: { return __builtin_isfinite(__x); } 23376: 23376: constexpr bool 23376: isfinite(long double __x) 23376: { return __builtin_isfinite(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: bool>::__type 23376: isfinite(_Tp __x) 23376: { return true; } 23376: 23376: 23376: 23376: constexpr bool 23376: isinf(float __x) 23376: { return __builtin_isinf(__x); } 23376: 23376: 23376: 23376: 23376: 23376: constexpr bool 23376: isinf(double __x) 23376: { return __builtin_isinf(__x); } 23376: 23376: 23376: constexpr bool 23376: isinf(long double __x) 23376: { return __builtin_isinf(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: bool>::__type 23376: isinf(_Tp __x) 23376: { return false; } 23376: 23376: 23376: 23376: constexpr bool 23376: isnan(float __x) 23376: { return __builtin_isnan(__x); } 23376: 23376: 23376: 23376: 23376: 23376: constexpr bool 23376: isnan(double __x) 23376: { return __builtin_isnan(__x); } 23376: 23376: 23376: constexpr bool 23376: isnan(long double __x) 23376: { return __builtin_isnan(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: bool>::__type 23376: isnan(_Tp __x) 23376: { return false; } 23376: 23376: 23376: 23376: constexpr bool 23376: isnormal(float __x) 23376: { return __builtin_isnormal(__x); } 23376: 23376: constexpr bool 23376: isnormal(double __x) 23376: { return __builtin_isnormal(__x); } 23376: 23376: constexpr bool 23376: isnormal(long double __x) 23376: { return __builtin_isnormal(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: bool>::__type 23376: isnormal(_Tp __x) 23376: { return __x != 0 ? true : false; } 23376: 23376: 23376: 23376: 23376: constexpr bool 23376: signbit(float __x) 23376: { return __builtin_signbit(__x); } 23376: 23376: constexpr bool 23376: signbit(double __x) 23376: { return __builtin_signbit(__x); } 23376: 23376: constexpr bool 23376: signbit(long double __x) 23376: { return __builtin_signbit(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: bool>::__type 23376: signbit(_Tp __x) 23376: { return __x < 0 ? true : false; } 23376: 23376: 23376: 23376: constexpr bool 23376: isgreater(float __x, float __y) 23376: { return __builtin_isgreater(__x, __y); } 23376: 23376: constexpr bool 23376: isgreater(double __x, double __y) 23376: { return __builtin_isgreater(__x, __y); } 23376: 23376: constexpr bool 23376: isgreater(long double __x, long double __y) 23376: { return __builtin_isgreater(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename 23376: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 23376: && __is_arithmetic<_Up>::__value), bool>::__type 23376: isgreater(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return __builtin_isgreater(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr bool 23376: isgreaterequal(float __x, float __y) 23376: { return __builtin_isgreaterequal(__x, __y); } 23376: 23376: constexpr bool 23376: isgreaterequal(double __x, double __y) 23376: { return __builtin_isgreaterequal(__x, __y); } 23376: 23376: constexpr bool 23376: isgreaterequal(long double __x, long double __y) 23376: { return __builtin_isgreaterequal(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename 23376: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 23376: && __is_arithmetic<_Up>::__value), bool>::__type 23376: isgreaterequal(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return __builtin_isgreaterequal(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr bool 23376: isless(float __x, float __y) 23376: { return __builtin_isless(__x, __y); } 23376: 23376: constexpr bool 23376: isless(double __x, double __y) 23376: { return __builtin_isless(__x, __y); } 23376: 23376: constexpr bool 23376: isless(long double __x, long double __y) 23376: { return __builtin_isless(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename 23376: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 23376: && __is_arithmetic<_Up>::__value), bool>::__type 23376: isless(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return __builtin_isless(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr bool 23376: islessequal(float __x, float __y) 23376: { return __builtin_islessequal(__x, __y); } 23376: 23376: constexpr bool 23376: islessequal(double __x, double __y) 23376: { return __builtin_islessequal(__x, __y); } 23376: 23376: constexpr bool 23376: islessequal(long double __x, long double __y) 23376: { return __builtin_islessequal(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename 23376: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 23376: && __is_arithmetic<_Up>::__value), bool>::__type 23376: islessequal(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return __builtin_islessequal(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr bool 23376: islessgreater(float __x, float __y) 23376: { return __builtin_islessgreater(__x, __y); } 23376: 23376: constexpr bool 23376: islessgreater(double __x, double __y) 23376: { return __builtin_islessgreater(__x, __y); } 23376: 23376: constexpr bool 23376: islessgreater(long double __x, long double __y) 23376: { return __builtin_islessgreater(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename 23376: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 23376: && __is_arithmetic<_Up>::__value), bool>::__type 23376: islessgreater(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return __builtin_islessgreater(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr bool 23376: isunordered(float __x, float __y) 23376: { return __builtin_isunordered(__x, __y); } 23376: 23376: constexpr bool 23376: isunordered(double __x, double __y) 23376: { return __builtin_isunordered(__x, __y); } 23376: 23376: constexpr bool 23376: isunordered(long double __x, long double __y) 23376: { return __builtin_isunordered(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename 23376: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 23376: && __is_arithmetic<_Up>::__value), bool>::__type 23376: isunordered(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return __builtin_isunordered(__type(__x), __type(__y)); 23376: } 23376: # 1065 "/usr/include/c++/8/cmath" 3 23376: using ::double_t; 23376: using ::float_t; 23376: 23376: 23376: using ::acosh; 23376: using ::acoshf; 23376: using ::acoshl; 23376: 23376: using ::asinh; 23376: using ::asinhf; 23376: using ::asinhl; 23376: 23376: using ::atanh; 23376: using ::atanhf; 23376: using ::atanhl; 23376: 23376: using ::cbrt; 23376: using ::cbrtf; 23376: using ::cbrtl; 23376: 23376: using ::copysign; 23376: using ::copysignf; 23376: using ::copysignl; 23376: 23376: using ::erf; 23376: using ::erff; 23376: using ::erfl; 23376: 23376: using ::erfc; 23376: using ::erfcf; 23376: using ::erfcl; 23376: 23376: using ::exp2; 23376: using ::exp2f; 23376: using ::exp2l; 23376: 23376: using ::expm1; 23376: using ::expm1f; 23376: using ::expm1l; 23376: 23376: using ::fdim; 23376: using ::fdimf; 23376: using ::fdiml; 23376: 23376: using ::fma; 23376: using ::fmaf; 23376: using ::fmal; 23376: 23376: using ::fmax; 23376: using ::fmaxf; 23376: using ::fmaxl; 23376: 23376: using ::fmin; 23376: using ::fminf; 23376: using ::fminl; 23376: 23376: using ::hypot; 23376: using ::hypotf; 23376: using ::hypotl; 23376: 23376: using ::ilogb; 23376: using ::ilogbf; 23376: using ::ilogbl; 23376: 23376: using ::lgamma; 23376: using ::lgammaf; 23376: using ::lgammal; 23376: 23376: 23376: using ::llrint; 23376: using ::llrintf; 23376: using ::llrintl; 23376: 23376: using ::llround; 23376: using ::llroundf; 23376: using ::llroundl; 23376: 23376: 23376: using ::log1p; 23376: using ::log1pf; 23376: using ::log1pl; 23376: 23376: using ::log2; 23376: using ::log2f; 23376: using ::log2l; 23376: 23376: using ::logb; 23376: using ::logbf; 23376: using ::logbl; 23376: 23376: using ::lrint; 23376: using ::lrintf; 23376: using ::lrintl; 23376: 23376: using ::lround; 23376: using ::lroundf; 23376: using ::lroundl; 23376: 23376: using ::nan; 23376: using ::nanf; 23376: using ::nanl; 23376: 23376: using ::nearbyint; 23376: using ::nearbyintf; 23376: using ::nearbyintl; 23376: 23376: using ::nextafter; 23376: using ::nextafterf; 23376: using ::nextafterl; 23376: 23376: using ::nexttoward; 23376: using ::nexttowardf; 23376: using ::nexttowardl; 23376: 23376: using ::remainder; 23376: using ::remainderf; 23376: using ::remainderl; 23376: 23376: using ::remquo; 23376: using ::remquof; 23376: using ::remquol; 23376: 23376: using ::rint; 23376: using ::rintf; 23376: using ::rintl; 23376: 23376: using ::round; 23376: using ::roundf; 23376: using ::roundl; 23376: 23376: using ::scalbln; 23376: using ::scalblnf; 23376: using ::scalblnl; 23376: 23376: using ::scalbn; 23376: using ::scalbnf; 23376: using ::scalbnl; 23376: 23376: using ::tgamma; 23376: using ::tgammaf; 23376: using ::tgammal; 23376: 23376: using ::trunc; 23376: using ::truncf; 23376: using ::truncl; 23376: 23376: 23376: 23376: constexpr float 23376: acosh(float __x) 23376: { return __builtin_acoshf(__x); } 23376: 23376: constexpr long double 23376: acosh(long double __x) 23376: { return __builtin_acoshl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: acosh(_Tp __x) 23376: { return __builtin_acosh(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: asinh(float __x) 23376: { return __builtin_asinhf(__x); } 23376: 23376: constexpr long double 23376: asinh(long double __x) 23376: { return __builtin_asinhl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: asinh(_Tp __x) 23376: { return __builtin_asinh(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: atanh(float __x) 23376: { return __builtin_atanhf(__x); } 23376: 23376: constexpr long double 23376: atanh(long double __x) 23376: { return __builtin_atanhl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: atanh(_Tp __x) 23376: { return __builtin_atanh(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: cbrt(float __x) 23376: { return __builtin_cbrtf(__x); } 23376: 23376: constexpr long double 23376: cbrt(long double __x) 23376: { return __builtin_cbrtl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: cbrt(_Tp __x) 23376: { return __builtin_cbrt(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: copysign(float __x, float __y) 23376: { return __builtin_copysignf(__x, __y); } 23376: 23376: constexpr long double 23376: copysign(long double __x, long double __y) 23376: { return __builtin_copysignl(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: copysign(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return copysign(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr float 23376: erf(float __x) 23376: { return __builtin_erff(__x); } 23376: 23376: constexpr long double 23376: erf(long double __x) 23376: { return __builtin_erfl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: erf(_Tp __x) 23376: { return __builtin_erf(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: erfc(float __x) 23376: { return __builtin_erfcf(__x); } 23376: 23376: constexpr long double 23376: erfc(long double __x) 23376: { return __builtin_erfcl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: erfc(_Tp __x) 23376: { return __builtin_erfc(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: exp2(float __x) 23376: { return __builtin_exp2f(__x); } 23376: 23376: constexpr long double 23376: exp2(long double __x) 23376: { return __builtin_exp2l(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: exp2(_Tp __x) 23376: { return __builtin_exp2(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: expm1(float __x) 23376: { return __builtin_expm1f(__x); } 23376: 23376: constexpr long double 23376: expm1(long double __x) 23376: { return __builtin_expm1l(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: expm1(_Tp __x) 23376: { return __builtin_expm1(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: fdim(float __x, float __y) 23376: { return __builtin_fdimf(__x, __y); } 23376: 23376: constexpr long double 23376: fdim(long double __x, long double __y) 23376: { return __builtin_fdiml(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: fdim(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return fdim(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr float 23376: fma(float __x, float __y, float __z) 23376: { return __builtin_fmaf(__x, __y, __z); } 23376: 23376: constexpr long double 23376: fma(long double __x, long double __y, long double __z) 23376: { return __builtin_fmal(__x, __y, __z); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type 23376: fma(_Tp __x, _Up __y, _Vp __z) 23376: { 23376: typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; 23376: return fma(__type(__x), __type(__y), __type(__z)); 23376: } 23376: 23376: 23376: 23376: constexpr float 23376: fmax(float __x, float __y) 23376: { return __builtin_fmaxf(__x, __y); } 23376: 23376: constexpr long double 23376: fmax(long double __x, long double __y) 23376: { return __builtin_fmaxl(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: fmax(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return fmax(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr float 23376: fmin(float __x, float __y) 23376: { return __builtin_fminf(__x, __y); } 23376: 23376: constexpr long double 23376: fmin(long double __x, long double __y) 23376: { return __builtin_fminl(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: fmin(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return fmin(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr float 23376: hypot(float __x, float __y) 23376: { return __builtin_hypotf(__x, __y); } 23376: 23376: constexpr long double 23376: hypot(long double __x, long double __y) 23376: { return __builtin_hypotl(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: hypot(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return hypot(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr int 23376: ilogb(float __x) 23376: { return __builtin_ilogbf(__x); } 23376: 23376: constexpr int 23376: ilogb(long double __x) 23376: { return __builtin_ilogbl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr 23376: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: int>::__type 23376: ilogb(_Tp __x) 23376: { return __builtin_ilogb(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: lgamma(float __x) 23376: { return __builtin_lgammaf(__x); } 23376: 23376: constexpr long double 23376: lgamma(long double __x) 23376: { return __builtin_lgammal(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: lgamma(_Tp __x) 23376: { return __builtin_lgamma(__x); } 23376: 23376: 23376: 23376: constexpr long long 23376: llrint(float __x) 23376: { return __builtin_llrintf(__x); } 23376: 23376: constexpr long long 23376: llrint(long double __x) 23376: { return __builtin_llrintl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: long long>::__type 23376: llrint(_Tp __x) 23376: { return __builtin_llrint(__x); } 23376: 23376: 23376: 23376: constexpr long long 23376: llround(float __x) 23376: { return __builtin_llroundf(__x); } 23376: 23376: constexpr long long 23376: llround(long double __x) 23376: { return __builtin_llroundl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: long long>::__type 23376: llround(_Tp __x) 23376: { return __builtin_llround(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: log1p(float __x) 23376: { return __builtin_log1pf(__x); } 23376: 23376: constexpr long double 23376: log1p(long double __x) 23376: { return __builtin_log1pl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: log1p(_Tp __x) 23376: { return __builtin_log1p(__x); } 23376: 23376: 23376: 23376: 23376: constexpr float 23376: log2(float __x) 23376: { return __builtin_log2f(__x); } 23376: 23376: constexpr long double 23376: log2(long double __x) 23376: { return __builtin_log2l(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: log2(_Tp __x) 23376: { return __builtin_log2(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: logb(float __x) 23376: { return __builtin_logbf(__x); } 23376: 23376: constexpr long double 23376: logb(long double __x) 23376: { return __builtin_logbl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: logb(_Tp __x) 23376: { return __builtin_logb(__x); } 23376: 23376: 23376: 23376: constexpr long 23376: lrint(float __x) 23376: { return __builtin_lrintf(__x); } 23376: 23376: constexpr long 23376: lrint(long double __x) 23376: { return __builtin_lrintl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: long>::__type 23376: lrint(_Tp __x) 23376: { return __builtin_lrint(__x); } 23376: 23376: 23376: 23376: constexpr long 23376: lround(float __x) 23376: { return __builtin_lroundf(__x); } 23376: 23376: constexpr long 23376: lround(long double __x) 23376: { return __builtin_lroundl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: long>::__type 23376: lround(_Tp __x) 23376: { return __builtin_lround(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: nearbyint(float __x) 23376: { return __builtin_nearbyintf(__x); } 23376: 23376: constexpr long double 23376: nearbyint(long double __x) 23376: { return __builtin_nearbyintl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: nearbyint(_Tp __x) 23376: { return __builtin_nearbyint(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: nextafter(float __x, float __y) 23376: { return __builtin_nextafterf(__x, __y); } 23376: 23376: constexpr long double 23376: nextafter(long double __x, long double __y) 23376: { return __builtin_nextafterl(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: nextafter(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return nextafter(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: constexpr float 23376: nexttoward(float __x, long double __y) 23376: { return __builtin_nexttowardf(__x, __y); } 23376: 23376: constexpr long double 23376: nexttoward(long double __x, long double __y) 23376: { return __builtin_nexttowardl(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: nexttoward(_Tp __x, long double __y) 23376: { return __builtin_nexttoward(__x, __y); } 23376: 23376: 23376: 23376: constexpr float 23376: remainder(float __x, float __y) 23376: { return __builtin_remainderf(__x, __y); } 23376: 23376: constexpr long double 23376: remainder(long double __x, long double __y) 23376: { return __builtin_remainderl(__x, __y); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: remainder(_Tp __x, _Up __y) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return remainder(__type(__x), __type(__y)); 23376: } 23376: 23376: 23376: 23376: inline float 23376: remquo(float __x, float __y, int* __pquo) 23376: { return __builtin_remquof(__x, __y, __pquo); } 23376: 23376: inline long double 23376: remquo(long double __x, long double __y, int* __pquo) 23376: { return __builtin_remquol(__x, __y, __pquo); } 23376: 23376: 23376: 23376: template 23376: inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 23376: remquo(_Tp __x, _Up __y, int* __pquo) 23376: { 23376: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 23376: return remquo(__type(__x), __type(__y), __pquo); 23376: } 23376: 23376: 23376: 23376: constexpr float 23376: rint(float __x) 23376: { return __builtin_rintf(__x); } 23376: 23376: constexpr long double 23376: rint(long double __x) 23376: { return __builtin_rintl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: rint(_Tp __x) 23376: { return __builtin_rint(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: round(float __x) 23376: { return __builtin_roundf(__x); } 23376: 23376: constexpr long double 23376: round(long double __x) 23376: { return __builtin_roundl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: round(_Tp __x) 23376: { return __builtin_round(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: scalbln(float __x, long __ex) 23376: { return __builtin_scalblnf(__x, __ex); } 23376: 23376: constexpr long double 23376: scalbln(long double __x, long __ex) 23376: { return __builtin_scalblnl(__x, __ex); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: scalbln(_Tp __x, long __ex) 23376: { return __builtin_scalbln(__x, __ex); } 23376: 23376: 23376: 23376: constexpr float 23376: scalbn(float __x, int __ex) 23376: { return __builtin_scalbnf(__x, __ex); } 23376: 23376: constexpr long double 23376: scalbn(long double __x, int __ex) 23376: { return __builtin_scalbnl(__x, __ex); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: scalbn(_Tp __x, int __ex) 23376: { return __builtin_scalbn(__x, __ex); } 23376: 23376: 23376: 23376: constexpr float 23376: tgamma(float __x) 23376: { return __builtin_tgammaf(__x); } 23376: 23376: constexpr long double 23376: tgamma(long double __x) 23376: { return __builtin_tgammal(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: tgamma(_Tp __x) 23376: { return __builtin_tgamma(__x); } 23376: 23376: 23376: 23376: constexpr float 23376: trunc(float __x) 23376: { return __builtin_truncf(__x); } 23376: 23376: constexpr long double 23376: trunc(long double __x) 23376: { return __builtin_truncl(__x); } 23376: 23376: 23376: 23376: template 23376: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 23376: double>::__type 23376: trunc(_Tp __x) 23376: { return __builtin_trunc(__x); } 23376: # 1888 "/usr/include/c++/8/cmath" 3 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 35 "../../src/Float_defs.hh" 2 23376: # 1 "/usr/include/c++/8/map" 1 3 23376: # 58 "/usr/include/c++/8/map" 3 23376: 23376: # 59 "/usr/include/c++/8/map" 3 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/stl_map.h" 1 3 23376: # 63 "/usr/include/c++/8/bits/stl_map.h" 3 23376: # 1 "/usr/include/c++/8/tuple" 1 3 23376: # 32 "/usr/include/c++/8/tuple" 3 23376: 23376: # 33 "/usr/include/c++/8/tuple" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/array" 1 3 23376: # 32 "/usr/include/c++/8/array" 3 23376: 23376: # 33 "/usr/include/c++/8/array" 3 23376: # 43 "/usr/include/c++/8/array" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: struct __array_traits 23376: { 23376: typedef _Tp _Type[_Nm]; 23376: typedef __is_swappable<_Tp> _Is_swappable; 23376: typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; 23376: 23376: static constexpr _Tp& 23376: _S_ref(const _Type& __t, std::size_t __n) noexcept 23376: { return const_cast<_Tp&>(__t[__n]); } 23376: 23376: static constexpr _Tp* 23376: _S_ptr(const _Type& __t) noexcept 23376: { return const_cast<_Tp*>(__t); } 23376: }; 23376: 23376: template 23376: struct __array_traits<_Tp, 0> 23376: { 23376: struct _Type { }; 23376: typedef true_type _Is_swappable; 23376: typedef true_type _Is_nothrow_swappable; 23376: 23376: static constexpr _Tp& 23376: _S_ref(const _Type&, std::size_t) noexcept 23376: { return *static_cast<_Tp*>(nullptr); } 23376: 23376: static constexpr _Tp* 23376: _S_ptr(const _Type&) noexcept 23376: { return nullptr; } 23376: }; 23376: # 93 "/usr/include/c++/8/array" 3 23376: template 23376: struct array 23376: { 23376: typedef _Tp value_type; 23376: typedef value_type* pointer; 23376: typedef const value_type* const_pointer; 23376: typedef value_type& reference; 23376: typedef const value_type& const_reference; 23376: typedef value_type* iterator; 23376: typedef const value_type* const_iterator; 23376: typedef std::size_t size_type; 23376: typedef std::ptrdiff_t difference_type; 23376: typedef std::reverse_iterator reverse_iterator; 23376: typedef std::reverse_iterator const_reverse_iterator; 23376: 23376: 23376: typedef std::__array_traits<_Tp, _Nm> _AT_Type; 23376: typename _AT_Type::_Type _M_elems; 23376: 23376: 23376: 23376: 23376: void 23376: fill(const value_type& __u) 23376: { std::fill_n(begin(), size(), __u); } 23376: 23376: void 23376: swap(array& __other) 23376: noexcept(_AT_Type::_Is_nothrow_swappable::value) 23376: { std::swap_ranges(begin(), end(), __other.begin()); } 23376: 23376: 23376: iterator 23376: begin() noexcept 23376: { return iterator(data()); } 23376: 23376: const_iterator 23376: begin() const noexcept 23376: { return const_iterator(data()); } 23376: 23376: iterator 23376: end() noexcept 23376: { return iterator(data() + _Nm); } 23376: 23376: const_iterator 23376: end() const noexcept 23376: { return const_iterator(data() + _Nm); } 23376: 23376: reverse_iterator 23376: rbegin() noexcept 23376: { return reverse_iterator(end()); } 23376: 23376: const_reverse_iterator 23376: rbegin() const noexcept 23376: { return const_reverse_iterator(end()); } 23376: 23376: reverse_iterator 23376: rend() noexcept 23376: { return reverse_iterator(begin()); } 23376: 23376: const_reverse_iterator 23376: rend() const noexcept 23376: { return const_reverse_iterator(begin()); } 23376: 23376: const_iterator 23376: cbegin() const noexcept 23376: { return const_iterator(data()); } 23376: 23376: const_iterator 23376: cend() const noexcept 23376: { return const_iterator(data() + _Nm); } 23376: 23376: const_reverse_iterator 23376: crbegin() const noexcept 23376: { return const_reverse_iterator(end()); } 23376: 23376: const_reverse_iterator 23376: crend() const noexcept 23376: { return const_reverse_iterator(begin()); } 23376: 23376: 23376: constexpr size_type 23376: size() const noexcept { return _Nm; } 23376: 23376: constexpr size_type 23376: max_size() const noexcept { return _Nm; } 23376: 23376: constexpr bool 23376: empty() const noexcept { return size() == 0; } 23376: 23376: 23376: reference 23376: operator[](size_type __n) noexcept 23376: { return _AT_Type::_S_ref(_M_elems, __n); } 23376: 23376: constexpr const_reference 23376: operator[](size_type __n) const noexcept 23376: { return _AT_Type::_S_ref(_M_elems, __n); } 23376: 23376: reference 23376: at(size_type __n) 23376: { 23376: if (__n >= _Nm) 23376: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 23376: , 23376: __n, _Nm); 23376: return _AT_Type::_S_ref(_M_elems, __n); 23376: } 23376: 23376: constexpr const_reference 23376: at(size_type __n) const 23376: { 23376: 23376: 23376: return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) 23376: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 23376: , 23376: __n, _Nm), 23376: _AT_Type::_S_ref(_M_elems, 0)); 23376: } 23376: 23376: reference 23376: front() noexcept 23376: { return *begin(); } 23376: 23376: constexpr const_reference 23376: front() const noexcept 23376: { return _AT_Type::_S_ref(_M_elems, 0); } 23376: 23376: reference 23376: back() noexcept 23376: { return _Nm ? *(end() - 1) : *end(); } 23376: 23376: constexpr const_reference 23376: back() const noexcept 23376: { 23376: return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) 23376: : _AT_Type::_S_ref(_M_elems, 0); 23376: } 23376: 23376: pointer 23376: data() noexcept 23376: { return _AT_Type::_S_ptr(_M_elems); } 23376: 23376: const_pointer 23376: data() const noexcept 23376: { return _AT_Type::_S_ptr(_M_elems); } 23376: }; 23376: # 250 "/usr/include/c++/8/array" 3 23376: template 23376: inline bool 23376: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 23376: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 23376: 23376: template 23376: inline bool 23376: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 23376: { return !(__one == __two); } 23376: 23376: template 23376: inline bool 23376: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 23376: { 23376: return std::lexicographical_compare(__a.begin(), __a.end(), 23376: __b.begin(), __b.end()); 23376: } 23376: 23376: template 23376: inline bool 23376: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 23376: { return __two < __one; } 23376: 23376: template 23376: inline bool 23376: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 23376: { return !(__one > __two); } 23376: 23376: template 23376: inline bool 23376: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 23376: { return !(__one < __two); } 23376: 23376: 23376: template 23376: inline 23376: 23376: 23376: typename enable_if< 23376: std::__array_traits<_Tp, _Nm>::_Is_swappable::value 23376: >::type 23376: 23376: 23376: 23376: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 23376: noexcept(noexcept(__one.swap(__two))) 23376: { __one.swap(__two); } 23376: 23376: 23376: template 23376: typename enable_if< 23376: !std::__array_traits<_Tp, _Nm>::_Is_swappable::value>::type 23376: swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete; 23376: 23376: 23376: template 23376: constexpr _Tp& 23376: get(array<_Tp, _Nm>& __arr) noexcept 23376: { 23376: static_assert(_Int < _Nm, "array index is within bounds"); 23376: return std::__array_traits<_Tp, _Nm>:: 23376: _S_ref(__arr._M_elems, _Int); 23376: } 23376: 23376: template 23376: constexpr _Tp&& 23376: get(array<_Tp, _Nm>&& __arr) noexcept 23376: { 23376: static_assert(_Int < _Nm, "array index is within bounds"); 23376: return std::move(std::get<_Int>(__arr)); 23376: } 23376: 23376: template 23376: constexpr const _Tp& 23376: get(const array<_Tp, _Nm>& __arr) noexcept 23376: { 23376: static_assert(_Int < _Nm, "array index is within bounds"); 23376: return std::__array_traits<_Tp, _Nm>:: 23376: _S_ref(__arr._M_elems, _Int); 23376: } 23376: 23376: template 23376: constexpr const _Tp&& 23376: get(const array<_Tp, _Nm>&& __arr) noexcept 23376: { 23376: static_assert(_Int < _Nm, "array index is within bounds"); 23376: return std::move(std::get<_Int>(__arr)); 23376: } 23376: 23376: 23376: } 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct tuple_size; 23376: 23376: 23376: template 23376: struct tuple_size> 23376: : public integral_constant { }; 23376: 23376: 23376: template 23376: struct tuple_element; 23376: 23376: 23376: template 23376: struct tuple_element<_Int, std::array<_Tp, _Nm>> 23376: { 23376: static_assert(_Int < _Nm, "index is out of bounds"); 23376: typedef _Tp type; 23376: }; 23376: 23376: template 23376: struct __is_tuple_like_impl> : true_type 23376: { }; 23376: 23376: 23376: } 23376: # 40 "/usr/include/c++/8/tuple" 2 3 23376: # 1 "/usr/include/c++/8/bits/uses_allocator.h" 1 3 23376: # 35 "/usr/include/c++/8/bits/uses_allocator.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: struct __erased_type { }; 23376: 23376: template 23376: using __is_erased_or_convertible 23376: = __or_, is_convertible<_Alloc, _Tp>>; 23376: 23376: 23376: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 23376: 23376: constexpr allocator_arg_t allocator_arg = 23376: allocator_arg_t(); 23376: 23376: template> 23376: struct __uses_allocator_helper 23376: : false_type { }; 23376: 23376: template 23376: struct __uses_allocator_helper<_Tp, _Alloc, 23376: __void_t> 23376: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 23376: { }; 23376: 23376: 23376: template 23376: struct uses_allocator 23376: : __uses_allocator_helper<_Tp, _Alloc>::type 23376: { }; 23376: 23376: struct __uses_alloc_base { }; 23376: 23376: struct __uses_alloc0 : __uses_alloc_base 23376: { 23376: struct _Sink { void operator=(const void*) { } } _M_a; 23376: }; 23376: 23376: template 23376: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 23376: 23376: template 23376: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 23376: 23376: template 23376: struct __uses_alloc; 23376: 23376: template 23376: struct __uses_alloc 23376: : conditional< 23376: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value, 23376: __uses_alloc1<_Alloc>, 23376: __uses_alloc2<_Alloc>>::type 23376: { 23376: static_assert(__or_< 23376: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>, 23376: is_constructible<_Tp, _Args..., _Alloc>>::value, "construction with" 23376: " an allocator must be possible if uses_allocator is true"); 23376: }; 23376: 23376: template 23376: struct __uses_alloc 23376: : __uses_alloc0 { }; 23376: 23376: template 23376: using __uses_alloc_t = 23376: __uses_alloc::value, _Tp, _Alloc, _Args...>; 23376: 23376: template 23376: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 23376: __use_alloc(const _Alloc& __a) 23376: { 23376: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 23376: __ret._M_a = std::__addressof(__a); 23376: return __ret; 23376: } 23376: 23376: template 23376: void 23376: __use_alloc(const _Alloc&&) = delete; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template class _Predicate, 23376: typename _Tp, typename _Alloc, typename... _Args> 23376: struct __is_uses_allocator_predicate 23376: : conditional::value, 23376: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 23376: _Predicate<_Tp, _Args..., _Alloc>>, 23376: _Predicate<_Tp, _Args...>>::type { }; 23376: 23376: template 23376: struct __is_uses_allocator_constructible 23376: : __is_uses_allocator_predicate 23376: { }; 23376: 23376: 23376: template 23376: constexpr bool __is_uses_allocator_constructible_v = 23376: __is_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; 23376: 23376: 23376: template 23376: struct __is_nothrow_uses_allocator_constructible 23376: : __is_uses_allocator_predicate 23376: { }; 23376: 23376: 23376: 23376: template 23376: constexpr bool 23376: __is_nothrow_uses_allocator_constructible_v = 23376: __is_nothrow_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; 23376: 23376: 23376: template 23376: void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, 23376: _Args&&... __args) 23376: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 23376: 23376: template 23376: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 23376: _Args&&... __args) 23376: { 23376: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 23376: std::forward<_Args>(__args)...); 23376: } 23376: 23376: template 23376: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 23376: _Args&&... __args) 23376: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 23376: 23376: template 23376: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 23376: _Args&&... __args) 23376: { 23376: __uses_allocator_construct_impl(__use_alloc<_Tp, _Alloc, _Args...>(__a), 23376: __ptr, std::forward<_Args>(__args)...); 23376: } 23376: 23376: 23376: } 23376: # 41 "/usr/include/c++/8/tuple" 2 3 23376: # 1 "/usr/include/c++/8/bits/invoke.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/invoke.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/invoke.h" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 52 "/usr/include/c++/8/bits/invoke.h" 3 23376: template::type> 23376: constexpr _Up&& 23376: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 23376: { return static_cast<_Up&&>(__t); } 23376: 23376: template 23376: constexpr _Res 23376: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 23376: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 23376: 23376: template 23376: constexpr _Res 23376: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 23376: _Args&&... __args) 23376: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 23376: 23376: template 23376: constexpr _Res 23376: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 23376: _Args&&... __args) 23376: { 23376: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 23376: } 23376: 23376: template 23376: constexpr _Res 23376: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 23376: { return __invfwd<_Tp>(__t).*__f; } 23376: 23376: template 23376: constexpr _Res 23376: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 23376: { return (*std::forward<_Tp>(__t)).*__f; } 23376: 23376: 23376: template 23376: constexpr typename __invoke_result<_Callable, _Args...>::type 23376: __invoke(_Callable&& __fn, _Args&&... __args) 23376: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 23376: { 23376: using __result = __invoke_result<_Callable, _Args...>; 23376: using __type = typename __result::type; 23376: using __tag = typename __result::__invoke_type; 23376: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 23376: std::forward<_Args>(__args)...); 23376: } 23376: 23376: 23376: } 23376: # 42 "/usr/include/c++/8/tuple" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: class tuple; 23376: 23376: template 23376: struct __is_empty_non_tuple : is_empty<_Tp> { }; 23376: 23376: 23376: template 23376: struct __is_empty_non_tuple> : false_type { }; 23376: 23376: 23376: template 23376: using __empty_not_final 23376: = typename conditional<__is_final(_Tp), false_type, 23376: __is_empty_non_tuple<_Tp>>::type; 23376: 23376: template::value> 23376: struct _Head_base; 23376: 23376: template 23376: struct _Head_base<_Idx, _Head, true> 23376: : public _Head 23376: { 23376: constexpr _Head_base() 23376: : _Head() { } 23376: 23376: constexpr _Head_base(const _Head& __h) 23376: : _Head(__h) { } 23376: 23376: constexpr _Head_base(const _Head_base&) = default; 23376: constexpr _Head_base(_Head_base&&) = default; 23376: 23376: template 23376: constexpr _Head_base(_UHead&& __h) 23376: : _Head(std::forward<_UHead>(__h)) { } 23376: 23376: _Head_base(allocator_arg_t, __uses_alloc0) 23376: : _Head() { } 23376: 23376: template 23376: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 23376: : _Head(allocator_arg, *__a._M_a) { } 23376: 23376: template 23376: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 23376: : _Head(*__a._M_a) { } 23376: 23376: template 23376: _Head_base(__uses_alloc0, _UHead&& __uhead) 23376: : _Head(std::forward<_UHead>(__uhead)) { } 23376: 23376: template 23376: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 23376: : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } 23376: 23376: template 23376: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 23376: : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } 23376: 23376: static constexpr _Head& 23376: _M_head(_Head_base& __b) noexcept { return __b; } 23376: 23376: static constexpr const _Head& 23376: _M_head(const _Head_base& __b) noexcept { return __b; } 23376: }; 23376: 23376: template 23376: struct _Head_base<_Idx, _Head, false> 23376: { 23376: constexpr _Head_base() 23376: : _M_head_impl() { } 23376: 23376: constexpr _Head_base(const _Head& __h) 23376: : _M_head_impl(__h) { } 23376: 23376: constexpr _Head_base(const _Head_base&) = default; 23376: constexpr _Head_base(_Head_base&&) = default; 23376: 23376: template 23376: constexpr _Head_base(_UHead&& __h) 23376: : _M_head_impl(std::forward<_UHead>(__h)) { } 23376: 23376: _Head_base(allocator_arg_t, __uses_alloc0) 23376: : _M_head_impl() { } 23376: 23376: template 23376: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 23376: : _M_head_impl(allocator_arg, *__a._M_a) { } 23376: 23376: template 23376: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 23376: : _M_head_impl(*__a._M_a) { } 23376: 23376: template 23376: _Head_base(__uses_alloc0, _UHead&& __uhead) 23376: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 23376: 23376: template 23376: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 23376: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 23376: { } 23376: 23376: template 23376: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 23376: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 23376: 23376: static constexpr _Head& 23376: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 23376: 23376: static constexpr const _Head& 23376: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 23376: 23376: _Head _M_head_impl; 23376: }; 23376: # 176 "/usr/include/c++/8/tuple" 3 23376: template 23376: struct _Tuple_impl; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct _Tuple_impl<_Idx, _Head, _Tail...> 23376: : public _Tuple_impl<_Idx + 1, _Tail...>, 23376: private _Head_base<_Idx, _Head> 23376: { 23376: template friend class _Tuple_impl; 23376: 23376: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 23376: typedef _Head_base<_Idx, _Head> _Base; 23376: 23376: static constexpr _Head& 23376: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 23376: 23376: static constexpr const _Head& 23376: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 23376: 23376: static constexpr _Inherited& 23376: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 23376: 23376: static constexpr const _Inherited& 23376: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 23376: 23376: constexpr _Tuple_impl() 23376: : _Inherited(), _Base() { } 23376: 23376: explicit 23376: constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) 23376: : _Inherited(__tail...), _Base(__head) { } 23376: 23376: template::type> 23376: explicit 23376: constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 23376: : _Inherited(std::forward<_UTail>(__tail)...), 23376: _Base(std::forward<_UHead>(__head)) { } 23376: 23376: constexpr _Tuple_impl(const _Tuple_impl&) = default; 23376: 23376: constexpr 23376: _Tuple_impl(_Tuple_impl&& __in) 23376: noexcept(__and_, 23376: is_nothrow_move_constructible<_Inherited>>::value) 23376: : _Inherited(std::move(_M_tail(__in))), 23376: _Base(std::forward<_Head>(_M_head(__in))) { } 23376: 23376: template 23376: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 23376: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 23376: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 23376: 23376: template 23376: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 23376: : _Inherited(std::move 23376: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 23376: _Base(std::forward<_UHead> 23376: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 23376: : _Inherited(__tag, __a), 23376: _Base(__tag, __use_alloc<_Head>(__a)) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: const _Head& __head, const _Tail&... __tail) 23376: : _Inherited(__tag, __a, __tail...), 23376: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 23376: 23376: template::type> 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: _UHead&& __head, _UTail&&... __tail) 23376: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 23376: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 23376: std::forward<_UHead>(__head)) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: const _Tuple_impl& __in) 23376: : _Inherited(__tag, __a, _M_tail(__in)), 23376: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: _Tuple_impl&& __in) 23376: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 23376: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 23376: std::forward<_Head>(_M_head(__in))) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: const _Tuple_impl<_Idx, _UElements...>& __in) 23376: : _Inherited(__tag, __a, 23376: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 23376: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 23376: _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 23376: : _Inherited(__tag, __a, std::move 23376: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 23376: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 23376: std::forward<_UHead> 23376: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 23376: 23376: _Tuple_impl& 23376: operator=(const _Tuple_impl& __in) 23376: { 23376: _M_head(*this) = _M_head(__in); 23376: _M_tail(*this) = _M_tail(__in); 23376: return *this; 23376: } 23376: 23376: _Tuple_impl& 23376: operator=(_Tuple_impl&& __in) 23376: noexcept(__and_, 23376: is_nothrow_move_assignable<_Inherited>>::value) 23376: { 23376: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 23376: _M_tail(*this) = std::move(_M_tail(__in)); 23376: return *this; 23376: } 23376: 23376: template 23376: _Tuple_impl& 23376: operator=(const _Tuple_impl<_Idx, _UElements...>& __in) 23376: { 23376: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 23376: _M_tail(*this) = _Tuple_impl<_Idx, _UElements...>::_M_tail(__in); 23376: return *this; 23376: } 23376: 23376: template 23376: _Tuple_impl& 23376: operator=(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 23376: { 23376: _M_head(*this) = std::forward<_UHead> 23376: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 23376: _M_tail(*this) = std::move 23376: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)); 23376: return *this; 23376: } 23376: 23376: protected: 23376: void 23376: _M_swap(_Tuple_impl& __in) 23376: noexcept(__is_nothrow_swappable<_Head>::value 23376: && noexcept(_M_tail(__in)._M_swap(_M_tail(__in)))) 23376: { 23376: using std::swap; 23376: swap(_M_head(*this), _M_head(__in)); 23376: _Inherited::_M_swap(_M_tail(__in)); 23376: } 23376: }; 23376: 23376: 23376: template 23376: struct _Tuple_impl<_Idx, _Head> 23376: : private _Head_base<_Idx, _Head> 23376: { 23376: template friend class _Tuple_impl; 23376: 23376: typedef _Head_base<_Idx, _Head> _Base; 23376: 23376: static constexpr _Head& 23376: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 23376: 23376: static constexpr const _Head& 23376: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 23376: 23376: constexpr _Tuple_impl() 23376: : _Base() { } 23376: 23376: explicit 23376: constexpr _Tuple_impl(const _Head& __head) 23376: : _Base(__head) { } 23376: 23376: template 23376: explicit 23376: constexpr _Tuple_impl(_UHead&& __head) 23376: : _Base(std::forward<_UHead>(__head)) { } 23376: 23376: constexpr _Tuple_impl(const _Tuple_impl&) = default; 23376: 23376: constexpr 23376: _Tuple_impl(_Tuple_impl&& __in) 23376: noexcept(is_nothrow_move_constructible<_Head>::value) 23376: : _Base(std::forward<_Head>(_M_head(__in))) { } 23376: 23376: template 23376: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 23376: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 23376: 23376: template 23376: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 23376: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 23376: { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 23376: : _Base(__tag, __use_alloc<_Head>(__a)) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: const _Head& __head) 23376: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: _UHead&& __head) 23376: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 23376: std::forward<_UHead>(__head)) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: const _Tuple_impl& __in) 23376: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: _Tuple_impl&& __in) 23376: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 23376: std::forward<_Head>(_M_head(__in))) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: const _Tuple_impl<_Idx, _UHead>& __in) 23376: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 23376: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 23376: 23376: template 23376: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 23376: _Tuple_impl<_Idx, _UHead>&& __in) 23376: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 23376: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 23376: { } 23376: 23376: _Tuple_impl& 23376: operator=(const _Tuple_impl& __in) 23376: { 23376: _M_head(*this) = _M_head(__in); 23376: return *this; 23376: } 23376: 23376: _Tuple_impl& 23376: operator=(_Tuple_impl&& __in) 23376: noexcept(is_nothrow_move_assignable<_Head>::value) 23376: { 23376: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 23376: return *this; 23376: } 23376: 23376: template 23376: _Tuple_impl& 23376: operator=(const _Tuple_impl<_Idx, _UHead>& __in) 23376: { 23376: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 23376: return *this; 23376: } 23376: 23376: template 23376: _Tuple_impl& 23376: operator=(_Tuple_impl<_Idx, _UHead>&& __in) 23376: { 23376: _M_head(*this) 23376: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 23376: return *this; 23376: } 23376: 23376: protected: 23376: void 23376: _M_swap(_Tuple_impl& __in) 23376: noexcept(__is_nothrow_swappable<_Head>::value) 23376: { 23376: using std::swap; 23376: swap(_M_head(*this), _M_head(__in)); 23376: } 23376: }; 23376: 23376: 23376: 23376: template 23376: struct _TC 23376: { 23376: template 23376: static constexpr bool _ConstructibleTuple() 23376: { 23376: return __and_...>::value; 23376: } 23376: 23376: template 23376: static constexpr bool _ImplicitlyConvertibleTuple() 23376: { 23376: return __and_...>::value; 23376: } 23376: 23376: template 23376: static constexpr bool _MoveConstructibleTuple() 23376: { 23376: return __and_...>::value; 23376: } 23376: 23376: template 23376: static constexpr bool _ImplicitlyMoveConvertibleTuple() 23376: { 23376: return __and_...>::value; 23376: } 23376: 23376: template 23376: static constexpr bool _NonNestedTuple() 23376: { 23376: return __and_<__not_, 23376: typename remove_cv< 23376: typename remove_reference<_SrcTuple>::type 23376: >::type>>, 23376: __not_>, 23376: __not_> 23376: >::value; 23376: } 23376: template 23376: static constexpr bool _NotSameTuple() 23376: { 23376: return __not_, 23376: typename remove_const< 23376: typename remove_reference<_UElements...>::type 23376: >::type>>::value; 23376: } 23376: }; 23376: 23376: template 23376: struct _TC 23376: { 23376: template 23376: static constexpr bool _ConstructibleTuple() 23376: { 23376: return false; 23376: } 23376: 23376: template 23376: static constexpr bool _ImplicitlyConvertibleTuple() 23376: { 23376: return false; 23376: } 23376: 23376: template 23376: static constexpr bool _MoveConstructibleTuple() 23376: { 23376: return false; 23376: } 23376: 23376: template 23376: static constexpr bool _ImplicitlyMoveConvertibleTuple() 23376: { 23376: return false; 23376: } 23376: 23376: template 23376: static constexpr bool _NonNestedTuple() 23376: { 23376: return true; 23376: } 23376: template 23376: static constexpr bool _NotSameTuple() 23376: { 23376: return true; 23376: } 23376: }; 23376: 23376: 23376: template 23376: class tuple : public _Tuple_impl<0, _Elements...> 23376: { 23376: typedef _Tuple_impl<0, _Elements...> _Inherited; 23376: 23376: 23376: 23376: template 23376: struct _TC2 23376: { 23376: static constexpr bool _DefaultConstructibleTuple() 23376: { 23376: return __and_...>::value; 23376: } 23376: static constexpr bool _ImplicitlyDefaultConstructibleTuple() 23376: { 23376: return __and_<__is_implicitly_default_constructible<_Elements>...> 23376: ::value; 23376: } 23376: }; 23376: 23376: public: 23376: template:: 23376: _ImplicitlyDefaultConstructibleTuple(), 23376: bool>::type = true> 23376: constexpr tuple() 23376: : _Inherited() { } 23376: 23376: template:: 23376: _DefaultConstructibleTuple() 23376: && 23376: !_TC2<_Dummy>:: 23376: _ImplicitlyDefaultConstructibleTuple(), 23376: bool>::type = false> 23376: explicit constexpr tuple() 23376: : _Inherited() { } 23376: 23376: 23376: 23376: template using _TCC = 23376: _TC::value, 23376: _Elements...>; 23376: 23376: template::template 23376: _ConstructibleTuple<_Elements...>() 23376: && _TCC<_Dummy>::template 23376: _ImplicitlyConvertibleTuple<_Elements...>() 23376: && (sizeof...(_Elements) >= 1), 23376: bool>::type=true> 23376: constexpr tuple(const _Elements&... __elements) 23376: : _Inherited(__elements...) { } 23376: 23376: template::template 23376: _ConstructibleTuple<_Elements...>() 23376: && !_TCC<_Dummy>::template 23376: _ImplicitlyConvertibleTuple<_Elements...>() 23376: && (sizeof...(_Elements) >= 1), 23376: bool>::type=false> 23376: explicit constexpr tuple(const _Elements&... __elements) 23376: : _Inherited(__elements...) { } 23376: 23376: 23376: 23376: template using _TMC = 23376: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 23376: && (_TC<(sizeof...(_UElements)==1), _Elements...>:: 23376: template _NotSameTuple<_UElements...>()), 23376: _Elements...>; 23376: 23376: 23376: 23376: template using _TMCT = 23376: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 23376: && !is_same, 23376: tuple<_UElements...>>::value, 23376: _Elements...>; 23376: 23376: template::template 23376: _MoveConstructibleTuple<_UElements...>() 23376: && _TMC<_UElements...>::template 23376: _ImplicitlyMoveConvertibleTuple<_UElements...>() 23376: && (sizeof...(_Elements) >= 1), 23376: bool>::type=true> 23376: constexpr tuple(_UElements&&... __elements) 23376: : _Inherited(std::forward<_UElements>(__elements)...) { } 23376: 23376: template::template 23376: _MoveConstructibleTuple<_UElements...>() 23376: && !_TMC<_UElements...>::template 23376: _ImplicitlyMoveConvertibleTuple<_UElements...>() 23376: && (sizeof...(_Elements) >= 1), 23376: bool>::type=false> 23376: explicit constexpr tuple(_UElements&&... __elements) 23376: : _Inherited(std::forward<_UElements>(__elements)...) { } 23376: 23376: constexpr tuple(const tuple&) = default; 23376: 23376: constexpr tuple(tuple&&) = default; 23376: 23376: 23376: 23376: template using _TNTC = 23376: _TC::value && sizeof...(_Elements) == 1, 23376: _Elements...>; 23376: 23376: template::template 23376: _ConstructibleTuple<_UElements...>() 23376: && _TMCT<_UElements...>::template 23376: _ImplicitlyConvertibleTuple<_UElements...>() 23376: && _TNTC<_Dummy>::template 23376: _NonNestedTuple&>(), 23376: bool>::type=true> 23376: constexpr tuple(const tuple<_UElements...>& __in) 23376: : _Inherited(static_cast&>(__in)) 23376: { } 23376: 23376: template::template 23376: _ConstructibleTuple<_UElements...>() 23376: && !_TMCT<_UElements...>::template 23376: _ImplicitlyConvertibleTuple<_UElements...>() 23376: && _TNTC<_Dummy>::template 23376: _NonNestedTuple&>(), 23376: bool>::type=false> 23376: explicit constexpr tuple(const tuple<_UElements...>& __in) 23376: : _Inherited(static_cast&>(__in)) 23376: { } 23376: 23376: template::template 23376: _MoveConstructibleTuple<_UElements...>() 23376: && _TMCT<_UElements...>::template 23376: _ImplicitlyMoveConvertibleTuple<_UElements...>() 23376: && _TNTC<_Dummy>::template 23376: _NonNestedTuple&&>(), 23376: bool>::type=true> 23376: constexpr tuple(tuple<_UElements...>&& __in) 23376: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 23376: 23376: template::template 23376: _MoveConstructibleTuple<_UElements...>() 23376: && !_TMCT<_UElements...>::template 23376: _ImplicitlyMoveConvertibleTuple<_UElements...>() 23376: && _TNTC<_Dummy>::template 23376: _NonNestedTuple&&>(), 23376: bool>::type=false> 23376: explicit constexpr tuple(tuple<_UElements...>&& __in) 23376: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 23376: 23376: 23376: 23376: template 23376: tuple(allocator_arg_t __tag, const _Alloc& __a) 23376: : _Inherited(__tag, __a) { } 23376: 23376: template::template 23376: _ConstructibleTuple<_Elements...>() 23376: && _TCC<_Dummy>::template 23376: _ImplicitlyConvertibleTuple<_Elements...>(), 23376: bool>::type=true> 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const _Elements&... __elements) 23376: : _Inherited(__tag, __a, __elements...) { } 23376: 23376: template::template 23376: _ConstructibleTuple<_Elements...>() 23376: && !_TCC<_Dummy>::template 23376: _ImplicitlyConvertibleTuple<_Elements...>(), 23376: bool>::type=false> 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const _Elements&... __elements) 23376: : _Inherited(__tag, __a, __elements...) { } 23376: 23376: template::template 23376: _MoveConstructibleTuple<_UElements...>() 23376: && _TMC<_UElements...>::template 23376: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 23376: bool>::type=true> 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: _UElements&&... __elements) 23376: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 23376: { } 23376: 23376: template::template 23376: _MoveConstructibleTuple<_UElements...>() 23376: && !_TMC<_UElements...>::template 23376: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 23376: bool>::type=false> 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: _UElements&&... __elements) 23376: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 23376: { } 23376: 23376: template 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 23376: : _Inherited(__tag, __a, static_cast(__in)) { } 23376: 23376: template 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 23376: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 23376: 23376: template::template 23376: _ConstructibleTuple<_UElements...>() 23376: && _TMCT<_UElements...>::template 23376: _ImplicitlyConvertibleTuple<_UElements...>() 23376: && _TNTC<_Dummy>::template 23376: _NonNestedTuple&&>(), 23376: bool>::type=true> 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const tuple<_UElements...>& __in) 23376: : _Inherited(__tag, __a, 23376: static_cast&>(__in)) 23376: { } 23376: 23376: template::template 23376: _ConstructibleTuple<_UElements...>() 23376: && !_TMCT<_UElements...>::template 23376: _ImplicitlyConvertibleTuple<_UElements...>() 23376: && _TNTC<_Dummy>::template 23376: _NonNestedTuple&&>(), 23376: bool>::type=false> 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const tuple<_UElements...>& __in) 23376: : _Inherited(__tag, __a, 23376: static_cast&>(__in)) 23376: { } 23376: 23376: template::template 23376: _MoveConstructibleTuple<_UElements...>() 23376: && _TMCT<_UElements...>::template 23376: _ImplicitlyMoveConvertibleTuple<_UElements...>() 23376: && _TNTC<_Dummy>::template 23376: _NonNestedTuple&&>(), 23376: bool>::type=true> 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: tuple<_UElements...>&& __in) 23376: : _Inherited(__tag, __a, 23376: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 23376: { } 23376: 23376: template::template 23376: _MoveConstructibleTuple<_UElements...>() 23376: && !_TMCT<_UElements...>::template 23376: _ImplicitlyMoveConvertibleTuple<_UElements...>() 23376: && _TNTC<_Dummy>::template 23376: _NonNestedTuple&&>(), 23376: bool>::type=false> 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: tuple<_UElements...>&& __in) 23376: : _Inherited(__tag, __a, 23376: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 23376: { } 23376: 23376: tuple& 23376: operator=(const tuple& __in) 23376: { 23376: static_cast<_Inherited&>(*this) = __in; 23376: return *this; 23376: } 23376: 23376: tuple& 23376: operator=(tuple&& __in) 23376: noexcept(is_nothrow_move_assignable<_Inherited>::value) 23376: { 23376: static_cast<_Inherited&>(*this) = std::move(__in); 23376: return *this; 23376: } 23376: 23376: template 23376: typename 23376: enable_if::type 23376: operator=(const tuple<_UElements...>& __in) 23376: { 23376: static_cast<_Inherited&>(*this) = __in; 23376: return *this; 23376: } 23376: 23376: template 23376: typename 23376: enable_if::type 23376: operator=(tuple<_UElements...>&& __in) 23376: { 23376: static_cast<_Inherited&>(*this) = std::move(__in); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(tuple& __in) 23376: noexcept(noexcept(__in._M_swap(__in))) 23376: { _Inherited::_M_swap(__in); } 23376: }; 23376: # 889 "/usr/include/c++/8/tuple" 3 23376: template<> 23376: class tuple<> 23376: { 23376: public: 23376: void swap(tuple&) noexcept { } 23376: 23376: 23376: tuple() = default; 23376: 23376: template 23376: tuple(allocator_arg_t, const _Alloc&) { } 23376: template 23376: tuple(allocator_arg_t, const _Alloc&, const tuple&) { } 23376: }; 23376: 23376: 23376: 23376: template 23376: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 23376: { 23376: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 23376: 23376: public: 23376: template , 23376: __is_implicitly_default_constructible<_U2>> 23376: ::value, bool>::type = true> 23376: 23376: constexpr tuple() 23376: : _Inherited() { } 23376: 23376: template , 23376: is_default_constructible<_U2>, 23376: __not_< 23376: __and_<__is_implicitly_default_constructible<_U1>, 23376: __is_implicitly_default_constructible<_U2>>>> 23376: ::value, bool>::type = false> 23376: 23376: explicit constexpr tuple() 23376: : _Inherited() { } 23376: 23376: 23376: 23376: template using _TCC = 23376: _TC::value, _T1, _T2>; 23376: 23376: template::template 23376: _ConstructibleTuple<_T1, _T2>() 23376: && _TCC<_Dummy>::template 23376: _ImplicitlyConvertibleTuple<_T1, _T2>(), 23376: bool>::type = true> 23376: constexpr tuple(const _T1& __a1, const _T2& __a2) 23376: : _Inherited(__a1, __a2) { } 23376: 23376: template::template 23376: _ConstructibleTuple<_T1, _T2>() 23376: && !_TCC<_Dummy>::template 23376: _ImplicitlyConvertibleTuple<_T1, _T2>(), 23376: bool>::type = false> 23376: explicit constexpr tuple(const _T1& __a1, const _T2& __a2) 23376: : _Inherited(__a1, __a2) { } 23376: 23376: 23376: 23376: using _TMC = _TC; 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 23376: && !is_same::type, 23376: allocator_arg_t>::value, 23376: bool>::type = true> 23376: constexpr tuple(_U1&& __a1, _U2&& __a2) 23376: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 23376: && !is_same::type, 23376: allocator_arg_t>::value, 23376: bool>::type = false> 23376: explicit constexpr tuple(_U1&& __a1, _U2&& __a2) 23376: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 23376: 23376: constexpr tuple(const tuple&) = default; 23376: 23376: constexpr tuple(tuple&&) = default; 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyConvertibleTuple<_U1, _U2>(), 23376: bool>::type = true> 23376: constexpr tuple(const tuple<_U1, _U2>& __in) 23376: : _Inherited(static_cast&>(__in)) { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyConvertibleTuple<_U1, _U2>(), 23376: bool>::type = false> 23376: explicit constexpr tuple(const tuple<_U1, _U2>& __in) 23376: : _Inherited(static_cast&>(__in)) { } 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = true> 23376: constexpr tuple(tuple<_U1, _U2>&& __in) 23376: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = false> 23376: explicit constexpr tuple(tuple<_U1, _U2>&& __in) 23376: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyConvertibleTuple<_U1, _U2>(), 23376: bool>::type = true> 23376: constexpr tuple(const pair<_U1, _U2>& __in) 23376: : _Inherited(__in.first, __in.second) { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyConvertibleTuple<_U1, _U2>(), 23376: bool>::type = false> 23376: explicit constexpr tuple(const pair<_U1, _U2>& __in) 23376: : _Inherited(__in.first, __in.second) { } 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = true> 23376: constexpr tuple(pair<_U1, _U2>&& __in) 23376: : _Inherited(std::forward<_U1>(__in.first), 23376: std::forward<_U2>(__in.second)) { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = false> 23376: explicit constexpr tuple(pair<_U1, _U2>&& __in) 23376: : _Inherited(std::forward<_U1>(__in.first), 23376: std::forward<_U2>(__in.second)) { } 23376: 23376: 23376: 23376: template 23376: tuple(allocator_arg_t __tag, const _Alloc& __a) 23376: : _Inherited(__tag, __a) { } 23376: 23376: template::template 23376: _ConstructibleTuple<_T1, _T2>() 23376: && _TCC<_Dummy>::template 23376: _ImplicitlyConvertibleTuple<_T1, _T2>(), 23376: bool>::type=true> 23376: 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const _T1& __a1, const _T2& __a2) 23376: : _Inherited(__tag, __a, __a1, __a2) { } 23376: 23376: template::template 23376: _ConstructibleTuple<_T1, _T2>() 23376: && !_TCC<_Dummy>::template 23376: _ImplicitlyConvertibleTuple<_T1, _T2>(), 23376: bool>::type=false> 23376: 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const _T1& __a1, const _T2& __a2) 23376: : _Inherited(__tag, __a, __a1, __a2) { } 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = true> 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 23376: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 23376: std::forward<_U2>(__a2)) { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = false> 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: _U1&& __a1, _U2&& __a2) 23376: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 23376: std::forward<_U2>(__a2)) { } 23376: 23376: template 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 23376: : _Inherited(__tag, __a, static_cast(__in)) { } 23376: 23376: template 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 23376: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyConvertibleTuple<_U1, _U2>(), 23376: bool>::type = true> 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const tuple<_U1, _U2>& __in) 23376: : _Inherited(__tag, __a, 23376: static_cast&>(__in)) 23376: { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyConvertibleTuple<_U1, _U2>(), 23376: bool>::type = false> 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const tuple<_U1, _U2>& __in) 23376: : _Inherited(__tag, __a, 23376: static_cast&>(__in)) 23376: { } 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = true> 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 23376: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 23376: { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = false> 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: tuple<_U1, _U2>&& __in) 23376: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 23376: { } 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyConvertibleTuple<_U1, _U2>(), 23376: bool>::type = true> 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const pair<_U1, _U2>& __in) 23376: : _Inherited(__tag, __a, __in.first, __in.second) { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyConvertibleTuple<_U1, _U2>(), 23376: bool>::type = false> 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: const pair<_U1, _U2>& __in) 23376: : _Inherited(__tag, __a, __in.first, __in.second) { } 23376: 23376: template() 23376: && _TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = true> 23376: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 23376: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 23376: std::forward<_U2>(__in.second)) { } 23376: 23376: template() 23376: && !_TMC::template 23376: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 23376: bool>::type = false> 23376: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 23376: pair<_U1, _U2>&& __in) 23376: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 23376: std::forward<_U2>(__in.second)) { } 23376: 23376: tuple& 23376: operator=(const tuple& __in) 23376: { 23376: static_cast<_Inherited&>(*this) = __in; 23376: return *this; 23376: } 23376: 23376: tuple& 23376: operator=(tuple&& __in) 23376: noexcept(is_nothrow_move_assignable<_Inherited>::value) 23376: { 23376: static_cast<_Inherited&>(*this) = std::move(__in); 23376: return *this; 23376: } 23376: 23376: template 23376: tuple& 23376: operator=(const tuple<_U1, _U2>& __in) 23376: { 23376: static_cast<_Inherited&>(*this) = __in; 23376: return *this; 23376: } 23376: 23376: template 23376: tuple& 23376: operator=(tuple<_U1, _U2>&& __in) 23376: { 23376: static_cast<_Inherited&>(*this) = std::move(__in); 23376: return *this; 23376: } 23376: 23376: template 23376: tuple& 23376: operator=(const pair<_U1, _U2>& __in) 23376: { 23376: this->_M_head(*this) = __in.first; 23376: this->_M_tail(*this)._M_head(*this) = __in.second; 23376: return *this; 23376: } 23376: 23376: template 23376: tuple& 23376: operator=(pair<_U1, _U2>&& __in) 23376: { 23376: this->_M_head(*this) = std::forward<_U1>(__in.first); 23376: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(tuple& __in) 23376: noexcept(noexcept(__in._M_swap(__in))) 23376: { _Inherited::_M_swap(__in); } 23376: }; 23376: 23376: 23376: 23376: template 23376: struct tuple_size> 23376: : public integral_constant { }; 23376: # 1278 "/usr/include/c++/8/tuple" 3 23376: template 23376: struct tuple_element<__i, tuple<_Head, _Tail...> > 23376: : tuple_element<__i - 1, tuple<_Tail...> > { }; 23376: 23376: 23376: 23376: 23376: template 23376: struct tuple_element<0, tuple<_Head, _Tail...> > 23376: { 23376: typedef _Head type; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct tuple_element<__i, tuple<>> 23376: { 23376: static_assert(__i < tuple_size>::value, 23376: "tuple index is in range"); 23376: }; 23376: 23376: template 23376: constexpr _Head& 23376: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 23376: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 23376: 23376: template 23376: constexpr const _Head& 23376: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 23376: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 23376: 23376: 23376: template 23376: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 23376: get(tuple<_Elements...>& __t) noexcept 23376: { return std::__get_helper<__i>(__t); } 23376: 23376: 23376: template 23376: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 23376: get(const tuple<_Elements...>& __t) noexcept 23376: { return std::__get_helper<__i>(__t); } 23376: 23376: 23376: template 23376: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 23376: get(tuple<_Elements...>&& __t) noexcept 23376: { 23376: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 23376: return std::forward<__element_type&&>(std::get<__i>(__t)); 23376: } 23376: 23376: 23376: template 23376: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 23376: get(const tuple<_Elements...>&& __t) noexcept 23376: { 23376: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 23376: return std::forward(std::get<__i>(__t)); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: constexpr _Head& 23376: __get_helper2(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 23376: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 23376: 23376: template 23376: constexpr const _Head& 23376: __get_helper2(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 23376: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 23376: 23376: 23376: template 23376: constexpr _Tp& 23376: get(tuple<_Types...>& __t) noexcept 23376: { return std::__get_helper2<_Tp>(__t); } 23376: 23376: 23376: template 23376: constexpr _Tp&& 23376: get(tuple<_Types...>&& __t) noexcept 23376: { return std::forward<_Tp&&>(std::__get_helper2<_Tp>(__t)); } 23376: 23376: 23376: template 23376: constexpr const _Tp& 23376: get(const tuple<_Types...>& __t) noexcept 23376: { return std::__get_helper2<_Tp>(__t); } 23376: 23376: 23376: 23376: template 23376: constexpr const _Tp&& 23376: get(const tuple<_Types...>&& __t) noexcept 23376: { return std::forward(std::__get_helper2<_Tp>(__t)); } 23376: 23376: 23376: 23376: template 23376: struct __tuple_compare 23376: { 23376: static constexpr bool 23376: __eq(const _Tp& __t, const _Up& __u) 23376: { 23376: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 23376: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 23376: } 23376: 23376: static constexpr bool 23376: __less(const _Tp& __t, const _Up& __u) 23376: { 23376: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 23376: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 23376: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 23376: } 23376: }; 23376: 23376: template 23376: struct __tuple_compare<_Tp, _Up, __size, __size> 23376: { 23376: static constexpr bool 23376: __eq(const _Tp&, const _Up&) { return true; } 23376: 23376: static constexpr bool 23376: __less(const _Tp&, const _Up&) { return false; } 23376: }; 23376: 23376: template 23376: constexpr bool 23376: operator==(const tuple<_TElements...>& __t, 23376: const tuple<_UElements...>& __u) 23376: { 23376: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 23376: "tuple objects can only be compared if they have equal sizes."); 23376: using __compare = __tuple_compare, 23376: tuple<_UElements...>, 23376: 0, sizeof...(_TElements)>; 23376: return __compare::__eq(__t, __u); 23376: } 23376: 23376: template 23376: constexpr bool 23376: operator<(const tuple<_TElements...>& __t, 23376: const tuple<_UElements...>& __u) 23376: { 23376: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 23376: "tuple objects can only be compared if they have equal sizes."); 23376: using __compare = __tuple_compare, 23376: tuple<_UElements...>, 23376: 0, sizeof...(_TElements)>; 23376: return __compare::__less(__t, __u); 23376: } 23376: 23376: template 23376: constexpr bool 23376: operator!=(const tuple<_TElements...>& __t, 23376: const tuple<_UElements...>& __u) 23376: { return !(__t == __u); } 23376: 23376: template 23376: constexpr bool 23376: operator>(const tuple<_TElements...>& __t, 23376: const tuple<_UElements...>& __u) 23376: { return __u < __t; } 23376: 23376: template 23376: constexpr bool 23376: operator<=(const tuple<_TElements...>& __t, 23376: const tuple<_UElements...>& __u) 23376: { return !(__u < __t); } 23376: 23376: template 23376: constexpr bool 23376: operator>=(const tuple<_TElements...>& __t, 23376: const tuple<_UElements...>& __u) 23376: { return !(__t < __u); } 23376: 23376: 23376: template 23376: constexpr tuple::__type...> 23376: make_tuple(_Elements&&... __args) 23376: { 23376: typedef tuple::__type...> 23376: __result_type; 23376: return __result_type(std::forward<_Elements>(__args)...); 23376: } 23376: 23376: 23376: 23376: template 23376: constexpr tuple<_Elements&&...> 23376: forward_as_tuple(_Elements&&... __args) noexcept 23376: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 23376: 23376: template 23376: struct __make_tuple_impl; 23376: 23376: template 23376: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 23376: : __make_tuple_impl<_Idx + 1, 23376: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 23376: _Tuple, _Nm> 23376: { }; 23376: 23376: template 23376: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 23376: { 23376: typedef tuple<_Tp...> __type; 23376: }; 23376: 23376: template 23376: struct __do_make_tuple 23376: : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> 23376: { }; 23376: 23376: 23376: template 23376: struct __make_tuple 23376: : public __do_make_tuple::type>::type> 23376: { }; 23376: 23376: 23376: template 23376: struct __combine_tuples; 23376: 23376: template<> 23376: struct __combine_tuples<> 23376: { 23376: typedef tuple<> __type; 23376: }; 23376: 23376: template 23376: struct __combine_tuples> 23376: { 23376: typedef tuple<_Ts...> __type; 23376: }; 23376: 23376: template 23376: struct __combine_tuples, tuple<_T2s...>, _Rem...> 23376: { 23376: typedef typename __combine_tuples, 23376: _Rem...>::__type __type; 23376: }; 23376: 23376: 23376: template 23376: struct __tuple_cat_result 23376: { 23376: typedef typename __combine_tuples 23376: ::__type...>::__type __type; 23376: }; 23376: 23376: 23376: 23376: template 23376: struct __make_1st_indices; 23376: 23376: template<> 23376: struct __make_1st_indices<> 23376: { 23376: typedef std::_Index_tuple<> __type; 23376: }; 23376: 23376: template 23376: struct __make_1st_indices<_Tp, _Tpls...> 23376: { 23376: typedef typename std::_Build_index_tuple::type>::value>::__type __type; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct __tuple_concater; 23376: 23376: template 23376: struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> 23376: { 23376: template 23376: static constexpr _Ret 23376: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 23376: { 23376: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 23376: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 23376: return __next::_S_do(std::forward<_Tpls>(__tps)..., 23376: std::forward<_Us>(__us)..., 23376: std::get<_Is>(std::forward<_Tp>(__tp))...); 23376: } 23376: }; 23376: 23376: template 23376: struct __tuple_concater<_Ret, std::_Index_tuple<>> 23376: { 23376: template 23376: static constexpr _Ret 23376: _S_do(_Us&&... __us) 23376: { 23376: return _Ret(std::forward<_Us>(__us)...); 23376: } 23376: }; 23376: 23376: 23376: template...>::value>::type> 23376: constexpr auto 23376: tuple_cat(_Tpls&&... __tpls) 23376: -> typename __tuple_cat_result<_Tpls...>::__type 23376: { 23376: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 23376: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 23376: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 23376: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: constexpr tuple<_Elements&...> 23376: tie(_Elements&... __args) noexcept 23376: { return tuple<_Elements&...>(__args...); } 23376: 23376: 23376: template 23376: inline 23376: 23376: 23376: typename enable_if<__and_<__is_swappable<_Elements>...>::value 23376: >::type 23376: 23376: 23376: 23376: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 23376: noexcept(noexcept(__x.swap(__y))) 23376: { __x.swap(__y); } 23376: 23376: 23376: template 23376: typename enable_if...>::value>::type 23376: swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct _Swallow_assign 23376: { 23376: template 23376: constexpr const _Swallow_assign& 23376: operator=(const _Tp&) const 23376: { return *this; } 23376: }; 23376: 23376: 23376: 23376: constexpr _Swallow_assign ignore{}; 23376: 23376: 23376: template 23376: struct uses_allocator, _Alloc> : true_type { }; 23376: 23376: 23376: template 23376: template 23376: inline 23376: pair<_T1, _T2>:: 23376: pair(piecewise_construct_t, 23376: tuple<_Args1...> __first, tuple<_Args2...> __second) 23376: : pair(__first, __second, 23376: typename _Build_index_tuple::__type(), 23376: typename _Build_index_tuple::__type()) 23376: { } 23376: 23376: template 23376: template 23376: inline 23376: pair<_T1, _T2>:: 23376: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 23376: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 23376: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 23376: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 23376: { } 23376: # 1711 "/usr/include/c++/8/tuple" 3 23376: 23376: } 23376: # 64 "/usr/include/c++/8/bits/stl_map.h" 2 3 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: class multimap; 23376: # 98 "/usr/include/c++/8/bits/stl_map.h" 3 23376: template , 23376: typename _Alloc = std::allocator > > 23376: class map 23376: { 23376: public: 23376: typedef _Key key_type; 23376: typedef _Tp mapped_type; 23376: typedef std::pair value_type; 23376: typedef _Compare key_compare; 23376: typedef _Alloc allocator_type; 23376: 23376: private: 23376: # 126 "/usr/include/c++/8/bits/stl_map.h" 3 23376: public: 23376: class value_compare 23376: : public std::binary_function 23376: { 23376: friend class map<_Key, _Tp, _Compare, _Alloc>; 23376: protected: 23376: _Compare comp; 23376: 23376: value_compare(_Compare __c) 23376: : comp(__c) { } 23376: 23376: public: 23376: bool operator()(const value_type& __x, const value_type& __y) const 23376: { return comp(__x.first, __y.first); } 23376: }; 23376: 23376: private: 23376: 23376: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 23376: rebind::other _Pair_alloc_type; 23376: 23376: typedef _Rb_tree, 23376: key_compare, _Pair_alloc_type> _Rep_type; 23376: 23376: 23376: _Rep_type _M_t; 23376: 23376: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 23376: 23376: public: 23376: 23376: 23376: typedef typename _Alloc_traits::pointer pointer; 23376: typedef typename _Alloc_traits::const_pointer const_pointer; 23376: typedef typename _Alloc_traits::reference reference; 23376: typedef typename _Alloc_traits::const_reference const_reference; 23376: typedef typename _Rep_type::iterator iterator; 23376: typedef typename _Rep_type::const_iterator const_iterator; 23376: typedef typename _Rep_type::size_type size_type; 23376: typedef typename _Rep_type::difference_type difference_type; 23376: typedef typename _Rep_type::reverse_iterator reverse_iterator; 23376: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 23376: # 183 "/usr/include/c++/8/bits/stl_map.h" 3 23376: map() = default; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: map(const _Compare& __comp, 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Pair_alloc_type(__a)) { } 23376: # 205 "/usr/include/c++/8/bits/stl_map.h" 3 23376: map(const map&) = default; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: map(map&&) = default; 23376: # 226 "/usr/include/c++/8/bits/stl_map.h" 3 23376: map(initializer_list __l, 23376: const _Compare& __comp = _Compare(), 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Pair_alloc_type(__a)) 23376: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 23376: 23376: 23376: explicit 23376: map(const allocator_type& __a) 23376: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 23376: 23376: 23376: map(const map& __m, const allocator_type& __a) 23376: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 23376: 23376: 23376: map(map&& __m, const allocator_type& __a) 23376: noexcept(is_nothrow_copy_constructible<_Compare>::value 23376: && _Alloc_traits::_S_always_equal()) 23376: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 23376: 23376: 23376: map(initializer_list __l, const allocator_type& __a) 23376: : _M_t(_Compare(), _Pair_alloc_type(__a)) 23376: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 23376: 23376: 23376: template 23376: map(_InputIterator __first, _InputIterator __last, 23376: const allocator_type& __a) 23376: : _M_t(_Compare(), _Pair_alloc_type(__a)) 23376: { _M_t._M_insert_unique(__first, __last); } 23376: # 270 "/usr/include/c++/8/bits/stl_map.h" 3 23376: template 23376: map(_InputIterator __first, _InputIterator __last) 23376: : _M_t() 23376: { _M_t._M_insert_unique(__first, __last); } 23376: # 287 "/usr/include/c++/8/bits/stl_map.h" 3 23376: template 23376: map(_InputIterator __first, _InputIterator __last, 23376: const _Compare& __comp, 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Pair_alloc_type(__a)) 23376: { _M_t._M_insert_unique(__first, __last); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ~map() = default; 23376: # 316 "/usr/include/c++/8/bits/stl_map.h" 3 23376: map& 23376: operator=(const map&) = default; 23376: 23376: 23376: map& 23376: operator=(map&&) = default; 23376: # 334 "/usr/include/c++/8/bits/stl_map.h" 3 23376: map& 23376: operator=(initializer_list __l) 23376: { 23376: _M_t._M_assign_unique(__l.begin(), __l.end()); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return allocator_type(_M_t.get_allocator()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: begin() noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: begin() const noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: end() noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: end() const noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rbegin() noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rbegin() const noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rend() noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rend() const noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cbegin() const noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cend() const noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crbegin() const noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crend() const noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: empty() const noexcept 23376: { return _M_t.empty(); } 23376: 23376: 23376: size_type 23376: size() const noexcept 23376: { return _M_t.size(); } 23376: 23376: 23376: size_type 23376: max_size() const noexcept 23376: { return _M_t.max_size(); } 23376: # 489 "/usr/include/c++/8/bits/stl_map.h" 3 23376: mapped_type& 23376: operator[](const key_type& __k) 23376: { 23376: 23376: 23376: 23376: iterator __i = lower_bound(__k); 23376: 23376: if (__i == end() || key_comp()(__k, (*__i).first)) 23376: 23376: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 23376: std::tuple(__k), 23376: std::tuple<>()); 23376: 23376: 23376: 23376: return (*__i).second; 23376: } 23376: 23376: 23376: mapped_type& 23376: operator[](key_type&& __k) 23376: { 23376: 23376: 23376: 23376: iterator __i = lower_bound(__k); 23376: 23376: if (__i == end() || key_comp()(__k, (*__i).first)) 23376: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 23376: std::forward_as_tuple(std::move(__k)), 23376: std::tuple<>()); 23376: return (*__i).second; 23376: } 23376: # 534 "/usr/include/c++/8/bits/stl_map.h" 3 23376: mapped_type& 23376: at(const key_type& __k) 23376: { 23376: iterator __i = lower_bound(__k); 23376: if (__i == end() || key_comp()(__k, (*__i).first)) 23376: __throw_out_of_range(("map::at")); 23376: return (*__i).second; 23376: } 23376: 23376: const mapped_type& 23376: at(const key_type& __k) const 23376: { 23376: const_iterator __i = lower_bound(__k); 23376: if (__i == end() || key_comp()(__k, (*__i).first)) 23376: __throw_out_of_range(("map::at")); 23376: return (*__i).second; 23376: } 23376: # 572 "/usr/include/c++/8/bits/stl_map.h" 3 23376: template 23376: std::pair 23376: emplace(_Args&&... __args) 23376: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 23376: # 602 "/usr/include/c++/8/bits/stl_map.h" 3 23376: template 23376: iterator 23376: emplace_hint(const_iterator __pos, _Args&&... __args) 23376: { 23376: return _M_t._M_emplace_hint_unique(__pos, 23376: std::forward<_Args>(__args)...); 23376: } 23376: # 800 "/usr/include/c++/8/bits/stl_map.h" 3 23376: std::pair 23376: insert(const value_type& __x) 23376: { return _M_t._M_insert_unique(__x); } 23376: 23376: 23376: 23376: 23376: std::pair 23376: insert(value_type&& __x) 23376: { return _M_t._M_insert_unique(std::move(__x)); } 23376: 23376: template 23376: __enable_if_t::value, 23376: pair> 23376: insert(_Pair&& __x) 23376: { return _M_t._M_emplace_unique(std::forward<_Pair>(__x)); } 23376: # 827 "/usr/include/c++/8/bits/stl_map.h" 3 23376: void 23376: insert(std::initializer_list __list) 23376: { insert(__list.begin(), __list.end()); } 23376: # 856 "/usr/include/c++/8/bits/stl_map.h" 3 23376: iterator 23376: 23376: insert(const_iterator __position, const value_type& __x) 23376: 23376: 23376: 23376: { return _M_t._M_insert_unique_(__position, __x); } 23376: 23376: 23376: 23376: 23376: iterator 23376: insert(const_iterator __position, value_type&& __x) 23376: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 23376: 23376: template 23376: __enable_if_t::value, iterator> 23376: insert(const_iterator __position, _Pair&& __x) 23376: { 23376: return _M_t._M_emplace_hint_unique(__position, 23376: std::forward<_Pair>(__x)); 23376: } 23376: # 889 "/usr/include/c++/8/bits/stl_map.h" 3 23376: template 23376: void 23376: insert(_InputIterator __first, _InputIterator __last) 23376: { _M_t._M_insert_unique(__first, __last); } 23376: # 1029 "/usr/include/c++/8/bits/stl_map.h" 3 23376: iterator 23376: erase(const_iterator __position) 23376: { return _M_t.erase(__position); } 23376: 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iterator 23376: erase(iterator __position) 23376: { return _M_t.erase(__position); } 23376: # 1066 "/usr/include/c++/8/bits/stl_map.h" 3 23376: size_type 23376: erase(const key_type& __x) 23376: { return _M_t.erase(__x); } 23376: # 1086 "/usr/include/c++/8/bits/stl_map.h" 3 23376: iterator 23376: erase(const_iterator __first, const_iterator __last) 23376: { return _M_t.erase(__first, __last); } 23376: # 1120 "/usr/include/c++/8/bits/stl_map.h" 3 23376: void 23376: swap(map& __x) 23376: noexcept(__is_nothrow_swappable<_Compare>::value) 23376: { _M_t.swap(__x._M_t); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: clear() noexcept 23376: { _M_t.clear(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: key_compare 23376: key_comp() const 23376: { return _M_t.key_comp(); } 23376: 23376: 23376: 23376: 23376: 23376: value_compare 23376: value_comp() const 23376: { return value_compare(_M_t.key_comp()); } 23376: # 1167 "/usr/include/c++/8/bits/stl_map.h" 3 23376: iterator 23376: find(const key_type& __x) 23376: { return _M_t.find(__x); } 23376: 23376: 23376: template 23376: auto 23376: find(const _Kt& __x) -> decltype(_M_t._M_find_tr(__x)) 23376: { return _M_t._M_find_tr(__x); } 23376: # 1192 "/usr/include/c++/8/bits/stl_map.h" 3 23376: const_iterator 23376: find(const key_type& __x) const 23376: { return _M_t.find(__x); } 23376: 23376: 23376: template 23376: auto 23376: find(const _Kt& __x) const -> decltype(_M_t._M_find_tr(__x)) 23376: { return _M_t._M_find_tr(__x); } 23376: # 1213 "/usr/include/c++/8/bits/stl_map.h" 3 23376: size_type 23376: count(const key_type& __x) const 23376: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 23376: 23376: 23376: template 23376: auto 23376: count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x)) 23376: { return _M_t._M_count_tr(__x); } 23376: # 1237 "/usr/include/c++/8/bits/stl_map.h" 3 23376: iterator 23376: lower_bound(const key_type& __x) 23376: { return _M_t.lower_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: lower_bound(const _Kt& __x) 23376: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 23376: { return iterator(_M_t._M_lower_bound_tr(__x)); } 23376: # 1262 "/usr/include/c++/8/bits/stl_map.h" 3 23376: const_iterator 23376: lower_bound(const key_type& __x) const 23376: { return _M_t.lower_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: lower_bound(const _Kt& __x) const 23376: -> decltype(const_iterator(_M_t._M_lower_bound_tr(__x))) 23376: { return const_iterator(_M_t._M_lower_bound_tr(__x)); } 23376: # 1282 "/usr/include/c++/8/bits/stl_map.h" 3 23376: iterator 23376: upper_bound(const key_type& __x) 23376: { return _M_t.upper_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: upper_bound(const _Kt& __x) 23376: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 23376: { return iterator(_M_t._M_upper_bound_tr(__x)); } 23376: # 1302 "/usr/include/c++/8/bits/stl_map.h" 3 23376: const_iterator 23376: upper_bound(const key_type& __x) const 23376: { return _M_t.upper_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: upper_bound(const _Kt& __x) const 23376: -> decltype(const_iterator(_M_t._M_upper_bound_tr(__x))) 23376: { return const_iterator(_M_t._M_upper_bound_tr(__x)); } 23376: # 1331 "/usr/include/c++/8/bits/stl_map.h" 3 23376: std::pair 23376: equal_range(const key_type& __x) 23376: { return _M_t.equal_range(__x); } 23376: 23376: 23376: template 23376: auto 23376: equal_range(const _Kt& __x) 23376: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 23376: { return pair(_M_t._M_equal_range_tr(__x)); } 23376: # 1360 "/usr/include/c++/8/bits/stl_map.h" 3 23376: std::pair 23376: equal_range(const key_type& __x) const 23376: { return _M_t.equal_range(__x); } 23376: 23376: 23376: template 23376: auto 23376: equal_range(const _Kt& __x) const 23376: -> decltype(pair( 23376: _M_t._M_equal_range_tr(__x))) 23376: { 23376: return pair( 23376: _M_t._M_equal_range_tr(__x)); 23376: } 23376: 23376: 23376: 23376: template 23376: friend bool 23376: operator==(const map<_K1, _T1, _C1, _A1>&, 23376: const map<_K1, _T1, _C1, _A1>&); 23376: 23376: template 23376: friend bool 23376: operator<(const map<_K1, _T1, _C1, _A1>&, 23376: const map<_K1, _T1, _C1, _A1>&); 23376: }; 23376: # 1432 "/usr/include/c++/8/bits/stl_map.h" 3 23376: template 23376: inline bool 23376: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const map<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return __x._M_t == __y._M_t; } 23376: # 1449 "/usr/include/c++/8/bits/stl_map.h" 3 23376: template 23376: inline bool 23376: operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const map<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return __x._M_t < __y._M_t; } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const map<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return !(__x == __y); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const map<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return __y < __x; } 23376: 23376: 23376: template 23376: inline bool 23376: operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const map<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return !(__y < __x); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const map<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return !(__x < __y); } 23376: 23376: 23376: template 23376: inline void 23376: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 23376: map<_Key, _Tp, _Compare, _Alloc>& __y) 23376: noexcept(noexcept(__x.swap(__y))) 23376: { __x.swap(__y); } 23376: 23376: 23376: # 1514 "/usr/include/c++/8/bits/stl_map.h" 3 23376: 23376: } 23376: # 62 "/usr/include/c++/8/map" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_multimap.h" 1 3 23376: # 64 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: class map; 23376: # 96 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: template , 23376: typename _Alloc = std::allocator > > 23376: class multimap 23376: { 23376: public: 23376: typedef _Key key_type; 23376: typedef _Tp mapped_type; 23376: typedef std::pair value_type; 23376: typedef _Compare key_compare; 23376: typedef _Alloc allocator_type; 23376: 23376: private: 23376: # 125 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: public: 23376: class value_compare 23376: : public std::binary_function 23376: { 23376: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 23376: protected: 23376: _Compare comp; 23376: 23376: value_compare(_Compare __c) 23376: : comp(__c) { } 23376: 23376: public: 23376: bool operator()(const value_type& __x, const value_type& __y) const 23376: { return comp(__x.first, __y.first); } 23376: }; 23376: 23376: private: 23376: 23376: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 23376: rebind::other _Pair_alloc_type; 23376: 23376: typedef _Rb_tree, 23376: key_compare, _Pair_alloc_type> _Rep_type; 23376: 23376: _Rep_type _M_t; 23376: 23376: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 23376: 23376: public: 23376: 23376: 23376: typedef typename _Alloc_traits::pointer pointer; 23376: typedef typename _Alloc_traits::const_pointer const_pointer; 23376: typedef typename _Alloc_traits::reference reference; 23376: typedef typename _Alloc_traits::const_reference const_reference; 23376: typedef typename _Rep_type::iterator iterator; 23376: typedef typename _Rep_type::const_iterator const_iterator; 23376: typedef typename _Rep_type::size_type size_type; 23376: typedef typename _Rep_type::difference_type difference_type; 23376: typedef typename _Rep_type::reverse_iterator reverse_iterator; 23376: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 23376: # 180 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: multimap() = default; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: multimap(const _Compare& __comp, 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Pair_alloc_type(__a)) { } 23376: # 202 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: multimap(const multimap&) = default; 23376: # 211 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: multimap(multimap&&) = default; 23376: # 223 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: multimap(initializer_list __l, 23376: const _Compare& __comp = _Compare(), 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Pair_alloc_type(__a)) 23376: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 23376: 23376: 23376: explicit 23376: multimap(const allocator_type& __a) 23376: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 23376: 23376: 23376: multimap(const multimap& __m, const allocator_type& __a) 23376: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 23376: 23376: 23376: multimap(multimap&& __m, const allocator_type& __a) 23376: noexcept(is_nothrow_copy_constructible<_Compare>::value 23376: && _Alloc_traits::_S_always_equal()) 23376: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 23376: 23376: 23376: multimap(initializer_list __l, const allocator_type& __a) 23376: : _M_t(_Compare(), _Pair_alloc_type(__a)) 23376: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 23376: 23376: 23376: template 23376: multimap(_InputIterator __first, _InputIterator __last, 23376: const allocator_type& __a) 23376: : _M_t(_Compare(), _Pair_alloc_type(__a)) 23376: { _M_t._M_insert_equal(__first, __last); } 23376: # 266 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: template 23376: multimap(_InputIterator __first, _InputIterator __last) 23376: : _M_t() 23376: { _M_t._M_insert_equal(__first, __last); } 23376: # 282 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: template 23376: multimap(_InputIterator __first, _InputIterator __last, 23376: const _Compare& __comp, 23376: const allocator_type& __a = allocator_type()) 23376: : _M_t(__comp, _Pair_alloc_type(__a)) 23376: { _M_t._M_insert_equal(__first, __last); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ~multimap() = default; 23376: # 311 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: multimap& 23376: operator=(const multimap&) = default; 23376: 23376: 23376: multimap& 23376: operator=(multimap&&) = default; 23376: # 329 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: multimap& 23376: operator=(initializer_list __l) 23376: { 23376: _M_t._M_assign_equal(__l.begin(), __l.end()); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return allocator_type(_M_t.get_allocator()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: begin() noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: begin() const noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: end() noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: end() const noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rbegin() noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rbegin() const noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rend() noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rend() const noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cbegin() const noexcept 23376: { return _M_t.begin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cend() const noexcept 23376: { return _M_t.end(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crbegin() const noexcept 23376: { return _M_t.rbegin(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crend() const noexcept 23376: { return _M_t.rend(); } 23376: 23376: 23376: 23376: 23376: bool 23376: empty() const noexcept 23376: { return _M_t.empty(); } 23376: 23376: 23376: size_type 23376: size() const noexcept 23376: { return _M_t.size(); } 23376: 23376: 23376: size_type 23376: max_size() const noexcept 23376: { return _M_t.max_size(); } 23376: # 487 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: template 23376: iterator 23376: emplace(_Args&&... __args) 23376: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 23376: # 514 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: template 23376: iterator 23376: emplace_hint(const_iterator __pos, _Args&&... __args) 23376: { 23376: return _M_t._M_emplace_hint_equal(__pos, 23376: std::forward<_Args>(__args)...); 23376: } 23376: # 536 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: iterator 23376: insert(const value_type& __x) 23376: { return _M_t._M_insert_equal(__x); } 23376: 23376: 23376: 23376: 23376: iterator 23376: insert(value_type&& __x) 23376: { return _M_t._M_insert_equal(std::move(__x)); } 23376: 23376: template 23376: __enable_if_t::value, iterator> 23376: insert(_Pair&& __x) 23376: { return _M_t._M_emplace_equal(std::forward<_Pair>(__x)); } 23376: # 575 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: iterator 23376: 23376: insert(const_iterator __position, const value_type& __x) 23376: 23376: 23376: 23376: { return _M_t._M_insert_equal_(__position, __x); } 23376: 23376: 23376: 23376: 23376: iterator 23376: insert(const_iterator __position, value_type&& __x) 23376: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 23376: 23376: template 23376: __enable_if_t::value, iterator> 23376: insert(const_iterator __position, _Pair&& __x) 23376: { 23376: return _M_t._M_emplace_hint_equal(__position, 23376: std::forward<_Pair>(__x)); 23376: } 23376: # 609 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: template 23376: void 23376: insert(_InputIterator __first, _InputIterator __last) 23376: { _M_t._M_insert_equal(__first, __last); } 23376: # 622 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: void 23376: insert(initializer_list __l) 23376: { this->insert(__l.begin(), __l.end()); } 23376: # 699 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: iterator 23376: erase(const_iterator __position) 23376: { return _M_t.erase(__position); } 23376: 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iterator 23376: erase(iterator __position) 23376: { return _M_t.erase(__position); } 23376: # 736 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: size_type 23376: erase(const key_type& __x) 23376: { return _M_t.erase(__x); } 23376: # 757 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: iterator 23376: erase(const_iterator __first, const_iterator __last) 23376: { return _M_t.erase(__first, __last); } 23376: # 794 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: void 23376: swap(multimap& __x) 23376: noexcept(__is_nothrow_swappable<_Compare>::value) 23376: { _M_t.swap(__x._M_t); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: clear() noexcept 23376: { _M_t.clear(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: key_compare 23376: key_comp() const 23376: { return _M_t.key_comp(); } 23376: 23376: 23376: 23376: 23376: 23376: value_compare 23376: value_comp() const 23376: { return value_compare(_M_t.key_comp()); } 23376: # 840 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: iterator 23376: find(const key_type& __x) 23376: { return _M_t.find(__x); } 23376: 23376: 23376: template 23376: auto 23376: find(const _Kt& __x) -> decltype(_M_t._M_find_tr(__x)) 23376: { return _M_t._M_find_tr(__x); } 23376: # 864 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: const_iterator 23376: find(const key_type& __x) const 23376: { return _M_t.find(__x); } 23376: 23376: 23376: template 23376: auto 23376: find(const _Kt& __x) const -> decltype(_M_t._M_find_tr(__x)) 23376: { return _M_t._M_find_tr(__x); } 23376: # 882 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: size_type 23376: count(const key_type& __x) const 23376: { return _M_t.count(__x); } 23376: 23376: 23376: template 23376: auto 23376: count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x)) 23376: { return _M_t._M_count_tr(__x); } 23376: # 906 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: iterator 23376: lower_bound(const key_type& __x) 23376: { return _M_t.lower_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: lower_bound(const _Kt& __x) 23376: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 23376: { return iterator(_M_t._M_lower_bound_tr(__x)); } 23376: # 931 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: const_iterator 23376: lower_bound(const key_type& __x) const 23376: { return _M_t.lower_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: lower_bound(const _Kt& __x) const 23376: -> decltype(const_iterator(_M_t._M_lower_bound_tr(__x))) 23376: { return const_iterator(_M_t._M_lower_bound_tr(__x)); } 23376: # 951 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: iterator 23376: upper_bound(const key_type& __x) 23376: { return _M_t.upper_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: upper_bound(const _Kt& __x) 23376: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 23376: { return iterator(_M_t._M_upper_bound_tr(__x)); } 23376: # 971 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: const_iterator 23376: upper_bound(const key_type& __x) const 23376: { return _M_t.upper_bound(__x); } 23376: 23376: 23376: template 23376: auto 23376: upper_bound(const _Kt& __x) const 23376: -> decltype(const_iterator(_M_t._M_upper_bound_tr(__x))) 23376: { return const_iterator(_M_t._M_upper_bound_tr(__x)); } 23376: # 998 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: std::pair 23376: equal_range(const key_type& __x) 23376: { return _M_t.equal_range(__x); } 23376: 23376: 23376: template 23376: auto 23376: equal_range(const _Kt& __x) 23376: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 23376: { return pair(_M_t._M_equal_range_tr(__x)); } 23376: # 1025 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: std::pair 23376: equal_range(const key_type& __x) const 23376: { return _M_t.equal_range(__x); } 23376: 23376: 23376: template 23376: auto 23376: equal_range(const _Kt& __x) const 23376: -> decltype(pair( 23376: _M_t._M_equal_range_tr(__x))) 23376: { 23376: return pair( 23376: _M_t._M_equal_range_tr(__x)); 23376: } 23376: 23376: 23376: 23376: template 23376: friend bool 23376: operator==(const multimap<_K1, _T1, _C1, _A1>&, 23376: const multimap<_K1, _T1, _C1, _A1>&); 23376: 23376: template 23376: friend bool 23376: operator<(const multimap<_K1, _T1, _C1, _A1>&, 23376: const multimap<_K1, _T1, _C1, _A1>&); 23376: }; 23376: # 1096 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: template 23376: inline bool 23376: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return __x._M_t == __y._M_t; } 23376: # 1113 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: template 23376: inline bool 23376: operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return __x._M_t < __y._M_t; } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return !(__x == __y); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return __y < __x; } 23376: 23376: 23376: template 23376: inline bool 23376: operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return !(__y < __x); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 23376: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 23376: { return !(__x < __y); } 23376: 23376: 23376: template 23376: inline void 23376: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 23376: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 23376: noexcept(noexcept(__x.swap(__y))) 23376: { __x.swap(__y); } 23376: 23376: 23376: # 1178 "/usr/include/c++/8/bits/stl_multimap.h" 3 23376: 23376: } 23376: # 63 "/usr/include/c++/8/map" 2 3 23376: # 36 "../../src/Float_defs.hh" 2 23376: # 44 "../../src/Float_defs.hh" 23376: 23376: # 44 "../../src/Float_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: struct float_ieee754_half { 23376: uint16_t word; 23376: static const uint16_t SGN_MASK = 0x8000U; 23376: static const uint16_t EXP_MASK = 0xfc00U; 23376: static const uint16_t WRD_MAX = 0x7bffU; 23376: static const uint16_t POS_INF = 0x7c00U; 23376: static const uint16_t NEG_INF = 0xfc00U; 23376: static const uint16_t POS_ZERO = 0x0000U; 23376: static const uint16_t NEG_ZERO = 0x8000U; 23376: static const unsigned int BASE = 2; 23376: static const unsigned int EXPONENT_BITS = 5; 23376: static const unsigned int MANTISSA_BITS = 10; 23376: static const int EXPONENT_MAX = (1 << (EXPONENT_BITS - 1)) - 1; 23376: static const int EXPONENT_BIAS = EXPONENT_MAX; 23376: static const int EXPONENT_MIN = -EXPONENT_MAX + 1; 23376: static const int EXPONENT_MIN_DENORM = EXPONENT_MIN 23376: - static_cast(MANTISSA_BITS); 23376: static const Floating_Point_Format floating_point_format = IEEE754_HALF; 23376: int inf_sign() const; 23376: bool is_nan() const; 23376: int zero_sign() const; 23376: bool sign_bit() const; 23376: void negate(); 23376: void dec(); 23376: void inc(); 23376: void set_max(bool negative); 23376: void build(bool negative, mpz_t mantissa, int exponent); 23376: 23376: }; 23376: 23376: 23376: 23376: 23376: struct float_ieee754_single { 23376: uint32_t word; 23376: static const uint32_t SGN_MASK = 0x80000000U; 23376: static const uint32_t EXP_MASK = 0x7f800000U; 23376: static const uint32_t WRD_MAX = 0x7f7fffffU; 23376: static const uint32_t POS_INF = 0x7f800000U; 23376: static const uint32_t NEG_INF = 0xff800000U; 23376: static const uint32_t POS_ZERO = 0x00000000U; 23376: static const uint32_t NEG_ZERO = 0x80000000U; 23376: static const unsigned int BASE = 2; 23376: static const unsigned int EXPONENT_BITS = 8; 23376: static const unsigned int MANTISSA_BITS = 23; 23376: static const int EXPONENT_MAX = (1 << (EXPONENT_BITS - 1)) - 1; 23376: static const int EXPONENT_BIAS = EXPONENT_MAX; 23376: static const int EXPONENT_MIN = -EXPONENT_MAX + 1; 23376: static const int EXPONENT_MIN_DENORM = EXPONENT_MIN 23376: - static_cast(MANTISSA_BITS); 23376: static const Floating_Point_Format floating_point_format = IEEE754_SINGLE; 23376: int inf_sign() const; 23376: bool is_nan() const; 23376: int zero_sign() const; 23376: bool sign_bit() const; 23376: void negate(); 23376: void dec(); 23376: void inc(); 23376: void set_max(bool negative); 23376: void build(bool negative, mpz_t mantissa, int exponent); 23376: }; 23376: # 120 "../../src/Float_defs.hh" 23376: struct float_ieee754_double { 23376: 23376: 23376: 23376: 23376: uint32_t lsp; 23376: uint32_t msp; 23376: 23376: static const uint32_t MSP_SGN_MASK = 0x80000000U; 23376: static const uint32_t MSP_POS_INF = 0x7ff00000U; 23376: static const uint32_t MSP_NEG_INF = 0xfff00000U; 23376: static const uint32_t MSP_POS_ZERO = 0x00000000U; 23376: static const uint32_t MSP_NEG_ZERO = 0x80000000U; 23376: static const uint32_t LSP_INF = 0; 23376: static const uint32_t LSP_ZERO = 0; 23376: static const uint32_t MSP_MAX = 0x7fefffffU; 23376: static const uint32_t LSP_MAX = 0xffffffffU; 23376: static const unsigned int BASE = 2; 23376: static const unsigned int EXPONENT_BITS = 11; 23376: static const unsigned int MANTISSA_BITS = 52; 23376: static const int EXPONENT_MAX = (1 << (EXPONENT_BITS - 1)) - 1; 23376: static const int EXPONENT_BIAS = EXPONENT_MAX; 23376: static const int EXPONENT_MIN = -EXPONENT_MAX + 1; 23376: static const int EXPONENT_MIN_DENORM = EXPONENT_MIN 23376: - static_cast(MANTISSA_BITS); 23376: static const Floating_Point_Format floating_point_format = IEEE754_DOUBLE; 23376: int inf_sign() const; 23376: bool is_nan() const; 23376: int zero_sign() const; 23376: bool sign_bit() const; 23376: void negate(); 23376: void dec(); 23376: void inc(); 23376: void set_max(bool negative); 23376: void build(bool negative, mpz_t mantissa, int exponent); 23376: }; 23376: 23376: 23376: 23376: 23376: struct float_ibm_single { 23376: uint32_t word; 23376: static const uint32_t SGN_MASK = 0x80000000U; 23376: static const uint32_t EXP_MASK = 0x7f000000U; 23376: static const uint32_t WRD_MAX = 0x7fffffffU; 23376: static const uint32_t POS_INF = 0x7f000000U; 23376: static const uint32_t NEG_INF = 0xff000000U; 23376: static const uint32_t POS_ZERO = 0x00000000U; 23376: static const uint32_t NEG_ZERO = 0x80000000U; 23376: static const unsigned int BASE = 16; 23376: static const unsigned int EXPONENT_BITS = 7; 23376: static const unsigned int MANTISSA_BITS = 24; 23376: static const int EXPONENT_BIAS = 64; 23376: static const int EXPONENT_MAX = (1 << (EXPONENT_BITS - 1)) - 1; 23376: static const int EXPONENT_MIN = -EXPONENT_MAX + 1; 23376: static const int EXPONENT_MIN_DENORM = EXPONENT_MIN 23376: - static_cast(MANTISSA_BITS); 23376: static const Floating_Point_Format floating_point_format = IBM_SINGLE; 23376: int inf_sign() const; 23376: bool is_nan() const; 23376: int zero_sign() const; 23376: bool sign_bit() const; 23376: void negate(); 23376: void dec(); 23376: void inc(); 23376: void set_max(bool negative); 23376: void build(bool negative, mpz_t mantissa, int exponent); 23376: }; 23376: 23376: 23376: 23376: 23376: struct float_ibm_double { 23376: static const unsigned int BASE = 16; 23376: static const unsigned int EXPONENT_BITS = 7; 23376: static const unsigned int MANTISSA_BITS = 56; 23376: static const int EXPONENT_BIAS = 64; 23376: }; 23376: 23376: 23376: 23376: 23376: struct float_intel_double_extended { 23376: 23376: 23376: 23376: 23376: uint64_t lsp; 23376: uint32_t msp; 23376: 23376: static const uint32_t MSP_SGN_MASK = 0x00008000U; 23376: static const uint32_t MSP_POS_INF = 0x00007fffU; 23376: static const uint32_t MSP_NEG_INF = 0x0000ffffU; 23376: static const uint32_t MSP_POS_ZERO = 0x00000000U; 23376: static const uint32_t MSP_NEG_ZERO = 0x00008000U; 23376: static const uint64_t LSP_INF = static_cast(0x8000000000000000ULL); 23376: static const uint64_t LSP_ZERO = 0; 23376: static const uint32_t MSP_MAX = 0x00007ffeU; 23376: static const uint64_t LSP_DMAX = static_cast(0x7fffffffffffffffULL); 23376: static const uint64_t LSP_NMAX = static_cast(0xffffffffffffffffULL); 23376: static const unsigned int BASE = 2; 23376: static const unsigned int EXPONENT_BITS = 15; 23376: static const unsigned int MANTISSA_BITS = 63; 23376: static const int EXPONENT_MAX = (1 << (EXPONENT_BITS - 1)) - 1; 23376: static const int EXPONENT_BIAS = EXPONENT_MAX; 23376: static const int EXPONENT_MIN = -EXPONENT_MAX + 1; 23376: static const int EXPONENT_MIN_DENORM = EXPONENT_MIN 23376: - static_cast(MANTISSA_BITS); 23376: static const Floating_Point_Format floating_point_format = 23376: INTEL_DOUBLE_EXTENDED; 23376: int inf_sign() const; 23376: bool is_nan() const; 23376: int zero_sign() const; 23376: bool sign_bit() const; 23376: void negate(); 23376: void dec(); 23376: void inc(); 23376: void set_max(bool negative); 23376: void build(bool negative, mpz_t mantissa, int exponent); 23376: }; 23376: 23376: 23376: 23376: 23376: struct float_ieee754_quad { 23376: 23376: 23376: 23376: 23376: uint64_t lsp; 23376: uint64_t msp; 23376: 23376: static const uint64_t MSP_SGN_MASK = static_cast(0x8000000000000000ULL); 23376: static const uint64_t MSP_POS_INF = static_cast(0x7fff000000000000ULL); 23376: static const uint64_t MSP_NEG_INF = static_cast(0xffff000000000000ULL); 23376: static const uint64_t MSP_POS_ZERO = static_cast(0x0000000000000000ULL); 23376: static const uint64_t MSP_NEG_ZERO = static_cast(0x8000000000000000ULL); 23376: static const uint64_t LSP_INF = 0; 23376: static const uint64_t LSP_ZERO = 0; 23376: static const uint64_t MSP_MAX = static_cast(0x7ffeffffffffffffULL); 23376: static const uint64_t LSP_MAX = static_cast(0xffffffffffffffffULL); 23376: static const unsigned int BASE = 2; 23376: static const unsigned int EXPONENT_BITS = 15; 23376: static const unsigned int MANTISSA_BITS = 112; 23376: static const int EXPONENT_MAX = (1 << (EXPONENT_BITS - 1)) - 1; 23376: static const int EXPONENT_BIAS = EXPONENT_MAX; 23376: static const int EXPONENT_MIN = -EXPONENT_MAX + 1; 23376: static const int EXPONENT_MIN_DENORM = EXPONENT_MIN 23376: - static_cast(MANTISSA_BITS); 23376: static const Floating_Point_Format floating_point_format = IEEE754_QUAD; 23376: int inf_sign() const; 23376: bool is_nan() const; 23376: int zero_sign() const; 23376: bool sign_bit() const; 23376: void negate(); 23376: void dec(); 23376: void inc(); 23376: void set_max(bool negative); 23376: void build(bool negative, mpz_t mantissa, int exponent); 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class Float : public False { }; 23376: # 383 "../../src/Float_defs.hh" 23376: unsigned int msb_position(unsigned long long v); 23376: # 398 "../../src/Float_defs.hh" 23376: template 23376: class FP_Oracle { 23376: public: 23376: # 414 "../../src/Float_defs.hh" 23376: virtual bool get_interval(dimension_type dim, FP_Interval_Type& result) const 23376: = 0; 23376: # 425 "../../src/Float_defs.hh" 23376: virtual bool get_fp_constant_value( 23376: const Floating_Point_Constant& expr, 23376: FP_Interval_Type& result) const = 0; 23376: # 437 "../../src/Float_defs.hh" 23376: virtual bool get_integer_expr_value(const Concrete_Expression& expr, 23376: FP_Interval_Type& result) const = 0; 23376: # 450 "../../src/Float_defs.hh" 23376: virtual bool get_associated_dimensions( 23376: const Approximable_Reference& expr, 23376: std::set& result) const = 0; 23376: 23376: }; 23376: # 463 "../../src/Float_defs.hh" 23376: bool is_less_precise_than(Floating_Point_Format f1, Floating_Point_Format f2); 23376: # 481 "../../src/Float_defs.hh" 23376: template 23376: const FP_Interval_Type& 23376: compute_absolute_error(Floating_Point_Format analyzed_format); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: discard_occurrences(std::map >& lf_store, 23376: Variable var); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: affine_form_image(std::map >& lf_store, 23376: Variable var, 23376: const Linear_Form& lf); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: upper_bound_assign(std::map >& ls1, 23376: const std::map >& ls2); 23376: 23376: } 23376: 23376: # 1 "../../src/Float_inlines.hh" 1 23376: # 27 "../../src/Float_inlines.hh" 23376: # 1 "../../src/Variable_defs.hh" 1 23376: # 28 "../../src/Variable_defs.hh" 23376: # 1 "../../src/Init_types.hh" 1 23376: # 16 "../../src/Init_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Init; 23376: 23376: } 23376: # 29 "../../src/Variable_defs.hh" 2 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& 23376: operator<<(std::ostream& s, const Variable v); 23376: 23376: } 23376: 23376: 23376: 23376: bool less(Variable v, Variable w); 23376: 23376: 23376: void 23376: swap(Variable& x, Variable& y); 23376: 23376: } 23376: # 85 "../../src/Variable_defs.hh" 23376: class Parma_Polyhedra_Library::Variable { 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit Variable(dimension_type i); 23376: 23376: 23376: dimension_type id() const; 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: 23376: typedef void output_function_type(std::ostream& s, const Variable v); 23376: 23376: 23376: static void default_output_function(std::ostream& s, const Variable v); 23376: 23376: 23376: static void set_output_function(output_function_type* p); 23376: 23376: 23376: static output_function_type* get_output_function(); 23376: 23376: 23376: 23376: struct Compare { 23376: 23376: bool operator()(Variable x, Variable y) const; 23376: }; 23376: 23376: 23376: void m_swap(Variable& v); 23376: 23376: private: 23376: 23376: dimension_type varid; 23376: 23376: 23376: friend class Init; 23376: 23376: friend std::ostream& 23376: Parma_Polyhedra_Library::IO_Operators::operator<<(std::ostream& s, 23376: const Variable v); 23376: 23376: 23376: static output_function_type* current_output_function; 23376: 23376: }; 23376: 23376: # 1 "../../src/Variable_inlines.hh" 1 23376: # 27 "../../src/Variable_inlines.hh" 23376: # 1 "../../src/globals_defs.hh" 1 23376: # 28 "../../src/globals_defs.hh" 23376: # 1 "../../src/C_Integer.hh" 1 23376: # 28 "../../src/C_Integer.hh" 23376: # 1 "/usr/include/c++/8/climits" 1 3 23376: # 39 "/usr/include/c++/8/climits" 3 23376: 23376: # 40 "/usr/include/c++/8/climits" 3 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 23376: # 43 "/usr/include/c++/8/climits" 2 3 23376: # 29 "../../src/C_Integer.hh" 2 23376: # 59 "../../src/C_Integer.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: struct C_Integer : public False { }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: 23376: 23376: 23376: is_signed = false 23376: 23376: }; 23376: typedef void smaller_type; 23376: typedef void smaller_signed_type; 23376: typedef void smaller_unsigned_type; 23376: 23376: 23376: 23376: typedef signed char other_type; 23376: 23376: static const char min = static_cast( 23376: # 81 "../../src/C_Integer.hh" 3 4 23376: 0 23376: # 81 "../../src/C_Integer.hh" 23376: ); 23376: static const char max = static_cast( 23376: # 82 "../../src/C_Integer.hh" 3 4 23376: (0x7f * 2 + 1) 23376: # 82 "../../src/C_Integer.hh" 23376: ); 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = true 23376: }; 23376: typedef void smaller_type; 23376: typedef void smaller_signed_type; 23376: typedef void smaller_unsigned_type; 23376: typedef unsigned char other_type; 23376: static const signed char min = static_cast( 23376: # 94 "../../src/C_Integer.hh" 3 4 23376: (-0x7f - 1) 23376: # 94 "../../src/C_Integer.hh" 23376: ); 23376: static const signed char max = static_cast(0x7f); 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = true 23376: }; 23376: typedef signed char smaller_type; 23376: typedef signed char smaller_signed_type; 23376: typedef unsigned char smaller_unsigned_type; 23376: typedef unsigned short other_type; 23376: static const signed short min = static_cast( 23376: # 107 "../../src/C_Integer.hh" 3 4 23376: (-0x7fff - 1) 23376: # 107 "../../src/C_Integer.hh" 23376: ); 23376: static const signed short max = static_cast(0x7fff); 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = true 23376: }; 23376: typedef signed short smaller_type; 23376: typedef signed short smaller_signed_type; 23376: typedef unsigned short smaller_unsigned_type; 23376: typedef unsigned int other_type; 23376: static const signed int min = 23376: # 120 "../../src/C_Integer.hh" 3 4 23376: (-0x7fffffff - 1) 23376: # 120 "../../src/C_Integer.hh" 23376: ; 23376: static const signed int max = 0x7fffffff; 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = true 23376: }; 23376: typedef signed int smaller_type; 23376: typedef signed int smaller_signed_type; 23376: typedef unsigned int smaller_unsigned_type; 23376: typedef unsigned long other_type; 23376: static const signed long min = 23376: # 133 "../../src/C_Integer.hh" 3 4 23376: (-0x7fffffffL - 1L) 23376: # 133 "../../src/C_Integer.hh" 23376: ; 23376: static const signed long max = 0x7fffffffL; 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = true 23376: }; 23376: typedef signed long smaller_type; 23376: typedef signed long smaller_signed_type; 23376: typedef unsigned long smaller_unsigned_type; 23376: typedef unsigned long long other_type; 23376: static const signed long long min = 23376: # 146 "../../src/C_Integer.hh" 3 4 23376: (-0x7fffffffffffffffLL -1) 23376: # 146 "../../src/C_Integer.hh" 23376: ; 23376: static const signed long long max = 0x7fffffffffffffffLL; 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = false 23376: }; 23376: typedef void smaller_type; 23376: typedef void smaller_signed_type; 23376: typedef void smaller_unsigned_type; 23376: typedef signed char other_type; 23376: static const unsigned char min = static_cast(0U); 23376: static const unsigned char max = static_cast( 23376: # 160 "../../src/C_Integer.hh" 3 4 23376: (0x7f * 2 + 1) 23376: # 160 "../../src/C_Integer.hh" 23376: ); 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = false 23376: }; 23376: typedef unsigned char smaller_type; 23376: typedef signed char smaller_signed_type; 23376: typedef unsigned char smaller_unsigned_type; 23376: typedef signed short other_type; 23376: static const unsigned short min = static_cast(0U); 23376: static const unsigned short max = static_cast( 23376: # 173 "../../src/C_Integer.hh" 3 4 23376: (0x7fff * 2 + 1) 23376: # 173 "../../src/C_Integer.hh" 23376: ); 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = false 23376: }; 23376: typedef unsigned short smaller_type; 23376: typedef signed short smaller_signed_type; 23376: typedef unsigned short smaller_unsigned_type; 23376: typedef signed int other_type; 23376: static const unsigned int min = 0U; 23376: static const unsigned int max = 23376: # 186 "../../src/C_Integer.hh" 3 4 23376: (0x7fffffff * 2U + 1U) 23376: # 186 "../../src/C_Integer.hh" 23376: ; 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = false 23376: }; 23376: typedef unsigned int smaller_type; 23376: typedef signed int smaller_signed_type; 23376: typedef unsigned int smaller_unsigned_type; 23376: typedef signed long other_type; 23376: static const unsigned long min = 0UL; 23376: static const unsigned long max = 23376: # 199 "../../src/C_Integer.hh" 3 4 23376: (0x7fffffffL * 2UL + 1UL) 23376: # 199 "../../src/C_Integer.hh" 23376: ; 23376: }; 23376: 23376: template <> 23376: struct C_Integer : public True { 23376: enum const_bool_value { 23376: is_signed = false 23376: }; 23376: typedef unsigned long smaller_type; 23376: typedef signed long smaller_signed_type; 23376: typedef unsigned long smaller_unsigned_type; 23376: typedef signed long long other_type; 23376: static const unsigned long long min = 0ULL; 23376: static const unsigned long long max = 23376: # 212 "../../src/C_Integer.hh" 3 4 23376: (0x7fffffffffffffffLL * 2ULL + 1) 23376: # 212 "../../src/C_Integer.hh" 23376: ; 23376: }; 23376: 23376: } 23376: # 29 "../../src/globals_defs.hh" 2 23376: # 100 "../../src/globals_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: dimension_type 23376: not_a_dimension(); 23376: 23376: 23376: 23376: 23376: int32_t 23376: hash_code_from_dimension(dimension_type dim); 23376: # 120 "../../src/globals_defs.hh" 23376: template 23376: inline typename Enable_If::value, void>::type 23376: swap(T&, T&) { 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_123 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!Slow_Copy::value)>) }; 23376: } 23376: # 156 "../../src/globals_defs.hh" 23376: dimension_type 23376: compute_capacity(dimension_type requested_size, 23376: dimension_type maximum_size); 23376: # 169 "../../src/globals_defs.hh" 23376: struct Weightwatch_Traits { 23376: 23376: typedef unsigned long long Threshold; 23376: 23376: 23376: typedef unsigned long long Delta; 23376: 23376: 23376: static const Threshold& get(); 23376: 23376: 23376: static bool less_than(const Threshold& a, const Threshold& b); 23376: # 194 "../../src/globals_defs.hh" 23376: static Delta compute_delta(unsigned long unscaled, unsigned scale); 23376: 23376: 23376: static void from_delta(Threshold& threshold, const Delta& delta); 23376: 23376: 23376: static Threshold weight; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static void (*check_function)(void); 23376: }; 23376: # 239 "../../src/globals_defs.hh" 23376: class Throwable { 23376: public: 23376: 23376: virtual void throw_me() const = 0; 23376: 23376: 23376: virtual ~Throwable(); 23376: }; 23376: # 271 "../../src/globals_defs.hh" 23376: extern const Throwable* volatile abandon_expensive_computations; 23376: # 281 "../../src/globals_defs.hh" 23376: void 23376: maybe_abandon(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct Recycle_Input { 23376: }; 23376: # 401 "../../src/globals_defs.hh" 23376: bool is_space(char c); 23376: 23376: template 23376: struct Fit : public False { 23376: }; 23376: 23376: template 23376: struct Fit::value>::type> { 23376: enum { 23376: value = (v >= static_cast(C_Integer::min) 23376: && v <= static_cast(C_Integer::max)) 23376: }; 23376: }; 23376: 23376: template 23376: struct TConstant { 23376: static const T value = v; 23376: }; 23376: 23376: 23376: template 23376: const T TConstant::value; 23376: 23376: template 23376: struct Constant_ : public TConstant { 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct Constant_::smaller_signed_type, v>::value 23376: && (prefer_signed 23376: || !Fit::smaller_unsigned_type, v>::value))>::type> 23376: : public Constant_::smaller_signed_type, v, prefer_signed> { 23376: }; 23376: 23376: template 23376: struct Constant_::smaller_unsigned_type, v>::value 23376: && (!prefer_signed 23376: || !Fit::smaller_signed_type, v>::value))>::type> 23376: : public Constant_::smaller_unsigned_type, v, prefer_signed> { 23376: }; 23376: 23376: 23376: 23376: template 23376: struct Constant : public Constant_ { 23376: }; 23376: # 465 "../../src/globals_defs.hh" 23376: template 23376: typename Enable_If::value, memory_size_type>::type 23376: total_memory_in_bytes(const T&); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value, memory_size_type>::type 23376: external_memory_in_bytes(const T&); 23376: 23376: 23376: 23376: 23376: memory_size_type 23376: total_memory_in_bytes(const mpz_class& x); 23376: 23376: 23376: 23376: 23376: memory_size_type 23376: external_memory_in_bytes(const mpz_class& x); 23376: 23376: 23376: 23376: 23376: memory_size_type 23376: total_memory_in_bytes(const mpq_class& x); 23376: 23376: 23376: 23376: 23376: memory_size_type 23376: external_memory_in_bytes(const mpq_class& x); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct Has_OK : public False { }; 23376: 23376: template 23376: struct Has_OK::type> 23376: : public True { 23376: }; 23376: 23376: template 23376: inline typename Enable_If::value, bool>::type 23376: f_OK(const T& to) { 23376: return to.OK(); 23376: } 23376: 23376: 23376: 23376: inline bool f_OK(const char&) { return true; } 23376: inline bool f_OK(const signed char&) { return true; } 23376: inline bool f_OK(const unsigned char&) { return true; } 23376: inline bool f_OK(const signed short&) { return true; } 23376: inline bool f_OK(const unsigned short&) { return true; } 23376: inline bool f_OK(const signed int&) { return true; } 23376: inline bool f_OK(const unsigned int&) { return true; } 23376: inline bool f_OK(const signed long&) { return true; } 23376: inline bool f_OK(const unsigned long&) { return true; } 23376: inline bool f_OK(const signed long long&) { return true; } 23376: inline bool f_OK(const unsigned long long&) { return true; } 23376: inline bool f_OK(const float&) { return true; } 23376: inline bool f_OK(const double&) { return true; } 23376: inline bool f_OK(const long double&) { return true; } 23376: inline bool f_OK(const mpz_class&) { return true; } 23376: inline bool f_OK(const mpq_class&) { return true; } 23376: 23376: void ascii_dump(std::ostream& s, Representation r); 23376: bool ascii_load(std::istream& s, Representation& r); 23376: 23376: dimension_type 23376: check_space_dimension_overflow(dimension_type dim, 23376: dimension_type max, 23376: const char* domain, 23376: const char* method, 23376: const char* reason); 23376: 23376: template 23376: typename RA_Container::iterator 23376: nth_iter(RA_Container& cont, dimension_type n); 23376: 23376: template 23376: typename RA_Container::const_iterator 23376: nth_iter(const RA_Container& cont, dimension_type n); 23376: 23376: dimension_type 23376: least_significant_one_mask(dimension_type i); 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "../../src/globals_inlines.hh" 1 23376: # 29 "../../src/globals_inlines.hh" 23376: # 1 "/usr/include/c++/8/cassert" 1 3 23376: # 41 "/usr/include/c++/8/cassert" 3 23376: 23376: # 42 "/usr/include/c++/8/cassert" 3 23376: 23376: 23376: # 1 "/usr/include/assert.h" 1 3 4 23376: # 44 "/usr/include/c++/8/cassert" 2 3 23376: # 30 "../../src/globals_inlines.hh" 2 23376: # 1 "/usr/include/c++/8/istream" 1 3 23376: # 36 "/usr/include/c++/8/istream" 3 23376: 23376: # 37 "/usr/include/c++/8/istream" 3 23376: 23376: # 1 "/usr/include/c++/8/ios" 1 3 23376: # 36 "/usr/include/c++/8/ios" 3 23376: 23376: # 37 "/usr/include/c++/8/ios" 3 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/ios_base.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/ios_base.h" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/ios_base.h" 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/locale_classes.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 43 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 62 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: class locale 23376: { 23376: public: 23376: 23376: 23376: typedef int category; 23376: 23376: 23376: class facet; 23376: class id; 23376: class _Impl; 23376: 23376: friend class facet; 23376: friend class _Impl; 23376: 23376: template 23376: friend bool 23376: has_facet(const locale&) throw(); 23376: 23376: template 23376: friend const _Facet& 23376: use_facet(const locale&); 23376: 23376: template 23376: friend struct __use_cache; 23376: # 98 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: static const category none = 0; 23376: static const category ctype = 1L << 0; 23376: static const category numeric = 1L << 1; 23376: static const category collate = 1L << 2; 23376: static const category time = 1L << 3; 23376: static const category monetary = 1L << 4; 23376: static const category messages = 1L << 5; 23376: static const category all = (ctype | numeric | collate | 23376: time | monetary | messages); 23376: # 117 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: locale() throw(); 23376: # 126 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: locale(const locale& __other) throw(); 23376: # 136 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: explicit 23376: locale(const char* __s); 23376: # 151 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: locale(const locale& __base, const char* __s, category __cat); 23376: # 162 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: explicit 23376: locale(const std::string& __s) : locale(__s.c_str()) { } 23376: # 177 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: locale(const locale& __base, const std::string& __s, category __cat) 23376: : locale(__base, __s.c_str(), __cat) { } 23376: # 192 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: locale(const locale& __base, const locale& __add, category __cat); 23376: # 205 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: template 23376: locale(const locale& __other, _Facet* __f); 23376: 23376: 23376: ~locale() throw(); 23376: # 219 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: const locale& 23376: operator=(const locale& __other) throw(); 23376: # 234 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: template 23376: locale 23376: combine(const locale& __other) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: string 23376: name() const; 23376: # 254 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: bool 23376: operator==(const locale& __other) const throw(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: operator!=(const locale& __other) const throw() 23376: { return !(this->operator==(__other)); } 23376: # 282 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: template 23376: bool 23376: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 23376: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 23376: # 298 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: static locale 23376: global(const locale& __loc); 23376: 23376: 23376: 23376: 23376: static const locale& 23376: classic(); 23376: 23376: private: 23376: 23376: _Impl* _M_impl; 23376: 23376: 23376: static _Impl* _S_classic; 23376: 23376: 23376: static _Impl* _S_global; 23376: 23376: 23376: 23376: 23376: 23376: static const char* const* const _S_categories; 23376: # 333 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: enum { _S_categories_size = 6 + 6 }; 23376: 23376: 23376: static __gthread_once_t _S_once; 23376: 23376: 23376: explicit 23376: locale(_Impl*) throw(); 23376: 23376: static void 23376: _S_initialize(); 23376: 23376: static void 23376: _S_initialize_once() throw(); 23376: 23376: static category 23376: _S_normalize_category(category); 23376: 23376: void 23376: _M_coalesce(const locale& __base, const locale& __add, category __cat); 23376: 23376: 23376: static const id* const _S_twinned_facets[]; 23376: 23376: }; 23376: # 371 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: class locale::facet 23376: { 23376: private: 23376: friend class locale; 23376: friend class locale::_Impl; 23376: 23376: mutable _Atomic_word _M_refcount; 23376: 23376: 23376: static __c_locale _S_c_locale; 23376: 23376: 23376: static const char _S_c_name[2]; 23376: 23376: 23376: static __gthread_once_t _S_once; 23376: 23376: 23376: static void 23376: _S_initialize_once(); 23376: 23376: protected: 23376: # 402 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: explicit 23376: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 23376: { } 23376: 23376: 23376: virtual 23376: ~facet(); 23376: 23376: static void 23376: _S_create_c_locale(__c_locale& __cloc, const char* __s, 23376: __c_locale __old = 0); 23376: 23376: static __c_locale 23376: _S_clone_c_locale(__c_locale& __cloc) throw(); 23376: 23376: static void 23376: _S_destroy_c_locale(__c_locale& __cloc); 23376: 23376: static __c_locale 23376: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 23376: 23376: 23376: 23376: static __c_locale 23376: _S_get_c_locale(); 23376: 23376: __attribute__ ((__const__)) static const char* 23376: _S_get_c_name() throw(); 23376: # 438 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: facet(const facet&) = delete; 23376: 23376: facet& 23376: operator=(const facet&) = delete; 23376: 23376: 23376: private: 23376: void 23376: _M_add_reference() const throw() 23376: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 23376: 23376: void 23376: _M_remove_reference() const throw() 23376: { 23376: 23376: ; 23376: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 23376: { 23376: ; 23376: try 23376: { delete this; } 23376: catch(...) 23376: { } 23376: } 23376: } 23376: 23376: const facet* _M_sso_shim(const id*) const; 23376: const facet* _M_cow_shim(const id*) const; 23376: 23376: protected: 23376: class __shim; 23376: }; 23376: # 483 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: class locale::id 23376: { 23376: private: 23376: friend class locale; 23376: friend class locale::_Impl; 23376: 23376: template 23376: friend const _Facet& 23376: use_facet(const locale&); 23376: 23376: template 23376: friend bool 23376: has_facet(const locale&) throw(); 23376: 23376: 23376: 23376: 23376: mutable size_t _M_index; 23376: 23376: 23376: static _Atomic_word _S_refcount; 23376: 23376: void 23376: operator=(const id&); 23376: 23376: id(const id&); 23376: 23376: public: 23376: 23376: 23376: 23376: id() { } 23376: 23376: size_t 23376: _M_id() const throw(); 23376: }; 23376: 23376: 23376: 23376: class locale::_Impl 23376: { 23376: public: 23376: 23376: friend class locale; 23376: friend class locale::facet; 23376: 23376: template 23376: friend bool 23376: has_facet(const locale&) throw(); 23376: 23376: template 23376: friend const _Facet& 23376: use_facet(const locale&); 23376: 23376: template 23376: friend struct __use_cache; 23376: 23376: private: 23376: 23376: _Atomic_word _M_refcount; 23376: const facet** _M_facets; 23376: size_t _M_facets_size; 23376: const facet** _M_caches; 23376: char** _M_names; 23376: static const locale::id* const _S_id_ctype[]; 23376: static const locale::id* const _S_id_numeric[]; 23376: static const locale::id* const _S_id_collate[]; 23376: static const locale::id* const _S_id_time[]; 23376: static const locale::id* const _S_id_monetary[]; 23376: static const locale::id* const _S_id_messages[]; 23376: static const locale::id* const* const _S_facet_categories[]; 23376: 23376: void 23376: _M_add_reference() throw() 23376: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 23376: 23376: void 23376: _M_remove_reference() throw() 23376: { 23376: 23376: ; 23376: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 23376: { 23376: ; 23376: try 23376: { delete this; } 23376: catch(...) 23376: { } 23376: } 23376: } 23376: 23376: _Impl(const _Impl&, size_t); 23376: _Impl(const char*, size_t); 23376: _Impl(size_t) throw(); 23376: 23376: ~_Impl() throw(); 23376: 23376: _Impl(const _Impl&); 23376: 23376: void 23376: operator=(const _Impl&); 23376: 23376: bool 23376: _M_check_same_name() 23376: { 23376: bool __ret = true; 23376: if (_M_names[1]) 23376: 23376: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 23376: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 23376: return __ret; 23376: } 23376: 23376: void 23376: _M_replace_categories(const _Impl*, category); 23376: 23376: void 23376: _M_replace_category(const _Impl*, const locale::id* const*); 23376: 23376: void 23376: _M_replace_facet(const _Impl*, const locale::id*); 23376: 23376: void 23376: _M_install_facet(const locale::id*, const facet*); 23376: 23376: template 23376: void 23376: _M_init_facet(_Facet* __facet) 23376: { _M_install_facet(&_Facet::id, __facet); } 23376: 23376: template 23376: void 23376: _M_init_facet_unchecked(_Facet* __facet) 23376: { 23376: __facet->_M_add_reference(); 23376: _M_facets[_Facet::id._M_id()] = __facet; 23376: } 23376: 23376: void 23376: _M_install_cache(const facet*, size_t); 23376: 23376: void _M_init_extra(facet**); 23376: void _M_init_extra(void*, void*, const char*, const char*); 23376: }; 23376: # 641 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: template 23376: class __cxx11:: collate : public locale::facet 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: 23376: protected: 23376: 23376: 23376: __c_locale _M_c_locale_collate; 23376: 23376: public: 23376: 23376: static locale::id id; 23376: # 668 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: explicit 23376: collate(size_t __refs = 0) 23376: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 23376: { } 23376: # 682 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: explicit 23376: collate(__c_locale __cloc, size_t __refs = 0) 23376: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 23376: { } 23376: # 699 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: int 23376: compare(const _CharT* __lo1, const _CharT* __hi1, 23376: const _CharT* __lo2, const _CharT* __hi2) const 23376: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 23376: # 718 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: string_type 23376: transform(const _CharT* __lo, const _CharT* __hi) const 23376: { return this->do_transform(__lo, __hi); } 23376: # 732 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: long 23376: hash(const _CharT* __lo, const _CharT* __hi) const 23376: { return this->do_hash(__lo, __hi); } 23376: 23376: 23376: int 23376: _M_compare(const _CharT*, const _CharT*) const throw(); 23376: 23376: size_t 23376: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 23376: 23376: protected: 23376: 23376: virtual 23376: ~collate() 23376: { _S_destroy_c_locale(_M_c_locale_collate); } 23376: # 761 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: virtual int 23376: do_compare(const _CharT* __lo1, const _CharT* __hi1, 23376: const _CharT* __lo2, const _CharT* __hi2) const; 23376: # 775 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: virtual string_type 23376: do_transform(const _CharT* __lo, const _CharT* __hi) const; 23376: # 788 "/usr/include/c++/8/bits/locale_classes.h" 3 23376: virtual long 23376: do_hash(const _CharT* __lo, const _CharT* __hi) const; 23376: }; 23376: 23376: template 23376: locale::id collate<_CharT>::id; 23376: 23376: 23376: template<> 23376: int 23376: collate::_M_compare(const char*, const char*) const throw(); 23376: 23376: template<> 23376: size_t 23376: collate::_M_transform(char*, const char*, size_t) const throw(); 23376: 23376: 23376: template<> 23376: int 23376: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 23376: 23376: template<> 23376: size_t 23376: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 23376: 23376: 23376: 23376: template 23376: class __cxx11:: collate_byname : public collate<_CharT> 23376: { 23376: public: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: 23376: explicit 23376: collate_byname(const char* __s, size_t __refs = 0) 23376: : collate<_CharT>(__refs) 23376: { 23376: if (__builtin_strcmp(__s, "C") != 0 23376: && __builtin_strcmp(__s, "POSIX") != 0) 23376: { 23376: this->_S_destroy_c_locale(this->_M_c_locale_collate); 23376: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 23376: } 23376: } 23376: 23376: 23376: explicit 23376: collate_byname(const string& __s, size_t __refs = 0) 23376: : collate_byname(__s.c_str(), __refs) { } 23376: 23376: 23376: protected: 23376: virtual 23376: ~collate_byname() { } 23376: }; 23376: 23376: 23376: } 23376: 23376: # 1 "/usr/include/c++/8/bits/locale_classes.tcc" 1 3 23376: # 37 "/usr/include/c++/8/bits/locale_classes.tcc" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/locale_classes.tcc" 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: locale:: 23376: locale(const locale& __other, _Facet* __f) 23376: { 23376: _M_impl = new _Impl(*__other._M_impl, 1); 23376: 23376: try 23376: { _M_impl->_M_install_facet(&_Facet::id, __f); } 23376: catch(...) 23376: { 23376: _M_impl->_M_remove_reference(); 23376: throw; 23376: } 23376: delete [] _M_impl->_M_names[0]; 23376: _M_impl->_M_names[0] = 0; 23376: } 23376: 23376: template 23376: locale 23376: locale:: 23376: combine(const locale& __other) const 23376: { 23376: _Impl* __tmp = new _Impl(*_M_impl, 1); 23376: try 23376: { 23376: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 23376: } 23376: catch(...) 23376: { 23376: __tmp->_M_remove_reference(); 23376: throw; 23376: } 23376: return locale(__tmp); 23376: } 23376: 23376: template 23376: bool 23376: locale:: 23376: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 23376: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 23376: { 23376: typedef std::collate<_CharT> __collate_type; 23376: const __collate_type& __collate = use_facet<__collate_type>(*this); 23376: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 23376: __s2.data(), __s2.data() + __s2.length()) < 0); 23376: } 23376: # 102 "/usr/include/c++/8/bits/locale_classes.tcc" 3 23376: template 23376: bool 23376: has_facet(const locale& __loc) throw() 23376: { 23376: const size_t __i = _Facet::id._M_id(); 23376: const locale::facet** __facets = __loc._M_impl->_M_facets; 23376: return (__i < __loc._M_impl->_M_facets_size 23376: 23376: && dynamic_cast(__facets[__i])); 23376: 23376: 23376: 23376: } 23376: # 130 "/usr/include/c++/8/bits/locale_classes.tcc" 3 23376: template 23376: const _Facet& 23376: use_facet(const locale& __loc) 23376: { 23376: const size_t __i = _Facet::id._M_id(); 23376: const locale::facet** __facets = __loc._M_impl->_M_facets; 23376: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 23376: __throw_bad_cast(); 23376: 23376: return dynamic_cast(*__facets[__i]); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: template 23376: int 23376: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 23376: { return 0; } 23376: 23376: 23376: template 23376: size_t 23376: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 23376: { return 0; } 23376: 23376: template 23376: int 23376: collate<_CharT>:: 23376: do_compare(const _CharT* __lo1, const _CharT* __hi1, 23376: const _CharT* __lo2, const _CharT* __hi2) const 23376: { 23376: 23376: 23376: const string_type __one(__lo1, __hi1); 23376: const string_type __two(__lo2, __hi2); 23376: 23376: const _CharT* __p = __one.c_str(); 23376: const _CharT* __pend = __one.data() + __one.length(); 23376: const _CharT* __q = __two.c_str(); 23376: const _CharT* __qend = __two.data() + __two.length(); 23376: 23376: 23376: 23376: 23376: for (;;) 23376: { 23376: const int __res = _M_compare(__p, __q); 23376: if (__res) 23376: return __res; 23376: 23376: __p += char_traits<_CharT>::length(__p); 23376: __q += char_traits<_CharT>::length(__q); 23376: if (__p == __pend && __q == __qend) 23376: return 0; 23376: else if (__p == __pend) 23376: return -1; 23376: else if (__q == __qend) 23376: return 1; 23376: 23376: __p++; 23376: __q++; 23376: } 23376: } 23376: 23376: template 23376: typename collate<_CharT>::string_type 23376: collate<_CharT>:: 23376: do_transform(const _CharT* __lo, const _CharT* __hi) const 23376: { 23376: string_type __ret; 23376: 23376: 23376: const string_type __str(__lo, __hi); 23376: 23376: const _CharT* __p = __str.c_str(); 23376: const _CharT* __pend = __str.data() + __str.length(); 23376: 23376: size_t __len = (__hi - __lo) * 2; 23376: 23376: _CharT* __c = new _CharT[__len]; 23376: 23376: try 23376: { 23376: 23376: 23376: 23376: for (;;) 23376: { 23376: 23376: size_t __res = _M_transform(__c, __p, __len); 23376: 23376: 23376: if (__res >= __len) 23376: { 23376: __len = __res + 1; 23376: delete [] __c, __c = 0; 23376: __c = new _CharT[__len]; 23376: __res = _M_transform(__c, __p, __len); 23376: } 23376: 23376: __ret.append(__c, __res); 23376: __p += char_traits<_CharT>::length(__p); 23376: if (__p == __pend) 23376: break; 23376: 23376: __p++; 23376: __ret.push_back(_CharT()); 23376: } 23376: } 23376: catch(...) 23376: { 23376: delete [] __c; 23376: throw; 23376: } 23376: 23376: delete [] __c; 23376: 23376: return __ret; 23376: } 23376: 23376: template 23376: long 23376: collate<_CharT>:: 23376: do_hash(const _CharT* __lo, const _CharT* __hi) const 23376: { 23376: unsigned long __val = 0; 23376: for (; __lo < __hi; ++__lo) 23376: __val = 23376: *__lo + ((__val << 7) 23376: | (__val >> (__gnu_cxx::__numeric_traits:: 23376: __digits - 7))); 23376: return static_cast(__val); 23376: } 23376: 23376: 23376: 23376: 23376: extern template class collate; 23376: extern template class collate_byname; 23376: 23376: extern template 23376: const collate& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: 23376: extern template class collate; 23376: extern template class collate_byname; 23376: 23376: extern template 23376: const collate& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: 23376: 23376: 23376: } 23376: # 852 "/usr/include/c++/8/bits/locale_classes.h" 2 3 23376: # 42 "/usr/include/c++/8/bits/ios_base.h" 2 3 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/system_error" 1 3 23376: # 32 "/usr/include/c++/8/system_error" 3 23376: 23376: # 33 "/usr/include/c++/8/system_error" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/error_constants.h" 1 3 23376: # 34 "/usr/include/arm-linux-gnueabihf/c++/8/bits/error_constants.h" 3 23376: # 1 "/usr/include/c++/8/cerrno" 1 3 23376: # 39 "/usr/include/c++/8/cerrno" 3 23376: 23376: # 40 "/usr/include/c++/8/cerrno" 3 23376: # 35 "/usr/include/arm-linux-gnueabihf/c++/8/bits/error_constants.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: enum class errc 23376: { 23376: address_family_not_supported = 97, 23376: address_in_use = 98, 23376: address_not_available = 99, 23376: already_connected = 106, 23376: argument_list_too_long = 7, 23376: argument_out_of_domain = 33, 23376: bad_address = 14, 23376: bad_file_descriptor = 9, 23376: 23376: 23376: bad_message = 74, 23376: 23376: 23376: broken_pipe = 32, 23376: connection_aborted = 103, 23376: connection_already_in_progress = 114, 23376: connection_refused = 111, 23376: connection_reset = 104, 23376: cross_device_link = 18, 23376: destination_address_required = 89, 23376: device_or_resource_busy = 16, 23376: directory_not_empty = 39, 23376: executable_format_error = 8, 23376: file_exists = 17, 23376: file_too_large = 27, 23376: filename_too_long = 36, 23376: function_not_supported = 38, 23376: host_unreachable = 113, 23376: 23376: 23376: identifier_removed = 43, 23376: 23376: 23376: illegal_byte_sequence = 84, 23376: inappropriate_io_control_operation = 25, 23376: interrupted = 4, 23376: invalid_argument = 22, 23376: invalid_seek = 29, 23376: io_error = 5, 23376: is_a_directory = 21, 23376: message_size = 90, 23376: network_down = 100, 23376: network_reset = 102, 23376: network_unreachable = 101, 23376: no_buffer_space = 105, 23376: no_child_process = 10, 23376: 23376: 23376: no_link = 67, 23376: 23376: 23376: no_lock_available = 37, 23376: 23376: 23376: no_message_available = 61, 23376: 23376: 23376: no_message = 42, 23376: no_protocol_option = 92, 23376: no_space_on_device = 28, 23376: 23376: 23376: no_stream_resources = 63, 23376: 23376: 23376: no_such_device_or_address = 6, 23376: no_such_device = 19, 23376: no_such_file_or_directory = 2, 23376: no_such_process = 3, 23376: not_a_directory = 20, 23376: not_a_socket = 88, 23376: 23376: 23376: not_a_stream = 60, 23376: 23376: 23376: not_connected = 107, 23376: not_enough_memory = 12, 23376: 23376: 23376: not_supported = 95, 23376: 23376: 23376: 23376: operation_canceled = 125, 23376: 23376: 23376: operation_in_progress = 115, 23376: operation_not_permitted = 1, 23376: operation_not_supported = 95, 23376: operation_would_block = 11, 23376: 23376: 23376: owner_dead = 130, 23376: 23376: 23376: permission_denied = 13, 23376: 23376: 23376: protocol_error = 71, 23376: 23376: 23376: protocol_not_supported = 93, 23376: read_only_file_system = 30, 23376: resource_deadlock_would_occur = 35, 23376: resource_unavailable_try_again = 11, 23376: result_out_of_range = 34, 23376: 23376: 23376: state_not_recoverable = 131, 23376: 23376: 23376: 23376: stream_timeout = 62, 23376: 23376: 23376: 23376: text_file_busy = 26, 23376: 23376: 23376: timed_out = 110, 23376: too_many_files_open_in_system = 23, 23376: too_many_files_open = 24, 23376: too_many_links = 31, 23376: too_many_symbolic_link_levels = 40, 23376: 23376: 23376: value_too_large = 75, 23376: 23376: 23376: wrong_protocol_type = 91 23376: }; 23376: 23376: 23376: } 23376: # 40 "/usr/include/c++/8/system_error" 2 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: class error_code; 23376: class error_condition; 23376: class system_error; 23376: 23376: 23376: template 23376: struct is_error_code_enum : public false_type { }; 23376: 23376: 23376: template 23376: struct is_error_condition_enum : public false_type { }; 23376: 23376: template<> 23376: struct is_error_condition_enum 23376: : public true_type { }; 23376: # 71 "/usr/include/c++/8/system_error" 3 23376: inline namespace _V2 { 23376: 23376: 23376: class error_category 23376: { 23376: public: 23376: constexpr error_category() noexcept = default; 23376: 23376: virtual ~error_category(); 23376: 23376: error_category(const error_category&) = delete; 23376: error_category& operator=(const error_category&) = delete; 23376: 23376: virtual const char* 23376: name() const noexcept = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: private: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: virtual __cow_string 23376: _M_message(int) const; 23376: 23376: public: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: virtual string 23376: message(int) const = 0; 23376: # 110 "/usr/include/c++/8/system_error" 3 23376: public: 23376: virtual error_condition 23376: default_error_condition(int __i) const noexcept; 23376: 23376: virtual bool 23376: equivalent(int __i, const error_condition& __cond) const noexcept; 23376: 23376: virtual bool 23376: equivalent(const error_code& __code, int __i) const noexcept; 23376: 23376: bool 23376: operator<(const error_category& __other) const noexcept 23376: { return less()(this, &__other); } 23376: 23376: bool 23376: operator==(const error_category& __other) const noexcept 23376: { return this == &__other; } 23376: 23376: bool 23376: operator!=(const error_category& __other) const noexcept 23376: { return this != &__other; } 23376: }; 23376: 23376: 23376: __attribute__ ((__const__)) const error_category& system_category() noexcept; 23376: __attribute__ ((__const__)) const error_category& generic_category() noexcept; 23376: 23376: } 23376: 23376: error_code make_error_code(errc) noexcept; 23376: 23376: template 23376: struct hash; 23376: 23376: 23376: 23376: struct error_code 23376: { 23376: error_code() noexcept 23376: : _M_value(0), _M_cat(&system_category()) { } 23376: 23376: error_code(int __v, const error_category& __cat) noexcept 23376: : _M_value(__v), _M_cat(&__cat) { } 23376: 23376: template::value>::type> 23376: error_code(_ErrorCodeEnum __e) noexcept 23376: { *this = make_error_code(__e); } 23376: 23376: void 23376: assign(int __v, const error_category& __cat) noexcept 23376: { 23376: _M_value = __v; 23376: _M_cat = &__cat; 23376: } 23376: 23376: void 23376: clear() noexcept 23376: { assign(0, system_category()); } 23376: 23376: 23376: template 23376: typename enable_if::value, 23376: error_code&>::type 23376: operator=(_ErrorCodeEnum __e) noexcept 23376: { return *this = make_error_code(__e); } 23376: 23376: int 23376: value() const noexcept { return _M_value; } 23376: 23376: const error_category& 23376: category() const noexcept { return *_M_cat; } 23376: 23376: error_condition 23376: default_error_condition() const noexcept; 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: string 23376: message() const 23376: { return category().message(value()); } 23376: 23376: explicit operator bool() const noexcept 23376: { return _M_value != 0; } 23376: 23376: 23376: private: 23376: friend class hash; 23376: 23376: int _M_value; 23376: const error_category* _M_cat; 23376: }; 23376: 23376: 23376: inline error_code 23376: make_error_code(errc __e) noexcept 23376: { return error_code(static_cast(__e), generic_category()); } 23376: 23376: inline bool 23376: operator<(const error_code& __lhs, const error_code& __rhs) noexcept 23376: { 23376: return (__lhs.category() < __rhs.category() 23376: || (__lhs.category() == __rhs.category() 23376: && __lhs.value() < __rhs.value())); 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 23376: { return (__os << __e.category().name() << ':' << __e.value()); } 23376: 23376: error_condition make_error_condition(errc) noexcept; 23376: 23376: 23376: 23376: struct error_condition 23376: { 23376: error_condition() noexcept 23376: : _M_value(0), _M_cat(&generic_category()) { } 23376: 23376: error_condition(int __v, const error_category& __cat) noexcept 23376: : _M_value(__v), _M_cat(&__cat) { } 23376: 23376: template::value>::type> 23376: error_condition(_ErrorConditionEnum __e) noexcept 23376: { *this = make_error_condition(__e); } 23376: 23376: void 23376: assign(int __v, const error_category& __cat) noexcept 23376: { 23376: _M_value = __v; 23376: _M_cat = &__cat; 23376: } 23376: 23376: 23376: template 23376: typename enable_if::value, error_condition&>::type 23376: operator=(_ErrorConditionEnum __e) noexcept 23376: { return *this = make_error_condition(__e); } 23376: 23376: void 23376: clear() noexcept 23376: { assign(0, generic_category()); } 23376: 23376: 23376: int 23376: value() const noexcept { return _M_value; } 23376: 23376: const error_category& 23376: category() const noexcept { return *_M_cat; } 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: string 23376: message() const 23376: { return category().message(value()); } 23376: 23376: explicit operator bool() const noexcept 23376: { return _M_value != 0; } 23376: 23376: 23376: private: 23376: int _M_value; 23376: const error_category* _M_cat; 23376: }; 23376: 23376: 23376: inline error_condition 23376: make_error_condition(errc __e) noexcept 23376: { return error_condition(static_cast(__e), generic_category()); } 23376: 23376: inline bool 23376: operator<(const error_condition& __lhs, 23376: const error_condition& __rhs) noexcept 23376: { 23376: return (__lhs.category() < __rhs.category() 23376: || (__lhs.category() == __rhs.category() 23376: && __lhs.value() < __rhs.value())); 23376: } 23376: 23376: 23376: inline bool 23376: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 23376: { return (__lhs.category() == __rhs.category() 23376: && __lhs.value() == __rhs.value()); } 23376: 23376: inline bool 23376: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 23376: { 23376: return (__lhs.category().equivalent(__lhs.value(), __rhs) 23376: || __rhs.category().equivalent(__lhs, __rhs.value())); 23376: } 23376: 23376: inline bool 23376: operator==(const error_condition& __lhs, const error_code& __rhs) noexcept 23376: { 23376: return (__rhs.category().equivalent(__rhs.value(), __lhs) 23376: || __lhs.category().equivalent(__rhs, __lhs.value())); 23376: } 23376: 23376: inline bool 23376: operator==(const error_condition& __lhs, 23376: const error_condition& __rhs) noexcept 23376: { 23376: return (__lhs.category() == __rhs.category() 23376: && __lhs.value() == __rhs.value()); 23376: } 23376: 23376: inline bool 23376: operator!=(const error_code& __lhs, const error_code& __rhs) noexcept 23376: { return !(__lhs == __rhs); } 23376: 23376: inline bool 23376: operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept 23376: { return !(__lhs == __rhs); } 23376: 23376: inline bool 23376: operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept 23376: { return !(__lhs == __rhs); } 23376: 23376: inline bool 23376: operator!=(const error_condition& __lhs, 23376: const error_condition& __rhs) noexcept 23376: { return !(__lhs == __rhs); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: class system_error : public std::runtime_error 23376: { 23376: private: 23376: error_code _M_code; 23376: 23376: public: 23376: system_error(error_code __ec = error_code()) 23376: : runtime_error(__ec.message()), _M_code(__ec) { } 23376: 23376: system_error(error_code __ec, const string& __what) 23376: : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } 23376: 23376: system_error(error_code __ec, const char* __what) 23376: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 23376: 23376: system_error(int __v, const error_category& __ecat, const char* __what) 23376: : system_error(error_code(__v, __ecat), __what) { } 23376: 23376: system_error(int __v, const error_category& __ecat) 23376: : runtime_error(error_code(__v, __ecat).message()), 23376: _M_code(__v, __ecat) { } 23376: 23376: system_error(int __v, const error_category& __ecat, const string& __what) 23376: : runtime_error(__what + ": " + error_code(__v, __ecat).message()), 23376: _M_code(__v, __ecat) { } 23376: 23376: virtual ~system_error() noexcept; 23376: 23376: const error_code& 23376: code() const noexcept { return _M_code; } 23376: }; 23376: 23376: 23376: } 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: struct hash 23376: : public __hash_base 23376: { 23376: size_t 23376: operator()(const error_code& __e) const noexcept 23376: { 23376: const size_t __tmp = std::_Hash_impl::hash(__e._M_value); 23376: return std::_Hash_impl::__hash_combine(__e._M_cat, __tmp); 23376: } 23376: }; 23376: # 414 "/usr/include/c++/8/system_error" 3 23376: 23376: } 23376: # 47 "/usr/include/c++/8/bits/ios_base.h" 2 3 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: enum _Ios_Fmtflags 23376: { 23376: _S_boolalpha = 1L << 0, 23376: _S_dec = 1L << 1, 23376: _S_fixed = 1L << 2, 23376: _S_hex = 1L << 3, 23376: _S_internal = 1L << 4, 23376: _S_left = 1L << 5, 23376: _S_oct = 1L << 6, 23376: _S_right = 1L << 7, 23376: _S_scientific = 1L << 8, 23376: _S_showbase = 1L << 9, 23376: _S_showpoint = 1L << 10, 23376: _S_showpos = 1L << 11, 23376: _S_skipws = 1L << 12, 23376: _S_unitbuf = 1L << 13, 23376: _S_uppercase = 1L << 14, 23376: _S_adjustfield = _S_left | _S_right | _S_internal, 23376: _S_basefield = _S_dec | _S_oct | _S_hex, 23376: _S_floatfield = _S_scientific | _S_fixed, 23376: _S_ios_fmtflags_end = 1L << 16, 23376: _S_ios_fmtflags_max = 0x7fffffff, 23376: _S_ios_fmtflags_min = ~0x7fffffff 23376: }; 23376: 23376: inline constexpr _Ios_Fmtflags 23376: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 23376: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 23376: 23376: inline constexpr _Ios_Fmtflags 23376: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 23376: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 23376: 23376: inline constexpr _Ios_Fmtflags 23376: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 23376: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 23376: 23376: inline constexpr _Ios_Fmtflags 23376: operator~(_Ios_Fmtflags __a) 23376: { return _Ios_Fmtflags(~static_cast(__a)); } 23376: 23376: inline const _Ios_Fmtflags& 23376: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 23376: { return __a = __a | __b; } 23376: 23376: inline const _Ios_Fmtflags& 23376: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 23376: { return __a = __a & __b; } 23376: 23376: inline const _Ios_Fmtflags& 23376: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 23376: { return __a = __a ^ __b; } 23376: 23376: 23376: enum _Ios_Openmode 23376: { 23376: _S_app = 1L << 0, 23376: _S_ate = 1L << 1, 23376: _S_bin = 1L << 2, 23376: _S_in = 1L << 3, 23376: _S_out = 1L << 4, 23376: _S_trunc = 1L << 5, 23376: _S_ios_openmode_end = 1L << 16, 23376: _S_ios_openmode_max = 0x7fffffff, 23376: _S_ios_openmode_min = ~0x7fffffff 23376: }; 23376: 23376: inline constexpr _Ios_Openmode 23376: operator&(_Ios_Openmode __a, _Ios_Openmode __b) 23376: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 23376: 23376: inline constexpr _Ios_Openmode 23376: operator|(_Ios_Openmode __a, _Ios_Openmode __b) 23376: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 23376: 23376: inline constexpr _Ios_Openmode 23376: operator^(_Ios_Openmode __a, _Ios_Openmode __b) 23376: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 23376: 23376: inline constexpr _Ios_Openmode 23376: operator~(_Ios_Openmode __a) 23376: { return _Ios_Openmode(~static_cast(__a)); } 23376: 23376: inline const _Ios_Openmode& 23376: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) 23376: { return __a = __a | __b; } 23376: 23376: inline const _Ios_Openmode& 23376: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) 23376: { return __a = __a & __b; } 23376: 23376: inline const _Ios_Openmode& 23376: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) 23376: { return __a = __a ^ __b; } 23376: 23376: 23376: enum _Ios_Iostate 23376: { 23376: _S_goodbit = 0, 23376: _S_badbit = 1L << 0, 23376: _S_eofbit = 1L << 1, 23376: _S_failbit = 1L << 2, 23376: _S_ios_iostate_end = 1L << 16, 23376: _S_ios_iostate_max = 0x7fffffff, 23376: _S_ios_iostate_min = ~0x7fffffff 23376: }; 23376: 23376: inline constexpr _Ios_Iostate 23376: operator&(_Ios_Iostate __a, _Ios_Iostate __b) 23376: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 23376: 23376: inline constexpr _Ios_Iostate 23376: operator|(_Ios_Iostate __a, _Ios_Iostate __b) 23376: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 23376: 23376: inline constexpr _Ios_Iostate 23376: operator^(_Ios_Iostate __a, _Ios_Iostate __b) 23376: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 23376: 23376: inline constexpr _Ios_Iostate 23376: operator~(_Ios_Iostate __a) 23376: { return _Ios_Iostate(~static_cast(__a)); } 23376: 23376: inline const _Ios_Iostate& 23376: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) 23376: { return __a = __a | __b; } 23376: 23376: inline const _Ios_Iostate& 23376: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) 23376: { return __a = __a & __b; } 23376: 23376: inline const _Ios_Iostate& 23376: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) 23376: { return __a = __a ^ __b; } 23376: 23376: 23376: enum _Ios_Seekdir 23376: { 23376: _S_beg = 0, 23376: _S_cur = 1, 23376: _S_end = 2, 23376: _S_ios_seekdir_end = 1L << 16 23376: }; 23376: 23376: 23376: 23376: enum class io_errc { stream = 1 }; 23376: 23376: template <> struct is_error_code_enum : public true_type { }; 23376: 23376: const error_category& iostream_category() noexcept; 23376: 23376: inline error_code 23376: make_error_code(io_errc __e) noexcept 23376: { return error_code(static_cast(__e), iostream_category()); } 23376: 23376: inline error_condition 23376: make_error_condition(io_errc __e) noexcept 23376: { return error_condition(static_cast(__e), iostream_category()); } 23376: # 228 "/usr/include/c++/8/bits/ios_base.h" 3 23376: class ios_base 23376: { 23376: # 246 "/usr/include/c++/8/bits/ios_base.h" 3 23376: public: 23376: # 255 "/usr/include/c++/8/bits/ios_base.h" 3 23376: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 23376: { 23376: public: 23376: explicit 23376: failure(const string& __str); 23376: 23376: 23376: explicit 23376: failure(const string&, const error_code&); 23376: 23376: explicit 23376: failure(const char*, const error_code& = io_errc::stream); 23376: 23376: 23376: virtual 23376: ~failure() throw(); 23376: 23376: virtual const char* 23376: what() const throw(); 23376: }; 23376: # 323 "/usr/include/c++/8/bits/ios_base.h" 3 23376: typedef _Ios_Fmtflags fmtflags; 23376: 23376: 23376: static const fmtflags boolalpha = _S_boolalpha; 23376: 23376: 23376: static const fmtflags dec = _S_dec; 23376: 23376: 23376: static const fmtflags fixed = _S_fixed; 23376: 23376: 23376: static const fmtflags hex = _S_hex; 23376: 23376: 23376: 23376: 23376: static const fmtflags internal = _S_internal; 23376: 23376: 23376: 23376: static const fmtflags left = _S_left; 23376: 23376: 23376: static const fmtflags oct = _S_oct; 23376: 23376: 23376: 23376: static const fmtflags right = _S_right; 23376: 23376: 23376: static const fmtflags scientific = _S_scientific; 23376: 23376: 23376: 23376: static const fmtflags showbase = _S_showbase; 23376: 23376: 23376: 23376: static const fmtflags showpoint = _S_showpoint; 23376: 23376: 23376: static const fmtflags showpos = _S_showpos; 23376: 23376: 23376: static const fmtflags skipws = _S_skipws; 23376: 23376: 23376: static const fmtflags unitbuf = _S_unitbuf; 23376: 23376: 23376: 23376: static const fmtflags uppercase = _S_uppercase; 23376: 23376: 23376: static const fmtflags adjustfield = _S_adjustfield; 23376: 23376: 23376: static const fmtflags basefield = _S_basefield; 23376: 23376: 23376: static const fmtflags floatfield = _S_floatfield; 23376: # 398 "/usr/include/c++/8/bits/ios_base.h" 3 23376: typedef _Ios_Iostate iostate; 23376: 23376: 23376: 23376: static const iostate badbit = _S_badbit; 23376: 23376: 23376: static const iostate eofbit = _S_eofbit; 23376: 23376: 23376: 23376: 23376: static const iostate failbit = _S_failbit; 23376: 23376: 23376: static const iostate goodbit = _S_goodbit; 23376: # 429 "/usr/include/c++/8/bits/ios_base.h" 3 23376: typedef _Ios_Openmode openmode; 23376: 23376: 23376: static const openmode app = _S_app; 23376: 23376: 23376: static const openmode ate = _S_ate; 23376: 23376: 23376: 23376: 23376: static const openmode binary = _S_bin; 23376: 23376: 23376: static const openmode in = _S_in; 23376: 23376: 23376: static const openmode out = _S_out; 23376: 23376: 23376: static const openmode trunc = _S_trunc; 23376: # 461 "/usr/include/c++/8/bits/ios_base.h" 3 23376: typedef _Ios_Seekdir seekdir; 23376: 23376: 23376: static const seekdir beg = _S_beg; 23376: 23376: 23376: static const seekdir cur = _S_cur; 23376: 23376: 23376: static const seekdir end = _S_end; 23376: 23376: 23376: 23376: typedef int io_state; 23376: typedef int open_mode; 23376: typedef int seek_dir; 23376: 23376: typedef std::streampos streampos; 23376: typedef std::streamoff streamoff; 23376: # 489 "/usr/include/c++/8/bits/ios_base.h" 3 23376: enum event 23376: { 23376: erase_event, 23376: imbue_event, 23376: copyfmt_event 23376: }; 23376: # 506 "/usr/include/c++/8/bits/ios_base.h" 3 23376: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 23376: # 518 "/usr/include/c++/8/bits/ios_base.h" 3 23376: void 23376: register_callback(event_callback __fn, int __index); 23376: 23376: protected: 23376: streamsize _M_precision; 23376: streamsize _M_width; 23376: fmtflags _M_flags; 23376: iostate _M_exception; 23376: iostate _M_streambuf_state; 23376: 23376: 23376: 23376: struct _Callback_list 23376: { 23376: 23376: _Callback_list* _M_next; 23376: ios_base::event_callback _M_fn; 23376: int _M_index; 23376: _Atomic_word _M_refcount; 23376: 23376: _Callback_list(ios_base::event_callback __fn, int __index, 23376: _Callback_list* __cb) 23376: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 23376: 23376: void 23376: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 23376: 23376: 23376: int 23376: _M_remove_reference() 23376: { 23376: 23376: ; 23376: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 23376: if (__res == 0) 23376: { 23376: ; 23376: } 23376: return __res; 23376: } 23376: }; 23376: 23376: _Callback_list* _M_callbacks; 23376: 23376: void 23376: _M_call_callbacks(event __ev) throw(); 23376: 23376: void 23376: _M_dispose_callbacks(void) throw(); 23376: 23376: 23376: struct _Words 23376: { 23376: void* _M_pword; 23376: long _M_iword; 23376: _Words() : _M_pword(0), _M_iword(0) { } 23376: }; 23376: 23376: 23376: _Words _M_word_zero; 23376: 23376: 23376: 23376: enum { _S_local_word_size = 8 }; 23376: _Words _M_local_word[_S_local_word_size]; 23376: 23376: 23376: int _M_word_size; 23376: _Words* _M_word; 23376: 23376: _Words& 23376: _M_grow_words(int __index, bool __iword); 23376: 23376: 23376: locale _M_ios_locale; 23376: 23376: void 23376: _M_init() throw(); 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: class Init 23376: { 23376: friend class ios_base; 23376: public: 23376: Init(); 23376: ~Init(); 23376: 23376: private: 23376: static _Atomic_word _S_refcount; 23376: static bool _S_synced_with_stdio; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: fmtflags 23376: flags() const 23376: { return _M_flags; } 23376: # 631 "/usr/include/c++/8/bits/ios_base.h" 3 23376: fmtflags 23376: flags(fmtflags __fmtfl) 23376: { 23376: fmtflags __old = _M_flags; 23376: _M_flags = __fmtfl; 23376: return __old; 23376: } 23376: # 647 "/usr/include/c++/8/bits/ios_base.h" 3 23376: fmtflags 23376: setf(fmtflags __fmtfl) 23376: { 23376: fmtflags __old = _M_flags; 23376: _M_flags |= __fmtfl; 23376: return __old; 23376: } 23376: # 664 "/usr/include/c++/8/bits/ios_base.h" 3 23376: fmtflags 23376: setf(fmtflags __fmtfl, fmtflags __mask) 23376: { 23376: fmtflags __old = _M_flags; 23376: _M_flags &= ~__mask; 23376: _M_flags |= (__fmtfl & __mask); 23376: return __old; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: unsetf(fmtflags __mask) 23376: { _M_flags &= ~__mask; } 23376: # 690 "/usr/include/c++/8/bits/ios_base.h" 3 23376: streamsize 23376: precision() const 23376: { return _M_precision; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: streamsize 23376: precision(streamsize __prec) 23376: { 23376: streamsize __old = _M_precision; 23376: _M_precision = __prec; 23376: return __old; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: streamsize 23376: width() const 23376: { return _M_width; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: streamsize 23376: width(streamsize __wide) 23376: { 23376: streamsize __old = _M_width; 23376: _M_width = __wide; 23376: return __old; 23376: } 23376: # 741 "/usr/include/c++/8/bits/ios_base.h" 3 23376: static bool 23376: sync_with_stdio(bool __sync = true); 23376: # 753 "/usr/include/c++/8/bits/ios_base.h" 3 23376: locale 23376: imbue(const locale& __loc) throw(); 23376: # 764 "/usr/include/c++/8/bits/ios_base.h" 3 23376: locale 23376: getloc() const 23376: { return _M_ios_locale; } 23376: # 775 "/usr/include/c++/8/bits/ios_base.h" 3 23376: const locale& 23376: _M_getloc() const 23376: { return _M_ios_locale; } 23376: # 794 "/usr/include/c++/8/bits/ios_base.h" 3 23376: static int 23376: xalloc() throw(); 23376: # 810 "/usr/include/c++/8/bits/ios_base.h" 3 23376: long& 23376: iword(int __ix) 23376: { 23376: _Words& __word = (__ix < _M_word_size) 23376: ? _M_word[__ix] : _M_grow_words(__ix, true); 23376: return __word._M_iword; 23376: } 23376: # 831 "/usr/include/c++/8/bits/ios_base.h" 3 23376: void*& 23376: pword(int __ix) 23376: { 23376: _Words& __word = (__ix < _M_word_size) 23376: ? _M_word[__ix] : _M_grow_words(__ix, false); 23376: return __word._M_pword; 23376: } 23376: # 848 "/usr/include/c++/8/bits/ios_base.h" 3 23376: virtual ~ios_base(); 23376: 23376: protected: 23376: ios_base() throw (); 23376: # 862 "/usr/include/c++/8/bits/ios_base.h" 3 23376: public: 23376: ios_base(const ios_base&) = delete; 23376: 23376: ios_base& 23376: operator=(const ios_base&) = delete; 23376: 23376: protected: 23376: void 23376: _M_move(ios_base&) noexcept; 23376: 23376: void 23376: _M_swap(ios_base& __rhs) noexcept; 23376: 23376: }; 23376: 23376: 23376: 23376: inline ios_base& 23376: boolalpha(ios_base& __base) 23376: { 23376: __base.setf(ios_base::boolalpha); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: noboolalpha(ios_base& __base) 23376: { 23376: __base.unsetf(ios_base::boolalpha); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: showbase(ios_base& __base) 23376: { 23376: __base.setf(ios_base::showbase); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: noshowbase(ios_base& __base) 23376: { 23376: __base.unsetf(ios_base::showbase); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: showpoint(ios_base& __base) 23376: { 23376: __base.setf(ios_base::showpoint); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: noshowpoint(ios_base& __base) 23376: { 23376: __base.unsetf(ios_base::showpoint); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: showpos(ios_base& __base) 23376: { 23376: __base.setf(ios_base::showpos); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: noshowpos(ios_base& __base) 23376: { 23376: __base.unsetf(ios_base::showpos); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: skipws(ios_base& __base) 23376: { 23376: __base.setf(ios_base::skipws); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: noskipws(ios_base& __base) 23376: { 23376: __base.unsetf(ios_base::skipws); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: uppercase(ios_base& __base) 23376: { 23376: __base.setf(ios_base::uppercase); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: nouppercase(ios_base& __base) 23376: { 23376: __base.unsetf(ios_base::uppercase); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: unitbuf(ios_base& __base) 23376: { 23376: __base.setf(ios_base::unitbuf); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: nounitbuf(ios_base& __base) 23376: { 23376: __base.unsetf(ios_base::unitbuf); 23376: return __base; 23376: } 23376: 23376: 23376: 23376: inline ios_base& 23376: internal(ios_base& __base) 23376: { 23376: __base.setf(ios_base::internal, ios_base::adjustfield); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: left(ios_base& __base) 23376: { 23376: __base.setf(ios_base::left, ios_base::adjustfield); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: right(ios_base& __base) 23376: { 23376: __base.setf(ios_base::right, ios_base::adjustfield); 23376: return __base; 23376: } 23376: 23376: 23376: 23376: inline ios_base& 23376: dec(ios_base& __base) 23376: { 23376: __base.setf(ios_base::dec, ios_base::basefield); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: hex(ios_base& __base) 23376: { 23376: __base.setf(ios_base::hex, ios_base::basefield); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: oct(ios_base& __base) 23376: { 23376: __base.setf(ios_base::oct, ios_base::basefield); 23376: return __base; 23376: } 23376: 23376: 23376: 23376: inline ios_base& 23376: fixed(ios_base& __base) 23376: { 23376: __base.setf(ios_base::fixed, ios_base::floatfield); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: scientific(ios_base& __base) 23376: { 23376: __base.setf(ios_base::scientific, ios_base::floatfield); 23376: return __base; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: inline ios_base& 23376: hexfloat(ios_base& __base) 23376: { 23376: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 23376: return __base; 23376: } 23376: 23376: 23376: inline ios_base& 23376: defaultfloat(ios_base& __base) 23376: { 23376: __base.unsetf(ios_base::floatfield); 23376: return __base; 23376: } 23376: 23376: 23376: 23376: } 23376: # 43 "/usr/include/c++/8/ios" 2 3 23376: # 1 "/usr/include/c++/8/streambuf" 1 3 23376: # 36 "/usr/include/c++/8/streambuf" 3 23376: 23376: # 37 "/usr/include/c++/8/streambuf" 3 23376: # 45 "/usr/include/c++/8/streambuf" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: template 23376: streamsize 23376: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 23376: basic_streambuf<_CharT, _Traits>*, bool&); 23376: # 121 "/usr/include/c++/8/streambuf" 3 23376: template 23376: class basic_streambuf 23376: { 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _Traits traits_type; 23376: typedef typename traits_type::int_type int_type; 23376: typedef typename traits_type::pos_type pos_type; 23376: typedef typename traits_type::off_type off_type; 23376: 23376: 23376: 23376: 23376: typedef basic_streambuf __streambuf_type; 23376: 23376: 23376: friend class basic_ios; 23376: friend class basic_istream; 23376: friend class basic_ostream; 23376: friend class istreambuf_iterator; 23376: friend class ostreambuf_iterator; 23376: 23376: friend streamsize 23376: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 23376: 23376: template 23376: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 23376: _CharT2*>::__type 23376: __copy_move_a2(istreambuf_iterator<_CharT2>, 23376: istreambuf_iterator<_CharT2>, _CharT2*); 23376: 23376: template 23376: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 23376: istreambuf_iterator<_CharT2> >::__type 23376: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 23376: const _CharT2&); 23376: 23376: template 23376: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 23376: void>::__type 23376: advance(istreambuf_iterator<_CharT2>&, _Distance); 23376: 23376: template 23376: friend basic_istream<_CharT2, _Traits2>& 23376: operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); 23376: 23376: template 23376: friend basic_istream<_CharT2, _Traits2>& 23376: operator>>(basic_istream<_CharT2, _Traits2>&, 23376: basic_string<_CharT2, _Traits2, _Alloc>&); 23376: 23376: template 23376: friend basic_istream<_CharT2, _Traits2>& 23376: getline(basic_istream<_CharT2, _Traits2>&, 23376: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 23376: 23376: protected: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: char_type* _M_in_beg; 23376: char_type* _M_in_cur; 23376: char_type* _M_in_end; 23376: char_type* _M_out_beg; 23376: char_type* _M_out_cur; 23376: char_type* _M_out_end; 23376: 23376: 23376: locale _M_buf_locale; 23376: 23376: public: 23376: 23376: virtual 23376: ~basic_streambuf() 23376: { } 23376: # 215 "/usr/include/c++/8/streambuf" 3 23376: locale 23376: pubimbue(const locale& __loc) 23376: { 23376: locale __tmp(this->getloc()); 23376: this->imbue(__loc); 23376: _M_buf_locale = __loc; 23376: return __tmp; 23376: } 23376: # 232 "/usr/include/c++/8/streambuf" 3 23376: locale 23376: getloc() const 23376: { return _M_buf_locale; } 23376: # 245 "/usr/include/c++/8/streambuf" 3 23376: basic_streambuf* 23376: pubsetbuf(char_type* __s, streamsize __n) 23376: { return this->setbuf(__s, __n); } 23376: # 257 "/usr/include/c++/8/streambuf" 3 23376: pos_type 23376: pubseekoff(off_type __off, ios_base::seekdir __way, 23376: ios_base::openmode __mode = ios_base::in | ios_base::out) 23376: { return this->seekoff(__off, __way, __mode); } 23376: # 269 "/usr/include/c++/8/streambuf" 3 23376: pos_type 23376: pubseekpos(pos_type __sp, 23376: ios_base::openmode __mode = ios_base::in | ios_base::out) 23376: { return this->seekpos(__sp, __mode); } 23376: 23376: 23376: 23376: 23376: int 23376: pubsync() { return this->sync(); } 23376: # 290 "/usr/include/c++/8/streambuf" 3 23376: streamsize 23376: in_avail() 23376: { 23376: const streamsize __ret = this->egptr() - this->gptr(); 23376: return __ret ? __ret : this->showmanyc(); 23376: } 23376: # 304 "/usr/include/c++/8/streambuf" 3 23376: int_type 23376: snextc() 23376: { 23376: int_type __ret = traits_type::eof(); 23376: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 23376: __ret), true)) 23376: __ret = this->sgetc(); 23376: return __ret; 23376: } 23376: # 322 "/usr/include/c++/8/streambuf" 3 23376: int_type 23376: sbumpc() 23376: { 23376: int_type __ret; 23376: if (__builtin_expect(this->gptr() < this->egptr(), true)) 23376: { 23376: __ret = traits_type::to_int_type(*this->gptr()); 23376: this->gbump(1); 23376: } 23376: else 23376: __ret = this->uflow(); 23376: return __ret; 23376: } 23376: # 344 "/usr/include/c++/8/streambuf" 3 23376: int_type 23376: sgetc() 23376: { 23376: int_type __ret; 23376: if (__builtin_expect(this->gptr() < this->egptr(), true)) 23376: __ret = traits_type::to_int_type(*this->gptr()); 23376: else 23376: __ret = this->underflow(); 23376: return __ret; 23376: } 23376: # 363 "/usr/include/c++/8/streambuf" 3 23376: streamsize 23376: sgetn(char_type* __s, streamsize __n) 23376: { return this->xsgetn(__s, __n); } 23376: # 378 "/usr/include/c++/8/streambuf" 3 23376: int_type 23376: sputbackc(char_type __c) 23376: { 23376: int_type __ret; 23376: const bool __testpos = this->eback() < this->gptr(); 23376: if (__builtin_expect(!__testpos || 23376: !traits_type::eq(__c, this->gptr()[-1]), false)) 23376: __ret = this->pbackfail(traits_type::to_int_type(__c)); 23376: else 23376: { 23376: this->gbump(-1); 23376: __ret = traits_type::to_int_type(*this->gptr()); 23376: } 23376: return __ret; 23376: } 23376: # 403 "/usr/include/c++/8/streambuf" 3 23376: int_type 23376: sungetc() 23376: { 23376: int_type __ret; 23376: if (__builtin_expect(this->eback() < this->gptr(), true)) 23376: { 23376: this->gbump(-1); 23376: __ret = traits_type::to_int_type(*this->gptr()); 23376: } 23376: else 23376: __ret = this->pbackfail(); 23376: return __ret; 23376: } 23376: # 430 "/usr/include/c++/8/streambuf" 3 23376: int_type 23376: sputc(char_type __c) 23376: { 23376: int_type __ret; 23376: if (__builtin_expect(this->pptr() < this->epptr(), true)) 23376: { 23376: *this->pptr() = __c; 23376: this->pbump(1); 23376: __ret = traits_type::to_int_type(__c); 23376: } 23376: else 23376: __ret = this->overflow(traits_type::to_int_type(__c)); 23376: return __ret; 23376: } 23376: # 456 "/usr/include/c++/8/streambuf" 3 23376: streamsize 23376: sputn(const char_type* __s, streamsize __n) 23376: { return this->xsputn(__s, __n); } 23376: 23376: protected: 23376: # 470 "/usr/include/c++/8/streambuf" 3 23376: basic_streambuf() 23376: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 23376: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 23376: _M_buf_locale(locale()) 23376: { } 23376: # 488 "/usr/include/c++/8/streambuf" 3 23376: char_type* 23376: eback() const { return _M_in_beg; } 23376: 23376: char_type* 23376: gptr() const { return _M_in_cur; } 23376: 23376: char_type* 23376: egptr() const { return _M_in_end; } 23376: # 504 "/usr/include/c++/8/streambuf" 3 23376: void 23376: gbump(int __n) { _M_in_cur += __n; } 23376: # 515 "/usr/include/c++/8/streambuf" 3 23376: void 23376: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 23376: { 23376: _M_in_beg = __gbeg; 23376: _M_in_cur = __gnext; 23376: _M_in_end = __gend; 23376: } 23376: # 535 "/usr/include/c++/8/streambuf" 3 23376: char_type* 23376: pbase() const { return _M_out_beg; } 23376: 23376: char_type* 23376: pptr() const { return _M_out_cur; } 23376: 23376: char_type* 23376: epptr() const { return _M_out_end; } 23376: # 551 "/usr/include/c++/8/streambuf" 3 23376: void 23376: pbump(int __n) { _M_out_cur += __n; } 23376: # 561 "/usr/include/c++/8/streambuf" 3 23376: void 23376: setp(char_type* __pbeg, char_type* __pend) 23376: { 23376: _M_out_beg = _M_out_cur = __pbeg; 23376: _M_out_end = __pend; 23376: } 23376: # 582 "/usr/include/c++/8/streambuf" 3 23376: virtual void 23376: imbue(const locale& __loc __attribute__ ((__unused__))) 23376: { } 23376: # 597 "/usr/include/c++/8/streambuf" 3 23376: virtual basic_streambuf* 23376: setbuf(char_type*, streamsize) 23376: { return this; } 23376: # 608 "/usr/include/c++/8/streambuf" 3 23376: virtual pos_type 23376: seekoff(off_type, ios_base::seekdir, 23376: ios_base::openmode = ios_base::in | ios_base::out) 23376: { return pos_type(off_type(-1)); } 23376: # 620 "/usr/include/c++/8/streambuf" 3 23376: virtual pos_type 23376: seekpos(pos_type, 23376: ios_base::openmode = ios_base::in | ios_base::out) 23376: { return pos_type(off_type(-1)); } 23376: # 633 "/usr/include/c++/8/streambuf" 3 23376: virtual int 23376: sync() { return 0; } 23376: # 655 "/usr/include/c++/8/streambuf" 3 23376: virtual streamsize 23376: showmanyc() { return 0; } 23376: # 671 "/usr/include/c++/8/streambuf" 3 23376: virtual streamsize 23376: xsgetn(char_type* __s, streamsize __n); 23376: # 693 "/usr/include/c++/8/streambuf" 3 23376: virtual int_type 23376: underflow() 23376: { return traits_type::eof(); } 23376: # 706 "/usr/include/c++/8/streambuf" 3 23376: virtual int_type 23376: uflow() 23376: { 23376: int_type __ret = traits_type::eof(); 23376: const bool __testeof = traits_type::eq_int_type(this->underflow(), 23376: __ret); 23376: if (!__testeof) 23376: { 23376: __ret = traits_type::to_int_type(*this->gptr()); 23376: this->gbump(1); 23376: } 23376: return __ret; 23376: } 23376: # 730 "/usr/include/c++/8/streambuf" 3 23376: virtual int_type 23376: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 23376: { return traits_type::eof(); } 23376: # 748 "/usr/include/c++/8/streambuf" 3 23376: virtual streamsize 23376: xsputn(const char_type* __s, streamsize __n); 23376: # 774 "/usr/include/c++/8/streambuf" 3 23376: virtual int_type 23376: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 23376: { return traits_type::eof(); } 23376: 23376: 23376: 23376: public: 23376: # 790 "/usr/include/c++/8/streambuf" 3 23376: [[__deprecated__("stossc is deprecated, use sbumpc instead")]] 23376: 23376: void 23376: stossc() 23376: { 23376: if (this->gptr() < this->egptr()) 23376: this->gbump(1); 23376: else 23376: this->uflow(); 23376: } 23376: 23376: 23376: 23376: void 23376: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 23376: 23376: void 23376: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 23376: 23376: 23376: 23376: 23376: protected: 23376: 23376: basic_streambuf(const basic_streambuf&); 23376: 23376: basic_streambuf& 23376: operator=(const basic_streambuf&); 23376: 23376: 23376: void 23376: swap(basic_streambuf& __sb) 23376: { 23376: std::swap(_M_in_beg, __sb._M_in_beg); 23376: std::swap(_M_in_cur, __sb._M_in_cur); 23376: std::swap(_M_in_end, __sb._M_in_end); 23376: std::swap(_M_out_beg, __sb._M_out_beg); 23376: std::swap(_M_out_cur, __sb._M_out_cur); 23376: std::swap(_M_out_end, __sb._M_out_end); 23376: std::swap(_M_buf_locale, __sb._M_buf_locale); 23376: } 23376: 23376: }; 23376: 23376: 23376: template 23376: std::basic_streambuf<_CharT, _Traits>:: 23376: basic_streambuf(const basic_streambuf&) = default; 23376: 23376: template 23376: std::basic_streambuf<_CharT, _Traits>& 23376: std::basic_streambuf<_CharT, _Traits>:: 23376: operator=(const basic_streambuf&) = default; 23376: 23376: 23376: 23376: template<> 23376: streamsize 23376: __copy_streambufs_eof(basic_streambuf* __sbin, 23376: basic_streambuf* __sbout, bool& __ineof); 23376: 23376: template<> 23376: streamsize 23376: __copy_streambufs_eof(basic_streambuf* __sbin, 23376: basic_streambuf* __sbout, bool& __ineof); 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: # 1 "/usr/include/c++/8/bits/streambuf.tcc" 1 3 23376: # 37 "/usr/include/c++/8/bits/streambuf.tcc" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/streambuf.tcc" 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: streamsize 23376: basic_streambuf<_CharT, _Traits>:: 23376: xsgetn(char_type* __s, streamsize __n) 23376: { 23376: streamsize __ret = 0; 23376: while (__ret < __n) 23376: { 23376: const streamsize __buf_len = this->egptr() - this->gptr(); 23376: if (__buf_len) 23376: { 23376: const streamsize __remaining = __n - __ret; 23376: const streamsize __len = std::min(__buf_len, __remaining); 23376: traits_type::copy(__s, this->gptr(), __len); 23376: __ret += __len; 23376: __s += __len; 23376: this->__safe_gbump(__len); 23376: } 23376: 23376: if (__ret < __n) 23376: { 23376: const int_type __c = this->uflow(); 23376: if (!traits_type::eq_int_type(__c, traits_type::eof())) 23376: { 23376: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 23376: ++__ret; 23376: } 23376: else 23376: break; 23376: } 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: streamsize 23376: basic_streambuf<_CharT, _Traits>:: 23376: xsputn(const char_type* __s, streamsize __n) 23376: { 23376: streamsize __ret = 0; 23376: while (__ret < __n) 23376: { 23376: const streamsize __buf_len = this->epptr() - this->pptr(); 23376: if (__buf_len) 23376: { 23376: const streamsize __remaining = __n - __ret; 23376: const streamsize __len = std::min(__buf_len, __remaining); 23376: traits_type::copy(this->pptr(), __s, __len); 23376: __ret += __len; 23376: __s += __len; 23376: this->__safe_pbump(__len); 23376: } 23376: 23376: if (__ret < __n) 23376: { 23376: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 23376: if (!traits_type::eq_int_type(__c, traits_type::eof())) 23376: { 23376: ++__ret; 23376: ++__s; 23376: } 23376: else 23376: break; 23376: } 23376: } 23376: return __ret; 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: streamsize 23376: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 23376: basic_streambuf<_CharT, _Traits>* __sbout, 23376: bool& __ineof) 23376: { 23376: streamsize __ret = 0; 23376: __ineof = true; 23376: typename _Traits::int_type __c = __sbin->sgetc(); 23376: while (!_Traits::eq_int_type(__c, _Traits::eof())) 23376: { 23376: __c = __sbout->sputc(_Traits::to_char_type(__c)); 23376: if (_Traits::eq_int_type(__c, _Traits::eof())) 23376: { 23376: __ineof = false; 23376: break; 23376: } 23376: ++__ret; 23376: __c = __sbin->snextc(); 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: inline streamsize 23376: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 23376: basic_streambuf<_CharT, _Traits>* __sbout) 23376: { 23376: bool __ineof; 23376: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 23376: } 23376: 23376: 23376: 23376: 23376: extern template class basic_streambuf; 23376: extern template 23376: streamsize 23376: __copy_streambufs(basic_streambuf*, 23376: basic_streambuf*); 23376: extern template 23376: streamsize 23376: __copy_streambufs_eof(basic_streambuf*, 23376: basic_streambuf*, bool&); 23376: 23376: 23376: extern template class basic_streambuf; 23376: extern template 23376: streamsize 23376: __copy_streambufs(basic_streambuf*, 23376: basic_streambuf*); 23376: extern template 23376: streamsize 23376: __copy_streambufs_eof(basic_streambuf*, 23376: basic_streambuf*, bool&); 23376: 23376: 23376: 23376: 23376: } 23376: # 863 "/usr/include/c++/8/streambuf" 2 3 23376: # 44 "/usr/include/c++/8/ios" 2 3 23376: # 1 "/usr/include/c++/8/bits/basic_ios.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/locale_facets.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: 23376: # 1 "/usr/include/c++/8/cwctype" 1 3 23376: # 39 "/usr/include/c++/8/cwctype" 3 23376: 23376: # 40 "/usr/include/c++/8/cwctype" 3 23376: # 50 "/usr/include/c++/8/cwctype" 3 23376: # 1 "/usr/include/wctype.h" 1 3 4 23376: # 38 "/usr/include/wctype.h" 3 4 23376: # 1 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 1 3 4 23376: # 38 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 3 4 23376: typedef unsigned long int wctype_t; 23376: # 56 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 3 4 23376: enum 23376: { 23376: __ISwupper = 0, 23376: __ISwlower = 1, 23376: __ISwalpha = 2, 23376: __ISwdigit = 3, 23376: __ISwxdigit = 4, 23376: __ISwspace = 5, 23376: __ISwprint = 6, 23376: __ISwgraph = 7, 23376: __ISwblank = 8, 23376: __ISwcntrl = 9, 23376: __ISwpunct = 10, 23376: __ISwalnum = 11, 23376: 23376: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 23376: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 23376: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 23376: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 23376: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 23376: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 23376: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 23376: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 23376: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 23376: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 23376: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 23376: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 23376: }; 23376: 23376: 23376: 23376: extern "C" { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int iswalnum (wint_t __wc) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern int iswalpha (wint_t __wc) throw (); 23376: 23376: 23376: extern int iswcntrl (wint_t __wc) throw (); 23376: 23376: 23376: 23376: extern int iswdigit (wint_t __wc) throw (); 23376: 23376: 23376: 23376: extern int iswgraph (wint_t __wc) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswlower (wint_t __wc) throw (); 23376: 23376: 23376: extern int iswprint (wint_t __wc) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswpunct (wint_t __wc) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswspace (wint_t __wc) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswupper (wint_t __wc) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswxdigit (wint_t __wc) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern int iswblank (wint_t __wc) throw (); 23376: # 155 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 3 4 23376: extern wctype_t wctype (const char *__property) throw (); 23376: 23376: 23376: 23376: extern int iswctype (wint_t __wc, wctype_t __desc) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t towlower (wint_t __wc) throw (); 23376: 23376: 23376: extern wint_t towupper (wint_t __wc) throw (); 23376: 23376: } 23376: # 39 "/usr/include/wctype.h" 2 3 4 23376: 23376: 23376: 23376: 23376: 23376: extern "C" { 23376: 23376: 23376: 23376: typedef const __int32_t *wctrans_t; 23376: 23376: 23376: 23376: extern wctrans_t wctrans (const char *__property) throw (); 23376: 23376: 23376: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern int iswalnum_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: 23376: 23376: extern int iswalpha_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: extern int iswdigit_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: extern int iswgraph_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswlower_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: extern int iswprint_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswpunct_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswspace_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswupper_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: 23376: extern int iswblank_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: extern wctype_t wctype_l (const char *__property, locale_t __locale) 23376: throw (); 23376: 23376: 23376: 23376: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 23376: throw (); 23376: 23376: 23376: 23376: 23376: 23376: 23376: extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw (); 23376: 23376: 23376: 23376: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 23376: throw (); 23376: 23376: 23376: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 23376: locale_t __locale) throw (); 23376: 23376: 23376: 23376: } 23376: # 51 "/usr/include/c++/8/cwctype" 2 3 23376: # 80 "/usr/include/c++/8/cwctype" 3 23376: namespace std 23376: { 23376: using ::wctrans_t; 23376: using ::wctype_t; 23376: using ::wint_t; 23376: 23376: using ::iswalnum; 23376: using ::iswalpha; 23376: 23376: using ::iswblank; 23376: 23376: using ::iswcntrl; 23376: using ::iswctype; 23376: using ::iswdigit; 23376: using ::iswgraph; 23376: using ::iswlower; 23376: using ::iswprint; 23376: using ::iswpunct; 23376: using ::iswspace; 23376: using ::iswupper; 23376: using ::iswxdigit; 23376: using ::towctrans; 23376: using ::towlower; 23376: using ::towupper; 23376: using ::wctrans; 23376: using ::wctype; 23376: } 23376: # 40 "/usr/include/c++/8/bits/locale_facets.h" 2 3 23376: # 1 "/usr/include/c++/8/cctype" 1 3 23376: # 39 "/usr/include/c++/8/cctype" 3 23376: 23376: # 40 "/usr/include/c++/8/cctype" 3 23376: # 41 "/usr/include/c++/8/bits/locale_facets.h" 2 3 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_base.h" 1 3 23376: # 36 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_base.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: struct ctype_base 23376: { 23376: 23376: typedef const int* __to_type; 23376: 23376: 23376: 23376: typedef unsigned short mask; 23376: static const mask upper = _ISupper; 23376: static const mask lower = _ISlower; 23376: static const mask alpha = _ISalpha; 23376: static const mask digit = _ISdigit; 23376: static const mask xdigit = _ISxdigit; 23376: static const mask space = _ISspace; 23376: static const mask print = _ISprint; 23376: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 23376: static const mask cntrl = _IScntrl; 23376: static const mask punct = _ISpunct; 23376: static const mask alnum = _ISalpha | _ISdigit; 23376: 23376: static const mask blank = _ISblank; 23376: 23376: }; 23376: 23376: 23376: } 23376: # 42 "/usr/include/c++/8/bits/locale_facets.h" 2 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/streambuf_iterator.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 49 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 23376: template 23376: class istreambuf_iterator 23376: : public iterator 23376: 23376: 23376: 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _Traits traits_type; 23376: typedef typename _Traits::int_type int_type; 23376: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 23376: typedef basic_istream<_CharT, _Traits> istream_type; 23376: 23376: 23376: template 23376: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 23376: ostreambuf_iterator<_CharT2> >::__type 23376: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 23376: ostreambuf_iterator<_CharT2>); 23376: 23376: template 23376: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 23376: _CharT2*>::__type 23376: __copy_move_a2(istreambuf_iterator<_CharT2>, 23376: istreambuf_iterator<_CharT2>, _CharT2*); 23376: 23376: template 23376: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 23376: istreambuf_iterator<_CharT2> >::__type 23376: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 23376: const _CharT2&); 23376: 23376: template 23376: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 23376: void>::__type 23376: advance(istreambuf_iterator<_CharT2>&, _Distance); 23376: 23376: private: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: mutable streambuf_type* _M_sbuf; 23376: int_type _M_c; 23376: 23376: public: 23376: 23376: constexpr istreambuf_iterator() noexcept 23376: : _M_sbuf(0), _M_c(traits_type::eof()) { } 23376: 23376: 23376: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 23376: 23376: ~istreambuf_iterator() = default; 23376: 23376: 23376: 23376: istreambuf_iterator(istream_type& __s) noexcept 23376: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 23376: 23376: 23376: istreambuf_iterator(streambuf_type* __s) noexcept 23376: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 23376: 23376: 23376: 23376: 23376: char_type 23376: operator*() const 23376: { 23376: int_type __c = _M_get(); 23376: # 139 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 23376: return traits_type::to_char_type(__c); 23376: } 23376: 23376: 23376: istreambuf_iterator& 23376: operator++() 23376: { 23376: 23376: 23376: 23376: ; 23376: 23376: _M_sbuf->sbumpc(); 23376: _M_c = traits_type::eof(); 23376: return *this; 23376: } 23376: 23376: 23376: istreambuf_iterator 23376: operator++(int) 23376: { 23376: 23376: 23376: 23376: ; 23376: 23376: istreambuf_iterator __old = *this; 23376: __old._M_c = _M_sbuf->sbumpc(); 23376: _M_c = traits_type::eof(); 23376: return __old; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: equal(const istreambuf_iterator& __b) const 23376: { return _M_at_eof() == __b._M_at_eof(); } 23376: 23376: private: 23376: int_type 23376: _M_get() const 23376: { 23376: int_type __ret = _M_c; 23376: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 23376: _M_sbuf = 0; 23376: return __ret; 23376: } 23376: 23376: bool 23376: _M_at_eof() const 23376: { return _S_is_eof(_M_get()); } 23376: 23376: static bool 23376: _S_is_eof(int_type __c) 23376: { 23376: const int_type __eof = traits_type::eof(); 23376: return traits_type::eq_int_type(__c, __eof); 23376: } 23376: }; 23376: 23376: template 23376: inline bool 23376: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 23376: const istreambuf_iterator<_CharT, _Traits>& __b) 23376: { return __a.equal(__b); } 23376: 23376: template 23376: inline bool 23376: operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, 23376: const istreambuf_iterator<_CharT, _Traits>& __b) 23376: { return !__a.equal(__b); } 23376: 23376: 23376: template 23376: class ostreambuf_iterator 23376: : public iterator 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _Traits traits_type; 23376: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 23376: typedef basic_ostream<_CharT, _Traits> ostream_type; 23376: 23376: 23376: template 23376: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 23376: ostreambuf_iterator<_CharT2> >::__type 23376: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 23376: ostreambuf_iterator<_CharT2>); 23376: 23376: private: 23376: streambuf_type* _M_sbuf; 23376: bool _M_failed; 23376: 23376: public: 23376: 23376: ostreambuf_iterator(ostream_type& __s) noexcept 23376: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 23376: 23376: 23376: ostreambuf_iterator(streambuf_type* __s) noexcept 23376: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 23376: 23376: 23376: ostreambuf_iterator& 23376: operator=(_CharT __c) 23376: { 23376: if (!_M_failed && 23376: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 23376: _M_failed = true; 23376: return *this; 23376: } 23376: 23376: 23376: ostreambuf_iterator& 23376: operator*() 23376: { return *this; } 23376: 23376: 23376: ostreambuf_iterator& 23376: operator++(int) 23376: { return *this; } 23376: 23376: 23376: ostreambuf_iterator& 23376: operator++() 23376: { return *this; } 23376: 23376: 23376: bool 23376: failed() const noexcept 23376: { return _M_failed; } 23376: 23376: ostreambuf_iterator& 23376: _M_put(const _CharT* __ws, streamsize __len) 23376: { 23376: if (__builtin_expect(!_M_failed, true) 23376: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 23376: false)) 23376: _M_failed = true; 23376: return *this; 23376: } 23376: }; 23376: 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 23376: ostreambuf_iterator<_CharT> >::__type 23376: copy(istreambuf_iterator<_CharT> __first, 23376: istreambuf_iterator<_CharT> __last, 23376: ostreambuf_iterator<_CharT> __result) 23376: { 23376: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 23376: { 23376: bool __ineof; 23376: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 23376: if (!__ineof) 23376: __result._M_failed = true; 23376: } 23376: return __result; 23376: } 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 23376: ostreambuf_iterator<_CharT> >::__type 23376: __copy_move_a2(_CharT* __first, _CharT* __last, 23376: ostreambuf_iterator<_CharT> __result) 23376: { 23376: const streamsize __num = __last - __first; 23376: if (__num > 0) 23376: __result._M_put(__first, __num); 23376: return __result; 23376: } 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 23376: ostreambuf_iterator<_CharT> >::__type 23376: __copy_move_a2(const _CharT* __first, const _CharT* __last, 23376: ostreambuf_iterator<_CharT> __result) 23376: { 23376: const streamsize __num = __last - __first; 23376: if (__num > 0) 23376: __result._M_put(__first, __num); 23376: return __result; 23376: } 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 23376: _CharT*>::__type 23376: __copy_move_a2(istreambuf_iterator<_CharT> __first, 23376: istreambuf_iterator<_CharT> __last, _CharT* __result) 23376: { 23376: typedef istreambuf_iterator<_CharT> __is_iterator_type; 23376: typedef typename __is_iterator_type::traits_type traits_type; 23376: typedef typename __is_iterator_type::streambuf_type streambuf_type; 23376: typedef typename traits_type::int_type int_type; 23376: 23376: if (__first._M_sbuf && !__last._M_sbuf) 23376: { 23376: streambuf_type* __sb = __first._M_sbuf; 23376: int_type __c = __sb->sgetc(); 23376: while (!traits_type::eq_int_type(__c, traits_type::eof())) 23376: { 23376: const streamsize __n = __sb->egptr() - __sb->gptr(); 23376: if (__n > 1) 23376: { 23376: traits_type::copy(__result, __sb->gptr(), __n); 23376: __sb->__safe_gbump(__n); 23376: __result += __n; 23376: __c = __sb->underflow(); 23376: } 23376: else 23376: { 23376: *__result++ = traits_type::to_char_type(__c); 23376: __c = __sb->snextc(); 23376: } 23376: } 23376: } 23376: return __result; 23376: } 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 23376: istreambuf_iterator<_CharT> >::__type 23376: find(istreambuf_iterator<_CharT> __first, 23376: istreambuf_iterator<_CharT> __last, const _CharT& __val) 23376: { 23376: typedef istreambuf_iterator<_CharT> __is_iterator_type; 23376: typedef typename __is_iterator_type::traits_type traits_type; 23376: typedef typename __is_iterator_type::streambuf_type streambuf_type; 23376: typedef typename traits_type::int_type int_type; 23376: const int_type __eof = traits_type::eof(); 23376: 23376: if (__first._M_sbuf && !__last._M_sbuf) 23376: { 23376: const int_type __ival = traits_type::to_int_type(__val); 23376: streambuf_type* __sb = __first._M_sbuf; 23376: int_type __c = __sb->sgetc(); 23376: while (!traits_type::eq_int_type(__c, __eof) 23376: && !traits_type::eq_int_type(__c, __ival)) 23376: { 23376: streamsize __n = __sb->egptr() - __sb->gptr(); 23376: if (__n > 1) 23376: { 23376: const _CharT* __p = traits_type::find(__sb->gptr(), 23376: __n, __val); 23376: if (__p) 23376: __n = __p - __sb->gptr(); 23376: __sb->__safe_gbump(__n); 23376: __c = __sb->sgetc(); 23376: } 23376: else 23376: __c = __sb->snextc(); 23376: } 23376: 23376: __first._M_c = __eof; 23376: } 23376: 23376: return __first; 23376: } 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 23376: void>::__type 23376: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 23376: { 23376: if (__n == 0) 23376: return; 23376: 23376: ; 23376: 23376: 23376: ; 23376: 23376: typedef istreambuf_iterator<_CharT> __is_iterator_type; 23376: typedef typename __is_iterator_type::traits_type traits_type; 23376: typedef typename __is_iterator_type::streambuf_type streambuf_type; 23376: typedef typename traits_type::int_type int_type; 23376: const int_type __eof = traits_type::eof(); 23376: 23376: streambuf_type* __sb = __i._M_sbuf; 23376: while (__n > 0) 23376: { 23376: streamsize __size = __sb->egptr() - __sb->gptr(); 23376: if (__size > __n) 23376: { 23376: __sb->__safe_gbump(__n); 23376: break; 23376: } 23376: 23376: __sb->__safe_gbump(__size); 23376: __n -= __size; 23376: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 23376: { 23376: 23376: 23376: ; 23376: break; 23376: } 23376: } 23376: 23376: __i._M_c = __eof; 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: # 49 "/usr/include/c++/8/bits/locale_facets.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 71 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: template 23376: void 23376: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 23376: const __c_locale&) throw(); 23376: 23376: 23376: template<> 23376: void 23376: __convert_to_v(const char*, float&, ios_base::iostate&, 23376: const __c_locale&) throw(); 23376: 23376: template<> 23376: void 23376: __convert_to_v(const char*, double&, ios_base::iostate&, 23376: const __c_locale&) throw(); 23376: 23376: template<> 23376: void 23376: __convert_to_v(const char*, long double&, ios_base::iostate&, 23376: const __c_locale&) throw(); 23376: 23376: 23376: 23376: template 23376: struct __pad 23376: { 23376: static void 23376: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 23376: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _CharT* 23376: __add_grouping(_CharT* __s, _CharT __sep, 23376: const char* __gbeg, size_t __gsize, 23376: const _CharT* __first, const _CharT* __last); 23376: 23376: 23376: 23376: 23376: template 23376: inline 23376: ostreambuf_iterator<_CharT> 23376: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 23376: { 23376: __s._M_put(__ws, __len); 23376: return __s; 23376: } 23376: 23376: 23376: template 23376: inline 23376: _OutIter 23376: __write(_OutIter __s, const _CharT* __ws, int __len) 23376: { 23376: for (int __j = 0; __j < __len; __j++, ++__s) 23376: *__s = __ws[__j]; 23376: return __s; 23376: } 23376: # 149 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: template 23376: class __ctype_abstract_base : public locale::facet, public ctype_base 23376: { 23376: public: 23376: 23376: 23376: typedef _CharT char_type; 23376: # 168 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: bool 23376: is(mask __m, char_type __c) const 23376: { return this->do_is(__m, __c); } 23376: # 185 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char_type* 23376: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 23376: { return this->do_is(__lo, __hi, __vec); } 23376: # 201 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char_type* 23376: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 23376: { return this->do_scan_is(__m, __lo, __hi); } 23376: # 217 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char_type* 23376: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 23376: { return this->do_scan_not(__m, __lo, __hi); } 23376: # 231 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char_type 23376: toupper(char_type __c) const 23376: { return this->do_toupper(__c); } 23376: # 246 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char_type* 23376: toupper(char_type *__lo, const char_type* __hi) const 23376: { return this->do_toupper(__lo, __hi); } 23376: # 260 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char_type 23376: tolower(char_type __c) const 23376: { return this->do_tolower(__c); } 23376: # 275 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char_type* 23376: tolower(char_type* __lo, const char_type* __hi) const 23376: { return this->do_tolower(__lo, __hi); } 23376: # 292 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char_type 23376: widen(char __c) const 23376: { return this->do_widen(__c); } 23376: # 311 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char* 23376: widen(const char* __lo, const char* __hi, char_type* __to) const 23376: { return this->do_widen(__lo, __hi, __to); } 23376: # 330 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char 23376: narrow(char_type __c, char __dfault) const 23376: { return this->do_narrow(__c, __dfault); } 23376: # 352 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char_type* 23376: narrow(const char_type* __lo, const char_type* __hi, 23376: char __dfault, char* __to) const 23376: { return this->do_narrow(__lo, __hi, __dfault, __to); } 23376: 23376: protected: 23376: explicit 23376: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 23376: 23376: virtual 23376: ~__ctype_abstract_base() { } 23376: # 377 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual bool 23376: do_is(mask __m, char_type __c) const = 0; 23376: # 396 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_is(const char_type* __lo, const char_type* __hi, 23376: mask* __vec) const = 0; 23376: # 415 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_scan_is(mask __m, const char_type* __lo, 23376: const char_type* __hi) const = 0; 23376: # 434 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_scan_not(mask __m, const char_type* __lo, 23376: const char_type* __hi) const = 0; 23376: # 452 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_toupper(char_type __c) const = 0; 23376: # 469 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 23376: # 485 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_tolower(char_type __c) const = 0; 23376: # 502 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 23376: # 521 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_widen(char __c) const = 0; 23376: # 542 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char* 23376: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 23376: # 563 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char 23376: do_narrow(char_type __c, char __dfault) const = 0; 23376: # 588 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_narrow(const char_type* __lo, const char_type* __hi, 23376: char __dfault, char* __to) const = 0; 23376: }; 23376: # 611 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: template 23376: class ctype : public __ctype_abstract_base<_CharT> 23376: { 23376: public: 23376: 23376: typedef _CharT char_type; 23376: typedef typename __ctype_abstract_base<_CharT>::mask mask; 23376: 23376: 23376: static locale::id id; 23376: 23376: explicit 23376: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 23376: 23376: protected: 23376: virtual 23376: ~ctype(); 23376: 23376: virtual bool 23376: do_is(mask __m, char_type __c) const; 23376: 23376: virtual const char_type* 23376: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 23376: 23376: virtual const char_type* 23376: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 23376: 23376: virtual const char_type* 23376: do_scan_not(mask __m, const char_type* __lo, 23376: const char_type* __hi) const; 23376: 23376: virtual char_type 23376: do_toupper(char_type __c) const; 23376: 23376: virtual const char_type* 23376: do_toupper(char_type* __lo, const char_type* __hi) const; 23376: 23376: virtual char_type 23376: do_tolower(char_type __c) const; 23376: 23376: virtual const char_type* 23376: do_tolower(char_type* __lo, const char_type* __hi) const; 23376: 23376: virtual char_type 23376: do_widen(char __c) const; 23376: 23376: virtual const char* 23376: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 23376: 23376: virtual char 23376: do_narrow(char_type, char __dfault) const; 23376: 23376: virtual const char_type* 23376: do_narrow(const char_type* __lo, const char_type* __hi, 23376: char __dfault, char* __to) const; 23376: }; 23376: 23376: template 23376: locale::id ctype<_CharT>::id; 23376: # 680 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: template<> 23376: class ctype : public locale::facet, public ctype_base 23376: { 23376: public: 23376: 23376: 23376: typedef char char_type; 23376: 23376: protected: 23376: 23376: __c_locale _M_c_locale_ctype; 23376: bool _M_del; 23376: __to_type _M_toupper; 23376: __to_type _M_tolower; 23376: const mask* _M_table; 23376: mutable char _M_widen_ok; 23376: mutable char _M_widen[1 + static_cast(-1)]; 23376: mutable char _M_narrow[1 + static_cast(-1)]; 23376: mutable char _M_narrow_ok; 23376: 23376: 23376: public: 23376: 23376: static locale::id id; 23376: 23376: static const size_t table_size = 1 + static_cast(-1); 23376: # 717 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: explicit 23376: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 23376: # 730 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: explicit 23376: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 23376: size_t __refs = 0); 23376: # 743 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: inline bool 23376: is(mask __m, char __c) const; 23376: # 758 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: inline const char* 23376: is(const char* __lo, const char* __hi, mask* __vec) const; 23376: # 772 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: inline const char* 23376: scan_is(mask __m, const char* __lo, const char* __hi) const; 23376: # 786 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: inline const char* 23376: scan_not(mask __m, const char* __lo, const char* __hi) const; 23376: # 801 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char_type 23376: toupper(char_type __c) const 23376: { return this->do_toupper(__c); } 23376: # 818 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char_type* 23376: toupper(char_type *__lo, const char_type* __hi) const 23376: { return this->do_toupper(__lo, __hi); } 23376: # 834 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char_type 23376: tolower(char_type __c) const 23376: { return this->do_tolower(__c); } 23376: # 851 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char_type* 23376: tolower(char_type* __lo, const char_type* __hi) const 23376: { return this->do_tolower(__lo, __hi); } 23376: # 871 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char_type 23376: widen(char __c) const 23376: { 23376: if (_M_widen_ok) 23376: return _M_widen[static_cast(__c)]; 23376: this->_M_widen_init(); 23376: return this->do_widen(__c); 23376: } 23376: # 898 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char* 23376: widen(const char* __lo, const char* __hi, char_type* __to) const 23376: { 23376: if (_M_widen_ok == 1) 23376: { 23376: if (__builtin_expect(__hi != __lo, true)) 23376: __builtin_memcpy(__to, __lo, __hi - __lo); 23376: return __hi; 23376: } 23376: if (!_M_widen_ok) 23376: _M_widen_init(); 23376: return this->do_widen(__lo, __hi, __to); 23376: } 23376: # 930 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char 23376: narrow(char_type __c, char __dfault) const 23376: { 23376: if (_M_narrow[static_cast(__c)]) 23376: return _M_narrow[static_cast(__c)]; 23376: const char __t = do_narrow(__c, __dfault); 23376: if (__t != __dfault) 23376: _M_narrow[static_cast(__c)] = __t; 23376: return __t; 23376: } 23376: # 963 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: const char_type* 23376: narrow(const char_type* __lo, const char_type* __hi, 23376: char __dfault, char* __to) const 23376: { 23376: if (__builtin_expect(_M_narrow_ok == 1, true)) 23376: { 23376: if (__builtin_expect(__hi != __lo, true)) 23376: __builtin_memcpy(__to, __lo, __hi - __lo); 23376: return __hi; 23376: } 23376: if (!_M_narrow_ok) 23376: _M_narrow_init(); 23376: return this->do_narrow(__lo, __hi, __dfault, __to); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const mask* 23376: table() const throw() 23376: { return _M_table; } 23376: 23376: 23376: static const mask* 23376: classic_table() throw(); 23376: protected: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual 23376: ~ctype(); 23376: # 1013 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_toupper(char_type __c) const; 23376: # 1030 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_toupper(char_type* __lo, const char_type* __hi) const; 23376: # 1046 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_tolower(char_type __c) const; 23376: # 1063 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_tolower(char_type* __lo, const char_type* __hi) const; 23376: # 1083 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_widen(char __c) const 23376: { return __c; } 23376: # 1106 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char* 23376: do_widen(const char* __lo, const char* __hi, char_type* __to) const 23376: { 23376: if (__builtin_expect(__hi != __lo, true)) 23376: __builtin_memcpy(__to, __lo, __hi - __lo); 23376: return __hi; 23376: } 23376: # 1133 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char 23376: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 23376: { return __c; } 23376: # 1159 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_narrow(const char_type* __lo, const char_type* __hi, 23376: char __dfault __attribute__((__unused__)), char* __to) const 23376: { 23376: if (__builtin_expect(__hi != __lo, true)) 23376: __builtin_memcpy(__to, __lo, __hi - __lo); 23376: return __hi; 23376: } 23376: 23376: private: 23376: void _M_narrow_init() const; 23376: void _M_widen_init() const; 23376: }; 23376: # 1185 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: template<> 23376: class ctype : public __ctype_abstract_base 23376: { 23376: public: 23376: 23376: 23376: typedef wchar_t char_type; 23376: typedef wctype_t __wmask_type; 23376: 23376: protected: 23376: __c_locale _M_c_locale_ctype; 23376: 23376: 23376: bool _M_narrow_ok; 23376: char _M_narrow[128]; 23376: wint_t _M_widen[1 + static_cast(-1)]; 23376: 23376: 23376: mask _M_bit[16]; 23376: __wmask_type _M_wmask[16]; 23376: 23376: public: 23376: 23376: 23376: static locale::id id; 23376: # 1218 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: explicit 23376: ctype(size_t __refs = 0); 23376: # 1229 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: explicit 23376: ctype(__c_locale __cloc, size_t __refs = 0); 23376: 23376: protected: 23376: __wmask_type 23376: _M_convert_to_wmask(const mask __m) const throw(); 23376: 23376: 23376: virtual 23376: ~ctype(); 23376: # 1253 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual bool 23376: do_is(mask __m, char_type __c) const; 23376: # 1272 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 23376: # 1290 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 23376: # 1308 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_scan_not(mask __m, const char_type* __lo, 23376: const char_type* __hi) const; 23376: # 1325 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_toupper(char_type __c) const; 23376: # 1342 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_toupper(char_type* __lo, const char_type* __hi) const; 23376: # 1358 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_tolower(char_type __c) const; 23376: # 1375 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_tolower(char_type* __lo, const char_type* __hi) const; 23376: # 1395 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_widen(char __c) const; 23376: # 1417 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char* 23376: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 23376: # 1440 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char 23376: do_narrow(char_type __c, char __dfault) const; 23376: # 1466 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual const char_type* 23376: do_narrow(const char_type* __lo, const char_type* __hi, 23376: char __dfault, char* __to) const; 23376: 23376: 23376: void 23376: _M_initialize_ctype() throw(); 23376: }; 23376: 23376: 23376: 23376: template 23376: class ctype_byname : public ctype<_CharT> 23376: { 23376: public: 23376: typedef typename ctype<_CharT>::mask mask; 23376: 23376: explicit 23376: ctype_byname(const char* __s, size_t __refs = 0); 23376: 23376: 23376: explicit 23376: ctype_byname(const string& __s, size_t __refs = 0) 23376: : ctype_byname(__s.c_str(), __refs) { } 23376: 23376: 23376: protected: 23376: virtual 23376: ~ctype_byname() { } 23376: }; 23376: 23376: 23376: template<> 23376: class ctype_byname : public ctype 23376: { 23376: public: 23376: explicit 23376: ctype_byname(const char* __s, size_t __refs = 0); 23376: 23376: 23376: explicit 23376: ctype_byname(const string& __s, size_t __refs = 0); 23376: 23376: 23376: protected: 23376: virtual 23376: ~ctype_byname(); 23376: }; 23376: 23376: 23376: template<> 23376: class ctype_byname : public ctype 23376: { 23376: public: 23376: explicit 23376: ctype_byname(const char* __s, size_t __refs = 0); 23376: 23376: 23376: explicit 23376: ctype_byname(const string& __s, size_t __refs = 0); 23376: 23376: 23376: protected: 23376: virtual 23376: ~ctype_byname(); 23376: }; 23376: 23376: 23376: 23376: } 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_inline.h" 1 3 23376: # 37 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_inline.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: bool 23376: ctype:: 23376: is(mask __m, char __c) const 23376: { return _M_table[static_cast(__c)] & __m; } 23376: 23376: const char* 23376: ctype:: 23376: is(const char* __low, const char* __high, mask* __vec) const 23376: { 23376: while (__low < __high) 23376: *__vec++ = _M_table[static_cast(*__low++)]; 23376: return __high; 23376: } 23376: 23376: const char* 23376: ctype:: 23376: scan_is(mask __m, const char* __low, const char* __high) const 23376: { 23376: while (__low < __high 23376: && !(_M_table[static_cast(*__low)] & __m)) 23376: ++__low; 23376: return __low; 23376: } 23376: 23376: const char* 23376: ctype:: 23376: scan_not(mask __m, const char* __low, const char* __high) const 23376: { 23376: while (__low < __high 23376: && (_M_table[static_cast(*__low)] & __m) != 0) 23376: ++__low; 23376: return __low; 23376: } 23376: 23376: 23376: } 23376: # 1539 "/usr/include/c++/8/bits/locale_facets.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: class __num_base 23376: { 23376: public: 23376: 23376: 23376: enum 23376: { 23376: _S_ominus, 23376: _S_oplus, 23376: _S_ox, 23376: _S_oX, 23376: _S_odigits, 23376: _S_odigits_end = _S_odigits + 16, 23376: _S_oudigits = _S_odigits_end, 23376: _S_oudigits_end = _S_oudigits + 16, 23376: _S_oe = _S_odigits + 14, 23376: _S_oE = _S_oudigits + 14, 23376: _S_oend = _S_oudigits_end 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const char* _S_atoms_out; 23376: 23376: 23376: 23376: static const char* _S_atoms_in; 23376: 23376: enum 23376: { 23376: _S_iminus, 23376: _S_iplus, 23376: _S_ix, 23376: _S_iX, 23376: _S_izero, 23376: _S_ie = _S_izero + 14, 23376: _S_iE = _S_izero + 20, 23376: _S_iend = 26 23376: }; 23376: 23376: 23376: 23376: static void 23376: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 23376: }; 23376: 23376: template 23376: struct __numpunct_cache : public locale::facet 23376: { 23376: const char* _M_grouping; 23376: size_t _M_grouping_size; 23376: bool _M_use_grouping; 23376: const _CharT* _M_truename; 23376: size_t _M_truename_size; 23376: const _CharT* _M_falsename; 23376: size_t _M_falsename_size; 23376: _CharT _M_decimal_point; 23376: _CharT _M_thousands_sep; 23376: 23376: 23376: 23376: 23376: 23376: _CharT _M_atoms_out[__num_base::_S_oend]; 23376: 23376: 23376: 23376: 23376: 23376: _CharT _M_atoms_in[__num_base::_S_iend]; 23376: 23376: bool _M_allocated; 23376: 23376: __numpunct_cache(size_t __refs = 0) 23376: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 23376: _M_use_grouping(false), 23376: _M_truename(0), _M_truename_size(0), _M_falsename(0), 23376: _M_falsename_size(0), _M_decimal_point(_CharT()), 23376: _M_thousands_sep(_CharT()), _M_allocated(false) 23376: { } 23376: 23376: ~__numpunct_cache(); 23376: 23376: void 23376: _M_cache(const locale& __loc); 23376: 23376: private: 23376: __numpunct_cache& 23376: operator=(const __numpunct_cache&); 23376: 23376: explicit 23376: __numpunct_cache(const __numpunct_cache&); 23376: }; 23376: 23376: template 23376: __numpunct_cache<_CharT>::~__numpunct_cache() 23376: { 23376: if (_M_allocated) 23376: { 23376: delete [] _M_grouping; 23376: delete [] _M_truename; 23376: delete [] _M_falsename; 23376: } 23376: } 23376: 23376: namespace __cxx11 { 23376: # 1669 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: template 23376: class numpunct : public locale::facet 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: typedef __numpunct_cache<_CharT> __cache_type; 23376: 23376: protected: 23376: __cache_type* _M_data; 23376: 23376: public: 23376: 23376: static locale::id id; 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: numpunct(size_t __refs = 0) 23376: : facet(__refs), _M_data(0) 23376: { _M_initialize_numpunct(); } 23376: # 1707 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: explicit 23376: numpunct(__cache_type* __cache, size_t __refs = 0) 23376: : facet(__refs), _M_data(__cache) 23376: { _M_initialize_numpunct(); } 23376: # 1721 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: explicit 23376: numpunct(__c_locale __cloc, size_t __refs = 0) 23376: : facet(__refs), _M_data(0) 23376: { _M_initialize_numpunct(__cloc); } 23376: # 1735 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char_type 23376: decimal_point() const 23376: { return this->do_decimal_point(); } 23376: # 1748 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: char_type 23376: thousands_sep() const 23376: { return this->do_thousands_sep(); } 23376: # 1779 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: string 23376: grouping() const 23376: { return this->do_grouping(); } 23376: # 1792 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: string_type 23376: truename() const 23376: { return this->do_truename(); } 23376: # 1805 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: string_type 23376: falsename() const 23376: { return this->do_falsename(); } 23376: 23376: protected: 23376: 23376: virtual 23376: ~numpunct(); 23376: # 1822 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_decimal_point() const 23376: { return _M_data->_M_decimal_point; } 23376: # 1834 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual char_type 23376: do_thousands_sep() const 23376: { return _M_data->_M_thousands_sep; } 23376: # 1847 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual string 23376: do_grouping() const 23376: { return _M_data->_M_grouping; } 23376: # 1860 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual string_type 23376: do_truename() const 23376: { return _M_data->_M_truename; } 23376: # 1873 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual string_type 23376: do_falsename() const 23376: { return _M_data->_M_falsename; } 23376: 23376: 23376: void 23376: _M_initialize_numpunct(__c_locale __cloc = 0); 23376: }; 23376: 23376: template 23376: locale::id numpunct<_CharT>::id; 23376: 23376: template<> 23376: numpunct::~numpunct(); 23376: 23376: template<> 23376: void 23376: numpunct::_M_initialize_numpunct(__c_locale __cloc); 23376: 23376: 23376: template<> 23376: numpunct::~numpunct(); 23376: 23376: template<> 23376: void 23376: numpunct::_M_initialize_numpunct(__c_locale __cloc); 23376: 23376: 23376: 23376: template 23376: class numpunct_byname : public numpunct<_CharT> 23376: { 23376: public: 23376: typedef _CharT char_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: explicit 23376: numpunct_byname(const char* __s, size_t __refs = 0) 23376: : numpunct<_CharT>(__refs) 23376: { 23376: if (__builtin_strcmp(__s, "C") != 0 23376: && __builtin_strcmp(__s, "POSIX") != 0) 23376: { 23376: __c_locale __tmp; 23376: this->_S_create_c_locale(__tmp, __s); 23376: this->_M_initialize_numpunct(__tmp); 23376: this->_S_destroy_c_locale(__tmp); 23376: } 23376: } 23376: 23376: 23376: explicit 23376: numpunct_byname(const string& __s, size_t __refs = 0) 23376: : numpunct_byname(__s.c_str(), __refs) { } 23376: 23376: 23376: protected: 23376: virtual 23376: ~numpunct_byname() { } 23376: }; 23376: 23376: } 23376: 23376: 23376: # 1951 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: template 23376: class num_get : public locale::facet 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _InIter iter_type; 23376: 23376: 23376: 23376: static locale::id id; 23376: # 1972 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: explicit 23376: num_get(size_t __refs = 0) : facet(__refs) { } 23376: # 1998 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, bool& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: # 2035 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, long& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, unsigned short& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, unsigned int& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, unsigned long& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: 23376: 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, long long& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, unsigned long long& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: # 2095 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, float& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, double& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, long double& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: # 2138 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: iter_type 23376: get(iter_type __in, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, void*& __v) const 23376: { return this->do_get(__in, __end, __io, __err, __v); } 23376: 23376: protected: 23376: 23376: virtual ~num_get() { } 23376: 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iter_type 23376: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 23376: string&) const; 23376: 23376: template 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: iter_type 23376: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 23376: _ValueT&) const; 23376: 23376: template 23376: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 23376: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 23376: { 23376: int __ret = -1; 23376: if (__len <= 10) 23376: { 23376: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 23376: __ret = __c - _CharT2('0'); 23376: } 23376: else 23376: { 23376: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 23376: __ret = __c - _CharT2('0'); 23376: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 23376: __ret = 10 + (__c - _CharT2('a')); 23376: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 23376: __ret = 10 + (__c - _CharT2('A')); 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: typename __gnu_cxx::__enable_if::__value, 23376: int>::__type 23376: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 23376: { 23376: int __ret = -1; 23376: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 23376: if (__q) 23376: { 23376: __ret = __q - __zero; 23376: if (__ret > 15) 23376: __ret -= 6; 23376: } 23376: return __ret; 23376: } 23376: # 2211 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual iter_type 23376: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 23376: 23376: virtual iter_type 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, long& __v) const 23376: { return _M_extract_int(__beg, __end, __io, __err, __v); } 23376: 23376: virtual iter_type 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, unsigned short& __v) const 23376: { return _M_extract_int(__beg, __end, __io, __err, __v); } 23376: 23376: virtual iter_type 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, unsigned int& __v) const 23376: { return _M_extract_int(__beg, __end, __io, __err, __v); } 23376: 23376: virtual iter_type 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, unsigned long& __v) const 23376: { return _M_extract_int(__beg, __end, __io, __err, __v); } 23376: 23376: 23376: virtual iter_type 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, long long& __v) const 23376: { return _M_extract_int(__beg, __end, __io, __err, __v); } 23376: 23376: virtual iter_type 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, unsigned long long& __v) const 23376: { return _M_extract_int(__beg, __end, __io, __err, __v); } 23376: 23376: 23376: virtual iter_type 23376: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 23376: 23376: virtual iter_type 23376: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 23376: double&) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual iter_type 23376: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 23376: long double&) const; 23376: 23376: 23376: virtual iter_type 23376: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 23376: # 2274 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: }; 23376: 23376: template 23376: locale::id num_get<_CharT, _InIter>::id; 23376: # 2292 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: template 23376: class num_put : public locale::facet 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _OutIter iter_type; 23376: 23376: 23376: 23376: static locale::id id; 23376: # 2313 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: explicit 23376: num_put(size_t __refs = 0) : facet(__refs) { } 23376: # 2331 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 23376: { return this->do_put(__s, __io, __fill, __v); } 23376: # 2373 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 23376: { return this->do_put(__s, __io, __fill, __v); } 23376: 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, 23376: unsigned long __v) const 23376: { return this->do_put(__s, __io, __fill, __v); } 23376: 23376: 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 23376: { return this->do_put(__s, __io, __fill, __v); } 23376: 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, 23376: unsigned long long __v) const 23376: { return this->do_put(__s, __io, __fill, __v); } 23376: # 2436 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 23376: { return this->do_put(__s, __io, __fill, __v); } 23376: 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, 23376: long double __v) const 23376: { return this->do_put(__s, __io, __fill, __v); } 23376: # 2461 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, 23376: const void* __v) const 23376: { return this->do_put(__s, __io, __fill, __v); } 23376: 23376: protected: 23376: template 23376: iter_type 23376: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 23376: char __mod, _ValueT __v) const; 23376: 23376: void 23376: _M_group_float(const char* __grouping, size_t __grouping_size, 23376: char_type __sep, const char_type* __p, char_type* __new, 23376: char_type* __cs, int& __len) const; 23376: 23376: template 23376: iter_type 23376: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 23376: _ValueT __v) const; 23376: 23376: void 23376: _M_group_int(const char* __grouping, size_t __grouping_size, 23376: char_type __sep, ios_base& __io, char_type* __new, 23376: char_type* __cs, int& __len) const; 23376: 23376: void 23376: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 23376: char_type* __new, const char_type* __cs, int& __len) const; 23376: 23376: 23376: virtual 23376: ~num_put() { } 23376: # 2509 "/usr/include/c++/8/bits/locale_facets.h" 3 23376: virtual iter_type 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 23376: 23376: virtual iter_type 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 23376: { return _M_insert_int(__s, __io, __fill, __v); } 23376: 23376: virtual iter_type 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, 23376: unsigned long __v) const 23376: { return _M_insert_int(__s, __io, __fill, __v); } 23376: 23376: 23376: virtual iter_type 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, 23376: long long __v) const 23376: { return _M_insert_int(__s, __io, __fill, __v); } 23376: 23376: virtual iter_type 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, 23376: unsigned long long __v) const 23376: { return _M_insert_int(__s, __io, __fill, __v); } 23376: 23376: 23376: virtual iter_type 23376: do_put(iter_type, ios_base&, char_type, double) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual iter_type 23376: do_put(iter_type, ios_base&, char_type, long double) const; 23376: 23376: 23376: virtual iter_type 23376: do_put(iter_type, ios_base&, char_type, const void*) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: }; 23376: 23376: template 23376: locale::id num_put<_CharT, _OutIter>::id; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: isspace(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::space, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: isprint(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::print, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: iscntrl(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: isupper(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::upper, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: islower(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::lower, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: isalpha(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: isdigit(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::digit, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: ispunct(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::punct, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: isxdigit(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: isalnum(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 23376: 23376: 23376: template 23376: inline bool 23376: isgraph(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::graph, __c); } 23376: 23376: 23376: 23376: template 23376: inline bool 23376: isblank(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).is(ctype_base::blank, __c); } 23376: 23376: 23376: 23376: template 23376: inline _CharT 23376: toupper(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).toupper(__c); } 23376: 23376: 23376: template 23376: inline _CharT 23376: tolower(_CharT __c, const locale& __loc) 23376: { return use_facet >(__loc).tolower(__c); } 23376: 23376: 23376: } 23376: 23376: # 1 "/usr/include/c++/8/bits/locale_facets.tcc" 1 3 23376: # 33 "/usr/include/c++/8/bits/locale_facets.tcc" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/locale_facets.tcc" 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: template 23376: struct __use_cache 23376: { 23376: const _Facet* 23376: operator() (const locale& __loc) const; 23376: }; 23376: 23376: 23376: template 23376: struct __use_cache<__numpunct_cache<_CharT> > 23376: { 23376: const __numpunct_cache<_CharT>* 23376: operator() (const locale& __loc) const 23376: { 23376: const size_t __i = numpunct<_CharT>::id._M_id(); 23376: const locale::facet** __caches = __loc._M_impl->_M_caches; 23376: if (!__caches[__i]) 23376: { 23376: __numpunct_cache<_CharT>* __tmp = 0; 23376: try 23376: { 23376: __tmp = new __numpunct_cache<_CharT>; 23376: __tmp->_M_cache(__loc); 23376: } 23376: catch(...) 23376: { 23376: delete __tmp; 23376: throw; 23376: } 23376: __loc._M_impl->_M_install_cache(__tmp, __i); 23376: } 23376: return static_cast*>(__caches[__i]); 23376: } 23376: }; 23376: 23376: template 23376: void 23376: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 23376: { 23376: const numpunct<_CharT>& __np = use_facet >(__loc); 23376: 23376: char* __grouping = 0; 23376: _CharT* __truename = 0; 23376: _CharT* __falsename = 0; 23376: try 23376: { 23376: const string& __g = __np.grouping(); 23376: _M_grouping_size = __g.size(); 23376: __grouping = new char[_M_grouping_size]; 23376: __g.copy(__grouping, _M_grouping_size); 23376: _M_use_grouping = (_M_grouping_size 23376: && static_cast(__grouping[0]) > 0 23376: && (__grouping[0] 23376: != __gnu_cxx::__numeric_traits::__max)); 23376: 23376: const basic_string<_CharT>& __tn = __np.truename(); 23376: _M_truename_size = __tn.size(); 23376: __truename = new _CharT[_M_truename_size]; 23376: __tn.copy(__truename, _M_truename_size); 23376: 23376: const basic_string<_CharT>& __fn = __np.falsename(); 23376: _M_falsename_size = __fn.size(); 23376: __falsename = new _CharT[_M_falsename_size]; 23376: __fn.copy(__falsename, _M_falsename_size); 23376: 23376: _M_decimal_point = __np.decimal_point(); 23376: _M_thousands_sep = __np.thousands_sep(); 23376: 23376: const ctype<_CharT>& __ct = use_facet >(__loc); 23376: __ct.widen(__num_base::_S_atoms_out, 23376: __num_base::_S_atoms_out 23376: + __num_base::_S_oend, _M_atoms_out); 23376: __ct.widen(__num_base::_S_atoms_in, 23376: __num_base::_S_atoms_in 23376: + __num_base::_S_iend, _M_atoms_in); 23376: 23376: _M_grouping = __grouping; 23376: _M_truename = __truename; 23376: _M_falsename = __falsename; 23376: _M_allocated = true; 23376: } 23376: catch(...) 23376: { 23376: delete [] __grouping; 23376: delete [] __truename; 23376: delete [] __falsename; 23376: throw; 23376: } 23376: } 23376: # 139 "/usr/include/c++/8/bits/locale_facets.tcc" 3 23376: __attribute__ ((__pure__)) bool 23376: __verify_grouping(const char* __grouping, size_t __grouping_size, 23376: const string& __grouping_tmp) throw (); 23376: 23376: 23376: 23376: template 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: _InIter 23376: num_get<_CharT, _InIter>:: 23376: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 23376: ios_base::iostate& __err, string& __xtrc) const 23376: { 23376: typedef char_traits<_CharT> __traits_type; 23376: typedef __numpunct_cache<_CharT> __cache_type; 23376: __use_cache<__cache_type> __uc; 23376: const locale& __loc = __io._M_getloc(); 23376: const __cache_type* __lc = __uc(__loc); 23376: const _CharT* __lit = __lc->_M_atoms_in; 23376: char_type __c = char_type(); 23376: 23376: 23376: bool __testeof = __beg == __end; 23376: 23376: 23376: if (!__testeof) 23376: { 23376: __c = *__beg; 23376: const bool __plus = __c == __lit[__num_base::_S_iplus]; 23376: if ((__plus || __c == __lit[__num_base::_S_iminus]) 23376: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 23376: && !(__c == __lc->_M_decimal_point)) 23376: { 23376: __xtrc += __plus ? '+' : '-'; 23376: if (++__beg != __end) 23376: __c = *__beg; 23376: else 23376: __testeof = true; 23376: } 23376: } 23376: 23376: 23376: bool __found_mantissa = false; 23376: int __sep_pos = 0; 23376: while (!__testeof) 23376: { 23376: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 23376: || __c == __lc->_M_decimal_point) 23376: break; 23376: else if (__c == __lit[__num_base::_S_izero]) 23376: { 23376: if (!__found_mantissa) 23376: { 23376: __xtrc += '0'; 23376: __found_mantissa = true; 23376: } 23376: ++__sep_pos; 23376: 23376: if (++__beg != __end) 23376: __c = *__beg; 23376: else 23376: __testeof = true; 23376: } 23376: else 23376: break; 23376: } 23376: 23376: 23376: bool __found_dec = false; 23376: bool __found_sci = false; 23376: string __found_grouping; 23376: if (__lc->_M_use_grouping) 23376: __found_grouping.reserve(32); 23376: const char_type* __lit_zero = __lit + __num_base::_S_izero; 23376: 23376: if (!__lc->_M_allocated) 23376: 23376: while (!__testeof) 23376: { 23376: const int __digit = _M_find(__lit_zero, 10, __c); 23376: if (__digit != -1) 23376: { 23376: __xtrc += '0' + __digit; 23376: __found_mantissa = true; 23376: } 23376: else if (__c == __lc->_M_decimal_point 23376: && !__found_dec && !__found_sci) 23376: { 23376: __xtrc += '.'; 23376: __found_dec = true; 23376: } 23376: else if ((__c == __lit[__num_base::_S_ie] 23376: || __c == __lit[__num_base::_S_iE]) 23376: && !__found_sci && __found_mantissa) 23376: { 23376: 23376: __xtrc += 'e'; 23376: __found_sci = true; 23376: 23376: 23376: if (++__beg != __end) 23376: { 23376: __c = *__beg; 23376: const bool __plus = __c == __lit[__num_base::_S_iplus]; 23376: if (__plus || __c == __lit[__num_base::_S_iminus]) 23376: __xtrc += __plus ? '+' : '-'; 23376: else 23376: continue; 23376: } 23376: else 23376: { 23376: __testeof = true; 23376: break; 23376: } 23376: } 23376: else 23376: break; 23376: 23376: if (++__beg != __end) 23376: __c = *__beg; 23376: else 23376: __testeof = true; 23376: } 23376: else 23376: while (!__testeof) 23376: { 23376: 23376: 23376: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 23376: { 23376: if (!__found_dec && !__found_sci) 23376: { 23376: 23376: 23376: if (__sep_pos) 23376: { 23376: __found_grouping += static_cast(__sep_pos); 23376: __sep_pos = 0; 23376: } 23376: else 23376: { 23376: 23376: 23376: __xtrc.clear(); 23376: break; 23376: } 23376: } 23376: else 23376: break; 23376: } 23376: else if (__c == __lc->_M_decimal_point) 23376: { 23376: if (!__found_dec && !__found_sci) 23376: { 23376: 23376: 23376: 23376: if (__found_grouping.size()) 23376: __found_grouping += static_cast(__sep_pos); 23376: __xtrc += '.'; 23376: __found_dec = true; 23376: } 23376: else 23376: break; 23376: } 23376: else 23376: { 23376: const char_type* __q = 23376: __traits_type::find(__lit_zero, 10, __c); 23376: if (__q) 23376: { 23376: __xtrc += '0' + (__q - __lit_zero); 23376: __found_mantissa = true; 23376: ++__sep_pos; 23376: } 23376: else if ((__c == __lit[__num_base::_S_ie] 23376: || __c == __lit[__num_base::_S_iE]) 23376: && !__found_sci && __found_mantissa) 23376: { 23376: 23376: if (__found_grouping.size() && !__found_dec) 23376: __found_grouping += static_cast(__sep_pos); 23376: __xtrc += 'e'; 23376: __found_sci = true; 23376: 23376: 23376: if (++__beg != __end) 23376: { 23376: __c = *__beg; 23376: const bool __plus = __c == __lit[__num_base::_S_iplus]; 23376: if ((__plus || __c == __lit[__num_base::_S_iminus]) 23376: && !(__lc->_M_use_grouping 23376: && __c == __lc->_M_thousands_sep) 23376: && !(__c == __lc->_M_decimal_point)) 23376: __xtrc += __plus ? '+' : '-'; 23376: else 23376: continue; 23376: } 23376: else 23376: { 23376: __testeof = true; 23376: break; 23376: } 23376: } 23376: else 23376: break; 23376: } 23376: 23376: if (++__beg != __end) 23376: __c = *__beg; 23376: else 23376: __testeof = true; 23376: } 23376: 23376: 23376: 23376: if (__found_grouping.size()) 23376: { 23376: 23376: if (!__found_dec && !__found_sci) 23376: __found_grouping += static_cast(__sep_pos); 23376: 23376: if (!std::__verify_grouping(__lc->_M_grouping, 23376: __lc->_M_grouping_size, 23376: __found_grouping)) 23376: __err = ios_base::failbit; 23376: } 23376: 23376: return __beg; 23376: } 23376: 23376: template 23376: template 23376: __attribute ((__abi_tag__ ("cxx11"))) 23376: _InIter 23376: num_get<_CharT, _InIter>:: 23376: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 23376: ios_base::iostate& __err, _ValueT& __v) const 23376: { 23376: typedef char_traits<_CharT> __traits_type; 23376: using __gnu_cxx::__add_unsigned; 23376: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 23376: typedef __numpunct_cache<_CharT> __cache_type; 23376: __use_cache<__cache_type> __uc; 23376: const locale& __loc = __io._M_getloc(); 23376: const __cache_type* __lc = __uc(__loc); 23376: const _CharT* __lit = __lc->_M_atoms_in; 23376: char_type __c = char_type(); 23376: 23376: 23376: const ios_base::fmtflags __basefield = __io.flags() 23376: & ios_base::basefield; 23376: const bool __oct = __basefield == ios_base::oct; 23376: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 23376: 23376: 23376: bool __testeof = __beg == __end; 23376: 23376: 23376: bool __negative = false; 23376: if (!__testeof) 23376: { 23376: __c = *__beg; 23376: __negative = __c == __lit[__num_base::_S_iminus]; 23376: if ((__negative || __c == __lit[__num_base::_S_iplus]) 23376: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 23376: && !(__c == __lc->_M_decimal_point)) 23376: { 23376: if (++__beg != __end) 23376: __c = *__beg; 23376: else 23376: __testeof = true; 23376: } 23376: } 23376: 23376: 23376: 23376: bool __found_zero = false; 23376: int __sep_pos = 0; 23376: while (!__testeof) 23376: { 23376: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 23376: || __c == __lc->_M_decimal_point) 23376: break; 23376: else if (__c == __lit[__num_base::_S_izero] 23376: && (!__found_zero || __base == 10)) 23376: { 23376: __found_zero = true; 23376: ++__sep_pos; 23376: if (__basefield == 0) 23376: __base = 8; 23376: if (__base == 8) 23376: __sep_pos = 0; 23376: } 23376: else if (__found_zero 23376: && (__c == __lit[__num_base::_S_ix] 23376: || __c == __lit[__num_base::_S_iX])) 23376: { 23376: if (__basefield == 0) 23376: __base = 16; 23376: if (__base == 16) 23376: { 23376: __found_zero = false; 23376: __sep_pos = 0; 23376: } 23376: else 23376: break; 23376: } 23376: else 23376: break; 23376: 23376: if (++__beg != __end) 23376: { 23376: __c = *__beg; 23376: if (!__found_zero) 23376: break; 23376: } 23376: else 23376: __testeof = true; 23376: } 23376: 23376: 23376: 23376: const size_t __len = (__base == 16 ? __num_base::_S_iend 23376: - __num_base::_S_izero : __base); 23376: 23376: 23376: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 23376: string __found_grouping; 23376: if (__lc->_M_use_grouping) 23376: __found_grouping.reserve(32); 23376: bool __testfail = false; 23376: bool __testoverflow = false; 23376: const __unsigned_type __max = 23376: (__negative && __num_traits::__is_signed) 23376: ? -static_cast<__unsigned_type>(__num_traits::__min) 23376: : __num_traits::__max; 23376: const __unsigned_type __smax = __max / __base; 23376: __unsigned_type __result = 0; 23376: int __digit = 0; 23376: const char_type* __lit_zero = __lit + __num_base::_S_izero; 23376: 23376: if (!__lc->_M_allocated) 23376: 23376: while (!__testeof) 23376: { 23376: __digit = _M_find(__lit_zero, __len, __c); 23376: if (__digit == -1) 23376: break; 23376: 23376: if (__result > __smax) 23376: __testoverflow = true; 23376: else 23376: { 23376: __result *= __base; 23376: __testoverflow |= __result > __max - __digit; 23376: __result += __digit; 23376: ++__sep_pos; 23376: } 23376: 23376: if (++__beg != __end) 23376: __c = *__beg; 23376: else 23376: __testeof = true; 23376: } 23376: else 23376: while (!__testeof) 23376: { 23376: 23376: 23376: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 23376: { 23376: 23376: 23376: if (__sep_pos) 23376: { 23376: __found_grouping += static_cast(__sep_pos); 23376: __sep_pos = 0; 23376: } 23376: else 23376: { 23376: __testfail = true; 23376: break; 23376: } 23376: } 23376: else if (__c == __lc->_M_decimal_point) 23376: break; 23376: else 23376: { 23376: const char_type* __q = 23376: __traits_type::find(__lit_zero, __len, __c); 23376: if (!__q) 23376: break; 23376: 23376: __digit = __q - __lit_zero; 23376: if (__digit > 15) 23376: __digit -= 6; 23376: if (__result > __smax) 23376: __testoverflow = true; 23376: else 23376: { 23376: __result *= __base; 23376: __testoverflow |= __result > __max - __digit; 23376: __result += __digit; 23376: ++__sep_pos; 23376: } 23376: } 23376: 23376: if (++__beg != __end) 23376: __c = *__beg; 23376: else 23376: __testeof = true; 23376: } 23376: 23376: 23376: 23376: if (__found_grouping.size()) 23376: { 23376: 23376: __found_grouping += static_cast(__sep_pos); 23376: 23376: if (!std::__verify_grouping(__lc->_M_grouping, 23376: __lc->_M_grouping_size, 23376: __found_grouping)) 23376: __err = ios_base::failbit; 23376: } 23376: 23376: 23376: 23376: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 23376: || __testfail) 23376: { 23376: __v = 0; 23376: __err = ios_base::failbit; 23376: } 23376: else if (__testoverflow) 23376: { 23376: if (__negative && __num_traits::__is_signed) 23376: __v = __num_traits::__min; 23376: else 23376: __v = __num_traits::__max; 23376: __err = ios_base::failbit; 23376: } 23376: else 23376: __v = __negative ? -__result : __result; 23376: 23376: if (__testeof) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: 23376: 23376: 23376: template 23376: _InIter 23376: num_get<_CharT, _InIter>:: 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, bool& __v) const 23376: { 23376: if (!(__io.flags() & ios_base::boolalpha)) 23376: { 23376: 23376: 23376: 23376: long __l = -1; 23376: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 23376: if (__l == 0 || __l == 1) 23376: __v = bool(__l); 23376: else 23376: { 23376: 23376: 23376: __v = true; 23376: __err = ios_base::failbit; 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: } 23376: } 23376: else 23376: { 23376: 23376: typedef __numpunct_cache<_CharT> __cache_type; 23376: __use_cache<__cache_type> __uc; 23376: const locale& __loc = __io._M_getloc(); 23376: const __cache_type* __lc = __uc(__loc); 23376: 23376: bool __testf = true; 23376: bool __testt = true; 23376: bool __donef = __lc->_M_falsename_size == 0; 23376: bool __donet = __lc->_M_truename_size == 0; 23376: bool __testeof = false; 23376: size_t __n = 0; 23376: while (!__donef || !__donet) 23376: { 23376: if (__beg == __end) 23376: { 23376: __testeof = true; 23376: break; 23376: } 23376: 23376: const char_type __c = *__beg; 23376: 23376: if (!__donef) 23376: __testf = __c == __lc->_M_falsename[__n]; 23376: 23376: if (!__testf && __donet) 23376: break; 23376: 23376: if (!__donet) 23376: __testt = __c == __lc->_M_truename[__n]; 23376: 23376: if (!__testt && __donef) 23376: break; 23376: 23376: if (!__testt && !__testf) 23376: break; 23376: 23376: ++__n; 23376: ++__beg; 23376: 23376: __donef = !__testf || __n >= __lc->_M_falsename_size; 23376: __donet = !__testt || __n >= __lc->_M_truename_size; 23376: } 23376: if (__testf && __n == __lc->_M_falsename_size && __n) 23376: { 23376: __v = false; 23376: if (__testt && __n == __lc->_M_truename_size) 23376: __err = ios_base::failbit; 23376: else 23376: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 23376: } 23376: else if (__testt && __n == __lc->_M_truename_size && __n) 23376: { 23376: __v = true; 23376: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 23376: } 23376: else 23376: { 23376: 23376: 23376: __v = false; 23376: __err = ios_base::failbit; 23376: if (__testeof) 23376: __err |= ios_base::eofbit; 23376: } 23376: } 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: num_get<_CharT, _InIter>:: 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, float& __v) const 23376: { 23376: string __xtrc; 23376: __xtrc.reserve(32); 23376: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 23376: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: num_get<_CharT, _InIter>:: 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, double& __v) const 23376: { 23376: string __xtrc; 23376: __xtrc.reserve(32); 23376: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 23376: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: # 735 "/usr/include/c++/8/bits/locale_facets.tcc" 3 23376: template 23376: _InIter 23376: num_get<_CharT, _InIter>:: 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, long double& __v) const 23376: { 23376: string __xtrc; 23376: __xtrc.reserve(32); 23376: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 23376: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: num_get<_CharT, _InIter>:: 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, void*& __v) const 23376: { 23376: 23376: typedef ios_base::fmtflags fmtflags; 23376: const fmtflags __fmt = __io.flags(); 23376: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 23376: 23376: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 23376: <= sizeof(unsigned long)), 23376: unsigned long, unsigned long long>::__type _UIntPtrType; 23376: 23376: _UIntPtrType __ul; 23376: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 23376: 23376: 23376: __io.flags(__fmt); 23376: 23376: __v = reinterpret_cast(__ul); 23376: return __beg; 23376: } 23376: 23376: 23376: 23376: template 23376: void 23376: num_put<_CharT, _OutIter>:: 23376: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 23376: _CharT* __new, const _CharT* __cs, int& __len) const 23376: { 23376: 23376: 23376: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 23376: __cs, __w, __len); 23376: __len = static_cast(__w); 23376: } 23376: 23376: 23376: 23376: template 23376: int 23376: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 23376: ios_base::fmtflags __flags, bool __dec) 23376: { 23376: _CharT* __buf = __bufend; 23376: if (__builtin_expect(__dec, true)) 23376: { 23376: 23376: do 23376: { 23376: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 23376: __v /= 10; 23376: } 23376: while (__v != 0); 23376: } 23376: else if ((__flags & ios_base::basefield) == ios_base::oct) 23376: { 23376: 23376: do 23376: { 23376: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 23376: __v >>= 3; 23376: } 23376: while (__v != 0); 23376: } 23376: else 23376: { 23376: 23376: const bool __uppercase = __flags & ios_base::uppercase; 23376: const int __case_offset = __uppercase ? __num_base::_S_oudigits 23376: : __num_base::_S_odigits; 23376: do 23376: { 23376: *--__buf = __lit[(__v & 0xf) + __case_offset]; 23376: __v >>= 4; 23376: } 23376: while (__v != 0); 23376: } 23376: return __bufend - __buf; 23376: } 23376: 23376: 23376: 23376: template 23376: void 23376: num_put<_CharT, _OutIter>:: 23376: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 23376: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 23376: { 23376: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 23376: __grouping_size, __cs, __cs + __len); 23376: __len = __p - __new; 23376: } 23376: 23376: template 23376: template 23376: _OutIter 23376: num_put<_CharT, _OutIter>:: 23376: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 23376: _ValueT __v) const 23376: { 23376: using __gnu_cxx::__add_unsigned; 23376: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 23376: typedef __numpunct_cache<_CharT> __cache_type; 23376: __use_cache<__cache_type> __uc; 23376: const locale& __loc = __io._M_getloc(); 23376: const __cache_type* __lc = __uc(__loc); 23376: const _CharT* __lit = __lc->_M_atoms_out; 23376: const ios_base::fmtflags __flags = __io.flags(); 23376: 23376: 23376: const int __ilen = 5 * sizeof(_ValueT); 23376: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 23376: * __ilen)); 23376: 23376: 23376: 23376: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 23376: const bool __dec = (__basefield != ios_base::oct 23376: && __basefield != ios_base::hex); 23376: const __unsigned_type __u = ((__v > 0 || !__dec) 23376: ? __unsigned_type(__v) 23376: : -__unsigned_type(__v)); 23376: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 23376: __cs += __ilen - __len; 23376: 23376: 23376: if (__lc->_M_use_grouping) 23376: { 23376: 23376: 23376: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 23376: * (__len + 1) 23376: * 2)); 23376: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 23376: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 23376: __cs = __cs2 + 2; 23376: } 23376: 23376: 23376: if (__builtin_expect(__dec, true)) 23376: { 23376: 23376: if (__v >= 0) 23376: { 23376: if (bool(__flags & ios_base::showpos) 23376: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 23376: *--__cs = __lit[__num_base::_S_oplus], ++__len; 23376: } 23376: else 23376: *--__cs = __lit[__num_base::_S_ominus], ++__len; 23376: } 23376: else if (bool(__flags & ios_base::showbase) && __v) 23376: { 23376: if (__basefield == ios_base::oct) 23376: *--__cs = __lit[__num_base::_S_odigits], ++__len; 23376: else 23376: { 23376: 23376: const bool __uppercase = __flags & ios_base::uppercase; 23376: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 23376: 23376: *--__cs = __lit[__num_base::_S_odigits]; 23376: __len += 2; 23376: } 23376: } 23376: 23376: 23376: const streamsize __w = __io.width(); 23376: if (__w > static_cast(__len)) 23376: { 23376: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 23376: * __w)); 23376: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 23376: __cs = __cs3; 23376: } 23376: __io.width(0); 23376: 23376: 23376: 23376: return std::__write(__s, __cs, __len); 23376: } 23376: 23376: template 23376: void 23376: num_put<_CharT, _OutIter>:: 23376: _M_group_float(const char* __grouping, size_t __grouping_size, 23376: _CharT __sep, const _CharT* __p, _CharT* __new, 23376: _CharT* __cs, int& __len) const 23376: { 23376: 23376: 23376: 23376: const int __declen = __p ? __p - __cs : __len; 23376: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 23376: __grouping_size, 23376: __cs, __cs + __declen); 23376: 23376: 23376: int __newlen = __p2 - __new; 23376: if (__p) 23376: { 23376: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 23376: __newlen += __len - __declen; 23376: } 23376: __len = __newlen; 23376: } 23376: # 971 "/usr/include/c++/8/bits/locale_facets.tcc" 3 23376: template 23376: template 23376: _OutIter 23376: num_put<_CharT, _OutIter>:: 23376: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 23376: _ValueT __v) const 23376: { 23376: typedef __numpunct_cache<_CharT> __cache_type; 23376: __use_cache<__cache_type> __uc; 23376: const locale& __loc = __io._M_getloc(); 23376: const __cache_type* __lc = __uc(__loc); 23376: 23376: 23376: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 23376: 23376: const int __max_digits = 23376: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 23376: 23376: 23376: int __len; 23376: 23376: char __fbuf[16]; 23376: __num_base::_S_format_float(__io, __fbuf, __mod); 23376: 23376: 23376: 23376: const bool __use_prec = 23376: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 23376: 23376: 23376: 23376: int __cs_size = __max_digits * 3; 23376: char* __cs = static_cast(__builtin_alloca(__cs_size)); 23376: if (__use_prec) 23376: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 23376: __fbuf, __prec, __v); 23376: else 23376: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 23376: __fbuf, __v); 23376: 23376: 23376: if (__len >= __cs_size) 23376: { 23376: __cs_size = __len + 1; 23376: __cs = static_cast(__builtin_alloca(__cs_size)); 23376: if (__use_prec) 23376: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 23376: __fbuf, __prec, __v); 23376: else 23376: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 23376: __fbuf, __v); 23376: } 23376: # 1044 "/usr/include/c++/8/bits/locale_facets.tcc" 3 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: 23376: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 23376: * __len)); 23376: __ctype.widen(__cs, __cs + __len, __ws); 23376: 23376: 23376: _CharT* __wp = 0; 23376: const char* __p = char_traits::find(__cs, __len, '.'); 23376: if (__p) 23376: { 23376: __wp = __ws + (__p - __cs); 23376: *__wp = __lc->_M_decimal_point; 23376: } 23376: 23376: 23376: 23376: 23376: if (__lc->_M_use_grouping 23376: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 23376: && __cs[1] >= '0' && __cs[2] >= '0'))) 23376: { 23376: 23376: 23376: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 23376: * __len * 2)); 23376: 23376: streamsize __off = 0; 23376: if (__cs[0] == '-' || __cs[0] == '+') 23376: { 23376: __off = 1; 23376: __ws2[0] = __ws[0]; 23376: __len -= 1; 23376: } 23376: 23376: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 23376: __lc->_M_thousands_sep, __wp, __ws2 + __off, 23376: __ws + __off, __len); 23376: __len += __off; 23376: 23376: __ws = __ws2; 23376: } 23376: 23376: 23376: const streamsize __w = __io.width(); 23376: if (__w > static_cast(__len)) 23376: { 23376: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 23376: * __w)); 23376: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 23376: __ws = __ws3; 23376: } 23376: __io.width(0); 23376: 23376: 23376: 23376: return std::__write(__s, __ws, __len); 23376: } 23376: 23376: template 23376: _OutIter 23376: num_put<_CharT, _OutIter>:: 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 23376: { 23376: const ios_base::fmtflags __flags = __io.flags(); 23376: if ((__flags & ios_base::boolalpha) == 0) 23376: { 23376: const long __l = __v; 23376: __s = _M_insert_int(__s, __io, __fill, __l); 23376: } 23376: else 23376: { 23376: typedef __numpunct_cache<_CharT> __cache_type; 23376: __use_cache<__cache_type> __uc; 23376: const locale& __loc = __io._M_getloc(); 23376: const __cache_type* __lc = __uc(__loc); 23376: 23376: const _CharT* __name = __v ? __lc->_M_truename 23376: : __lc->_M_falsename; 23376: int __len = __v ? __lc->_M_truename_size 23376: : __lc->_M_falsename_size; 23376: 23376: const streamsize __w = __io.width(); 23376: if (__w > static_cast(__len)) 23376: { 23376: const streamsize __plen = __w - __len; 23376: _CharT* __ps 23376: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 23376: * __plen)); 23376: 23376: char_traits<_CharT>::assign(__ps, __plen, __fill); 23376: __io.width(0); 23376: 23376: if ((__flags & ios_base::adjustfield) == ios_base::left) 23376: { 23376: __s = std::__write(__s, __name, __len); 23376: __s = std::__write(__s, __ps, __plen); 23376: } 23376: else 23376: { 23376: __s = std::__write(__s, __ps, __plen); 23376: __s = std::__write(__s, __name, __len); 23376: } 23376: return __s; 23376: } 23376: __io.width(0); 23376: __s = std::__write(__s, __name, __len); 23376: } 23376: return __s; 23376: } 23376: 23376: template 23376: _OutIter 23376: num_put<_CharT, _OutIter>:: 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 23376: { return _M_insert_float(__s, __io, __fill, char(), __v); } 23376: # 1169 "/usr/include/c++/8/bits/locale_facets.tcc" 3 23376: template 23376: _OutIter 23376: num_put<_CharT, _OutIter>:: 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, 23376: long double __v) const 23376: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 23376: 23376: template 23376: _OutIter 23376: num_put<_CharT, _OutIter>:: 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, 23376: const void* __v) const 23376: { 23376: const ios_base::fmtflags __flags = __io.flags(); 23376: const ios_base::fmtflags __fmt = ~(ios_base::basefield 23376: | ios_base::uppercase); 23376: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 23376: 23376: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 23376: <= sizeof(unsigned long)), 23376: unsigned long, unsigned long long>::__type _UIntPtrType; 23376: 23376: __s = _M_insert_int(__s, __io, __fill, 23376: reinterpret_cast<_UIntPtrType>(__v)); 23376: __io.flags(__flags); 23376: return __s; 23376: } 23376: 23376: 23376: # 1206 "/usr/include/c++/8/bits/locale_facets.tcc" 3 23376: template 23376: void 23376: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 23376: _CharT* __news, const _CharT* __olds, 23376: streamsize __newlen, streamsize __oldlen) 23376: { 23376: const size_t __plen = static_cast(__newlen - __oldlen); 23376: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 23376: 23376: 23376: if (__adjust == ios_base::left) 23376: { 23376: _Traits::copy(__news, __olds, __oldlen); 23376: _Traits::assign(__news + __oldlen, __plen, __fill); 23376: return; 23376: } 23376: 23376: size_t __mod = 0; 23376: if (__adjust == ios_base::internal) 23376: { 23376: 23376: 23376: 23376: const locale& __loc = __io._M_getloc(); 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: 23376: if (__ctype.widen('-') == __olds[0] 23376: || __ctype.widen('+') == __olds[0]) 23376: { 23376: __news[0] = __olds[0]; 23376: __mod = 1; 23376: ++__news; 23376: } 23376: else if (__ctype.widen('0') == __olds[0] 23376: && __oldlen > 1 23376: && (__ctype.widen('x') == __olds[1] 23376: || __ctype.widen('X') == __olds[1])) 23376: { 23376: __news[0] = __olds[0]; 23376: __news[1] = __olds[1]; 23376: __mod = 2; 23376: __news += 2; 23376: } 23376: 23376: } 23376: _Traits::assign(__news, __plen, __fill); 23376: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 23376: } 23376: 23376: template 23376: _CharT* 23376: __add_grouping(_CharT* __s, _CharT __sep, 23376: const char* __gbeg, size_t __gsize, 23376: const _CharT* __first, const _CharT* __last) 23376: { 23376: size_t __idx = 0; 23376: size_t __ctr = 0; 23376: 23376: while (__last - __first > __gbeg[__idx] 23376: && static_cast(__gbeg[__idx]) > 0 23376: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 23376: { 23376: __last -= __gbeg[__idx]; 23376: __idx < __gsize - 1 ? ++__idx : ++__ctr; 23376: } 23376: 23376: while (__first != __last) 23376: *__s++ = *__first++; 23376: 23376: while (__ctr--) 23376: { 23376: *__s++ = __sep; 23376: for (char __i = __gbeg[__idx]; __i > 0; --__i) 23376: *__s++ = *__first++; 23376: } 23376: 23376: while (__idx--) 23376: { 23376: *__s++ = __sep; 23376: for (char __i = __gbeg[__idx]; __i > 0; --__i) 23376: *__s++ = *__first++; 23376: } 23376: 23376: return __s; 23376: } 23376: 23376: 23376: 23376: 23376: extern template class __cxx11:: numpunct; 23376: extern template class __cxx11:: numpunct_byname; 23376: extern template class num_get; 23376: extern template class num_put; 23376: extern template class ctype_byname; 23376: 23376: extern template 23376: const ctype& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const numpunct& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const num_put& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const num_get& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: 23376: extern template class __cxx11:: numpunct; 23376: extern template class __cxx11:: numpunct_byname; 23376: extern template class num_get; 23376: extern template class num_put; 23376: extern template class ctype_byname; 23376: 23376: extern template 23376: const ctype& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const numpunct& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const num_put& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const num_get& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: 23376: 23376: 23376: } 23376: # 2656 "/usr/include/c++/8/bits/locale_facets.h" 2 3 23376: # 38 "/usr/include/c++/8/bits/basic_ios.h" 2 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: inline const _Facet& 23376: __check_facet(const _Facet* __f) 23376: { 23376: if (!__f) 23376: __throw_bad_cast(); 23376: return *__f; 23376: } 23376: # 66 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: template 23376: class basic_ios : public ios_base 23376: { 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef typename _Traits::int_type int_type; 23376: typedef typename _Traits::pos_type pos_type; 23376: typedef typename _Traits::off_type off_type; 23376: typedef _Traits traits_type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef ctype<_CharT> __ctype_type; 23376: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 23376: __num_put_type; 23376: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 23376: __num_get_type; 23376: 23376: 23376: 23376: protected: 23376: basic_ostream<_CharT, _Traits>* _M_tie; 23376: mutable char_type _M_fill; 23376: mutable bool _M_fill_init; 23376: basic_streambuf<_CharT, _Traits>* _M_streambuf; 23376: 23376: 23376: const __ctype_type* _M_ctype; 23376: 23376: const __num_put_type* _M_num_put; 23376: 23376: const __num_get_type* _M_num_get; 23376: 23376: public: 23376: # 117 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: explicit operator bool() const 23376: { return !this->fail(); } 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: operator!() const 23376: { return this->fail(); } 23376: # 136 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: iostate 23376: rdstate() const 23376: { return _M_streambuf_state; } 23376: # 147 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: void 23376: clear(iostate __state = goodbit); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: setstate(iostate __state) 23376: { this->clear(this->rdstate() | __state); } 23376: 23376: 23376: 23376: 23376: void 23376: _M_setstate(iostate __state) 23376: { 23376: 23376: 23376: _M_streambuf_state |= __state; 23376: if (this->exceptions() & __state) 23376: throw; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: good() const 23376: { return this->rdstate() == 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: eof() const 23376: { return (this->rdstate() & eofbit) != 0; } 23376: # 200 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: bool 23376: fail() const 23376: { return (this->rdstate() & (badbit | failbit)) != 0; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: bad() const 23376: { return (this->rdstate() & badbit) != 0; } 23376: # 221 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: iostate 23376: exceptions() const 23376: { return _M_exception; } 23376: # 256 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: void 23376: exceptions(iostate __except) 23376: { 23376: _M_exception = __except; 23376: this->clear(_M_streambuf_state); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 23376: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 23376: _M_ctype(0), _M_num_put(0), _M_num_get(0) 23376: { this->init(__sb); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual 23376: ~basic_ios() { } 23376: # 294 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: basic_ostream<_CharT, _Traits>* 23376: tie() const 23376: { return _M_tie; } 23376: # 306 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: basic_ostream<_CharT, _Traits>* 23376: tie(basic_ostream<_CharT, _Traits>* __tiestr) 23376: { 23376: basic_ostream<_CharT, _Traits>* __old = _M_tie; 23376: _M_tie = __tiestr; 23376: return __old; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_streambuf<_CharT, _Traits>* 23376: rdbuf() const 23376: { return _M_streambuf; } 23376: # 346 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: basic_streambuf<_CharT, _Traits>* 23376: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 23376: # 360 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: basic_ios& 23376: copyfmt(const basic_ios& __rhs); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: char_type 23376: fill() const 23376: { 23376: if (!_M_fill_init) 23376: { 23376: _M_fill = this->widen(' '); 23376: _M_fill_init = true; 23376: } 23376: return _M_fill; 23376: } 23376: # 389 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: char_type 23376: fill(char_type __ch) 23376: { 23376: char_type __old = this->fill(); 23376: _M_fill = __ch; 23376: return __old; 23376: } 23376: # 409 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: locale 23376: imbue(const locale& __loc); 23376: # 429 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: char 23376: narrow(char_type __c, char __dfault) const 23376: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 23376: # 448 "/usr/include/c++/8/bits/basic_ios.h" 3 23376: char_type 23376: widen(char __c) const 23376: { return __check_facet(_M_ctype).widen(__c); } 23376: 23376: protected: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: basic_ios() 23376: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 23376: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 23376: { } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: init(basic_streambuf<_CharT, _Traits>* __sb); 23376: 23376: 23376: basic_ios(const basic_ios&) = delete; 23376: basic_ios& operator=(const basic_ios&) = delete; 23376: 23376: void 23376: move(basic_ios& __rhs) 23376: { 23376: ios_base::_M_move(__rhs); 23376: _M_cache_locale(_M_ios_locale); 23376: this->tie(__rhs.tie(nullptr)); 23376: _M_fill = __rhs._M_fill; 23376: _M_fill_init = __rhs._M_fill_init; 23376: _M_streambuf = nullptr; 23376: } 23376: 23376: void 23376: move(basic_ios&& __rhs) 23376: { this->move(__rhs); } 23376: 23376: void 23376: swap(basic_ios& __rhs) noexcept 23376: { 23376: ios_base::_M_swap(__rhs); 23376: _M_cache_locale(_M_ios_locale); 23376: __rhs._M_cache_locale(__rhs._M_ios_locale); 23376: std::swap(_M_tie, __rhs._M_tie); 23376: std::swap(_M_fill, __rhs._M_fill); 23376: std::swap(_M_fill_init, __rhs._M_fill_init); 23376: } 23376: 23376: void 23376: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 23376: { _M_streambuf = __sb; } 23376: 23376: 23376: void 23376: _M_cache_locale(const locale& __loc); 23376: }; 23376: 23376: 23376: } 23376: 23376: # 1 "/usr/include/c++/8/bits/basic_ios.tcc" 1 3 23376: # 33 "/usr/include/c++/8/bits/basic_ios.tcc" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/basic_ios.tcc" 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: void 23376: basic_ios<_CharT, _Traits>::clear(iostate __state) 23376: { 23376: if (this->rdbuf()) 23376: _M_streambuf_state = __state; 23376: else 23376: _M_streambuf_state = __state | badbit; 23376: if (this->exceptions() & this->rdstate()) 23376: __throw_ios_failure(("basic_ios::clear")); 23376: } 23376: 23376: template 23376: basic_streambuf<_CharT, _Traits>* 23376: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 23376: { 23376: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 23376: _M_streambuf = __sb; 23376: this->clear(); 23376: return __old; 23376: } 23376: 23376: template 23376: basic_ios<_CharT, _Traits>& 23376: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 23376: { 23376: 23376: 23376: if (this != &__rhs) 23376: { 23376: 23376: 23376: 23376: 23376: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 23376: _M_local_word : new _Words[__rhs._M_word_size]; 23376: 23376: 23376: _Callback_list* __cb = __rhs._M_callbacks; 23376: if (__cb) 23376: __cb->_M_add_reference(); 23376: _M_call_callbacks(erase_event); 23376: if (_M_word != _M_local_word) 23376: { 23376: delete [] _M_word; 23376: _M_word = 0; 23376: } 23376: _M_dispose_callbacks(); 23376: 23376: 23376: _M_callbacks = __cb; 23376: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 23376: __words[__i] = __rhs._M_word[__i]; 23376: _M_word = __words; 23376: _M_word_size = __rhs._M_word_size; 23376: 23376: this->flags(__rhs.flags()); 23376: this->width(__rhs.width()); 23376: this->precision(__rhs.precision()); 23376: this->tie(__rhs.tie()); 23376: this->fill(__rhs.fill()); 23376: _M_ios_locale = __rhs.getloc(); 23376: _M_cache_locale(_M_ios_locale); 23376: 23376: _M_call_callbacks(copyfmt_event); 23376: 23376: 23376: this->exceptions(__rhs.exceptions()); 23376: } 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: locale 23376: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 23376: { 23376: locale __old(this->getloc()); 23376: ios_base::imbue(__loc); 23376: _M_cache_locale(__loc); 23376: if (this->rdbuf() != 0) 23376: this->rdbuf()->pubimbue(__loc); 23376: return __old; 23376: } 23376: 23376: template 23376: void 23376: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 23376: { 23376: 23376: ios_base::_M_init(); 23376: 23376: 23376: _M_cache_locale(_M_ios_locale); 23376: # 146 "/usr/include/c++/8/bits/basic_ios.tcc" 3 23376: _M_fill = _CharT(); 23376: _M_fill_init = false; 23376: 23376: _M_tie = 0; 23376: _M_exception = goodbit; 23376: _M_streambuf = __sb; 23376: _M_streambuf_state = __sb ? goodbit : badbit; 23376: } 23376: 23376: template 23376: void 23376: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 23376: { 23376: if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) 23376: _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); 23376: else 23376: _M_ctype = 0; 23376: 23376: if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) 23376: _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); 23376: else 23376: _M_num_put = 0; 23376: 23376: if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) 23376: _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); 23376: else 23376: _M_num_get = 0; 23376: } 23376: 23376: 23376: 23376: 23376: extern template class basic_ios; 23376: 23376: 23376: extern template class basic_ios; 23376: 23376: 23376: 23376: 23376: } 23376: # 517 "/usr/include/c++/8/bits/basic_ios.h" 2 3 23376: # 45 "/usr/include/c++/8/ios" 2 3 23376: # 39 "/usr/include/c++/8/istream" 2 3 23376: # 1 "/usr/include/c++/8/ostream" 1 3 23376: # 36 "/usr/include/c++/8/ostream" 3 23376: 23376: # 37 "/usr/include/c++/8/ostream" 3 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 57 "/usr/include/c++/8/ostream" 3 23376: template 23376: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 23376: { 23376: public: 23376: 23376: typedef _CharT char_type; 23376: typedef typename _Traits::int_type int_type; 23376: typedef typename _Traits::pos_type pos_type; 23376: typedef typename _Traits::off_type off_type; 23376: typedef _Traits traits_type; 23376: 23376: 23376: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 23376: typedef basic_ios<_CharT, _Traits> __ios_type; 23376: typedef basic_ostream<_CharT, _Traits> __ostream_type; 23376: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 23376: __num_put_type; 23376: typedef ctype<_CharT> __ctype_type; 23376: # 83 "/usr/include/c++/8/ostream" 3 23376: explicit 23376: basic_ostream(__streambuf_type* __sb) 23376: { this->init(__sb); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual 23376: ~basic_ostream() { } 23376: 23376: 23376: class sentry; 23376: friend class sentry; 23376: # 107 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 23376: { 23376: 23376: 23376: 23376: return __pf(*this); 23376: } 23376: 23376: __ostream_type& 23376: operator<<(__ios_type& (*__pf)(__ios_type&)) 23376: { 23376: 23376: 23376: 23376: __pf(*this); 23376: return *this; 23376: } 23376: 23376: __ostream_type& 23376: operator<<(ios_base& (*__pf) (ios_base&)) 23376: { 23376: 23376: 23376: 23376: __pf(*this); 23376: return *this; 23376: } 23376: # 165 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: operator<<(long __n) 23376: { return _M_insert(__n); } 23376: 23376: __ostream_type& 23376: operator<<(unsigned long __n) 23376: { return _M_insert(__n); } 23376: 23376: __ostream_type& 23376: operator<<(bool __n) 23376: { return _M_insert(__n); } 23376: 23376: __ostream_type& 23376: operator<<(short __n); 23376: 23376: __ostream_type& 23376: operator<<(unsigned short __n) 23376: { 23376: 23376: 23376: return _M_insert(static_cast(__n)); 23376: } 23376: 23376: __ostream_type& 23376: operator<<(int __n); 23376: 23376: __ostream_type& 23376: operator<<(unsigned int __n) 23376: { 23376: 23376: 23376: return _M_insert(static_cast(__n)); 23376: } 23376: 23376: 23376: __ostream_type& 23376: operator<<(long long __n) 23376: { return _M_insert(__n); } 23376: 23376: __ostream_type& 23376: operator<<(unsigned long long __n) 23376: { return _M_insert(__n); } 23376: # 219 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: operator<<(double __f) 23376: { return _M_insert(__f); } 23376: 23376: __ostream_type& 23376: operator<<(float __f) 23376: { 23376: 23376: 23376: return _M_insert(static_cast(__f)); 23376: } 23376: 23376: __ostream_type& 23376: operator<<(long double __f) 23376: { return _M_insert(__f); } 23376: # 244 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: operator<<(const void* __p) 23376: { return _M_insert(__p); } 23376: # 269 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: operator<<(__streambuf_type* __sb); 23376: # 302 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: put(char_type __c); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: _M_write(const char_type* __s, streamsize __n) 23376: { 23376: const streamsize __put = this->rdbuf()->sputn(__s, __n); 23376: if (__put != __n) 23376: this->setstate(ios_base::badbit); 23376: } 23376: # 334 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: write(const char_type* __s, streamsize __n); 23376: # 347 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: flush(); 23376: # 357 "/usr/include/c++/8/ostream" 3 23376: pos_type 23376: tellp(); 23376: # 368 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: seekp(pos_type); 23376: # 380 "/usr/include/c++/8/ostream" 3 23376: __ostream_type& 23376: seekp(off_type, ios_base::seekdir); 23376: 23376: protected: 23376: basic_ostream() 23376: { this->init(0); } 23376: 23376: 23376: 23376: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 23376: 23376: basic_ostream(const basic_ostream&) = delete; 23376: 23376: basic_ostream(basic_ostream&& __rhs) 23376: : __ios_type() 23376: { __ios_type::move(__rhs); } 23376: 23376: 23376: 23376: basic_ostream& operator=(const basic_ostream&) = delete; 23376: 23376: basic_ostream& 23376: operator=(basic_ostream&& __rhs) 23376: { 23376: swap(__rhs); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(basic_ostream& __rhs) 23376: { __ios_type::swap(__rhs); } 23376: 23376: 23376: template 23376: __ostream_type& 23376: _M_insert(_ValueT __v); 23376: }; 23376: # 425 "/usr/include/c++/8/ostream" 3 23376: template 23376: class basic_ostream<_CharT, _Traits>::sentry 23376: { 23376: 23376: bool _M_ok; 23376: basic_ostream<_CharT, _Traits>& _M_os; 23376: 23376: public: 23376: # 444 "/usr/include/c++/8/ostream" 3 23376: explicit 23376: sentry(basic_ostream<_CharT, _Traits>& __os); 23376: # 454 "/usr/include/c++/8/ostream" 3 23376: ~sentry() 23376: { 23376: 23376: if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 23376: { 23376: 23376: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 23376: _M_os.setstate(ios_base::badbit); 23376: } 23376: } 23376: # 473 "/usr/include/c++/8/ostream" 3 23376: explicit 23376: 23376: operator bool() const 23376: { return _M_ok; } 23376: }; 23376: # 495 "/usr/include/c++/8/ostream" 3 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 23376: { return __ostream_insert(__out, &__c, 1); } 23376: 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 23376: { return (__out << __out.widen(__c)); } 23376: 23376: 23376: template 23376: inline basic_ostream& 23376: operator<<(basic_ostream& __out, char __c) 23376: { return __ostream_insert(__out, &__c, 1); } 23376: 23376: 23376: template 23376: inline basic_ostream& 23376: operator<<(basic_ostream& __out, signed char __c) 23376: { return (__out << static_cast(__c)); } 23376: 23376: template 23376: inline basic_ostream& 23376: operator<<(basic_ostream& __out, unsigned char __c) 23376: { return (__out << static_cast(__c)); } 23376: # 537 "/usr/include/c++/8/ostream" 3 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 23376: { 23376: if (!__s) 23376: __out.setstate(ios_base::badbit); 23376: else 23376: __ostream_insert(__out, __s, 23376: static_cast(_Traits::length(__s))); 23376: return __out; 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits> & 23376: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 23376: 23376: 23376: template 23376: inline basic_ostream& 23376: operator<<(basic_ostream& __out, const char* __s) 23376: { 23376: if (!__s) 23376: __out.setstate(ios_base::badbit); 23376: else 23376: __ostream_insert(__out, __s, 23376: static_cast(_Traits::length(__s))); 23376: return __out; 23376: } 23376: 23376: 23376: template 23376: inline basic_ostream& 23376: operator<<(basic_ostream& __out, const signed char* __s) 23376: { return (__out << reinterpret_cast(__s)); } 23376: 23376: template 23376: inline basic_ostream & 23376: operator<<(basic_ostream& __out, const unsigned char* __s) 23376: { return (__out << reinterpret_cast(__s)); } 23376: # 588 "/usr/include/c++/8/ostream" 3 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: endl(basic_ostream<_CharT, _Traits>& __os) 23376: { return flush(__os.put(__os.widen('\n'))); } 23376: # 600 "/usr/include/c++/8/ostream" 3 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: ends(basic_ostream<_CharT, _Traits>& __os) 23376: { return __os.put(_CharT()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: flush(basic_ostream<_CharT, _Traits>& __os) 23376: { return __os.flush(); } 23376: 23376: 23376: template 23376: basic_ostream<_Ch, _Up>& 23376: __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); 23376: 23376: template 23376: struct __is_convertible_to_basic_ostream_impl 23376: { 23376: using __ostream_type = void; 23376: }; 23376: 23376: template 23376: using __do_is_convertible_to_basic_ostream_impl = 23376: decltype(__is_convertible_to_basic_ostream_test 23376: (declval::type*>())); 23376: 23376: template 23376: struct __is_convertible_to_basic_ostream_impl 23376: <_Tp, 23376: __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> 23376: { 23376: using __ostream_type = 23376: __do_is_convertible_to_basic_ostream_impl<_Tp>; 23376: }; 23376: 23376: template 23376: struct __is_convertible_to_basic_ostream 23376: : __is_convertible_to_basic_ostream_impl<_Tp> 23376: { 23376: public: 23376: using type = __not_::__ostream_type>>; 23376: constexpr static bool value = type::value; 23376: }; 23376: 23376: template 23376: struct __is_insertable : false_type {}; 23376: 23376: template 23376: struct __is_insertable<_Ostream, _Tp, 23376: __void_t() 23376: << declval())>> 23376: : true_type {}; 23376: 23376: template 23376: using __rvalue_ostream_type = 23376: typename __is_convertible_to_basic_ostream< 23376: _Ostream>::__ostream_type; 23376: # 674 "/usr/include/c++/8/ostream" 3 23376: template 23376: inline 23376: typename enable_if<__and_<__not_>, 23376: __is_convertible_to_basic_ostream<_Ostream>, 23376: __is_insertable< 23376: __rvalue_ostream_type<_Ostream>, 23376: const _Tp&>>::value, 23376: __rvalue_ostream_type<_Ostream>>::type 23376: operator<<(_Ostream&& __os, const _Tp& __x) 23376: { 23376: __rvalue_ostream_type<_Ostream> __ret_os = __os; 23376: __ret_os << __x; 23376: return __ret_os; 23376: } 23376: 23376: 23376: 23376: } 23376: 23376: # 1 "/usr/include/c++/8/bits/ostream.tcc" 1 3 23376: # 37 "/usr/include/c++/8/bits/ostream.tcc" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/ostream.tcc" 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>::sentry:: 23376: sentry(basic_ostream<_CharT, _Traits>& __os) 23376: : _M_ok(false), _M_os(__os) 23376: { 23376: 23376: if (__os.tie() && __os.good()) 23376: __os.tie()->flush(); 23376: 23376: if (__os.good()) 23376: _M_ok = true; 23376: else 23376: __os.setstate(ios_base::failbit); 23376: } 23376: 23376: template 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: basic_ostream<_CharT, _Traits>:: 23376: _M_insert(_ValueT __v) 23376: { 23376: sentry __cerb(*this); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: const __num_put_type& __np = __check_facet(this->_M_num_put); 23376: if (__np.put(*this, *this, this->fill(), __v).failed()) 23376: __err |= ios_base::badbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: basic_ostream<_CharT, _Traits>:: 23376: operator<<(short __n) 23376: { 23376: 23376: 23376: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 23376: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 23376: return _M_insert(static_cast(static_cast(__n))); 23376: else 23376: return _M_insert(static_cast(__n)); 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: basic_ostream<_CharT, _Traits>:: 23376: operator<<(int __n) 23376: { 23376: 23376: 23376: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 23376: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 23376: return _M_insert(static_cast(static_cast(__n))); 23376: else 23376: return _M_insert(static_cast(__n)); 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: basic_ostream<_CharT, _Traits>:: 23376: operator<<(__streambuf_type* __sbin) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: sentry __cerb(*this); 23376: if (__cerb && __sbin) 23376: { 23376: try 23376: { 23376: if (!__copy_streambufs(__sbin, this->rdbuf())) 23376: __err |= ios_base::failbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::failbit); } 23376: } 23376: else if (!__sbin) 23376: __err |= ios_base::badbit; 23376: if (__err) 23376: this->setstate(__err); 23376: return *this; 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: basic_ostream<_CharT, _Traits>:: 23376: put(char_type __c) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: sentry __cerb(*this); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: const int_type __put = this->rdbuf()->sputc(__c); 23376: if (traits_type::eq_int_type(__put, traits_type::eof())) 23376: __err |= ios_base::badbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: basic_ostream<_CharT, _Traits>:: 23376: write(const _CharT* __s, streamsize __n) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: sentry __cerb(*this); 23376: if (__cerb) 23376: { 23376: try 23376: { _M_write(__s, __n); } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: basic_ostream<_CharT, _Traits>:: 23376: flush() 23376: { 23376: 23376: 23376: 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: if (this->rdbuf() && this->rdbuf()->pubsync() == -1) 23376: __err |= ios_base::badbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: return *this; 23376: } 23376: 23376: template 23376: typename basic_ostream<_CharT, _Traits>::pos_type 23376: basic_ostream<_CharT, _Traits>:: 23376: tellp() 23376: { 23376: pos_type __ret = pos_type(-1); 23376: try 23376: { 23376: if (!this->fail()) 23376: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: return __ret; 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: basic_ostream<_CharT, _Traits>:: 23376: seekp(pos_type __pos) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: if (!this->fail()) 23376: { 23376: 23376: 23376: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 23376: ios_base::out); 23376: 23376: 23376: if (__p == pos_type(off_type(-1))) 23376: __err |= ios_base::failbit; 23376: } 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: return *this; 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: basic_ostream<_CharT, _Traits>:: 23376: seekp(off_type __off, ios_base::seekdir __dir) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: if (!this->fail()) 23376: { 23376: 23376: 23376: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 23376: ios_base::out); 23376: 23376: 23376: if (__p == pos_type(off_type(-1))) 23376: __err |= ios_base::failbit; 23376: } 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: return *this; 23376: } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 23376: { 23376: if (!__s) 23376: __out.setstate(ios_base::badbit); 23376: else 23376: { 23376: 23376: 23376: const size_t __clen = char_traits::length(__s); 23376: try 23376: { 23376: struct __ptr_guard 23376: { 23376: _CharT *__p; 23376: __ptr_guard (_CharT *__ip): __p(__ip) { } 23376: ~__ptr_guard() { delete[] __p; } 23376: _CharT* __get() { return __p; } 23376: } __pg (new _CharT[__clen]); 23376: 23376: _CharT *__ws = __pg.__get(); 23376: for (size_t __i = 0; __i < __clen; ++__i) 23376: __ws[__i] = __out.widen(__s[__i]); 23376: __ostream_insert(__out, __ws, __clen); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __out._M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { __out._M_setstate(ios_base::badbit); } 23376: } 23376: return __out; 23376: } 23376: 23376: 23376: 23376: 23376: extern template class basic_ostream; 23376: extern template ostream& endl(ostream&); 23376: extern template ostream& ends(ostream&); 23376: extern template ostream& flush(ostream&); 23376: extern template ostream& operator<<(ostream&, char); 23376: extern template ostream& operator<<(ostream&, unsigned char); 23376: extern template ostream& operator<<(ostream&, signed char); 23376: extern template ostream& operator<<(ostream&, const char*); 23376: extern template ostream& operator<<(ostream&, const unsigned char*); 23376: extern template ostream& operator<<(ostream&, const signed char*); 23376: 23376: extern template ostream& ostream::_M_insert(long); 23376: extern template ostream& ostream::_M_insert(unsigned long); 23376: extern template ostream& ostream::_M_insert(bool); 23376: 23376: extern template ostream& ostream::_M_insert(long long); 23376: extern template ostream& ostream::_M_insert(unsigned long long); 23376: 23376: extern template ostream& ostream::_M_insert(double); 23376: extern template ostream& ostream::_M_insert(long double); 23376: extern template ostream& ostream::_M_insert(const void*); 23376: 23376: 23376: extern template class basic_ostream; 23376: extern template wostream& endl(wostream&); 23376: extern template wostream& ends(wostream&); 23376: extern template wostream& flush(wostream&); 23376: extern template wostream& operator<<(wostream&, wchar_t); 23376: extern template wostream& operator<<(wostream&, char); 23376: extern template wostream& operator<<(wostream&, const wchar_t*); 23376: extern template wostream& operator<<(wostream&, const char*); 23376: 23376: extern template wostream& wostream::_M_insert(long); 23376: extern template wostream& wostream::_M_insert(unsigned long); 23376: extern template wostream& wostream::_M_insert(bool); 23376: 23376: extern template wostream& wostream::_M_insert(long long); 23376: extern template wostream& wostream::_M_insert(unsigned long long); 23376: 23376: extern template wostream& wostream::_M_insert(double); 23376: extern template wostream& wostream::_M_insert(long double); 23376: extern template wostream& wostream::_M_insert(const void*); 23376: 23376: 23376: 23376: 23376: } 23376: # 694 "/usr/include/c++/8/ostream" 2 3 23376: # 40 "/usr/include/c++/8/istream" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 57 "/usr/include/c++/8/istream" 3 23376: template 23376: class basic_istream : virtual public basic_ios<_CharT, _Traits> 23376: { 23376: public: 23376: 23376: typedef _CharT char_type; 23376: typedef typename _Traits::int_type int_type; 23376: typedef typename _Traits::pos_type pos_type; 23376: typedef typename _Traits::off_type off_type; 23376: typedef _Traits traits_type; 23376: 23376: 23376: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 23376: typedef basic_ios<_CharT, _Traits> __ios_type; 23376: typedef basic_istream<_CharT, _Traits> __istream_type; 23376: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 23376: __num_get_type; 23376: typedef ctype<_CharT> __ctype_type; 23376: 23376: protected: 23376: 23376: 23376: 23376: 23376: 23376: streamsize _M_gcount; 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: basic_istream(__streambuf_type* __sb) 23376: : _M_gcount(streamsize(0)) 23376: { this->init(__sb); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual 23376: ~basic_istream() 23376: { _M_gcount = streamsize(0); } 23376: 23376: 23376: class sentry; 23376: friend class sentry; 23376: # 119 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: operator>>(__istream_type& (*__pf)(__istream_type&)) 23376: { return __pf(*this); } 23376: 23376: __istream_type& 23376: operator>>(__ios_type& (*__pf)(__ios_type&)) 23376: { 23376: __pf(*this); 23376: return *this; 23376: } 23376: 23376: __istream_type& 23376: operator>>(ios_base& (*__pf)(ios_base&)) 23376: { 23376: __pf(*this); 23376: return *this; 23376: } 23376: # 167 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: operator>>(bool& __n) 23376: { return _M_extract(__n); } 23376: 23376: __istream_type& 23376: operator>>(short& __n); 23376: 23376: __istream_type& 23376: operator>>(unsigned short& __n) 23376: { return _M_extract(__n); } 23376: 23376: __istream_type& 23376: operator>>(int& __n); 23376: 23376: __istream_type& 23376: operator>>(unsigned int& __n) 23376: { return _M_extract(__n); } 23376: 23376: __istream_type& 23376: operator>>(long& __n) 23376: { return _M_extract(__n); } 23376: 23376: __istream_type& 23376: operator>>(unsigned long& __n) 23376: { return _M_extract(__n); } 23376: 23376: 23376: __istream_type& 23376: operator>>(long long& __n) 23376: { return _M_extract(__n); } 23376: 23376: __istream_type& 23376: operator>>(unsigned long long& __n) 23376: { return _M_extract(__n); } 23376: # 213 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: operator>>(float& __f) 23376: { return _M_extract(__f); } 23376: 23376: __istream_type& 23376: operator>>(double& __f) 23376: { return _M_extract(__f); } 23376: 23376: __istream_type& 23376: operator>>(long double& __f) 23376: { return _M_extract(__f); } 23376: # 234 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: operator>>(void*& __p) 23376: { return _M_extract(__p); } 23376: # 258 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: operator>>(__streambuf_type* __sb); 23376: # 268 "/usr/include/c++/8/istream" 3 23376: streamsize 23376: gcount() const 23376: { return _M_gcount; } 23376: # 301 "/usr/include/c++/8/istream" 3 23376: int_type 23376: get(); 23376: # 315 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: get(char_type& __c); 23376: # 342 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: get(char_type* __s, streamsize __n, char_type __delim); 23376: # 353 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: get(char_type* __s, streamsize __n) 23376: { return this->get(__s, __n, this->widen('\n')); } 23376: # 376 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: get(__streambuf_type& __sb, char_type __delim); 23376: # 386 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: get(__streambuf_type& __sb) 23376: { return this->get(__sb, this->widen('\n')); } 23376: # 415 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: getline(char_type* __s, streamsize __n, char_type __delim); 23376: # 426 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: getline(char_type* __s, streamsize __n) 23376: { return this->getline(__s, __n, this->widen('\n')); } 23376: # 450 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: ignore(streamsize __n, int_type __delim); 23376: 23376: __istream_type& 23376: ignore(streamsize __n); 23376: 23376: __istream_type& 23376: ignore(); 23376: # 467 "/usr/include/c++/8/istream" 3 23376: int_type 23376: peek(); 23376: # 485 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: read(char_type* __s, streamsize __n); 23376: # 504 "/usr/include/c++/8/istream" 3 23376: streamsize 23376: readsome(char_type* __s, streamsize __n); 23376: # 521 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: putback(char_type __c); 23376: # 537 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: unget(); 23376: # 555 "/usr/include/c++/8/istream" 3 23376: int 23376: sync(); 23376: # 570 "/usr/include/c++/8/istream" 3 23376: pos_type 23376: tellg(); 23376: # 585 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: seekg(pos_type); 23376: # 601 "/usr/include/c++/8/istream" 3 23376: __istream_type& 23376: seekg(off_type, ios_base::seekdir); 23376: 23376: 23376: protected: 23376: basic_istream() 23376: : _M_gcount(streamsize(0)) 23376: { this->init(0); } 23376: 23376: 23376: basic_istream(const basic_istream&) = delete; 23376: 23376: basic_istream(basic_istream&& __rhs) 23376: : __ios_type(), _M_gcount(__rhs._M_gcount) 23376: { 23376: __ios_type::move(__rhs); 23376: __rhs._M_gcount = 0; 23376: } 23376: 23376: 23376: 23376: basic_istream& operator=(const basic_istream&) = delete; 23376: 23376: basic_istream& 23376: operator=(basic_istream&& __rhs) 23376: { 23376: swap(__rhs); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(basic_istream& __rhs) 23376: { 23376: __ios_type::swap(__rhs); 23376: std::swap(_M_gcount, __rhs._M_gcount); 23376: } 23376: 23376: 23376: template 23376: __istream_type& 23376: _M_extract(_ValueT& __v); 23376: }; 23376: 23376: 23376: template<> 23376: basic_istream& 23376: basic_istream:: 23376: getline(char_type* __s, streamsize __n, char_type __delim); 23376: 23376: template<> 23376: basic_istream& 23376: basic_istream:: 23376: ignore(streamsize __n); 23376: 23376: template<> 23376: basic_istream& 23376: basic_istream:: 23376: ignore(streamsize __n, int_type __delim); 23376: 23376: 23376: template<> 23376: basic_istream& 23376: basic_istream:: 23376: getline(char_type* __s, streamsize __n, char_type __delim); 23376: 23376: template<> 23376: basic_istream& 23376: basic_istream:: 23376: ignore(streamsize __n); 23376: 23376: template<> 23376: basic_istream& 23376: basic_istream:: 23376: ignore(streamsize __n, int_type __delim); 23376: # 685 "/usr/include/c++/8/istream" 3 23376: template 23376: class basic_istream<_CharT, _Traits>::sentry 23376: { 23376: 23376: bool _M_ok; 23376: 23376: public: 23376: 23376: typedef _Traits traits_type; 23376: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 23376: typedef basic_istream<_CharT, _Traits> __istream_type; 23376: typedef typename __istream_type::__ctype_type __ctype_type; 23376: typedef typename _Traits::int_type __int_type; 23376: # 721 "/usr/include/c++/8/istream" 3 23376: explicit 23376: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 23376: # 732 "/usr/include/c++/8/istream" 3 23376: explicit 23376: 23376: operator bool() const 23376: { return _M_ok; } 23376: }; 23376: # 750 "/usr/include/c++/8/istream" 3 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 23376: 23376: template 23376: inline basic_istream& 23376: operator>>(basic_istream& __in, unsigned char& __c) 23376: { return (__in >> reinterpret_cast(__c)); } 23376: 23376: template 23376: inline basic_istream& 23376: operator>>(basic_istream& __in, signed char& __c) 23376: { return (__in >> reinterpret_cast(__c)); } 23376: # 792 "/usr/include/c++/8/istream" 3 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); 23376: 23376: 23376: template<> 23376: basic_istream& 23376: operator>>(basic_istream& __in, char* __s); 23376: 23376: template 23376: inline basic_istream& 23376: operator>>(basic_istream& __in, unsigned char* __s) 23376: { return (__in >> reinterpret_cast(__s)); } 23376: 23376: template 23376: inline basic_istream& 23376: operator>>(basic_istream& __in, signed char* __s) 23376: { return (__in >> reinterpret_cast(__s)); } 23376: # 823 "/usr/include/c++/8/istream" 3 23376: template 23376: class basic_iostream 23376: : public basic_istream<_CharT, _Traits>, 23376: public basic_ostream<_CharT, _Traits> 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef typename _Traits::int_type int_type; 23376: typedef typename _Traits::pos_type pos_type; 23376: typedef typename _Traits::off_type off_type; 23376: typedef _Traits traits_type; 23376: 23376: 23376: typedef basic_istream<_CharT, _Traits> __istream_type; 23376: typedef basic_ostream<_CharT, _Traits> __ostream_type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 23376: : __istream_type(__sb), __ostream_type(__sb) { } 23376: 23376: 23376: 23376: 23376: virtual 23376: ~basic_iostream() { } 23376: 23376: protected: 23376: basic_iostream() 23376: : __istream_type(), __ostream_type() { } 23376: 23376: 23376: basic_iostream(const basic_iostream&) = delete; 23376: 23376: basic_iostream(basic_iostream&& __rhs) 23376: : __istream_type(std::move(__rhs)), __ostream_type(*this) 23376: { } 23376: 23376: 23376: 23376: basic_iostream& operator=(const basic_iostream&) = delete; 23376: 23376: basic_iostream& 23376: operator=(basic_iostream&& __rhs) 23376: { 23376: swap(__rhs); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(basic_iostream& __rhs) 23376: { __istream_type::swap(__rhs); } 23376: 23376: }; 23376: # 906 "/usr/include/c++/8/istream" 3 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: ws(basic_istream<_CharT, _Traits>& __is); 23376: 23376: 23376: template 23376: basic_istream<_Ch, _Up>& 23376: __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); 23376: 23376: template 23376: struct __is_convertible_to_basic_istream_impl 23376: { 23376: using __istream_type = void; 23376: }; 23376: 23376: template 23376: using __do_is_convertible_to_basic_istream_impl = 23376: decltype(__is_convertible_to_basic_istream_test 23376: (declval::type*>())); 23376: 23376: template 23376: struct __is_convertible_to_basic_istream_impl 23376: <_Tp, 23376: __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> 23376: { 23376: using __istream_type = 23376: __do_is_convertible_to_basic_istream_impl<_Tp>; 23376: }; 23376: 23376: template 23376: struct __is_convertible_to_basic_istream 23376: : __is_convertible_to_basic_istream_impl<_Tp> 23376: { 23376: public: 23376: using type = __not_::__istream_type>>; 23376: constexpr static bool value = type::value; 23376: }; 23376: 23376: template 23376: struct __is_extractable : false_type {}; 23376: 23376: template 23376: struct __is_extractable<_Istream, _Tp, 23376: __void_t() 23376: >> declval<_Tp>())>> 23376: : true_type {}; 23376: 23376: template 23376: using __rvalue_istream_type = 23376: typename __is_convertible_to_basic_istream< 23376: _Istream>::__istream_type; 23376: # 972 "/usr/include/c++/8/istream" 3 23376: template 23376: inline 23376: typename enable_if<__and_<__not_>, 23376: __is_convertible_to_basic_istream<_Istream>, 23376: __is_extractable< 23376: __rvalue_istream_type<_Istream>, 23376: _Tp&&>>::value, 23376: __rvalue_istream_type<_Istream>>::type 23376: operator>>(_Istream&& __is, _Tp&& __x) 23376: { 23376: __rvalue_istream_type<_Istream> __ret_is = __is; 23376: __ret_is >> std::forward<_Tp>(__x); 23376: return __ret_is; 23376: } 23376: 23376: 23376: 23376: } 23376: 23376: # 1 "/usr/include/c++/8/bits/istream.tcc" 1 3 23376: # 37 "/usr/include/c++/8/bits/istream.tcc" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/istream.tcc" 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: basic_istream<_CharT, _Traits>::sentry:: 23376: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: if (__in.good()) 23376: try 23376: { 23376: if (__in.tie()) 23376: __in.tie()->flush(); 23376: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 23376: { 23376: const __int_type __eof = traits_type::eof(); 23376: __streambuf_type* __sb = __in.rdbuf(); 23376: __int_type __c = __sb->sgetc(); 23376: 23376: const __ctype_type& __ct = __check_facet(__in._M_ctype); 23376: while (!traits_type::eq_int_type(__c, __eof) 23376: && __ct.is(ctype_base::space, 23376: traits_type::to_char_type(__c))) 23376: __c = __sb->snextc(); 23376: 23376: 23376: 23376: 23376: if (traits_type::eq_int_type(__c, __eof)) 23376: __err |= ios_base::eofbit; 23376: } 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __in._M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { __in._M_setstate(ios_base::badbit); } 23376: 23376: if (__in.good() && __err == ios_base::goodbit) 23376: _M_ok = true; 23376: else 23376: { 23376: __err |= ios_base::failbit; 23376: __in.setstate(__err); 23376: } 23376: } 23376: 23376: template 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: _M_extract(_ValueT& __v) 23376: { 23376: sentry __cerb(*this, false); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: const __num_get_type& __ng = __check_facet(this->_M_num_get); 23376: __ng.get(*this, 0, *this, __err, __v); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: operator>>(short& __n) 23376: { 23376: 23376: 23376: sentry __cerb(*this, false); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: long __l; 23376: const __num_get_type& __ng = __check_facet(this->_M_num_get); 23376: __ng.get(*this, 0, *this, __err, __l); 23376: 23376: 23376: 23376: if (__l < __gnu_cxx::__numeric_traits::__min) 23376: { 23376: __err |= ios_base::failbit; 23376: __n = __gnu_cxx::__numeric_traits::__min; 23376: } 23376: else if (__l > __gnu_cxx::__numeric_traits::__max) 23376: { 23376: __err |= ios_base::failbit; 23376: __n = __gnu_cxx::__numeric_traits::__max; 23376: } 23376: else 23376: __n = short(__l); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: operator>>(int& __n) 23376: { 23376: 23376: 23376: sentry __cerb(*this, false); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: long __l; 23376: const __num_get_type& __ng = __check_facet(this->_M_num_get); 23376: __ng.get(*this, 0, *this, __err, __l); 23376: 23376: 23376: 23376: if (__l < __gnu_cxx::__numeric_traits::__min) 23376: { 23376: __err |= ios_base::failbit; 23376: __n = __gnu_cxx::__numeric_traits::__min; 23376: } 23376: else if (__l > __gnu_cxx::__numeric_traits::__max) 23376: { 23376: __err |= ios_base::failbit; 23376: __n = __gnu_cxx::__numeric_traits::__max; 23376: } 23376: else 23376: __n = int(__l); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: operator>>(__streambuf_type* __sbout) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: sentry __cerb(*this, false); 23376: if (__cerb && __sbout) 23376: { 23376: try 23376: { 23376: bool __ineof; 23376: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 23376: __err |= ios_base::failbit; 23376: if (__ineof) 23376: __err |= ios_base::eofbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::failbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::failbit); } 23376: } 23376: else if (!__sbout) 23376: __err |= ios_base::failbit; 23376: if (__err) 23376: this->setstate(__err); 23376: return *this; 23376: } 23376: 23376: template 23376: typename basic_istream<_CharT, _Traits>::int_type 23376: basic_istream<_CharT, _Traits>:: 23376: get(void) 23376: { 23376: const int_type __eof = traits_type::eof(); 23376: int_type __c = __eof; 23376: _M_gcount = 0; 23376: ios_base::iostate __err = ios_base::goodbit; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: __c = this->rdbuf()->sbumpc(); 23376: 23376: if (!traits_type::eq_int_type(__c, __eof)) 23376: _M_gcount = 1; 23376: else 23376: __err |= ios_base::eofbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: } 23376: if (!_M_gcount) 23376: __err |= ios_base::failbit; 23376: if (__err) 23376: this->setstate(__err); 23376: return __c; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: get(char_type& __c) 23376: { 23376: _M_gcount = 0; 23376: ios_base::iostate __err = ios_base::goodbit; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: const int_type __cb = this->rdbuf()->sbumpc(); 23376: 23376: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 23376: { 23376: _M_gcount = 1; 23376: __c = traits_type::to_char_type(__cb); 23376: } 23376: else 23376: __err |= ios_base::eofbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: } 23376: if (!_M_gcount) 23376: __err |= ios_base::failbit; 23376: if (__err) 23376: this->setstate(__err); 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: get(char_type* __s, streamsize __n, char_type __delim) 23376: { 23376: _M_gcount = 0; 23376: ios_base::iostate __err = ios_base::goodbit; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: const int_type __idelim = traits_type::to_int_type(__delim); 23376: const int_type __eof = traits_type::eof(); 23376: __streambuf_type* __sb = this->rdbuf(); 23376: int_type __c = __sb->sgetc(); 23376: 23376: while (_M_gcount + 1 < __n 23376: && !traits_type::eq_int_type(__c, __eof) 23376: && !traits_type::eq_int_type(__c, __idelim)) 23376: { 23376: *__s++ = traits_type::to_char_type(__c); 23376: ++_M_gcount; 23376: __c = __sb->snextc(); 23376: } 23376: if (traits_type::eq_int_type(__c, __eof)) 23376: __err |= ios_base::eofbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: } 23376: 23376: 23376: if (__n > 0) 23376: *__s = char_type(); 23376: if (!_M_gcount) 23376: __err |= ios_base::failbit; 23376: if (__err) 23376: this->setstate(__err); 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: get(__streambuf_type& __sb, char_type __delim) 23376: { 23376: _M_gcount = 0; 23376: ios_base::iostate __err = ios_base::goodbit; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: const int_type __idelim = traits_type::to_int_type(__delim); 23376: const int_type __eof = traits_type::eof(); 23376: __streambuf_type* __this_sb = this->rdbuf(); 23376: int_type __c = __this_sb->sgetc(); 23376: char_type __c2 = traits_type::to_char_type(__c); 23376: 23376: while (!traits_type::eq_int_type(__c, __eof) 23376: && !traits_type::eq_int_type(__c, __idelim) 23376: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 23376: { 23376: ++_M_gcount; 23376: __c = __this_sb->snextc(); 23376: __c2 = traits_type::to_char_type(__c); 23376: } 23376: if (traits_type::eq_int_type(__c, __eof)) 23376: __err |= ios_base::eofbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: } 23376: if (!_M_gcount) 23376: __err |= ios_base::failbit; 23376: if (__err) 23376: this->setstate(__err); 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: getline(char_type* __s, streamsize __n, char_type __delim) 23376: { 23376: _M_gcount = 0; 23376: ios_base::iostate __err = ios_base::goodbit; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: const int_type __idelim = traits_type::to_int_type(__delim); 23376: const int_type __eof = traits_type::eof(); 23376: __streambuf_type* __sb = this->rdbuf(); 23376: int_type __c = __sb->sgetc(); 23376: 23376: while (_M_gcount + 1 < __n 23376: && !traits_type::eq_int_type(__c, __eof) 23376: && !traits_type::eq_int_type(__c, __idelim)) 23376: { 23376: *__s++ = traits_type::to_char_type(__c); 23376: __c = __sb->snextc(); 23376: ++_M_gcount; 23376: } 23376: if (traits_type::eq_int_type(__c, __eof)) 23376: __err |= ios_base::eofbit; 23376: else 23376: { 23376: if (traits_type::eq_int_type(__c, __idelim)) 23376: { 23376: __sb->sbumpc(); 23376: ++_M_gcount; 23376: } 23376: else 23376: __err |= ios_base::failbit; 23376: } 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: } 23376: 23376: 23376: if (__n > 0) 23376: *__s = char_type(); 23376: if (!_M_gcount) 23376: __err |= ios_base::failbit; 23376: if (__err) 23376: this->setstate(__err); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: ignore(void) 23376: { 23376: _M_gcount = 0; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: const int_type __eof = traits_type::eof(); 23376: __streambuf_type* __sb = this->rdbuf(); 23376: 23376: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 23376: __err |= ios_base::eofbit; 23376: else 23376: _M_gcount = 1; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: ignore(streamsize __n) 23376: { 23376: _M_gcount = 0; 23376: sentry __cerb(*this, true); 23376: if (__cerb && __n > 0) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: const int_type __eof = traits_type::eof(); 23376: __streambuf_type* __sb = this->rdbuf(); 23376: int_type __c = __sb->sgetc(); 23376: # 521 "/usr/include/c++/8/bits/istream.tcc" 3 23376: bool __large_ignore = false; 23376: while (true) 23376: { 23376: while (_M_gcount < __n 23376: && !traits_type::eq_int_type(__c, __eof)) 23376: { 23376: ++_M_gcount; 23376: __c = __sb->snextc(); 23376: } 23376: if (__n == __gnu_cxx::__numeric_traits::__max 23376: && !traits_type::eq_int_type(__c, __eof)) 23376: { 23376: _M_gcount = 23376: __gnu_cxx::__numeric_traits::__min; 23376: __large_ignore = true; 23376: } 23376: else 23376: break; 23376: } 23376: 23376: if (__large_ignore) 23376: _M_gcount = __gnu_cxx::__numeric_traits::__max; 23376: 23376: if (traits_type::eq_int_type(__c, __eof)) 23376: __err |= ios_base::eofbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: ignore(streamsize __n, int_type __delim) 23376: { 23376: _M_gcount = 0; 23376: sentry __cerb(*this, true); 23376: if (__cerb && __n > 0) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: const int_type __eof = traits_type::eof(); 23376: __streambuf_type* __sb = this->rdbuf(); 23376: int_type __c = __sb->sgetc(); 23376: 23376: 23376: bool __large_ignore = false; 23376: while (true) 23376: { 23376: while (_M_gcount < __n 23376: && !traits_type::eq_int_type(__c, __eof) 23376: && !traits_type::eq_int_type(__c, __delim)) 23376: { 23376: ++_M_gcount; 23376: __c = __sb->snextc(); 23376: } 23376: if (__n == __gnu_cxx::__numeric_traits::__max 23376: && !traits_type::eq_int_type(__c, __eof) 23376: && !traits_type::eq_int_type(__c, __delim)) 23376: { 23376: _M_gcount = 23376: __gnu_cxx::__numeric_traits::__min; 23376: __large_ignore = true; 23376: } 23376: else 23376: break; 23376: } 23376: 23376: if (__large_ignore) 23376: _M_gcount = __gnu_cxx::__numeric_traits::__max; 23376: 23376: if (traits_type::eq_int_type(__c, __eof)) 23376: __err |= ios_base::eofbit; 23376: else if (traits_type::eq_int_type(__c, __delim)) 23376: { 23376: if (_M_gcount 23376: < __gnu_cxx::__numeric_traits::__max) 23376: ++_M_gcount; 23376: __sb->sbumpc(); 23376: } 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: typename basic_istream<_CharT, _Traits>::int_type 23376: basic_istream<_CharT, _Traits>:: 23376: peek(void) 23376: { 23376: int_type __c = traits_type::eof(); 23376: _M_gcount = 0; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: __c = this->rdbuf()->sgetc(); 23376: if (traits_type::eq_int_type(__c, traits_type::eof())) 23376: __err |= ios_base::eofbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return __c; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: read(char_type* __s, streamsize __n) 23376: { 23376: _M_gcount = 0; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: _M_gcount = this->rdbuf()->sgetn(__s, __n); 23376: if (_M_gcount != __n) 23376: __err |= (ios_base::eofbit | ios_base::failbit); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: streamsize 23376: basic_istream<_CharT, _Traits>:: 23376: readsome(char_type* __s, streamsize __n) 23376: { 23376: _M_gcount = 0; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: 23376: const streamsize __num = this->rdbuf()->in_avail(); 23376: if (__num > 0) 23376: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 23376: else if (__num == -1) 23376: __err |= ios_base::eofbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return _M_gcount; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: putback(char_type __c) 23376: { 23376: 23376: 23376: _M_gcount = 0; 23376: 23376: this->clear(this->rdstate() & ~ios_base::eofbit); 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: const int_type __eof = traits_type::eof(); 23376: __streambuf_type* __sb = this->rdbuf(); 23376: if (!__sb 23376: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 23376: __err |= ios_base::badbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: unget(void) 23376: { 23376: 23376: 23376: _M_gcount = 0; 23376: 23376: this->clear(this->rdstate() & ~ios_base::eofbit); 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: const int_type __eof = traits_type::eof(); 23376: __streambuf_type* __sb = this->rdbuf(); 23376: if (!__sb 23376: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 23376: __err |= ios_base::badbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: int 23376: basic_istream<_CharT, _Traits>:: 23376: sync(void) 23376: { 23376: 23376: 23376: int __ret = -1; 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: __streambuf_type* __sb = this->rdbuf(); 23376: if (__sb) 23376: { 23376: if (__sb->pubsync() == -1) 23376: __err |= ios_base::badbit; 23376: else 23376: __ret = 0; 23376: } 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: typename basic_istream<_CharT, _Traits>::pos_type 23376: basic_istream<_CharT, _Traits>:: 23376: tellg(void) 23376: { 23376: 23376: 23376: pos_type __ret = pos_type(-1); 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: if (!this->fail()) 23376: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 23376: ios_base::in); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: seekg(pos_type __pos) 23376: { 23376: 23376: 23376: 23376: this->clear(this->rdstate() & ~ios_base::eofbit); 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: if (!this->fail()) 23376: { 23376: 23376: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 23376: ios_base::in); 23376: 23376: 23376: if (__p == pos_type(off_type(-1))) 23376: __err |= ios_base::failbit; 23376: } 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: basic_istream<_CharT, _Traits>:: 23376: seekg(off_type __off, ios_base::seekdir __dir) 23376: { 23376: 23376: 23376: 23376: this->clear(this->rdstate() & ~ios_base::eofbit); 23376: sentry __cerb(*this, true); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: if (!this->fail()) 23376: { 23376: 23376: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 23376: ios_base::in); 23376: 23376: 23376: if (__p == pos_type(off_type(-1))) 23376: __err |= ios_base::failbit; 23376: } 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: this->_M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { this->_M_setstate(ios_base::badbit); } 23376: if (__err) 23376: this->setstate(__err); 23376: } 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 23376: { 23376: typedef basic_istream<_CharT, _Traits> __istream_type; 23376: typedef typename __istream_type::int_type __int_type; 23376: 23376: typename __istream_type::sentry __cerb(__in, false); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: const __int_type __cb = __in.rdbuf()->sbumpc(); 23376: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 23376: __c = _Traits::to_char_type(__cb); 23376: else 23376: __err |= (ios_base::eofbit | ios_base::failbit); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __in._M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { __in._M_setstate(ios_base::badbit); } 23376: if (__err) 23376: __in.setstate(__err); 23376: } 23376: return __in; 23376: } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) 23376: { 23376: typedef basic_istream<_CharT, _Traits> __istream_type; 23376: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 23376: typedef typename _Traits::int_type int_type; 23376: typedef _CharT char_type; 23376: typedef ctype<_CharT> __ctype_type; 23376: 23376: streamsize __extracted = 0; 23376: ios_base::iostate __err = ios_base::goodbit; 23376: typename __istream_type::sentry __cerb(__in, false); 23376: if (__cerb) 23376: { 23376: try 23376: { 23376: 23376: streamsize __num = __in.width(); 23376: if (__num <= 0) 23376: __num = __gnu_cxx::__numeric_traits::__max; 23376: 23376: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 23376: 23376: const int_type __eof = _Traits::eof(); 23376: __streambuf_type* __sb = __in.rdbuf(); 23376: int_type __c = __sb->sgetc(); 23376: 23376: while (__extracted < __num - 1 23376: && !_Traits::eq_int_type(__c, __eof) 23376: && !__ct.is(ctype_base::space, 23376: _Traits::to_char_type(__c))) 23376: { 23376: *__s++ = _Traits::to_char_type(__c); 23376: ++__extracted; 23376: __c = __sb->snextc(); 23376: } 23376: if (_Traits::eq_int_type(__c, __eof)) 23376: __err |= ios_base::eofbit; 23376: 23376: 23376: 23376: *__s = char_type(); 23376: __in.width(0); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __in._M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { __in._M_setstate(ios_base::badbit); } 23376: } 23376: if (!__extracted) 23376: __err |= ios_base::failbit; 23376: if (__err) 23376: __in.setstate(__err); 23376: return __in; 23376: } 23376: 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: ws(basic_istream<_CharT, _Traits>& __in) 23376: { 23376: typedef basic_istream<_CharT, _Traits> __istream_type; 23376: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 23376: typedef typename __istream_type::int_type __int_type; 23376: typedef ctype<_CharT> __ctype_type; 23376: 23376: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 23376: const __int_type __eof = _Traits::eof(); 23376: __streambuf_type* __sb = __in.rdbuf(); 23376: __int_type __c = __sb->sgetc(); 23376: 23376: while (!_Traits::eq_int_type(__c, __eof) 23376: && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) 23376: __c = __sb->snextc(); 23376: 23376: if (_Traits::eq_int_type(__c, __eof)) 23376: __in.setstate(ios_base::eofbit); 23376: return __in; 23376: } 23376: 23376: 23376: 23376: 23376: extern template class basic_istream; 23376: extern template istream& ws(istream&); 23376: extern template istream& operator>>(istream&, char&); 23376: extern template istream& operator>>(istream&, char*); 23376: extern template istream& operator>>(istream&, unsigned char&); 23376: extern template istream& operator>>(istream&, signed char&); 23376: extern template istream& operator>>(istream&, unsigned char*); 23376: extern template istream& operator>>(istream&, signed char*); 23376: 23376: extern template istream& istream::_M_extract(unsigned short&); 23376: extern template istream& istream::_M_extract(unsigned int&); 23376: extern template istream& istream::_M_extract(long&); 23376: extern template istream& istream::_M_extract(unsigned long&); 23376: extern template istream& istream::_M_extract(bool&); 23376: 23376: extern template istream& istream::_M_extract(long long&); 23376: extern template istream& istream::_M_extract(unsigned long long&); 23376: 23376: extern template istream& istream::_M_extract(float&); 23376: extern template istream& istream::_M_extract(double&); 23376: extern template istream& istream::_M_extract(long double&); 23376: extern template istream& istream::_M_extract(void*&); 23376: 23376: extern template class basic_iostream; 23376: 23376: 23376: extern template class basic_istream; 23376: extern template wistream& ws(wistream&); 23376: extern template wistream& operator>>(wistream&, wchar_t&); 23376: extern template wistream& operator>>(wistream&, wchar_t*); 23376: 23376: extern template wistream& wistream::_M_extract(unsigned short&); 23376: extern template wistream& wistream::_M_extract(unsigned int&); 23376: extern template wistream& wistream::_M_extract(long&); 23376: extern template wistream& wistream::_M_extract(unsigned long&); 23376: extern template wistream& wistream::_M_extract(bool&); 23376: 23376: extern template wistream& wistream::_M_extract(long long&); 23376: extern template wistream& wistream::_M_extract(unsigned long long&); 23376: 23376: extern template wistream& wistream::_M_extract(float&); 23376: extern template wistream& wistream::_M_extract(double&); 23376: extern template wistream& wistream::_M_extract(long double&); 23376: extern template wistream& wistream::_M_extract(void*&); 23376: 23376: extern template class basic_iostream; 23376: 23376: 23376: 23376: 23376: } 23376: # 992 "/usr/include/c++/8/istream" 2 3 23376: # 31 "../../src/globals_inlines.hh" 2 23376: 23376: # 1 "/usr/include/c++/8/cctype" 1 3 23376: # 39 "/usr/include/c++/8/cctype" 3 23376: 23376: # 40 "/usr/include/c++/8/cctype" 3 23376: # 33 "../../src/globals_inlines.hh" 2 23376: 23376: 23376: 23376: # 35 "../../src/globals_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline dimension_type 23376: not_a_dimension() { 23376: return std::numeric_limits::max(); 23376: } 23376: 23376: inline int32_t 23376: hash_code_from_dimension(dimension_type dim) { 23376: const dimension_type divisor = 1U << (32 - 1); 23376: dim = dim % divisor; 23376: return static_cast(dim); 23376: } 23376: 23376: inline const Weightwatch_Traits::Threshold& 23376: Weightwatch_Traits::get() { 23376: return weight; 23376: } 23376: 23376: inline bool 23376: Weightwatch_Traits::less_than(const Threshold& a, const Threshold& b) { 23376: return b - a < (1ULL << (((sizeof(Threshold)) * static_cast(8)) - 1)); 23376: } 23376: 23376: inline Weightwatch_Traits::Delta 23376: Weightwatch_Traits::compute_delta(unsigned long unscaled, unsigned scale) { 23376: if ((std::numeric_limits::max() >> scale) < unscaled) { 23376: throw std::invalid_argument("PPL::Weightwatch_Traits::" 23376: "compute_delta(u, s):\n" 23376: "values of u and s cause wrap around."); 23376: } 23376: return static_cast(unscaled) << scale; 23376: } 23376: 23376: inline void 23376: Weightwatch_Traits::from_delta(Threshold& threshold, const Delta& delta) { 23376: threshold = weight + delta; 23376: } 23376: 23376: inline void 23376: maybe_abandon() { 23376: 23376: 23376: 23376: 23376: 23376: if (Weightwatch_Traits::check_function != 0) { 23376: Weightwatch_Traits::check_function(); 23376: } 23376: if (const Throwable* const p = abandon_expensive_computations) { 23376: p->throw_me(); 23376: } 23376: } 23376: 23376: inline dimension_type 23376: compute_capacity(const dimension_type requested_size, 23376: const dimension_type maximum_size) { 23376: 23376: # 92 "../../src/globals_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 92 "../../src/globals_inlines.hh" 23376: ; 23376: 23376: return (requested_size < maximum_size/2) 23376: ? (2*(requested_size + 1)) 23376: : maximum_size; 23376: 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: inline typename 23376: Enable_If::value, memory_size_type>::type 23376: external_memory_in_bytes(const T&) { 23376: return 0; 23376: } 23376: 23376: template 23376: inline typename 23376: Enable_If::value, memory_size_type>::type 23376: total_memory_in_bytes(const T&) { 23376: return sizeof(T); 23376: } 23376: 23376: inline memory_size_type 23376: external_memory_in_bytes(const mpz_class& x) { 23376: return static_cast(x.get_mpz_t()[0]._mp_alloc) 23376: * 4; 23376: } 23376: 23376: inline memory_size_type 23376: total_memory_in_bytes(const mpz_class& x) { 23376: return sizeof(x) + external_memory_in_bytes(x); 23376: } 23376: 23376: inline memory_size_type 23376: external_memory_in_bytes(const mpq_class& x) { 23376: return external_memory_in_bytes(x.get_num()) 23376: + external_memory_in_bytes(x.get_den()); 23376: } 23376: 23376: inline memory_size_type 23376: total_memory_in_bytes(const mpq_class& x) { 23376: return sizeof(x) + external_memory_in_bytes(x); 23376: } 23376: 23376: inline void 23376: ascii_dump(std::ostream& s, Representation r) { 23376: if (r == DENSE) { 23376: s << "DENSE"; 23376: } 23376: else { 23376: s << "SPARSE"; 23376: } 23376: } 23376: 23376: inline bool 23376: ascii_load(std::istream& is, Representation& r) { 23376: std::string s; 23376: if (!(is >> s)) { 23376: return false; 23376: } 23376: 23376: if (s == "DENSE") { 23376: r = DENSE; 23376: return true; 23376: } 23376: if (s == "SPARSE") { 23376: r = SPARSE; 23376: return true; 23376: } 23376: return false; 23376: } 23376: 23376: inline bool 23376: is_space(char c) { 23376: return isspace(c) != 0; 23376: } 23376: 23376: template 23376: inline typename RA_Container::iterator 23376: nth_iter(RA_Container& cont, dimension_type n) { 23376: typedef typename RA_Container::difference_type diff_t; 23376: return cont.begin() + static_cast(n); 23376: } 23376: 23376: template 23376: inline typename RA_Container::const_iterator 23376: nth_iter(const RA_Container& cont, dimension_type n) { 23376: typedef typename RA_Container::difference_type diff_t; 23376: return cont.begin() + static_cast(n); 23376: } 23376: 23376: inline dimension_type 23376: least_significant_one_mask(const dimension_type i) { 23376: return i & (~i + 1U); 23376: } 23376: 23376: } 23376: # 570 "../../src/globals_defs.hh" 2 23376: # 28 "../../src/Variable_inlines.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline dimension_type 23376: Variable::max_space_dimension() { 23376: return not_a_dimension() - 1; 23376: } 23376: 23376: inline 23376: Variable::Variable(dimension_type i) 23376: : varid((i < max_space_dimension()) 23376: ? i 23376: : (throw std::length_error("PPL::Variable::Variable(i):\n" 23376: "i exceeds the maximum allowed " 23376: "variable identifier."), i)) { 23376: } 23376: 23376: inline dimension_type 23376: Variable::id() const { 23376: return varid; 23376: } 23376: 23376: inline dimension_type 23376: Variable::space_dimension() const { 23376: return varid + 1; 23376: } 23376: 23376: inline memory_size_type 23376: Variable::external_memory_in_bytes() const { 23376: return 0; 23376: } 23376: 23376: inline memory_size_type 23376: Variable::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline void 23376: Variable::set_output_function(output_function_type* p) { 23376: current_output_function = p; 23376: } 23376: 23376: inline Variable::output_function_type* 23376: Variable::get_output_function() { 23376: return current_output_function; 23376: } 23376: 23376: 23376: inline bool 23376: less(const Variable v, const Variable w) { 23376: return v.id() < w.id(); 23376: } 23376: 23376: inline bool 23376: Variable::Compare::operator()(const Variable x, const Variable y) const { 23376: return less(x, y); 23376: } 23376: 23376: inline void 23376: Variable::m_swap(Variable& v) { 23376: using std::swap; 23376: swap(varid, v.varid); 23376: } 23376: 23376: inline void 23376: swap(Variable& x, Variable& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 156 "../../src/Variable_defs.hh" 2 23376: # 28 "../../src/Float_inlines.hh" 2 23376: # 1 "../../src/Linear_Form_defs.hh" 1 23376: # 28 "../../src/Linear_Form_defs.hh" 23376: # 1 "../../src/Linear_Expression_types.hh" 1 23376: # 16 "../../src/Linear_Expression_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Linear_Expression; 23376: 23376: } 23376: # 29 "../../src/Linear_Form_defs.hh" 2 23376: 23376: # 1 "../../src/Box_types.hh" 1 23376: # 16 "../../src/Box_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Box; 23376: 23376: class Box_Helpers; 23376: 23376: } 23376: # 31 "../../src/Linear_Form_defs.hh" 2 23376: # 1 "../../src/Float_defs.hh" 1 23376: # 32 "../../src/Linear_Form_defs.hh" 2 23376: # 1 "/usr/include/c++/8/vector" 1 3 23376: # 58 "/usr/include/c++/8/vector" 3 23376: 23376: # 59 "/usr/include/c++/8/vector" 3 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/stl_uninitialized.h" 1 3 23376: # 67 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 23376: 23376: # 67 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: struct __uninitialized_copy 23376: { 23376: template 23376: static _ForwardIterator 23376: __uninit_copy(_InputIterator __first, _InputIterator __last, 23376: _ForwardIterator __result) 23376: { 23376: _ForwardIterator __cur = __result; 23376: try 23376: { 23376: for (; __first != __last; ++__first, (void)++__cur) 23376: std::_Construct(std::__addressof(*__cur), *__first); 23376: return __cur; 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__result, __cur); 23376: throw; 23376: } 23376: } 23376: }; 23376: 23376: template<> 23376: struct __uninitialized_copy 23376: { 23376: template 23376: static _ForwardIterator 23376: __uninit_copy(_InputIterator __first, _InputIterator __last, 23376: _ForwardIterator __result) 23376: { return std::copy(__first, __last, __result); } 23376: }; 23376: # 113 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 23376: template 23376: inline _ForwardIterator 23376: uninitialized_copy(_InputIterator __first, _InputIterator __last, 23376: _ForwardIterator __result) 23376: { 23376: typedef typename iterator_traits<_InputIterator>::value_type 23376: _ValueType1; 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType2; 23376: 23376: 23376: 23376: 23376: typedef typename iterator_traits<_InputIterator>::reference _RefType1; 23376: typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; 23376: const bool __assignable = is_assignable<_RefType2, _RefType1>::value; 23376: 23376: 23376: return std::__uninitialized_copy<__is_trivial(_ValueType1) 23376: && __is_trivial(_ValueType2) 23376: && __assignable>:: 23376: __uninit_copy(__first, __last, __result); 23376: } 23376: 23376: 23376: template 23376: struct __uninitialized_fill 23376: { 23376: template 23376: static void 23376: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __x) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: for (; __cur != __last; ++__cur) 23376: std::_Construct(std::__addressof(*__cur), __x); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur); 23376: throw; 23376: } 23376: } 23376: }; 23376: 23376: template<> 23376: struct __uninitialized_fill 23376: { 23376: template 23376: static void 23376: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __x) 23376: { std::fill(__first, __last, __x); } 23376: }; 23376: # 179 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 23376: template 23376: inline void 23376: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __x) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType; 23376: 23376: 23376: 23376: 23376: const bool __assignable = is_copy_assignable<_ValueType>::value; 23376: 23376: 23376: std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: 23376: __uninit_fill(__first, __last, __x); 23376: } 23376: 23376: 23376: template 23376: struct __uninitialized_fill_n 23376: { 23376: template 23376: static _ForwardIterator 23376: __uninit_fill_n(_ForwardIterator __first, _Size __n, 23376: const _Tp& __x) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: for (; __n > 0; --__n, (void) ++__cur) 23376: std::_Construct(std::__addressof(*__cur), __x); 23376: return __cur; 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur); 23376: throw; 23376: } 23376: } 23376: }; 23376: 23376: template<> 23376: struct __uninitialized_fill_n 23376: { 23376: template 23376: static _ForwardIterator 23376: __uninit_fill_n(_ForwardIterator __first, _Size __n, 23376: const _Tp& __x) 23376: { return std::fill_n(__first, __n, __x); } 23376: }; 23376: # 242 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 23376: template 23376: inline _ForwardIterator 23376: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType; 23376: 23376: 23376: 23376: 23376: const bool __assignable = is_copy_assignable<_ValueType>::value; 23376: 23376: return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: 23376: __uninit_fill_n(__first, __n, __x); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _ForwardIterator 23376: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 23376: _ForwardIterator __result, _Allocator& __alloc) 23376: { 23376: _ForwardIterator __cur = __result; 23376: try 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 23376: for (; __first != __last; ++__first, (void)++__cur) 23376: __traits::construct(__alloc, std::__addressof(*__cur), *__first); 23376: return __cur; 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__result, __cur, __alloc); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 23376: _ForwardIterator __result, allocator<_Tp>&) 23376: { return std::uninitialized_copy(__first, __last, __result); } 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 23376: _ForwardIterator __result, _Allocator& __alloc) 23376: { 23376: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 23376: std::make_move_iterator(__last), 23376: __result, __alloc); 23376: } 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_move_if_noexcept_a(_InputIterator __first, 23376: _InputIterator __last, 23376: _ForwardIterator __result, 23376: _Allocator& __alloc) 23376: { 23376: return std::__uninitialized_copy_a 23376: (std::__make_move_if_noexcept_iterator(__first), 23376: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 23376: } 23376: 23376: template 23376: void 23376: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __x, _Allocator& __alloc) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 23376: for (; __cur != __last; ++__cur) 23376: __traits::construct(__alloc, std::__addressof(*__cur), __x); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur, __alloc); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 23376: const _Tp& __x, allocator<_Tp2>&) 23376: { std::uninitialized_fill(__first, __last, __x); } 23376: 23376: template 23376: _ForwardIterator 23376: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 23376: const _Tp& __x, _Allocator& __alloc) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 23376: for (; __n > 0; --__n, (void) ++__cur) 23376: __traits::construct(__alloc, std::__addressof(*__cur), __x); 23376: return __cur; 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur, __alloc); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 23376: const _Tp& __x, allocator<_Tp2>&) 23376: { return std::uninitialized_fill_n(__first, __n, __x); } 23376: # 378 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_copy_move(_InputIterator1 __first1, 23376: _InputIterator1 __last1, 23376: _InputIterator2 __first2, 23376: _InputIterator2 __last2, 23376: _ForwardIterator __result, 23376: _Allocator& __alloc) 23376: { 23376: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 23376: __result, 23376: __alloc); 23376: try 23376: { 23376: return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__result, __mid, __alloc); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_move_copy(_InputIterator1 __first1, 23376: _InputIterator1 __last1, 23376: _InputIterator2 __first2, 23376: _InputIterator2 __last2, 23376: _ForwardIterator __result, 23376: _Allocator& __alloc) 23376: { 23376: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 23376: __result, 23376: __alloc); 23376: try 23376: { 23376: return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__result, __mid, __alloc); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 23376: const _Tp& __x, _InputIterator __first, 23376: _InputIterator __last, _Allocator& __alloc) 23376: { 23376: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 23376: try 23376: { 23376: return std::__uninitialized_move_a(__first, __last, __mid, __alloc); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__result, __mid, __alloc); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 23376: _ForwardIterator __first2, 23376: _ForwardIterator __last2, const _Tp& __x, 23376: _Allocator& __alloc) 23376: { 23376: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 23376: __first2, 23376: __alloc); 23376: try 23376: { 23376: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first2, __mid2, __alloc); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __uninitialized_default_1 23376: { 23376: template 23376: static void 23376: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: for (; __cur != __last; ++__cur) 23376: std::_Construct(std::__addressof(*__cur)); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur); 23376: throw; 23376: } 23376: } 23376: }; 23376: 23376: template<> 23376: struct __uninitialized_default_1 23376: { 23376: template 23376: static void 23376: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType; 23376: 23376: std::fill(__first, __last, _ValueType()); 23376: } 23376: }; 23376: 23376: template 23376: struct __uninitialized_default_n_1 23376: { 23376: template 23376: static _ForwardIterator 23376: __uninit_default_n(_ForwardIterator __first, _Size __n) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: for (; __n > 0; --__n, (void) ++__cur) 23376: std::_Construct(std::__addressof(*__cur)); 23376: return __cur; 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur); 23376: throw; 23376: } 23376: } 23376: }; 23376: 23376: template<> 23376: struct __uninitialized_default_n_1 23376: { 23376: template 23376: static _ForwardIterator 23376: __uninit_default_n(_ForwardIterator __first, _Size __n) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType; 23376: 23376: return std::fill_n(__first, __n, _ValueType()); 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: __uninitialized_default(_ForwardIterator __first, 23376: _ForwardIterator __last) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType; 23376: 23376: const bool __assignable = is_copy_assignable<_ValueType>::value; 23376: 23376: std::__uninitialized_default_1<__is_trivial(_ValueType) 23376: && __assignable>:: 23376: __uninit_default(__first, __last); 23376: } 23376: 23376: 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType; 23376: 23376: const bool __assignable = is_copy_assignable<_ValueType>::value; 23376: 23376: return __uninitialized_default_n_1<__is_trivial(_ValueType) 23376: && __assignable>:: 23376: __uninit_default_n(__first, __n); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: __uninitialized_default_a(_ForwardIterator __first, 23376: _ForwardIterator __last, 23376: _Allocator& __alloc) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 23376: for (; __cur != __last; ++__cur) 23376: __traits::construct(__alloc, std::__addressof(*__cur)); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur, __alloc); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: __uninitialized_default_a(_ForwardIterator __first, 23376: _ForwardIterator __last, 23376: allocator<_Tp>&) 23376: { std::__uninitialized_default(__first, __last); } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: _ForwardIterator 23376: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 23376: _Allocator& __alloc) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 23376: for (; __n > 0; --__n, (void) ++__cur) 23376: __traits::construct(__alloc, std::__addressof(*__cur)); 23376: return __cur; 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur, __alloc); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 23376: allocator<_Tp>&) 23376: { return std::__uninitialized_default_n(__first, __n); } 23376: 23376: template 23376: struct __uninitialized_default_novalue_1 23376: { 23376: template 23376: static void 23376: __uninit_default_novalue(_ForwardIterator __first, 23376: _ForwardIterator __last) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: for (; __cur != __last; ++__cur) 23376: std::_Construct_novalue(std::__addressof(*__cur)); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur); 23376: throw; 23376: } 23376: } 23376: }; 23376: 23376: template<> 23376: struct __uninitialized_default_novalue_1 23376: { 23376: template 23376: static void 23376: __uninit_default_novalue(_ForwardIterator __first, 23376: _ForwardIterator __last) 23376: { 23376: } 23376: }; 23376: 23376: template 23376: struct __uninitialized_default_novalue_n_1 23376: { 23376: template 23376: static _ForwardIterator 23376: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 23376: { 23376: _ForwardIterator __cur = __first; 23376: try 23376: { 23376: for (; __n > 0; --__n, (void) ++__cur) 23376: std::_Construct_novalue(std::__addressof(*__cur)); 23376: return __cur; 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__first, __cur); 23376: throw; 23376: } 23376: } 23376: }; 23376: 23376: template<> 23376: struct __uninitialized_default_novalue_n_1 23376: { 23376: template 23376: static _ForwardIterator 23376: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 23376: { return std::next(__first, __n); } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: __uninitialized_default_novalue(_ForwardIterator __first, 23376: _ForwardIterator __last) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType; 23376: 23376: std::__uninitialized_default_novalue_1< 23376: is_trivially_default_constructible<_ValueType>::value>:: 23376: __uninit_default_novalue(__first, __last); 23376: } 23376: 23376: 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 23376: { 23376: typedef typename iterator_traits<_ForwardIterator>::value_type 23376: _ValueType; 23376: 23376: return __uninitialized_default_novalue_n_1< 23376: is_trivially_default_constructible<_ValueType>::value>:: 23376: __uninit_default_novalue_n(__first, __n); 23376: } 23376: 23376: template 23376: _ForwardIterator 23376: __uninitialized_copy_n(_InputIterator __first, _Size __n, 23376: _ForwardIterator __result, input_iterator_tag) 23376: { 23376: _ForwardIterator __cur = __result; 23376: try 23376: { 23376: for (; __n > 0; --__n, (void) ++__first, ++__cur) 23376: std::_Construct(std::__addressof(*__cur), *__first); 23376: return __cur; 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__result, __cur); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: inline _ForwardIterator 23376: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 23376: _ForwardIterator __result, 23376: random_access_iterator_tag) 23376: { return std::uninitialized_copy(__first, __first + __n, __result); } 23376: 23376: template 23376: pair<_InputIterator, _ForwardIterator> 23376: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 23376: _ForwardIterator __result, input_iterator_tag) 23376: { 23376: _ForwardIterator __cur = __result; 23376: try 23376: { 23376: for (; __n > 0; --__n, (void) ++__first, ++__cur) 23376: std::_Construct(std::__addressof(*__cur), *__first); 23376: return {__first, __cur}; 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__result, __cur); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: inline pair<_RandomAccessIterator, _ForwardIterator> 23376: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 23376: _ForwardIterator __result, 23376: random_access_iterator_tag) 23376: { 23376: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 23376: auto __first_res = std::next(__first, __n); 23376: return {__first_res, __second_res}; 23376: } 23376: # 810 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 23376: template 23376: inline _ForwardIterator 23376: uninitialized_copy_n(_InputIterator __first, _Size __n, 23376: _ForwardIterator __result) 23376: { return std::__uninitialized_copy_n(__first, __n, __result, 23376: std::__iterator_category(__first)); } 23376: 23376: template 23376: inline pair<_InputIterator, _ForwardIterator> 23376: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 23376: _ForwardIterator __result) 23376: { 23376: return 23376: std::__uninitialized_copy_n_pair(__first, __n, __result, 23376: std::__iterator_category(__first)); 23376: } 23376: # 882 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 23376: 23376: } 23376: # 64 "/usr/include/c++/8/vector" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_vector.h" 1 3 23376: # 74 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: template 23376: struct _Vector_base 23376: { 23376: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 23376: rebind<_Tp>::other _Tp_alloc_type; 23376: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 23376: pointer; 23376: 23376: struct _Vector_impl 23376: : public _Tp_alloc_type 23376: { 23376: pointer _M_start; 23376: pointer _M_finish; 23376: pointer _M_end_of_storage; 23376: 23376: _Vector_impl() 23376: : _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage() 23376: { } 23376: 23376: _Vector_impl(_Tp_alloc_type const& __a) noexcept 23376: : _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage() 23376: { } 23376: 23376: 23376: _Vector_impl(_Tp_alloc_type&& __a) noexcept 23376: : _Tp_alloc_type(std::move(__a)), 23376: _M_start(), _M_finish(), _M_end_of_storage() 23376: { } 23376: 23376: 23376: void _M_swap_data(_Vector_impl& __x) noexcept 23376: { 23376: std::swap(_M_start, __x._M_start); 23376: std::swap(_M_finish, __x._M_finish); 23376: std::swap(_M_end_of_storage, __x._M_end_of_storage); 23376: } 23376: # 231 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: }; 23376: 23376: public: 23376: typedef _Alloc allocator_type; 23376: 23376: _Tp_alloc_type& 23376: _M_get_Tp_allocator() noexcept 23376: { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 23376: 23376: const _Tp_alloc_type& 23376: _M_get_Tp_allocator() const noexcept 23376: { return *static_cast(&this->_M_impl); } 23376: 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return allocator_type(_M_get_Tp_allocator()); } 23376: 23376: _Vector_base() 23376: : _M_impl() { } 23376: 23376: _Vector_base(const allocator_type& __a) noexcept 23376: : _M_impl(__a) { } 23376: 23376: _Vector_base(size_t __n) 23376: : _M_impl() 23376: { _M_create_storage(__n); } 23376: 23376: _Vector_base(size_t __n, const allocator_type& __a) 23376: : _M_impl(__a) 23376: { _M_create_storage(__n); } 23376: 23376: 23376: _Vector_base(_Tp_alloc_type&& __a) noexcept 23376: : _M_impl(std::move(__a)) { } 23376: 23376: _Vector_base(_Vector_base&& __x) noexcept 23376: : _M_impl(std::move(__x._M_get_Tp_allocator())) 23376: { this->_M_impl._M_swap_data(__x._M_impl); } 23376: 23376: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 23376: : _M_impl(__a) 23376: { 23376: if (__x.get_allocator() == __a) 23376: this->_M_impl._M_swap_data(__x._M_impl); 23376: else 23376: { 23376: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 23376: _M_create_storage(__n); 23376: } 23376: } 23376: 23376: 23376: ~_Vector_base() noexcept 23376: { 23376: _M_deallocate(_M_impl._M_start, 23376: _M_impl._M_end_of_storage - _M_impl._M_start); 23376: } 23376: 23376: public: 23376: _Vector_impl _M_impl; 23376: 23376: pointer 23376: _M_allocate(size_t __n) 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 23376: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 23376: } 23376: 23376: void 23376: _M_deallocate(pointer __p, size_t __n) 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 23376: if (__p) 23376: _Tr::deallocate(_M_impl, __p, __n); 23376: } 23376: 23376: private: 23376: void 23376: _M_create_storage(size_t __n) 23376: { 23376: this->_M_impl._M_start = this->_M_allocate(__n); 23376: this->_M_impl._M_finish = this->_M_impl._M_start; 23376: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 23376: } 23376: }; 23376: # 338 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: template > 23376: class vector : protected _Vector_base<_Tp, _Alloc> 23376: { 23376: # 351 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: static_assert(is_same::type, _Tp>::value, 23376: "std::vector must have a non-const, non-volatile value_type"); 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef _Vector_base<_Tp, _Alloc> _Base; 23376: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 23376: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 23376: 23376: public: 23376: typedef _Tp value_type; 23376: typedef typename _Base::pointer pointer; 23376: typedef typename _Alloc_traits::const_pointer const_pointer; 23376: typedef typename _Alloc_traits::reference reference; 23376: typedef typename _Alloc_traits::const_reference const_reference; 23376: typedef __gnu_cxx::__normal_iterator iterator; 23376: typedef __gnu_cxx::__normal_iterator 23376: const_iterator; 23376: typedef std::reverse_iterator const_reverse_iterator; 23376: typedef std::reverse_iterator reverse_iterator; 23376: typedef size_t size_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef _Alloc allocator_type; 23376: 23376: protected: 23376: using _Base::_M_allocate; 23376: using _Base::_M_deallocate; 23376: using _Base::_M_impl; 23376: using _Base::_M_get_Tp_allocator; 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: vector() 23376: 23376: noexcept(is_nothrow_default_constructible<_Alloc>::value) 23376: 23376: : _Base() { } 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: vector(const allocator_type& __a) noexcept 23376: : _Base(__a) { } 23376: # 414 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: explicit 23376: vector(size_type __n, const allocator_type& __a = allocator_type()) 23376: : _Base(__n, __a) 23376: { _M_default_initialize(__n); } 23376: # 427 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: vector(size_type __n, const value_type& __value, 23376: const allocator_type& __a = allocator_type()) 23376: : _Base(__n, __a) 23376: { _M_fill_initialize(__n, __value); } 23376: # 458 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: vector(const vector& __x) 23376: : _Base(__x.size(), 23376: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 23376: { 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_copy_a(__x.begin(), __x.end(), 23376: this->_M_impl._M_start, 23376: _M_get_Tp_allocator()); 23376: } 23376: # 476 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: vector(vector&& __x) noexcept 23376: : _Base(std::move(__x)) { } 23376: 23376: 23376: vector(const vector& __x, const allocator_type& __a) 23376: : _Base(__x.size(), __a) 23376: { 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_copy_a(__x.begin(), __x.end(), 23376: this->_M_impl._M_start, 23376: _M_get_Tp_allocator()); 23376: } 23376: 23376: 23376: vector(vector&& __rv, const allocator_type& __m) 23376: noexcept(_Alloc_traits::_S_always_equal()) 23376: : _Base(std::move(__rv), __m) 23376: { 23376: if (__rv.get_allocator() != __m) 23376: { 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 23376: this->_M_impl._M_start, 23376: _M_get_Tp_allocator()); 23376: __rv.clear(); 23376: } 23376: } 23376: # 515 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: vector(initializer_list __l, 23376: const allocator_type& __a = allocator_type()) 23376: : _Base(__a) 23376: { 23376: _M_range_initialize(__l.begin(), __l.end(), 23376: random_access_iterator_tag()); 23376: } 23376: # 541 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: template> 23376: vector(_InputIterator __first, _InputIterator __last, 23376: const allocator_type& __a = allocator_type()) 23376: : _Base(__a) 23376: { _M_initialize_dispatch(__first, __last, __false_type()); } 23376: # 565 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: ~vector() noexcept 23376: { 23376: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: ; 23376: } 23376: # 581 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: vector& 23376: operator=(const vector& __x); 23376: # 595 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: vector& 23376: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 23376: { 23376: constexpr bool __move_storage = 23376: _Alloc_traits::_S_propagate_on_move_assign() 23376: || _Alloc_traits::_S_always_equal(); 23376: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 23376: return *this; 23376: } 23376: # 616 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: vector& 23376: operator=(initializer_list __l) 23376: { 23376: this->_M_assign_aux(__l.begin(), __l.end(), 23376: random_access_iterator_tag()); 23376: return *this; 23376: } 23376: # 635 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: void 23376: assign(size_type __n, const value_type& __val) 23376: { _M_fill_assign(__n, __val); } 23376: # 652 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: template> 23376: void 23376: assign(_InputIterator __first, _InputIterator __last) 23376: { _M_assign_dispatch(__first, __last, __false_type()); } 23376: # 680 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: void 23376: assign(initializer_list __l) 23376: { 23376: this->_M_assign_aux(__l.begin(), __l.end(), 23376: random_access_iterator_tag()); 23376: } 23376: 23376: 23376: 23376: using _Base::get_allocator; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: begin() noexcept 23376: { return iterator(this->_M_impl._M_start); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: begin() const noexcept 23376: { return const_iterator(this->_M_impl._M_start); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: end() noexcept 23376: { return iterator(this->_M_impl._M_finish); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: end() const noexcept 23376: { return const_iterator(this->_M_impl._M_finish); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rbegin() noexcept 23376: { return reverse_iterator(end()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rbegin() const noexcept 23376: { return const_reverse_iterator(end()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rend() noexcept 23376: { return reverse_iterator(begin()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rend() const noexcept 23376: { return const_reverse_iterator(begin()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cbegin() const noexcept 23376: { return const_iterator(this->_M_impl._M_start); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cend() const noexcept 23376: { return const_iterator(this->_M_impl._M_finish); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crbegin() const noexcept 23376: { return const_reverse_iterator(end()); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crend() const noexcept 23376: { return const_reverse_iterator(begin()); } 23376: 23376: 23376: 23376: 23376: size_type 23376: size() const noexcept 23376: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 23376: 23376: 23376: size_type 23376: max_size() const noexcept 23376: { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 23376: # 823 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: void 23376: resize(size_type __new_size) 23376: { 23376: if (__new_size > size()) 23376: _M_default_append(__new_size - size()); 23376: else if (__new_size < size()) 23376: _M_erase_at_end(this->_M_impl._M_start + __new_size); 23376: } 23376: # 843 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: void 23376: resize(size_type __new_size, const value_type& __x) 23376: { 23376: if (__new_size > size()) 23376: _M_fill_insert(end(), __new_size - size(), __x); 23376: else if (__new_size < size()) 23376: _M_erase_at_end(this->_M_impl._M_start + __new_size); 23376: } 23376: # 875 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: void 23376: shrink_to_fit() 23376: { _M_shrink_to_fit(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: size_type 23376: capacity() const noexcept 23376: { return size_type(this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_start); } 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: empty() const noexcept 23376: { return begin() == end(); } 23376: # 914 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: void 23376: reserve(size_type __n); 23376: # 929 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: reference 23376: operator[](size_type __n) noexcept 23376: { 23376: ; 23376: return *(this->_M_impl._M_start + __n); 23376: } 23376: # 947 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: const_reference 23376: operator[](size_type __n) const noexcept 23376: { 23376: ; 23376: return *(this->_M_impl._M_start + __n); 23376: } 23376: 23376: protected: 23376: 23376: void 23376: _M_range_check(size_type __n) const 23376: { 23376: if (__n >= this->size()) 23376: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 23376: 23376: , 23376: __n, this->size()); 23376: } 23376: 23376: public: 23376: # 978 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: reference 23376: at(size_type __n) 23376: { 23376: _M_range_check(__n); 23376: return (*this)[__n]; 23376: } 23376: # 996 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: const_reference 23376: at(size_type __n) const 23376: { 23376: _M_range_check(__n); 23376: return (*this)[__n]; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: reference 23376: front() noexcept 23376: { 23376: ; 23376: return *begin(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const_reference 23376: front() const noexcept 23376: { 23376: ; 23376: return *begin(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: reference 23376: back() noexcept 23376: { 23376: ; 23376: return *(end() - 1); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const_reference 23376: back() const noexcept 23376: { 23376: ; 23376: return *(end() - 1); 23376: } 23376: # 1054 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: _Tp* 23376: data() noexcept 23376: { return _M_data_ptr(this->_M_impl._M_start); } 23376: 23376: const _Tp* 23376: data() const noexcept 23376: { return _M_data_ptr(this->_M_impl._M_start); } 23376: # 1073 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: void 23376: push_back(const value_type& __x) 23376: { 23376: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 23376: { 23376: ; 23376: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 23376: __x); 23376: ++this->_M_impl._M_finish; 23376: ; 23376: } 23376: else 23376: _M_realloc_insert(end(), __x); 23376: } 23376: 23376: 23376: void 23376: push_back(value_type&& __x) 23376: { emplace_back(std::move(__x)); } 23376: 23376: template 23376: 23376: 23376: 23376: void 23376: 23376: emplace_back(_Args&&... __args); 23376: # 1111 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: void 23376: pop_back() noexcept 23376: { 23376: ; 23376: --this->_M_impl._M_finish; 23376: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 23376: ; 23376: } 23376: # 1133 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: template 23376: iterator 23376: emplace(const_iterator __position, _Args&&... __args) 23376: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 23376: # 1149 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: iterator 23376: insert(const_iterator __position, const value_type& __x); 23376: # 1179 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: iterator 23376: insert(const_iterator __position, value_type&& __x) 23376: { return _M_insert_rval(__position, std::move(__x)); } 23376: # 1196 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: iterator 23376: insert(const_iterator __position, initializer_list __l) 23376: { 23376: auto __offset = __position - cbegin(); 23376: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 23376: std::random_access_iterator_tag()); 23376: return begin() + __offset; 23376: } 23376: # 1221 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: iterator 23376: insert(const_iterator __position, size_type __n, const value_type& __x) 23376: { 23376: difference_type __offset = __position - cbegin(); 23376: _M_fill_insert(begin() + __offset, __n, __x); 23376: return begin() + __offset; 23376: } 23376: # 1263 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: template> 23376: iterator 23376: insert(const_iterator __position, _InputIterator __first, 23376: _InputIterator __last) 23376: { 23376: difference_type __offset = __position - cbegin(); 23376: _M_insert_dispatch(begin() + __offset, 23376: __first, __last, __false_type()); 23376: return begin() + __offset; 23376: } 23376: # 1315 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: iterator 23376: 23376: erase(const_iterator __position) 23376: { return _M_erase(begin() + (__position - cbegin())); } 23376: # 1342 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: iterator 23376: 23376: erase(const_iterator __first, const_iterator __last) 23376: { 23376: const auto __beg = begin(); 23376: const auto __cbeg = cbegin(); 23376: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 23376: } 23376: # 1366 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: void 23376: swap(vector& __x) noexcept 23376: { 23376: 23376: 23376: ; 23376: 23376: this->_M_impl._M_swap_data(__x._M_impl); 23376: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 23376: __x._M_get_Tp_allocator()); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: clear() noexcept 23376: { _M_erase_at_end(this->_M_impl._M_start); } 23376: 23376: protected: 23376: 23376: 23376: 23376: 23376: template 23376: pointer 23376: _M_allocate_and_copy(size_type __n, 23376: _ForwardIterator __first, _ForwardIterator __last) 23376: { 23376: pointer __result = this->_M_allocate(__n); 23376: try 23376: { 23376: std::__uninitialized_copy_a(__first, __last, __result, 23376: _M_get_Tp_allocator()); 23376: return __result; 23376: } 23376: catch(...) 23376: { 23376: _M_deallocate(__result, __n); 23376: throw; 23376: } 23376: } 23376: # 1419 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: template 23376: void 23376: _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) 23376: { 23376: this->_M_impl._M_start = _M_allocate(static_cast(__n)); 23376: this->_M_impl._M_end_of_storage = 23376: this->_M_impl._M_start + static_cast(__n); 23376: _M_fill_initialize(static_cast(__n), __value); 23376: } 23376: 23376: 23376: template 23376: void 23376: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 23376: __false_type) 23376: { 23376: typedef typename std::iterator_traits<_InputIterator>:: 23376: iterator_category _IterCategory; 23376: _M_range_initialize(__first, __last, _IterCategory()); 23376: } 23376: 23376: 23376: template 23376: void 23376: _M_range_initialize(_InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag) 23376: { 23376: try { 23376: for (; __first != __last; ++__first) 23376: 23376: emplace_back(*__first); 23376: 23376: 23376: 23376: } catch(...) { 23376: clear(); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: template 23376: void 23376: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 23376: std::forward_iterator_tag) 23376: { 23376: const size_type __n = std::distance(__first, __last); 23376: this->_M_impl._M_start = this->_M_allocate(__n); 23376: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_copy_a(__first, __last, 23376: this->_M_impl._M_start, 23376: _M_get_Tp_allocator()); 23376: } 23376: 23376: 23376: 23376: void 23376: _M_fill_initialize(size_type __n, const value_type& __value) 23376: { 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 23376: _M_get_Tp_allocator()); 23376: } 23376: 23376: 23376: 23376: void 23376: _M_default_initialize(size_type __n) 23376: { 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 23376: _M_get_Tp_allocator()); 23376: } 23376: # 1502 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: template 23376: void 23376: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 23376: { _M_fill_assign(__n, __val); } 23376: 23376: 23376: template 23376: void 23376: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 23376: __false_type) 23376: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 23376: 23376: 23376: template 23376: void 23376: _M_assign_aux(_InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag); 23376: 23376: 23376: template 23376: void 23376: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 23376: std::forward_iterator_tag); 23376: 23376: 23376: 23376: void 23376: _M_fill_assign(size_type __n, const value_type& __val); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 23376: __true_type) 23376: { _M_fill_insert(__pos, __n, __val); } 23376: 23376: 23376: template 23376: void 23376: _M_insert_dispatch(iterator __pos, _InputIterator __first, 23376: _InputIterator __last, __false_type) 23376: { 23376: _M_range_insert(__pos, __first, __last, 23376: std::__iterator_category(__first)); 23376: } 23376: 23376: 23376: template 23376: void 23376: _M_range_insert(iterator __pos, _InputIterator __first, 23376: _InputIterator __last, std::input_iterator_tag); 23376: 23376: 23376: template 23376: void 23376: _M_range_insert(iterator __pos, _ForwardIterator __first, 23376: _ForwardIterator __last, std::forward_iterator_tag); 23376: 23376: 23376: 23376: void 23376: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 23376: 23376: 23376: 23376: void 23376: _M_default_append(size_type __n); 23376: 23376: bool 23376: _M_shrink_to_fit(); 23376: # 1589 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: struct _Temporary_value 23376: { 23376: template 23376: explicit 23376: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 23376: { 23376: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 23376: std::forward<_Args>(__args)...); 23376: } 23376: 23376: ~_Temporary_value() 23376: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 23376: 23376: value_type& 23376: _M_val() { return *reinterpret_cast<_Tp*>(&__buf); } 23376: 23376: private: 23376: pointer 23376: _M_ptr() { return pointer_traits::pointer_to(_M_val()); } 23376: 23376: vector* _M_this; 23376: typename aligned_storage::type __buf; 23376: }; 23376: 23376: 23376: 23376: template 23376: void 23376: _M_insert_aux(iterator __position, _Arg&& __arg); 23376: 23376: template 23376: void 23376: _M_realloc_insert(iterator __position, _Args&&... __args); 23376: 23376: 23376: iterator 23376: _M_insert_rval(const_iterator __position, value_type&& __v); 23376: 23376: 23376: template 23376: iterator 23376: _M_emplace_aux(const_iterator __position, _Args&&... __args); 23376: 23376: 23376: iterator 23376: _M_emplace_aux(const_iterator __position, value_type&& __v) 23376: { return _M_insert_rval(__position, std::move(__v)); } 23376: 23376: 23376: 23376: size_type 23376: _M_check_len(size_type __n, const char* __s) const 23376: { 23376: if (max_size() - size() < __n) 23376: __throw_length_error((__s)); 23376: 23376: const size_type __len = size() + std::max(size(), __n); 23376: return (__len < size() || __len > max_size()) ? max_size() : __len; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: void 23376: _M_erase_at_end(pointer __pos) noexcept 23376: { 23376: if (size_type __n = this->_M_impl._M_finish - __pos) 23376: { 23376: std::_Destroy(__pos, this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish = __pos; 23376: ; 23376: } 23376: } 23376: 23376: iterator 23376: _M_erase(iterator __position); 23376: 23376: iterator 23376: _M_erase(iterator __first, iterator __last); 23376: 23376: 23376: private: 23376: 23376: 23376: 23376: void 23376: _M_move_assign(vector&& __x, std::true_type) noexcept 23376: { 23376: vector __tmp(get_allocator()); 23376: this->_M_impl._M_swap_data(__tmp._M_impl); 23376: this->_M_impl._M_swap_data(__x._M_impl); 23376: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 23376: } 23376: 23376: 23376: 23376: void 23376: _M_move_assign(vector&& __x, std::false_type) 23376: { 23376: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 23376: _M_move_assign(std::move(__x), std::true_type()); 23376: else 23376: { 23376: 23376: 23376: this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), 23376: std::__make_move_if_noexcept_iterator(__x.end())); 23376: __x.clear(); 23376: } 23376: } 23376: 23376: 23376: template 23376: _Up* 23376: _M_data_ptr(_Up* __ptr) const noexcept 23376: { return __ptr; } 23376: 23376: 23376: template 23376: typename std::pointer_traits<_Ptr>::element_type* 23376: _M_data_ptr(_Ptr __ptr) const 23376: { return empty() ? nullptr : std::__to_address(__ptr); } 23376: # 1729 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: }; 23376: # 1751 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: template 23376: inline bool 23376: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 23376: { return (__x.size() == __y.size() 23376: && std::equal(__x.begin(), __x.end(), __y.begin())); } 23376: # 1768 "/usr/include/c++/8/bits/stl_vector.h" 3 23376: template 23376: inline bool 23376: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 23376: { return std::lexicographical_compare(__x.begin(), __x.end(), 23376: __y.begin(), __y.end()); } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 23376: { return !(__x == __y); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 23376: { return __y < __x; } 23376: 23376: 23376: template 23376: inline bool 23376: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 23376: { return !(__y < __x); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 23376: { return !(__x < __y); } 23376: 23376: 23376: template 23376: inline void 23376: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 23376: noexcept(noexcept(__x.swap(__y))) 23376: { __x.swap(__y); } 23376: 23376: 23376: 23376: } 23376: # 65 "/usr/include/c++/8/vector" 2 3 23376: # 1 "/usr/include/c++/8/bits/stl_bvector.h" 1 3 23376: # 64 "/usr/include/c++/8/bits/stl_bvector.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: typedef unsigned long _Bit_type; 23376: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 23376: 23376: struct _Bit_reference 23376: { 23376: _Bit_type * _M_p; 23376: _Bit_type _M_mask; 23376: 23376: _Bit_reference(_Bit_type * __x, _Bit_type __y) 23376: : _M_p(__x), _M_mask(__y) { } 23376: 23376: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 23376: 23376: operator bool() const noexcept 23376: { return !!(*_M_p & _M_mask); } 23376: 23376: _Bit_reference& 23376: operator=(bool __x) noexcept 23376: { 23376: if (__x) 23376: *_M_p |= _M_mask; 23376: else 23376: *_M_p &= ~_M_mask; 23376: return *this; 23376: } 23376: 23376: _Bit_reference& 23376: operator=(const _Bit_reference& __x) noexcept 23376: { return *this = bool(__x); } 23376: 23376: bool 23376: operator==(const _Bit_reference& __x) const 23376: { return bool(*this) == bool(__x); } 23376: 23376: bool 23376: operator<(const _Bit_reference& __x) const 23376: { return !bool(*this) && bool(__x); } 23376: 23376: void 23376: flip() noexcept 23376: { *_M_p ^= _M_mask; } 23376: }; 23376: 23376: 23376: inline void 23376: swap(_Bit_reference __x, _Bit_reference __y) noexcept 23376: { 23376: bool __tmp = __x; 23376: __x = __y; 23376: __y = __tmp; 23376: } 23376: 23376: inline void 23376: swap(_Bit_reference __x, bool& __y) noexcept 23376: { 23376: bool __tmp = __x; 23376: __x = __y; 23376: __y = __tmp; 23376: } 23376: 23376: inline void 23376: swap(bool& __x, _Bit_reference __y) noexcept 23376: { 23376: bool __tmp = __x; 23376: __x = __y; 23376: __y = __tmp; 23376: } 23376: 23376: 23376: struct _Bit_iterator_base 23376: : public std::iterator 23376: { 23376: _Bit_type * _M_p; 23376: unsigned int _M_offset; 23376: 23376: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 23376: : _M_p(__x), _M_offset(__y) { } 23376: 23376: void 23376: _M_bump_up() 23376: { 23376: if (_M_offset++ == int(_S_word_bit) - 1) 23376: { 23376: _M_offset = 0; 23376: ++_M_p; 23376: } 23376: } 23376: 23376: void 23376: _M_bump_down() 23376: { 23376: if (_M_offset-- == 0) 23376: { 23376: _M_offset = int(_S_word_bit) - 1; 23376: --_M_p; 23376: } 23376: } 23376: 23376: void 23376: _M_incr(ptrdiff_t __i) 23376: { 23376: difference_type __n = __i + _M_offset; 23376: _M_p += __n / int(_S_word_bit); 23376: __n = __n % int(_S_word_bit); 23376: if (__n < 0) 23376: { 23376: __n += int(_S_word_bit); 23376: --_M_p; 23376: } 23376: _M_offset = static_cast(__n); 23376: } 23376: 23376: bool 23376: operator==(const _Bit_iterator_base& __i) const 23376: { return _M_p == __i._M_p && _M_offset == __i._M_offset; } 23376: 23376: bool 23376: operator<(const _Bit_iterator_base& __i) const 23376: { 23376: return _M_p < __i._M_p 23376: || (_M_p == __i._M_p && _M_offset < __i._M_offset); 23376: } 23376: 23376: bool 23376: operator!=(const _Bit_iterator_base& __i) const 23376: { return !(*this == __i); } 23376: 23376: bool 23376: operator>(const _Bit_iterator_base& __i) const 23376: { return __i < *this; } 23376: 23376: bool 23376: operator<=(const _Bit_iterator_base& __i) const 23376: { return !(__i < *this); } 23376: 23376: bool 23376: operator>=(const _Bit_iterator_base& __i) const 23376: { return !(*this < __i); } 23376: }; 23376: 23376: inline ptrdiff_t 23376: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 23376: { 23376: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 23376: + __x._M_offset - __y._M_offset); 23376: } 23376: 23376: struct _Bit_iterator : public _Bit_iterator_base 23376: { 23376: typedef _Bit_reference reference; 23376: typedef _Bit_reference* pointer; 23376: typedef _Bit_iterator iterator; 23376: 23376: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 23376: 23376: _Bit_iterator(_Bit_type * __x, unsigned int __y) 23376: : _Bit_iterator_base(__x, __y) { } 23376: 23376: iterator 23376: _M_const_cast() const 23376: { return *this; } 23376: 23376: reference 23376: operator*() const 23376: { return reference(_M_p, 1UL << _M_offset); } 23376: 23376: iterator& 23376: operator++() 23376: { 23376: _M_bump_up(); 23376: return *this; 23376: } 23376: 23376: iterator 23376: operator++(int) 23376: { 23376: iterator __tmp = *this; 23376: _M_bump_up(); 23376: return __tmp; 23376: } 23376: 23376: iterator& 23376: operator--() 23376: { 23376: _M_bump_down(); 23376: return *this; 23376: } 23376: 23376: iterator 23376: operator--(int) 23376: { 23376: iterator __tmp = *this; 23376: _M_bump_down(); 23376: return __tmp; 23376: } 23376: 23376: iterator& 23376: operator+=(difference_type __i) 23376: { 23376: _M_incr(__i); 23376: return *this; 23376: } 23376: 23376: iterator& 23376: operator-=(difference_type __i) 23376: { 23376: *this += -__i; 23376: return *this; 23376: } 23376: 23376: iterator 23376: operator+(difference_type __i) const 23376: { 23376: iterator __tmp = *this; 23376: return __tmp += __i; 23376: } 23376: 23376: iterator 23376: operator-(difference_type __i) const 23376: { 23376: iterator __tmp = *this; 23376: return __tmp -= __i; 23376: } 23376: 23376: reference 23376: operator[](difference_type __i) const 23376: { return *(*this + __i); } 23376: }; 23376: 23376: inline _Bit_iterator 23376: operator+(ptrdiff_t __n, const _Bit_iterator& __x) 23376: { return __x + __n; } 23376: 23376: struct _Bit_const_iterator : public _Bit_iterator_base 23376: { 23376: typedef bool reference; 23376: typedef bool const_reference; 23376: typedef const bool* pointer; 23376: typedef _Bit_const_iterator const_iterator; 23376: 23376: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 23376: 23376: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 23376: : _Bit_iterator_base(__x, __y) { } 23376: 23376: _Bit_const_iterator(const _Bit_iterator& __x) 23376: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 23376: 23376: _Bit_iterator 23376: _M_const_cast() const 23376: { return _Bit_iterator(_M_p, _M_offset); } 23376: 23376: const_reference 23376: operator*() const 23376: { return _Bit_reference(_M_p, 1UL << _M_offset); } 23376: 23376: const_iterator& 23376: operator++() 23376: { 23376: _M_bump_up(); 23376: return *this; 23376: } 23376: 23376: const_iterator 23376: operator++(int) 23376: { 23376: const_iterator __tmp = *this; 23376: _M_bump_up(); 23376: return __tmp; 23376: } 23376: 23376: const_iterator& 23376: operator--() 23376: { 23376: _M_bump_down(); 23376: return *this; 23376: } 23376: 23376: const_iterator 23376: operator--(int) 23376: { 23376: const_iterator __tmp = *this; 23376: _M_bump_down(); 23376: return __tmp; 23376: } 23376: 23376: const_iterator& 23376: operator+=(difference_type __i) 23376: { 23376: _M_incr(__i); 23376: return *this; 23376: } 23376: 23376: const_iterator& 23376: operator-=(difference_type __i) 23376: { 23376: *this += -__i; 23376: return *this; 23376: } 23376: 23376: const_iterator 23376: operator+(difference_type __i) const 23376: { 23376: const_iterator __tmp = *this; 23376: return __tmp += __i; 23376: } 23376: 23376: const_iterator 23376: operator-(difference_type __i) const 23376: { 23376: const_iterator __tmp = *this; 23376: return __tmp -= __i; 23376: } 23376: 23376: const_reference 23376: operator[](difference_type __i) const 23376: { return *(*this + __i); } 23376: }; 23376: 23376: inline _Bit_const_iterator 23376: operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) 23376: { return __x + __n; } 23376: 23376: inline void 23376: __fill_bvector(_Bit_type * __v, 23376: unsigned int __first, unsigned int __last, bool __x) 23376: { 23376: const _Bit_type __fmask = ~0ul << __first; 23376: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 23376: const _Bit_type __mask = __fmask & __lmask; 23376: 23376: if (__x) 23376: *__v |= __mask; 23376: else 23376: *__v &= ~__mask; 23376: } 23376: 23376: inline void 23376: fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) 23376: { 23376: if (__first._M_p != __last._M_p) 23376: { 23376: _Bit_type* __first_p = __first._M_p; 23376: if (__first._M_offset != 0) 23376: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 23376: 23376: __builtin_memset(__first_p, __x ? ~0 : 0, 23376: (__last._M_p - __first_p) * sizeof(_Bit_type)); 23376: 23376: if (__last._M_offset != 0) 23376: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 23376: } 23376: else if (__first._M_offset != __last._M_offset) 23376: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 23376: } 23376: 23376: template 23376: struct _Bvector_base 23376: { 23376: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 23376: rebind<_Bit_type>::other _Bit_alloc_type; 23376: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 23376: _Bit_alloc_traits; 23376: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 23376: 23376: struct _Bvector_impl_data 23376: { 23376: _Bit_iterator _M_start; 23376: _Bit_iterator _M_finish; 23376: _Bit_pointer _M_end_of_storage; 23376: 23376: _Bvector_impl_data() noexcept 23376: : _M_start(), _M_finish(), _M_end_of_storage() 23376: { } 23376: 23376: 23376: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 23376: : _M_start(__x._M_start), _M_finish(__x._M_finish) 23376: , _M_end_of_storage(__x._M_end_of_storage) 23376: { __x._M_reset(); } 23376: 23376: void 23376: _M_move_data(_Bvector_impl_data&& __x) noexcept 23376: { 23376: this->_M_start = __x._M_start; 23376: this->_M_finish = __x._M_finish; 23376: this->_M_end_of_storage = __x._M_end_of_storage; 23376: __x._M_reset(); 23376: } 23376: 23376: 23376: void 23376: _M_reset() noexcept 23376: { 23376: _M_start = _M_finish = _Bit_iterator(); 23376: _M_end_of_storage = _Bit_pointer(); 23376: } 23376: }; 23376: 23376: struct _Bvector_impl 23376: : public _Bit_alloc_type, public _Bvector_impl_data 23376: { 23376: public: 23376: _Bvector_impl() noexcept(is_nothrow_default_constructible<_Bit_alloc_type>::value) 23376: 23376: : _Bit_alloc_type() 23376: { } 23376: 23376: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 23376: : _Bit_alloc_type(__a) 23376: { } 23376: 23376: 23376: _Bvector_impl(_Bvector_impl&&) = default; 23376: 23376: 23376: _Bit_type* 23376: _M_end_addr() const noexcept 23376: { 23376: if (this->_M_end_of_storage) 23376: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 23376: return 0; 23376: } 23376: }; 23376: 23376: public: 23376: typedef _Alloc allocator_type; 23376: 23376: _Bit_alloc_type& 23376: _M_get_Bit_allocator() noexcept 23376: { return this->_M_impl; } 23376: 23376: const _Bit_alloc_type& 23376: _M_get_Bit_allocator() const noexcept 23376: { return this->_M_impl; } 23376: 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return allocator_type(_M_get_Bit_allocator()); } 23376: 23376: 23376: _Bvector_base() = default; 23376: 23376: 23376: 23376: 23376: _Bvector_base(const allocator_type& __a) 23376: : _M_impl(__a) { } 23376: 23376: 23376: _Bvector_base(_Bvector_base&&) = default; 23376: 23376: 23376: ~_Bvector_base() 23376: { this->_M_deallocate(); } 23376: 23376: protected: 23376: _Bvector_impl _M_impl; 23376: 23376: _Bit_pointer 23376: _M_allocate(size_t __n) 23376: { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } 23376: 23376: void 23376: _M_deallocate() 23376: { 23376: if (_M_impl._M_start._M_p) 23376: { 23376: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 23376: _Bit_alloc_traits::deallocate(_M_impl, 23376: _M_impl._M_end_of_storage - __n, 23376: __n); 23376: _M_impl._M_reset(); 23376: } 23376: } 23376: 23376: 23376: void 23376: _M_move_data(_Bvector_base&& __x) noexcept 23376: { _M_impl._M_move_data(std::move(__x._M_impl)); } 23376: 23376: 23376: static size_t 23376: _S_nword(size_t __n) 23376: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 23376: }; 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: # 587 "/usr/include/c++/8/bits/stl_bvector.h" 3 23376: template 23376: class vector : protected _Bvector_base<_Alloc> 23376: { 23376: typedef _Bvector_base<_Alloc> _Base; 23376: typedef typename _Base::_Bit_pointer _Bit_pointer; 23376: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 23376: 23376: 23376: friend struct std::hash; 23376: 23376: 23376: public: 23376: typedef bool value_type; 23376: typedef size_t size_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef _Bit_reference reference; 23376: typedef bool const_reference; 23376: typedef _Bit_reference* pointer; 23376: typedef const bool* const_pointer; 23376: typedef _Bit_iterator iterator; 23376: typedef _Bit_const_iterator const_iterator; 23376: typedef std::reverse_iterator const_reverse_iterator; 23376: typedef std::reverse_iterator reverse_iterator; 23376: typedef _Alloc allocator_type; 23376: 23376: allocator_type 23376: get_allocator() const 23376: { return _Base::get_allocator(); } 23376: 23376: protected: 23376: using _Base::_M_allocate; 23376: using _Base::_M_deallocate; 23376: using _Base::_S_nword; 23376: using _Base::_M_get_Bit_allocator; 23376: 23376: public: 23376: 23376: vector() = default; 23376: 23376: 23376: 23376: 23376: explicit 23376: vector(const allocator_type& __a) 23376: : _Base(__a) { } 23376: 23376: 23376: explicit 23376: vector(size_type __n, const allocator_type& __a = allocator_type()) 23376: : vector(__n, false, __a) 23376: { } 23376: 23376: vector(size_type __n, const bool& __value, 23376: const allocator_type& __a = allocator_type()) 23376: 23376: 23376: 23376: 23376: 23376: : _Base(__a) 23376: { 23376: _M_initialize(__n); 23376: _M_initialize_value(__value); 23376: } 23376: 23376: vector(const vector& __x) 23376: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 23376: { 23376: _M_initialize(__x.size()); 23376: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 23376: } 23376: 23376: 23376: vector(vector&&) = default; 23376: 23376: vector(vector&& __x, const allocator_type& __a) 23376: noexcept(_Bit_alloc_traits::_S_always_equal()) 23376: : _Base(__a) 23376: { 23376: if (__x.get_allocator() == __a) 23376: this->_M_move_data(std::move(__x)); 23376: else 23376: { 23376: _M_initialize(__x.size()); 23376: _M_copy_aligned(__x.begin(), __x.end(), begin()); 23376: __x.clear(); 23376: } 23376: } 23376: 23376: vector(const vector& __x, const allocator_type& __a) 23376: : _Base(__a) 23376: { 23376: _M_initialize(__x.size()); 23376: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 23376: } 23376: 23376: vector(initializer_list __l, 23376: const allocator_type& __a = allocator_type()) 23376: : _Base(__a) 23376: { 23376: _M_initialize_range(__l.begin(), __l.end(), 23376: random_access_iterator_tag()); 23376: } 23376: 23376: 23376: 23376: template> 23376: vector(_InputIterator __first, _InputIterator __last, 23376: const allocator_type& __a = allocator_type()) 23376: : _Base(__a) 23376: { _M_initialize_dispatch(__first, __last, __false_type()); } 23376: # 710 "/usr/include/c++/8/bits/stl_bvector.h" 3 23376: ~vector() noexcept { } 23376: 23376: vector& 23376: operator=(const vector& __x) 23376: { 23376: if (&__x == this) 23376: return *this; 23376: 23376: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 23376: { 23376: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 23376: { 23376: this->_M_deallocate(); 23376: std::__alloc_on_copy(_M_get_Bit_allocator(), 23376: __x._M_get_Bit_allocator()); 23376: _M_initialize(__x.size()); 23376: } 23376: else 23376: std::__alloc_on_copy(_M_get_Bit_allocator(), 23376: __x._M_get_Bit_allocator()); 23376: } 23376: 23376: if (__x.size() > capacity()) 23376: { 23376: this->_M_deallocate(); 23376: _M_initialize(__x.size()); 23376: } 23376: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 23376: begin()); 23376: return *this; 23376: } 23376: 23376: 23376: vector& 23376: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 23376: { 23376: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 23376: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 23376: { 23376: this->_M_deallocate(); 23376: this->_M_move_data(std::move(__x)); 23376: std::__alloc_on_move(_M_get_Bit_allocator(), 23376: __x._M_get_Bit_allocator()); 23376: } 23376: else 23376: { 23376: if (__x.size() > capacity()) 23376: { 23376: this->_M_deallocate(); 23376: _M_initialize(__x.size()); 23376: } 23376: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 23376: begin()); 23376: __x.clear(); 23376: } 23376: return *this; 23376: } 23376: 23376: vector& 23376: operator=(initializer_list __l) 23376: { 23376: this->assign (__l.begin(), __l.end()); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: assign(size_type __n, const bool& __x) 23376: { _M_fill_assign(__n, __x); } 23376: 23376: 23376: template> 23376: void 23376: assign(_InputIterator __first, _InputIterator __last) 23376: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 23376: # 801 "/usr/include/c++/8/bits/stl_bvector.h" 3 23376: void 23376: assign(initializer_list __l) 23376: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 23376: 23376: 23376: iterator 23376: begin() noexcept 23376: { return this->_M_impl._M_start; } 23376: 23376: const_iterator 23376: begin() const noexcept 23376: { return this->_M_impl._M_start; } 23376: 23376: iterator 23376: end() noexcept 23376: { return this->_M_impl._M_finish; } 23376: 23376: const_iterator 23376: end() const noexcept 23376: { return this->_M_impl._M_finish; } 23376: 23376: reverse_iterator 23376: rbegin() noexcept 23376: { return reverse_iterator(end()); } 23376: 23376: const_reverse_iterator 23376: rbegin() const noexcept 23376: { return const_reverse_iterator(end()); } 23376: 23376: reverse_iterator 23376: rend() noexcept 23376: { return reverse_iterator(begin()); } 23376: 23376: const_reverse_iterator 23376: rend() const noexcept 23376: { return const_reverse_iterator(begin()); } 23376: 23376: 23376: const_iterator 23376: cbegin() const noexcept 23376: { return this->_M_impl._M_start; } 23376: 23376: const_iterator 23376: cend() const noexcept 23376: { return this->_M_impl._M_finish; } 23376: 23376: const_reverse_iterator 23376: crbegin() const noexcept 23376: { return const_reverse_iterator(end()); } 23376: 23376: const_reverse_iterator 23376: crend() const noexcept 23376: { return const_reverse_iterator(begin()); } 23376: 23376: 23376: size_type 23376: size() const noexcept 23376: { return size_type(end() - begin()); } 23376: 23376: size_type 23376: max_size() const noexcept 23376: { 23376: const size_type __isize = 23376: __gnu_cxx::__numeric_traits::__max 23376: - int(_S_word_bit) + 1; 23376: const size_type __asize 23376: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 23376: return (__asize <= __isize / int(_S_word_bit) 23376: ? __asize * int(_S_word_bit) : __isize); 23376: } 23376: 23376: size_type 23376: capacity() const noexcept 23376: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 23376: - begin()); } 23376: 23376: bool 23376: empty() const noexcept 23376: { return begin() == end(); } 23376: 23376: reference 23376: operator[](size_type __n) 23376: { 23376: return *iterator(this->_M_impl._M_start._M_p 23376: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 23376: } 23376: 23376: const_reference 23376: operator[](size_type __n) const 23376: { 23376: return *const_iterator(this->_M_impl._M_start._M_p 23376: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 23376: } 23376: 23376: protected: 23376: void 23376: _M_range_check(size_type __n) const 23376: { 23376: if (__n >= this->size()) 23376: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 23376: 23376: , 23376: __n, this->size()); 23376: } 23376: 23376: public: 23376: reference 23376: at(size_type __n) 23376: { _M_range_check(__n); return (*this)[__n]; } 23376: 23376: const_reference 23376: at(size_type __n) const 23376: { _M_range_check(__n); return (*this)[__n]; } 23376: 23376: void 23376: reserve(size_type __n) 23376: { 23376: if (__n > max_size()) 23376: __throw_length_error(("vector::reserve")); 23376: if (capacity() < __n) 23376: _M_reallocate(__n); 23376: } 23376: 23376: reference 23376: front() 23376: { return *begin(); } 23376: 23376: const_reference 23376: front() const 23376: { return *begin(); } 23376: 23376: reference 23376: back() 23376: { return *(end() - 1); } 23376: 23376: const_reference 23376: back() const 23376: { return *(end() - 1); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: data() noexcept { } 23376: 23376: void 23376: push_back(bool __x) 23376: { 23376: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 23376: *this->_M_impl._M_finish++ = __x; 23376: else 23376: _M_insert_aux(end(), __x); 23376: } 23376: 23376: void 23376: swap(vector& __x) noexcept 23376: { 23376: std::swap(this->_M_impl._M_start, __x._M_impl._M_start); 23376: std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); 23376: std::swap(this->_M_impl._M_end_of_storage, 23376: __x._M_impl._M_end_of_storage); 23376: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 23376: __x._M_get_Bit_allocator()); 23376: } 23376: 23376: 23376: static void 23376: swap(reference __x, reference __y) noexcept 23376: { 23376: bool __tmp = __x; 23376: __x = __y; 23376: __y = __tmp; 23376: } 23376: 23376: iterator 23376: 23376: insert(const_iterator __position, const bool& __x = bool()) 23376: 23376: 23376: 23376: { 23376: const difference_type __n = __position - begin(); 23376: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 23376: && __position == end()) 23376: *this->_M_impl._M_finish++ = __x; 23376: else 23376: _M_insert_aux(__position._M_const_cast(), __x); 23376: return begin() + __n; 23376: } 23376: 23376: 23376: template> 23376: iterator 23376: insert(const_iterator __position, 23376: _InputIterator __first, _InputIterator __last) 23376: { 23376: difference_type __offset = __position - cbegin(); 23376: _M_insert_dispatch(__position._M_const_cast(), 23376: __first, __last, __false_type()); 23376: return begin() + __offset; 23376: } 23376: # 1017 "/usr/include/c++/8/bits/stl_bvector.h" 3 23376: iterator 23376: insert(const_iterator __position, size_type __n, const bool& __x) 23376: { 23376: difference_type __offset = __position - cbegin(); 23376: _M_fill_insert(__position._M_const_cast(), __n, __x); 23376: return begin() + __offset; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: insert(const_iterator __p, initializer_list __l) 23376: { return this->insert(__p, __l.begin(), __l.end()); } 23376: 23376: 23376: void 23376: pop_back() 23376: { --this->_M_impl._M_finish; } 23376: 23376: iterator 23376: 23376: erase(const_iterator __position) 23376: 23376: 23376: 23376: { return _M_erase(__position._M_const_cast()); } 23376: 23376: iterator 23376: 23376: erase(const_iterator __first, const_iterator __last) 23376: 23376: 23376: 23376: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 23376: 23376: void 23376: resize(size_type __new_size, bool __x = bool()) 23376: { 23376: if (__new_size < size()) 23376: _M_erase_at_end(begin() + difference_type(__new_size)); 23376: else 23376: insert(end(), __new_size - size(), __x); 23376: } 23376: 23376: 23376: void 23376: shrink_to_fit() 23376: { _M_shrink_to_fit(); } 23376: 23376: 23376: void 23376: flip() noexcept 23376: { 23376: _Bit_type * const __end = this->_M_impl._M_end_addr(); 23376: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 23376: *__p = ~*__p; 23376: } 23376: 23376: void 23376: clear() noexcept 23376: { _M_erase_at_end(begin()); } 23376: 23376: 23376: template 23376: 23376: 23376: 23376: void 23376: 23376: emplace_back(_Args&&... __args) 23376: { 23376: push_back(bool(__args...)); 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: iterator 23376: emplace(const_iterator __pos, _Args&&... __args) 23376: { return insert(__pos, bool(__args...)); } 23376: 23376: 23376: protected: 23376: 23376: iterator 23376: _M_copy_aligned(const_iterator __first, const_iterator __last, 23376: iterator __result) 23376: { 23376: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 23376: return std::copy(const_iterator(__last._M_p, 0), __last, 23376: iterator(__q, 0)); 23376: } 23376: 23376: void 23376: _M_initialize(size_type __n) 23376: { 23376: if (__n) 23376: { 23376: _Bit_pointer __q = this->_M_allocate(__n); 23376: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 23376: this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); 23376: } 23376: else 23376: { 23376: this->_M_impl._M_end_of_storage = _Bit_pointer(); 23376: this->_M_impl._M_start = iterator(0, 0); 23376: } 23376: this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); 23376: 23376: } 23376: 23376: void 23376: _M_initialize_value(bool __x) 23376: { 23376: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 23376: __builtin_memset(__p, __x ? ~0 : 0, 23376: (this->_M_impl._M_end_addr() - __p) 23376: * sizeof(_Bit_type)); 23376: } 23376: 23376: void 23376: _M_reallocate(size_type __n); 23376: 23376: 23376: bool 23376: _M_shrink_to_fit(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 23376: { 23376: _M_initialize(static_cast(__n)); 23376: _M_initialize_value(__x); 23376: } 23376: 23376: template 23376: void 23376: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 23376: __false_type) 23376: { _M_initialize_range(__first, __last, 23376: std::__iterator_category(__first)); } 23376: 23376: template 23376: void 23376: _M_initialize_range(_InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag) 23376: { 23376: for (; __first != __last; ++__first) 23376: push_back(*__first); 23376: } 23376: 23376: template 23376: void 23376: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 23376: std::forward_iterator_tag) 23376: { 23376: const size_type __n = std::distance(__first, __last); 23376: _M_initialize(__n); 23376: std::copy(__first, __last, this->_M_impl._M_start); 23376: } 23376: # 1203 "/usr/include/c++/8/bits/stl_bvector.h" 3 23376: void 23376: _M_fill_assign(size_t __n, bool __x) 23376: { 23376: if (__n > size()) 23376: { 23376: _M_initialize_value(__x); 23376: insert(end(), __n - size(), __x); 23376: } 23376: else 23376: { 23376: _M_erase_at_end(begin() + __n); 23376: _M_initialize_value(__x); 23376: } 23376: } 23376: 23376: template 23376: void 23376: _M_assign_aux(_InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag) 23376: { 23376: iterator __cur = begin(); 23376: for (; __first != __last && __cur != end(); ++__cur, ++__first) 23376: *__cur = *__first; 23376: if (__first == __last) 23376: _M_erase_at_end(__cur); 23376: else 23376: insert(end(), __first, __last); 23376: } 23376: 23376: template 23376: void 23376: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 23376: std::forward_iterator_tag) 23376: { 23376: const size_type __len = std::distance(__first, __last); 23376: if (__len < size()) 23376: _M_erase_at_end(std::copy(__first, __last, begin())); 23376: else 23376: { 23376: _ForwardIterator __mid = __first; 23376: std::advance(__mid, size()); 23376: std::copy(__first, __mid, begin()); 23376: insert(end(), __mid, __last); 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, 23376: __true_type) 23376: { _M_fill_insert(__pos, __n, __x); } 23376: 23376: template 23376: void 23376: _M_insert_dispatch(iterator __pos, 23376: _InputIterator __first, _InputIterator __last, 23376: __false_type) 23376: { _M_insert_range(__pos, __first, __last, 23376: std::__iterator_category(__first)); } 23376: 23376: void 23376: _M_fill_insert(iterator __position, size_type __n, bool __x); 23376: 23376: template 23376: void 23376: _M_insert_range(iterator __pos, _InputIterator __first, 23376: _InputIterator __last, std::input_iterator_tag) 23376: { 23376: for (; __first != __last; ++__first) 23376: { 23376: __pos = insert(__pos, *__first); 23376: ++__pos; 23376: } 23376: } 23376: 23376: template 23376: void 23376: _M_insert_range(iterator __position, _ForwardIterator __first, 23376: _ForwardIterator __last, std::forward_iterator_tag); 23376: 23376: void 23376: _M_insert_aux(iterator __position, bool __x); 23376: 23376: size_type 23376: _M_check_len(size_type __n, const char* __s) const 23376: { 23376: if (max_size() - size() < __n) 23376: __throw_length_error((__s)); 23376: 23376: const size_type __len = size() + std::max(size(), __n); 23376: return (__len < size() || __len > max_size()) ? max_size() : __len; 23376: } 23376: 23376: void 23376: _M_erase_at_end(iterator __pos) 23376: { this->_M_impl._M_finish = __pos; } 23376: 23376: iterator 23376: _M_erase(iterator __pos); 23376: 23376: iterator 23376: _M_erase(iterator __first, iterator __last); 23376: }; 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: template 23376: struct hash> 23376: : public __hash_base> 23376: { 23376: size_t 23376: operator()(const std::vector&) const noexcept; 23376: }; 23376: 23376: 23376: } 23376: # 66 "/usr/include/c++/8/vector" 2 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/vector.tcc" 1 3 23376: # 59 "/usr/include/c++/8/bits/vector.tcc" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: reserve(size_type __n) 23376: { 23376: if (__n > this->max_size()) 23376: __throw_length_error(("vector::reserve")); 23376: if (this->capacity() < __n) 23376: { 23376: const size_type __old_size = size(); 23376: pointer __tmp = _M_allocate_and_copy(__n, 23376: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 23376: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 23376: ; 23376: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: _M_deallocate(this->_M_impl._M_start, 23376: this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_start); 23376: this->_M_impl._M_start = __tmp; 23376: this->_M_impl._M_finish = __tmp + __old_size; 23376: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 23376: } 23376: } 23376: 23376: 23376: template 23376: template 23376: 23376: 23376: 23376: void 23376: 23376: vector<_Tp, _Alloc>:: 23376: emplace_back(_Args&&... __args) 23376: { 23376: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 23376: { 23376: ; 23376: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 23376: std::forward<_Args>(__args)...); 23376: ++this->_M_impl._M_finish; 23376: ; 23376: } 23376: else 23376: _M_realloc_insert(end(), std::forward<_Args>(__args)...); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: template 23376: typename vector<_Tp, _Alloc>::iterator 23376: vector<_Tp, _Alloc>:: 23376: 23376: insert(const_iterator __position, const value_type& __x) 23376: 23376: 23376: 23376: { 23376: const size_type __n = __position - begin(); 23376: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 23376: if (__position == end()) 23376: { 23376: ; 23376: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 23376: __x); 23376: ++this->_M_impl._M_finish; 23376: ; 23376: } 23376: else 23376: { 23376: 23376: const auto __pos = begin() + (__position - cbegin()); 23376: 23376: 23376: _Temporary_value __x_copy(this, __x); 23376: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 23376: 23376: 23376: 23376: } 23376: else 23376: 23376: _M_realloc_insert(begin() + (__position - cbegin()), __x); 23376: 23376: 23376: 23376: 23376: return iterator(this->_M_impl._M_start + __n); 23376: } 23376: 23376: template 23376: typename vector<_Tp, _Alloc>::iterator 23376: vector<_Tp, _Alloc>:: 23376: _M_erase(iterator __position) 23376: { 23376: if (__position + 1 != end()) 23376: std::move(__position + 1, end(), __position); 23376: --this->_M_impl._M_finish; 23376: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 23376: ; 23376: return __position; 23376: } 23376: 23376: template 23376: typename vector<_Tp, _Alloc>::iterator 23376: vector<_Tp, _Alloc>:: 23376: _M_erase(iterator __first, iterator __last) 23376: { 23376: if (__first != __last) 23376: { 23376: if (__last != end()) 23376: std::move(__last, end(), __first); 23376: _M_erase_at_end(__first.base() + (end() - __last)); 23376: } 23376: return __first; 23376: } 23376: 23376: template 23376: vector<_Tp, _Alloc>& 23376: vector<_Tp, _Alloc>:: 23376: operator=(const vector<_Tp, _Alloc>& __x) 23376: { 23376: if (&__x != this) 23376: { 23376: ; 23376: 23376: if (_Alloc_traits::_S_propagate_on_copy_assign()) 23376: { 23376: if (!_Alloc_traits::_S_always_equal() 23376: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 23376: { 23376: 23376: this->clear(); 23376: _M_deallocate(this->_M_impl._M_start, 23376: this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_start); 23376: this->_M_impl._M_start = nullptr; 23376: this->_M_impl._M_finish = nullptr; 23376: this->_M_impl._M_end_of_storage = nullptr; 23376: } 23376: std::__alloc_on_copy(_M_get_Tp_allocator(), 23376: __x._M_get_Tp_allocator()); 23376: } 23376: 23376: const size_type __xlen = __x.size(); 23376: if (__xlen > capacity()) 23376: { 23376: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 23376: __x.end()); 23376: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: _M_deallocate(this->_M_impl._M_start, 23376: this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_start); 23376: this->_M_impl._M_start = __tmp; 23376: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 23376: } 23376: else if (size() >= __xlen) 23376: { 23376: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 23376: end(), _M_get_Tp_allocator()); 23376: } 23376: else 23376: { 23376: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 23376: this->_M_impl._M_start); 23376: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 23376: __x._M_impl._M_finish, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: } 23376: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: _M_fill_assign(size_t __n, const value_type& __val) 23376: { 23376: if (__n > capacity()) 23376: { 23376: vector __tmp(__n, __val, _M_get_Tp_allocator()); 23376: __tmp._M_impl._M_swap_data(this->_M_impl); 23376: } 23376: else if (__n > size()) 23376: { 23376: std::fill(begin(), end(), __val); 23376: const size_type __add = __n - size(); 23376: ; 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 23376: __add, __val, _M_get_Tp_allocator()); 23376: ; 23376: } 23376: else 23376: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 23376: } 23376: 23376: template 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: _M_assign_aux(_InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag) 23376: { 23376: pointer __cur(this->_M_impl._M_start); 23376: for (; __first != __last && __cur != this->_M_impl._M_finish; 23376: ++__cur, ++__first) 23376: *__cur = *__first; 23376: if (__first == __last) 23376: _M_erase_at_end(__cur); 23376: else 23376: _M_range_insert(end(), __first, __last, 23376: std::__iterator_category(__first)); 23376: } 23376: 23376: template 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 23376: std::forward_iterator_tag) 23376: { 23376: const size_type __len = std::distance(__first, __last); 23376: 23376: if (__len > capacity()) 23376: { 23376: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 23376: ; 23376: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: _M_deallocate(this->_M_impl._M_start, 23376: this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_start); 23376: this->_M_impl._M_start = __tmp; 23376: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 23376: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 23376: } 23376: else if (size() >= __len) 23376: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 23376: else 23376: { 23376: _ForwardIterator __mid = __first; 23376: std::advance(__mid, size()); 23376: std::copy(__first, __mid, this->_M_impl._M_start); 23376: const size_type __attribute__((__unused__)) __n = __len - size(); 23376: ; 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_copy_a(__mid, __last, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: ; 23376: } 23376: } 23376: 23376: 23376: template 23376: auto 23376: vector<_Tp, _Alloc>:: 23376: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 23376: { 23376: const auto __n = __position - cbegin(); 23376: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 23376: if (__position == cend()) 23376: { 23376: ; 23376: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 23376: std::move(__v)); 23376: ++this->_M_impl._M_finish; 23376: ; 23376: } 23376: else 23376: _M_insert_aux(begin() + __n, std::move(__v)); 23376: else 23376: _M_realloc_insert(begin() + __n, std::move(__v)); 23376: 23376: return iterator(this->_M_impl._M_start + __n); 23376: } 23376: 23376: template 23376: template 23376: auto 23376: vector<_Tp, _Alloc>:: 23376: _M_emplace_aux(const_iterator __position, _Args&&... __args) 23376: -> iterator 23376: { 23376: const auto __n = __position - cbegin(); 23376: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 23376: if (__position == cend()) 23376: { 23376: ; 23376: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 23376: std::forward<_Args>(__args)...); 23376: ++this->_M_impl._M_finish; 23376: ; 23376: } 23376: else 23376: { 23376: 23376: 23376: 23376: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 23376: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 23376: } 23376: else 23376: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 23376: 23376: return iterator(this->_M_impl._M_start + __n); 23376: } 23376: 23376: template 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: _M_insert_aux(iterator __position, _Arg&& __arg) 23376: 23376: 23376: 23376: 23376: 23376: 23376: { 23376: ; 23376: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 23376: std::move(*(this->_M_impl._M_finish - 1))); 23376: ++this->_M_impl._M_finish; 23376: ; 23376: 23376: 23376: 23376: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 23376: 23376: ; 23376: 23376: 23376: 23376: *__position = std::forward<_Arg>(__arg); 23376: 23376: } 23376: 23376: 23376: template 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: _M_realloc_insert(iterator __position, _Args&&... __args) 23376: 23376: 23376: 23376: 23376: 23376: 23376: { 23376: const size_type __len = 23376: _M_check_len(size_type(1), "vector::_M_realloc_insert"); 23376: pointer __old_start = this->_M_impl._M_start; 23376: pointer __old_finish = this->_M_impl._M_finish; 23376: const size_type __elems_before = __position - begin(); 23376: pointer __new_start(this->_M_allocate(__len)); 23376: pointer __new_finish(__new_start); 23376: try 23376: { 23376: 23376: 23376: 23376: 23376: 23376: _Alloc_traits::construct(this->_M_impl, 23376: __new_start + __elems_before, 23376: 23376: std::forward<_Args>(__args)...); 23376: 23376: 23376: 23376: __new_finish = pointer(); 23376: 23376: __new_finish 23376: = std::__uninitialized_move_if_noexcept_a 23376: (__old_start, __position.base(), 23376: __new_start, _M_get_Tp_allocator()); 23376: 23376: ++__new_finish; 23376: 23376: __new_finish 23376: = std::__uninitialized_move_if_noexcept_a 23376: (__position.base(), __old_finish, 23376: __new_finish, _M_get_Tp_allocator()); 23376: } 23376: catch(...) 23376: { 23376: if (!__new_finish) 23376: _Alloc_traits::destroy(this->_M_impl, 23376: __new_start + __elems_before); 23376: else 23376: std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 23376: _M_deallocate(__new_start, __len); 23376: throw; 23376: } 23376: ; 23376: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 23376: _M_deallocate(__old_start, 23376: this->_M_impl._M_end_of_storage - __old_start); 23376: this->_M_impl._M_start = __new_start; 23376: this->_M_impl._M_finish = __new_finish; 23376: this->_M_impl._M_end_of_storage = __new_start + __len; 23376: } 23376: 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 23376: { 23376: if (__n != 0) 23376: { 23376: if (size_type(this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_finish) >= __n) 23376: { 23376: 23376: 23376: 23376: _Temporary_value __tmp(this, __x); 23376: value_type& __x_copy = __tmp._M_val(); 23376: 23376: const size_type __elems_after = end() - __position; 23376: pointer __old_finish(this->_M_impl._M_finish); 23376: if (__elems_after > __n) 23376: { 23376: ; 23376: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 23376: this->_M_impl._M_finish, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish += __n; 23376: ; 23376: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 23376: ; 23376: std::fill(__position.base(), __position.base() + __n, 23376: __x_copy); 23376: } 23376: else 23376: { 23376: ; 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 23376: __n - __elems_after, 23376: __x_copy, 23376: _M_get_Tp_allocator()); 23376: ; 23376: std::__uninitialized_move_a(__position.base(), __old_finish, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish += __elems_after; 23376: ; 23376: std::fill(__position.base(), __old_finish, __x_copy); 23376: } 23376: } 23376: else 23376: { 23376: const size_type __len = 23376: _M_check_len(__n, "vector::_M_fill_insert"); 23376: const size_type __elems_before = __position - begin(); 23376: pointer __new_start(this->_M_allocate(__len)); 23376: pointer __new_finish(__new_start); 23376: try 23376: { 23376: 23376: std::__uninitialized_fill_n_a(__new_start + __elems_before, 23376: __n, __x, 23376: _M_get_Tp_allocator()); 23376: __new_finish = pointer(); 23376: 23376: __new_finish 23376: = std::__uninitialized_move_if_noexcept_a 23376: (this->_M_impl._M_start, __position.base(), 23376: __new_start, _M_get_Tp_allocator()); 23376: 23376: __new_finish += __n; 23376: 23376: __new_finish 23376: = std::__uninitialized_move_if_noexcept_a 23376: (__position.base(), this->_M_impl._M_finish, 23376: __new_finish, _M_get_Tp_allocator()); 23376: } 23376: catch(...) 23376: { 23376: if (!__new_finish) 23376: std::_Destroy(__new_start + __elems_before, 23376: __new_start + __elems_before + __n, 23376: _M_get_Tp_allocator()); 23376: else 23376: std::_Destroy(__new_start, __new_finish, 23376: _M_get_Tp_allocator()); 23376: _M_deallocate(__new_start, __len); 23376: throw; 23376: } 23376: ; 23376: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: _M_deallocate(this->_M_impl._M_start, 23376: this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_start); 23376: this->_M_impl._M_start = __new_start; 23376: this->_M_impl._M_finish = __new_finish; 23376: this->_M_impl._M_end_of_storage = __new_start + __len; 23376: } 23376: } 23376: } 23376: 23376: 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: _M_default_append(size_type __n) 23376: { 23376: if (__n != 0) 23376: { 23376: const size_type __size = size(); 23376: size_type __navail = size_type(this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_finish); 23376: 23376: if (__size > max_size() || __navail > max_size() - __size) 23376: __builtin_unreachable(); 23376: 23376: if (__navail >= __n) 23376: { 23376: ; 23376: this->_M_impl._M_finish = 23376: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 23376: __n, _M_get_Tp_allocator()); 23376: ; 23376: } 23376: else 23376: { 23376: const size_type __len = 23376: _M_check_len(__n, "vector::_M_default_append"); 23376: pointer __new_start(this->_M_allocate(__len)); 23376: pointer __destroy_from = pointer(); 23376: try 23376: { 23376: std::__uninitialized_default_n_a(__new_start + __size, 23376: __n, _M_get_Tp_allocator()); 23376: __destroy_from = __new_start + __size; 23376: std::__uninitialized_move_if_noexcept_a( 23376: this->_M_impl._M_start, this->_M_impl._M_finish, 23376: __new_start, _M_get_Tp_allocator()); 23376: } 23376: catch(...) 23376: { 23376: if (__destroy_from) 23376: std::_Destroy(__destroy_from, __destroy_from + __n, 23376: _M_get_Tp_allocator()); 23376: _M_deallocate(__new_start, __len); 23376: throw; 23376: } 23376: ; 23376: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: _M_deallocate(this->_M_impl._M_start, 23376: this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_start); 23376: this->_M_impl._M_start = __new_start; 23376: this->_M_impl._M_finish = __new_start + __size + __n; 23376: this->_M_impl._M_end_of_storage = __new_start + __len; 23376: } 23376: } 23376: } 23376: 23376: template 23376: bool 23376: vector<_Tp, _Alloc>:: 23376: _M_shrink_to_fit() 23376: { 23376: if (capacity() == size()) 23376: return false; 23376: ; 23376: return std::__shrink_to_fit_aux::_S_do_it(*this); 23376: } 23376: 23376: 23376: template 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: _M_range_insert(iterator __pos, _InputIterator __first, 23376: _InputIterator __last, std::input_iterator_tag) 23376: { 23376: if (__pos == end()) 23376: { 23376: for (; __first != __last; ++__first) 23376: insert(end(), *__first); 23376: } 23376: else if (__first != __last) 23376: { 23376: vector __tmp(__first, __last, _M_get_Tp_allocator()); 23376: insert(__pos, 23376: std::make_move_iterator(__tmp.begin()), 23376: std::make_move_iterator(__tmp.end())); 23376: } 23376: } 23376: 23376: template 23376: template 23376: void 23376: vector<_Tp, _Alloc>:: 23376: _M_range_insert(iterator __position, _ForwardIterator __first, 23376: _ForwardIterator __last, std::forward_iterator_tag) 23376: { 23376: if (__first != __last) 23376: { 23376: const size_type __n = std::distance(__first, __last); 23376: if (size_type(this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_finish) >= __n) 23376: { 23376: const size_type __elems_after = end() - __position; 23376: pointer __old_finish(this->_M_impl._M_finish); 23376: if (__elems_after > __n) 23376: { 23376: ; 23376: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 23376: this->_M_impl._M_finish, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish += __n; 23376: ; 23376: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 23376: ; 23376: std::copy(__first, __last, __position); 23376: } 23376: else 23376: { 23376: _ForwardIterator __mid = __first; 23376: std::advance(__mid, __elems_after); 23376: ; 23376: std::__uninitialized_copy_a(__mid, __last, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish += __n - __elems_after; 23376: ; 23376: std::__uninitialized_move_a(__position.base(), 23376: __old_finish, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish += __elems_after; 23376: ; 23376: std::copy(__first, __mid, __position); 23376: } 23376: } 23376: else 23376: { 23376: const size_type __len = 23376: _M_check_len(__n, "vector::_M_range_insert"); 23376: pointer __new_start(this->_M_allocate(__len)); 23376: pointer __new_finish(__new_start); 23376: try 23376: { 23376: __new_finish 23376: = std::__uninitialized_move_if_noexcept_a 23376: (this->_M_impl._M_start, __position.base(), 23376: __new_start, _M_get_Tp_allocator()); 23376: __new_finish 23376: = std::__uninitialized_copy_a(__first, __last, 23376: __new_finish, 23376: _M_get_Tp_allocator()); 23376: __new_finish 23376: = std::__uninitialized_move_if_noexcept_a 23376: (__position.base(), this->_M_impl._M_finish, 23376: __new_finish, _M_get_Tp_allocator()); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(__new_start, __new_finish, 23376: _M_get_Tp_allocator()); 23376: _M_deallocate(__new_start, __len); 23376: throw; 23376: } 23376: ; 23376: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: _M_deallocate(this->_M_impl._M_start, 23376: this->_M_impl._M_end_of_storage 23376: - this->_M_impl._M_start); 23376: this->_M_impl._M_start = __new_start; 23376: this->_M_impl._M_finish = __new_finish; 23376: this->_M_impl._M_end_of_storage = __new_start + __len; 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: template 23376: void 23376: vector:: 23376: _M_reallocate(size_type __n) 23376: { 23376: _Bit_pointer __q = this->_M_allocate(__n); 23376: iterator __start(std::__addressof(*__q), 0); 23376: iterator __finish(_M_copy_aligned(begin(), end(), __start)); 23376: this->_M_deallocate(); 23376: this->_M_impl._M_start = __start; 23376: this->_M_impl._M_finish = __finish; 23376: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 23376: } 23376: 23376: template 23376: void 23376: vector:: 23376: _M_fill_insert(iterator __position, size_type __n, bool __x) 23376: { 23376: if (__n == 0) 23376: return; 23376: if (capacity() - size() >= __n) 23376: { 23376: std::copy_backward(__position, end(), 23376: this->_M_impl._M_finish + difference_type(__n)); 23376: std::fill(__position, __position + difference_type(__n), __x); 23376: this->_M_impl._M_finish += difference_type(__n); 23376: } 23376: else 23376: { 23376: const size_type __len = 23376: _M_check_len(__n, "vector::_M_fill_insert"); 23376: _Bit_pointer __q = this->_M_allocate(__len); 23376: iterator __start(std::__addressof(*__q), 0); 23376: iterator __i = _M_copy_aligned(begin(), __position, __start); 23376: std::fill(__i, __i + difference_type(__n), __x); 23376: iterator __finish = std::copy(__position, end(), 23376: __i + difference_type(__n)); 23376: this->_M_deallocate(); 23376: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 23376: this->_M_impl._M_start = __start; 23376: this->_M_impl._M_finish = __finish; 23376: } 23376: } 23376: 23376: template 23376: template 23376: void 23376: vector:: 23376: _M_insert_range(iterator __position, _ForwardIterator __first, 23376: _ForwardIterator __last, std::forward_iterator_tag) 23376: { 23376: if (__first != __last) 23376: { 23376: size_type __n = std::distance(__first, __last); 23376: if (capacity() - size() >= __n) 23376: { 23376: std::copy_backward(__position, end(), 23376: this->_M_impl._M_finish 23376: + difference_type(__n)); 23376: std::copy(__first, __last, __position); 23376: this->_M_impl._M_finish += difference_type(__n); 23376: } 23376: else 23376: { 23376: const size_type __len = 23376: _M_check_len(__n, "vector::_M_insert_range"); 23376: _Bit_pointer __q = this->_M_allocate(__len); 23376: iterator __start(std::__addressof(*__q), 0); 23376: iterator __i = _M_copy_aligned(begin(), __position, __start); 23376: __i = std::copy(__first, __last, __i); 23376: iterator __finish = std::copy(__position, end(), __i); 23376: this->_M_deallocate(); 23376: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 23376: this->_M_impl._M_start = __start; 23376: this->_M_impl._M_finish = __finish; 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: vector:: 23376: _M_insert_aux(iterator __position, bool __x) 23376: { 23376: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 23376: { 23376: std::copy_backward(__position, this->_M_impl._M_finish, 23376: this->_M_impl._M_finish + 1); 23376: *__position = __x; 23376: ++this->_M_impl._M_finish; 23376: } 23376: else 23376: { 23376: const size_type __len = 23376: _M_check_len(size_type(1), "vector::_M_insert_aux"); 23376: _Bit_pointer __q = this->_M_allocate(__len); 23376: iterator __start(std::__addressof(*__q), 0); 23376: iterator __i = _M_copy_aligned(begin(), __position, __start); 23376: *__i++ = __x; 23376: iterator __finish = std::copy(__position, end(), __i); 23376: this->_M_deallocate(); 23376: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 23376: this->_M_impl._M_start = __start; 23376: this->_M_impl._M_finish = __finish; 23376: } 23376: } 23376: 23376: template 23376: typename vector::iterator 23376: vector:: 23376: _M_erase(iterator __position) 23376: { 23376: if (__position + 1 != end()) 23376: std::copy(__position + 1, end(), __position); 23376: --this->_M_impl._M_finish; 23376: return __position; 23376: } 23376: 23376: template 23376: typename vector::iterator 23376: vector:: 23376: _M_erase(iterator __first, iterator __last) 23376: { 23376: if (__first != __last) 23376: _M_erase_at_end(std::copy(__last, end(), __first)); 23376: return __first; 23376: } 23376: 23376: 23376: template 23376: bool 23376: vector:: 23376: _M_shrink_to_fit() 23376: { 23376: if (capacity() - size() < int(_S_word_bit)) 23376: return false; 23376: try 23376: { 23376: _M_reallocate(size()); 23376: return true; 23376: } 23376: catch(...) 23376: { return false; } 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: size_t 23376: hash>:: 23376: operator()(const std::vector& __b) const noexcept 23376: { 23376: size_t __hash = 0; 23376: using std::_S_word_bit; 23376: using std::_Bit_type; 23376: 23376: const size_t __words = __b.size() / _S_word_bit; 23376: if (__words) 23376: { 23376: const size_t __clength = __words * sizeof(_Bit_type); 23376: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 23376: } 23376: 23376: const size_t __extrabits = __b.size() % _S_word_bit; 23376: if (__extrabits) 23376: { 23376: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 23376: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 23376: 23376: const size_t __clength 23376: = (__extrabits + 8 - 1) / 8; 23376: if (__words) 23376: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 23376: else 23376: __hash = std::_Hash_impl::hash(&__hiword, __clength); 23376: } 23376: 23376: return __hash; 23376: } 23376: 23376: 23376: } 23376: # 70 "/usr/include/c++/8/vector" 2 3 23376: # 33 "../../src/Linear_Form_defs.hh" 2 23376: 23376: 23376: # 34 "../../src/Linear_Form_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: template 23376: void swap(Linear_Form& x, Linear_Form& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator+(const Linear_Form& f1, const Linear_Form& f2); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator+(Variable v, const Linear_Form& f); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator+(const Linear_Form& f, Variable v); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator+(const C& n, const Linear_Form& f); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator+(const Linear_Form& f, const C& n); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator+(const Linear_Form& f); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const Linear_Form& f); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const Linear_Form& f1, const Linear_Form& f2); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(Variable v, const Linear_Form& f); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const Linear_Form& f, Variable v); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const C& n, const Linear_Form& f); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const Linear_Form& f, const C& n); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator*(const C& n, const Linear_Form& f); 23376: 23376: 23376: 23376: template 23376: Linear_Form 23376: operator*(const Linear_Form& f, const C& n); 23376: 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator+=(Linear_Form& f1, const Linear_Form& f2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator+=(Linear_Form& f, Variable v); 23376: 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator+=(Linear_Form& f, const C& n); 23376: 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator-=(Linear_Form& f1, const Linear_Form& f2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator-=(Linear_Form& f, Variable v); 23376: 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator-=(Linear_Form& f, const C& n); 23376: 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator*=(Linear_Form& f, const C& n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator/=(Linear_Form& f, const C& n); 23376: 23376: 23376: 23376: template 23376: bool 23376: operator==(const Linear_Form& x, const Linear_Form& y); 23376: 23376: 23376: 23376: template 23376: bool 23376: operator!=(const Linear_Form& x, const Linear_Form& y); 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: template 23376: std::ostream& operator<<(std::ostream& s, const Linear_Form& f); 23376: 23376: } 23376: 23376: } 23376: # 260 "../../src/Linear_Form_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::Linear_Form { 23376: public: 23376: 23376: Linear_Form(); 23376: 23376: 23376: Linear_Form(const Linear_Form& f); 23376: 23376: 23376: ~Linear_Form(); 23376: 23376: 23376: explicit Linear_Form(const C& n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Form(Variable v); 23376: 23376: 23376: Linear_Form(const Linear_Expression& e); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: const C& coefficient(Variable v) const; 23376: 23376: 23376: const C& inhomogeneous_term() const; 23376: 23376: 23376: void negate(); 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: bool OK() const; 23376: 23376: 23376: void m_swap(Linear_Form& y); 23376: # 336 "../../src/Linear_Form_defs.hh" 23376: bool overflows() const; 23376: # 365 "../../src/Linear_Form_defs.hh" 23376: void relative_error(Floating_Point_Format analyzed_format, 23376: Linear_Form& result) const; 23376: # 398 "../../src/Linear_Form_defs.hh" 23376: template 23376: bool intervalize(const FP_Oracle& oracle, C& result) const; 23376: 23376: private: 23376: 23376: static C zero; 23376: 23376: 23376: typedef std::vector vec_type; 23376: 23376: 23376: vec_type vec; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Form(dimension_type sz, bool); 23376: # 426 "../../src/Linear_Form_defs.hh" 23376: Linear_Form(Variable v, Variable w); 23376: 23376: 23376: dimension_type size() const; 23376: 23376: 23376: void extend(dimension_type sz); 23376: 23376: 23376: C& operator[](dimension_type i); 23376: 23376: 23376: const C& operator[](dimension_type i) const; 23376: 23376: friend Linear_Form 23376: operator+(const Linear_Form& f1, const Linear_Form& f2); 23376: friend Linear_Form 23376: operator+(const C& n, const Linear_Form& f); 23376: friend Linear_Form 23376: operator+(const Linear_Form& f, const C& n); 23376: friend Linear_Form 23376: operator+(Variable v, const Linear_Form& f); 23376: 23376: friend Linear_Form 23376: operator-(const Linear_Form& f); 23376: 23376: friend Linear_Form 23376: operator-(const Linear_Form& f1, const Linear_Form& f2); 23376: friend Linear_Form 23376: operator-(const C& n, const Linear_Form& f); 23376: friend Linear_Form 23376: operator-(const Linear_Form& f, const C& n); 23376: friend Linear_Form 23376: operator-(Variable v, const Linear_Form& f); 23376: friend Linear_Form 23376: operator-(const Linear_Form& f, Variable v); 23376: 23376: friend Linear_Form 23376: operator*(const C& n, const Linear_Form& f); 23376: friend Linear_Form 23376: operator*(const Linear_Form& f, const C& n); 23376: 23376: friend Linear_Form& 23376: operator+=(Linear_Form& f1, const Linear_Form& f2); 23376: friend Linear_Form& 23376: operator+=(Linear_Form& f, Variable v); 23376: friend Linear_Form& 23376: operator+=(Linear_Form& f, const C& n); 23376: 23376: friend Linear_Form& 23376: operator-=(Linear_Form& f1, const Linear_Form& f2); 23376: friend Linear_Form& 23376: operator-=(Linear_Form& f, Variable v); 23376: friend Linear_Form& 23376: operator-=(Linear_Form& f, const C& n); 23376: 23376: friend Linear_Form& 23376: operator*=(Linear_Form& f, const C& n); 23376: 23376: friend Linear_Form& 23376: operator/=(Linear_Form& f, const C& n); 23376: 23376: friend bool 23376: operator==(const Linear_Form& x, const Linear_Form& y); 23376: 23376: friend std::ostream& 23376: Parma_Polyhedra_Library::IO_Operators 23376: ::operator<<(std::ostream& s, const Linear_Form& f); 23376: }; 23376: 23376: # 1 "../../src/Linear_Form_inlines.hh" 1 23376: # 28 "../../src/Linear_Form_inlines.hh" 23376: # 1 "/usr/include/c++/8/iostream" 1 3 23376: # 36 "/usr/include/c++/8/iostream" 3 23376: 23376: # 37 "/usr/include/c++/8/iostream" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 42 "/usr/include/c++/8/iostream" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 60 "/usr/include/c++/8/iostream" 3 23376: extern istream cin; 23376: extern ostream cout; 23376: extern ostream cerr; 23376: extern ostream clog; 23376: 23376: 23376: extern wistream wcin; 23376: extern wostream wcout; 23376: extern wostream wcerr; 23376: extern wostream wclog; 23376: 23376: 23376: 23376: 23376: static ios_base::Init __ioinit; 23376: 23376: 23376: } 23376: # 29 "../../src/Linear_Form_inlines.hh" 2 23376: 23376: 23376: 23376: # 31 "../../src/Linear_Form_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline dimension_type 23376: Linear_Form::max_space_dimension() { 23376: return vec_type().max_size() - 1; 23376: } 23376: 23376: template 23376: inline 23376: Linear_Form::Linear_Form() 23376: : vec(1, zero) { 23376: vec.reserve(compute_capacity(1, vec_type().max_size())); 23376: } 23376: 23376: template 23376: inline 23376: Linear_Form::Linear_Form(dimension_type sz, bool) 23376: : vec(sz, zero) { 23376: vec.reserve(compute_capacity(sz, vec_type().max_size())); 23376: } 23376: 23376: template 23376: inline 23376: Linear_Form::Linear_Form(const Linear_Form& f) 23376: : vec(f.vec) { 23376: } 23376: 23376: template 23376: inline 23376: Linear_Form::~Linear_Form() { 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Linear_Form::size() const { 23376: return vec.size(); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_Form::extend(dimension_type sz) { 23376: 23376: # 73 "../../src/Linear_Form_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 73 "../../src/Linear_Form_inlines.hh" 23376: ; 23376: vec.reserve(compute_capacity(sz, vec_type().max_size())); 23376: vec.resize(sz, zero); 23376: } 23376: 23376: template 23376: inline 23376: Linear_Form::Linear_Form(const C& n) 23376: : vec(1, n) { 23376: vec.reserve(compute_capacity(1, vec_type().max_size())); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Linear_Form::space_dimension() const { 23376: return size() - 1; 23376: } 23376: 23376: template 23376: inline const C& 23376: Linear_Form::coefficient(Variable v) const { 23376: if (v.space_dimension() > space_dimension()) { 23376: return zero; 23376: } 23376: return vec[v.id()+1]; 23376: } 23376: 23376: template 23376: inline C& 23376: Linear_Form::operator[](dimension_type i) { 23376: 23376: # 103 "../../src/Linear_Form_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 103 "../../src/Linear_Form_inlines.hh" 23376: ; 23376: return vec[i]; 23376: } 23376: 23376: template 23376: inline const C& 23376: Linear_Form::operator[](dimension_type i) const { 23376: 23376: # 110 "../../src/Linear_Form_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 110 "../../src/Linear_Form_inlines.hh" 23376: ; 23376: return vec[i]; 23376: } 23376: 23376: template 23376: inline const C& 23376: Linear_Form::inhomogeneous_term() const { 23376: return vec[0]; 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Linear_Form::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: 23376: template 23376: inline Linear_Form 23376: operator+(const Linear_Form& f) { 23376: return f; 23376: } 23376: 23376: 23376: template 23376: inline Linear_Form 23376: operator+(const Linear_Form& f, const C& n) { 23376: return n + f; 23376: } 23376: 23376: 23376: template 23376: inline Linear_Form 23376: operator+(const Linear_Form& f, const Variable v) { 23376: return v + f; 23376: } 23376: 23376: 23376: template 23376: inline Linear_Form 23376: operator-(const Linear_Form& f, const C& n) { 23376: return -n + f; 23376: } 23376: 23376: 23376: template 23376: inline Linear_Form 23376: operator-(const Variable v, const Variable w) { 23376: return Linear_Form(v, w); 23376: } 23376: 23376: 23376: template 23376: inline Linear_Form 23376: operator*(const Linear_Form& f, const C& n) { 23376: return n * f; 23376: } 23376: 23376: 23376: template 23376: inline Linear_Form& 23376: operator+=(Linear_Form& f, const C& n) { 23376: f[0] += n; 23376: return f; 23376: } 23376: 23376: 23376: template 23376: inline Linear_Form& 23376: operator-=(Linear_Form& f, const C& n) { 23376: f[0] -= n; 23376: return f; 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const Linear_Form& x, const Linear_Form& y) { 23376: return !(x == y); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_Form::m_swap(Linear_Form& y) { 23376: using std::swap; 23376: swap(vec, y.vec); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_Form::ascii_dump(std::ostream& s) const { 23376: using namespace IO_Operators; 23376: dimension_type space_dim = space_dimension(); 23376: s << space_dim << "\n"; 23376: for (dimension_type i = 0; i <= space_dim; ++i) { 23376: const char separator = ' '; 23376: s << vec[i] << separator; 23376: } 23376: s << "\n"; 23376: } 23376: 23376: template 23376: inline bool 23376: Linear_Form::ascii_load(std::istream& s) { 23376: using namespace IO_Operators; 23376: dimension_type new_dim; 23376: if (!(s >> new_dim)) { 23376: return false; 23376: } 23376: 23376: vec.resize(new_dim + 1, zero); 23376: for (dimension_type i = 0; i <= new_dim; ++i) { 23376: if (!(s >> vec[i])) { 23376: return false; 23376: } 23376: } 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: Linear_Form::overflows() const { 23376: if (!inhomogeneous_term().is_bounded()) { 23376: return true; 23376: } 23376: for (dimension_type i = space_dimension(); i-- > 0; ) { 23376: if (!coefficient(Variable(i)).is_bounded()) { 23376: return true; 23376: } 23376: } 23376: 23376: return false; 23376: } 23376: 23376: 23376: template 23376: inline void 23376: swap(Linear_Form& x, Linear_Form& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 497 "../../src/Linear_Form_defs.hh" 2 23376: # 29 "../../src/Float_inlines.hh" 2 23376: 23376: # 1 "/usr/include/c++/8/climits" 1 3 23376: # 39 "/usr/include/c++/8/climits" 3 23376: 23376: # 40 "/usr/include/c++/8/climits" 3 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 23376: # 43 "/usr/include/c++/8/climits" 2 3 23376: # 31 "../../src/Float_inlines.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline int 23376: float_ieee754_half::inf_sign() const { 23376: if (word == NEG_INF) { 23376: return -1; 23376: } 23376: if (word == POS_INF) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline bool 23376: float_ieee754_half::is_nan() const { 23376: return (word & ~SGN_MASK) > POS_INF; 23376: } 23376: 23376: inline int 23376: float_ieee754_half::zero_sign() const { 23376: if (word == NEG_ZERO) { 23376: return -1; 23376: } 23376: if (word == POS_ZERO) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline void 23376: float_ieee754_half::negate() { 23376: word ^= SGN_MASK; 23376: } 23376: 23376: inline bool 23376: float_ieee754_half::sign_bit() const { 23376: return (word & SGN_MASK) != 0; 23376: } 23376: 23376: inline void 23376: float_ieee754_half::dec() { 23376: --word; 23376: } 23376: 23376: inline void 23376: float_ieee754_half::inc() { 23376: ++word; 23376: } 23376: 23376: inline void 23376: float_ieee754_half::set_max(bool negative) { 23376: word = WRD_MAX; 23376: if (negative) { 23376: word |= SGN_MASK; 23376: } 23376: } 23376: 23376: inline void 23376: float_ieee754_half::build(bool negative, mpz_t mantissa, int exponent) { 23376: word = static_cast( 23376: # 91 "../../src/Float_inlines.hh" 3 4 23376: __gmpz_get_ui 23376: # 91 "../../src/Float_inlines.hh" 23376: (mantissa) 23376: & ((1UL << MANTISSA_BITS) - 1)); 23376: if (negative) { 23376: word |= SGN_MASK; 23376: } 23376: const int exponent_repr = exponent + EXPONENT_BIAS; 23376: ((void) 0); 23376: word |= static_cast(exponent_repr) << MANTISSA_BITS; 23376: } 23376: 23376: inline int 23376: float_ieee754_single::inf_sign() const { 23376: if (word == NEG_INF) { 23376: return -1; 23376: } 23376: if (word == POS_INF) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline bool 23376: float_ieee754_single::is_nan() const { 23376: return (word & ~SGN_MASK) > POS_INF; 23376: } 23376: 23376: inline int 23376: float_ieee754_single::zero_sign() const { 23376: if (word == NEG_ZERO) { 23376: return -1; 23376: } 23376: if (word == POS_ZERO) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline void 23376: float_ieee754_single::negate() { 23376: word ^= SGN_MASK; 23376: } 23376: 23376: inline bool 23376: float_ieee754_single::sign_bit() const { 23376: return (word & SGN_MASK) != 0; 23376: } 23376: 23376: inline void 23376: float_ieee754_single::dec() { 23376: --word; 23376: } 23376: 23376: inline void 23376: float_ieee754_single::inc() { 23376: ++word; 23376: } 23376: 23376: inline void 23376: float_ieee754_single::set_max(bool negative) { 23376: word = WRD_MAX; 23376: if (negative) { 23376: word |= SGN_MASK; 23376: } 23376: } 23376: 23376: inline void 23376: float_ieee754_single::build(bool negative, mpz_t mantissa, int exponent) { 23376: word = static_cast( 23376: # 158 "../../src/Float_inlines.hh" 3 4 23376: __gmpz_get_ui 23376: # 158 "../../src/Float_inlines.hh" 23376: (mantissa) 23376: & ((1UL << MANTISSA_BITS) - 1)); 23376: if (negative) { 23376: word |= SGN_MASK; 23376: } 23376: const int exponent_repr = exponent + EXPONENT_BIAS; 23376: ((void) 0); 23376: word |= static_cast(exponent_repr) << MANTISSA_BITS; 23376: } 23376: 23376: inline int 23376: float_ieee754_double::inf_sign() const { 23376: if (lsp != LSP_INF) { 23376: return 0; 23376: } 23376: if (msp == MSP_NEG_INF) { 23376: return -1; 23376: } 23376: if (msp == MSP_POS_INF) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline bool 23376: float_ieee754_double::is_nan() const { 23376: const uint32_t a = msp & ~MSP_SGN_MASK; 23376: return a > MSP_POS_INF || (a == MSP_POS_INF && lsp != LSP_INF); 23376: } 23376: 23376: inline int 23376: float_ieee754_double::zero_sign() const { 23376: if (lsp != LSP_ZERO) { 23376: return 0; 23376: } 23376: if (msp == MSP_NEG_ZERO) { 23376: return -1; 23376: } 23376: if (msp == MSP_POS_ZERO) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline void 23376: float_ieee754_double::negate() { 23376: msp ^= MSP_SGN_MASK; 23376: } 23376: 23376: inline bool 23376: float_ieee754_double::sign_bit() const { 23376: return (msp & MSP_SGN_MASK) != 0; 23376: } 23376: 23376: inline void 23376: float_ieee754_double::dec() { 23376: if (lsp == 0) { 23376: --msp; 23376: lsp = LSP_MAX; 23376: } 23376: else { 23376: --lsp; 23376: } 23376: } 23376: 23376: inline void 23376: float_ieee754_double::inc() { 23376: if (lsp == LSP_MAX) { 23376: ++msp; 23376: lsp = 0; 23376: } 23376: else { 23376: ++lsp; 23376: } 23376: } 23376: 23376: inline void 23376: float_ieee754_double::set_max(bool negative) { 23376: msp = MSP_MAX; 23376: lsp = LSP_MAX; 23376: if (negative) { 23376: msp |= MSP_SGN_MASK; 23376: } 23376: } 23376: 23376: inline void 23376: float_ieee754_double::build(bool negative, mpz_t mantissa, int exponent) { 23376: unsigned long m; 23376: 23376: lsp = 23376: # 247 "../../src/Float_inlines.hh" 3 4 23376: __gmpz_get_ui 23376: # 247 "../../src/Float_inlines.hh" 23376: (mantissa); 23376: 23376: # 248 "../../src/Float_inlines.hh" 3 4 23376: __gmpz_tdiv_q_2exp 23376: # 248 "../../src/Float_inlines.hh" 23376: (mantissa, mantissa, 32); 23376: m = 23376: # 249 "../../src/Float_inlines.hh" 3 4 23376: __gmpz_get_ui 23376: # 249 "../../src/Float_inlines.hh" 23376: (mantissa); 23376: 23376: 23376: 23376: 23376: 23376: msp = static_cast(m & ((1UL << (MANTISSA_BITS - 32)) - 1)); 23376: if (negative) { 23376: msp |= MSP_SGN_MASK; 23376: } 23376: const int exponent_repr = exponent + EXPONENT_BIAS; 23376: ((void) 0); 23376: msp |= static_cast(exponent_repr) << (MANTISSA_BITS - 32); 23376: } 23376: 23376: inline int 23376: float_ibm_single::inf_sign() const { 23376: if (word == NEG_INF) { 23376: return -1; 23376: } 23376: if (word == POS_INF) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline bool 23376: float_ibm_single::is_nan() const { 23376: return (word & ~SGN_MASK) > POS_INF; 23376: } 23376: 23376: inline int 23376: float_ibm_single::zero_sign() const { 23376: if (word == NEG_ZERO) { 23376: return -1; 23376: } 23376: if (word == POS_ZERO) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline void 23376: float_ibm_single::negate() { 23376: word ^= SGN_MASK; 23376: } 23376: 23376: inline bool 23376: float_ibm_single::sign_bit() const { 23376: return (word & SGN_MASK) != 0; 23376: } 23376: 23376: inline void 23376: float_ibm_single::dec() { 23376: --word; 23376: } 23376: 23376: inline void 23376: float_ibm_single::inc() { 23376: ++word; 23376: } 23376: 23376: inline void 23376: float_ibm_single::set_max(bool negative) { 23376: word = WRD_MAX; 23376: if (negative) { 23376: word |= SGN_MASK; 23376: } 23376: } 23376: 23376: inline void 23376: float_ibm_single::build(bool negative, mpz_t mantissa, int exponent) { 23376: word = static_cast( 23376: # 321 "../../src/Float_inlines.hh" 3 4 23376: __gmpz_get_ui 23376: # 321 "../../src/Float_inlines.hh" 23376: (mantissa) 23376: & ((1UL << MANTISSA_BITS) - 1)); 23376: if (negative) { 23376: word |= SGN_MASK; 23376: } 23376: const int exponent_repr = exponent + EXPONENT_BIAS; 23376: ((void) 0); 23376: word |= static_cast(exponent_repr) << MANTISSA_BITS; 23376: } 23376: 23376: inline int 23376: float_intel_double_extended::inf_sign() const { 23376: if (lsp != LSP_INF) { 23376: return 0; 23376: } 23376: const uint32_t a = msp & MSP_NEG_INF; 23376: if (a == MSP_NEG_INF) { 23376: return -1; 23376: } 23376: if (a == MSP_POS_INF) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline bool 23376: float_intel_double_extended::is_nan() const { 23376: return (msp & MSP_POS_INF) == MSP_POS_INF 23376: && lsp != LSP_INF; 23376: } 23376: 23376: inline int 23376: float_intel_double_extended::zero_sign() const { 23376: if (lsp != LSP_ZERO) { 23376: return 0; 23376: } 23376: const uint32_t a = msp & MSP_NEG_INF; 23376: if (a == MSP_NEG_ZERO) { 23376: return -1; 23376: } 23376: if (a == MSP_POS_ZERO) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline void 23376: float_intel_double_extended::negate() { 23376: msp ^= MSP_SGN_MASK; 23376: } 23376: 23376: inline bool 23376: float_intel_double_extended::sign_bit() const { 23376: return (msp & MSP_SGN_MASK) != 0; 23376: } 23376: 23376: inline void 23376: float_intel_double_extended::dec() { 23376: if ((lsp & LSP_DMAX) == 0) { 23376: --msp; 23376: lsp = ((msp & MSP_NEG_INF) == 0) ? LSP_DMAX : LSP_NMAX; 23376: } 23376: else { 23376: --lsp; 23376: } 23376: } 23376: 23376: inline void 23376: float_intel_double_extended::inc() { 23376: if ((lsp & LSP_DMAX) == LSP_DMAX) { 23376: ++msp; 23376: lsp = LSP_DMAX + 1; 23376: } 23376: else { 23376: ++lsp; 23376: } 23376: } 23376: 23376: inline void 23376: float_intel_double_extended::set_max(bool negative) { 23376: msp = MSP_MAX; 23376: lsp = LSP_NMAX; 23376: if (negative) { 23376: msp |= MSP_SGN_MASK; 23376: } 23376: } 23376: 23376: inline void 23376: float_intel_double_extended::build(bool negative, 23376: mpz_t mantissa, int exponent) { 23376: 23376: 23376: # 412 "../../src/Float_inlines.hh" 3 4 23376: __gmpz_export 23376: # 412 "../../src/Float_inlines.hh" 23376: (&lsp, 0, -1, sizeof(lsp), 0, 0, mantissa); 23376: 23376: 23376: 23376: msp = (negative ? MSP_SGN_MASK : 0); 23376: const int exponent_repr = exponent + EXPONENT_BIAS; 23376: ((void) 0); 23376: msp |= static_cast(exponent_repr); 23376: } 23376: 23376: inline int 23376: float_ieee754_quad::inf_sign() const { 23376: if (lsp != LSP_INF) { 23376: return 0; 23376: } 23376: if (msp == MSP_NEG_INF) { 23376: return -1; 23376: } 23376: if (msp == MSP_POS_INF) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline bool 23376: float_ieee754_quad::is_nan() const { 23376: return (msp & ~MSP_SGN_MASK) == MSP_POS_INF 23376: && lsp != LSP_INF; 23376: } 23376: 23376: inline int 23376: float_ieee754_quad::zero_sign() const { 23376: if (lsp != LSP_ZERO) { 23376: return 0; 23376: } 23376: if (msp == MSP_NEG_ZERO) { 23376: return -1; 23376: } 23376: if (msp == MSP_POS_ZERO) { 23376: return 1; 23376: } 23376: return 0; 23376: } 23376: 23376: inline void 23376: float_ieee754_quad::negate() { 23376: msp ^= MSP_SGN_MASK; 23376: } 23376: 23376: inline bool 23376: float_ieee754_quad::sign_bit() const { 23376: return (msp & MSP_SGN_MASK) != 0; 23376: } 23376: 23376: inline void 23376: float_ieee754_quad::dec() { 23376: if (lsp == 0) { 23376: --msp; 23376: lsp = LSP_MAX; 23376: } 23376: else { 23376: --lsp; 23376: } 23376: } 23376: 23376: inline void 23376: float_ieee754_quad::inc() { 23376: if (lsp == LSP_MAX) { 23376: ++msp; 23376: lsp = 0; 23376: } 23376: else { 23376: ++lsp; 23376: } 23376: } 23376: 23376: inline void 23376: float_ieee754_quad::set_max(bool negative) { 23376: msp = MSP_MAX; 23376: lsp = LSP_MAX; 23376: if (negative) { 23376: msp |= MSP_SGN_MASK; 23376: } 23376: } 23376: 23376: inline void 23376: float_ieee754_quad::build(bool negative, mpz_t mantissa, int exponent) { 23376: uint64_t parts[2]; 23376: 23376: # 500 "../../src/Float_inlines.hh" 3 4 23376: __gmpz_export 23376: # 500 "../../src/Float_inlines.hh" 23376: (parts, 0, -1, sizeof(parts[0]), 0, 0, mantissa); 23376: lsp = parts[0]; 23376: msp = parts[1]; 23376: msp &= ((static_cast(1) << (MANTISSA_BITS - 64)) - 1); 23376: if (negative) { 23376: msp |= MSP_SGN_MASK; 23376: } 23376: const int exponent_repr = exponent + EXPONENT_BIAS; 23376: ((void) 0); 23376: msp |= static_cast(exponent_repr) << (MANTISSA_BITS - 64); 23376: } 23376: 23376: inline bool 23376: is_less_precise_than(Floating_Point_Format f1, Floating_Point_Format f2) { 23376: return f1 < f2; 23376: } 23376: 23376: inline unsigned int 23376: msb_position(unsigned long long v) { 23376: return static_cast(((sizeof(v)) * static_cast(8))) - 1U - clz(v); 23376: } 23376: 23376: template 23376: inline void 23376: affine_form_image(std::map >& lf_store, 23376: const Variable var, 23376: const Linear_Form& lf) { 23376: 23376: lf_store[var.id()] = lf; 23376: 23376: discard_occurrences(lf_store, var); 23376: } 23376: # 582 "../../src/Float_inlines.hh" 23376: } 23376: # 520 "../../src/Float_defs.hh" 2 23376: # 1 "../../src/Float_templates.hh" 1 23376: # 30 "../../src/Float_templates.hh" 23376: # 1 "/usr/include/c++/8/cmath" 1 3 23376: # 39 "/usr/include/c++/8/cmath" 3 23376: 23376: # 40 "/usr/include/c++/8/cmath" 3 23376: # 31 "../../src/Float_templates.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: const FP_Interval_Type& compute_absolute_error( 23376: const Floating_Point_Format analyzed_format) { 23376: typedef typename FP_Interval_Type::boundary_type analyzer_format; 23376: 23376: 23376: static const FP_Interval_Type ZERO_INTERVAL = FP_Interval_Type(0); 23376: 23376: static FP_Interval_Type ieee754_half_result = ZERO_INTERVAL; 23376: static FP_Interval_Type ieee754_single_result = ZERO_INTERVAL; 23376: static FP_Interval_Type ieee754_double_result = ZERO_INTERVAL; 23376: static FP_Interval_Type ibm_single_result = ZERO_INTERVAL; 23376: static FP_Interval_Type ieee754_quad_result = ZERO_INTERVAL; 23376: static FP_Interval_Type intel_double_extended_result = ZERO_INTERVAL; 23376: 23376: FP_Interval_Type* to_compute = 23376: # 49 "../../src/Float_templates.hh" 3 4 23376: __null 23376: # 49 "../../src/Float_templates.hh" 23376: ; 23376: 23376: unsigned int f_base; 23376: int f_exponent_bias; 23376: unsigned int f_mantissa_bits; 23376: switch (analyzed_format) { 23376: case IEEE754_HALF: 23376: if (ieee754_half_result != ZERO_INTERVAL) { 23376: return ieee754_half_result; 23376: } 23376: to_compute = &ieee754_half_result; 23376: f_base = float_ieee754_half::BASE; 23376: f_exponent_bias = float_ieee754_half::EXPONENT_BIAS; 23376: f_mantissa_bits = float_ieee754_half::MANTISSA_BITS; 23376: break; 23376: case IEEE754_SINGLE: 23376: if (ieee754_single_result != ZERO_INTERVAL) { 23376: return ieee754_single_result; 23376: } 23376: 23376: to_compute = &ieee754_single_result; 23376: f_base = float_ieee754_single::BASE; 23376: f_exponent_bias = float_ieee754_single::EXPONENT_BIAS; 23376: f_mantissa_bits = float_ieee754_single::MANTISSA_BITS; 23376: break; 23376: case IEEE754_DOUBLE: 23376: if (ieee754_double_result != ZERO_INTERVAL) { 23376: return ieee754_double_result; 23376: } 23376: 23376: to_compute = &ieee754_double_result; 23376: f_base = float_ieee754_double::BASE; 23376: f_exponent_bias = float_ieee754_double::EXPONENT_BIAS; 23376: f_mantissa_bits = float_ieee754_double::MANTISSA_BITS; 23376: break; 23376: case IBM_SINGLE: 23376: if (ibm_single_result != ZERO_INTERVAL) { 23376: return ibm_single_result; 23376: } 23376: 23376: to_compute = &ibm_single_result; 23376: f_base = float_ibm_single::BASE; 23376: f_exponent_bias = float_ibm_single::EXPONENT_BIAS; 23376: f_mantissa_bits = float_ibm_single::MANTISSA_BITS; 23376: break; 23376: case IEEE754_QUAD: 23376: if (ieee754_quad_result != ZERO_INTERVAL) { 23376: return ieee754_quad_result; 23376: } 23376: 23376: to_compute = &ieee754_quad_result; 23376: f_base = float_ieee754_quad::BASE; 23376: f_exponent_bias = float_ieee754_quad::EXPONENT_BIAS; 23376: f_mantissa_bits = float_ieee754_quad::MANTISSA_BITS; 23376: break; 23376: case INTEL_DOUBLE_EXTENDED: 23376: if (intel_double_extended_result != ZERO_INTERVAL) { 23376: return intel_double_extended_result; 23376: } 23376: 23376: to_compute = &intel_double_extended_result; 23376: f_base = float_intel_double_extended::BASE; 23376: f_exponent_bias = float_intel_double_extended::EXPONENT_BIAS; 23376: f_mantissa_bits = float_intel_double_extended::MANTISSA_BITS; 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: analyzer_format omega; 23376: int power = static_cast(msb_position(f_base)) 23376: * ((1 - f_exponent_bias) - static_cast(f_mantissa_bits)); 23376: omega = std::max(static_cast(ldexp(1.0, power)), 23376: std::numeric_limits::denorm_min()); 23376: 23376: to_compute->build(i_constraint(GREATER_OR_EQUAL, -omega), 23376: i_constraint(LESS_OR_EQUAL, omega)); 23376: return *to_compute; 23376: } 23376: 23376: template 23376: void 23376: discard_occurrences(std::map >& lf_store, 23376: Variable var) { 23376: typedef Linear_Form FP_Linear_Form; 23376: typedef typename std::map::iterator Iter; 23376: for (Iter i = lf_store.begin(); i != lf_store.end(); ) { 23376: if ((i->second).coefficient(var) != 0) { 23376: i = lf_store.erase(i); 23376: } 23376: else { 23376: ++i; 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: template 23376: void upper_bound_assign(std::map >& ls1, 23376: const std::map >& ls2) { 23376: typedef Linear_Form FP_Linear_Form; 23376: typedef typename std::map::iterator Iter; 23376: typedef typename std::map::const_iterator Const_Iter; 23376: 23376: Const_Iter i2_end = ls2.end(); 23376: for (Iter i1 = ls1.begin(), i1_end = ls1.end(); i1 != i1_end; ) { 23376: Const_Iter i2 = ls2.find(i1->first); 23376: if ((i2 == i2_end) || (i1->second != i2->second)) { 23376: i1 = ls1.erase(i1); 23376: } 23376: else { 23376: ++i1; 23376: } 23376: } 23376: } 23376: 23376: } 23376: # 521 "../../src/Float_defs.hh" 2 23376: # 32 "../../src/checked_defs.hh" 2 23376: # 1 "/usr/include/c++/8/cassert" 1 3 23376: # 41 "/usr/include/c++/8/cassert" 3 23376: 23376: # 42 "/usr/include/c++/8/cassert" 3 23376: 23376: 23376: # 1 "/usr/include/assert.h" 1 3 4 23376: # 44 "/usr/include/c++/8/cassert" 2 3 23376: # 33 "../../src/checked_defs.hh" 2 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Checked { 23376: # 471 "../../src/checked_defs.hh" 23376: template struct copy_function_struct; template inline void copy( Type1& arg1, const Type2& arg2) { return copy_function_struct::function(arg1, arg2); } 23376: 23376: template struct sgn_function_struct; template inline Result_Relation sgn(const From& arg) { return sgn_function_struct::function(arg); } 23376: 23376: template struct cmp_function_struct; template inline Result_Relation cmp(const Type1& arg1, const Type2& arg2) { return cmp_function_struct::function(arg1, arg2); } 23376: 23376: template struct classify_function_struct; template inline Result classify(const Type& arg, bool a1, bool a2, bool a3) { return classify_function_struct::function(arg, a1, a2, a3); } 23376: 23376: template struct is_nan_function_struct; template inline bool is_nan(const Type& arg) { return is_nan_function_struct::function(arg); } 23376: 23376: template struct is_minf_function_struct; template inline bool is_minf(const Type& arg) { return is_minf_function_struct::function(arg); } 23376: 23376: template struct is_pinf_function_struct; template inline bool is_pinf(const Type& arg) { return is_pinf_function_struct::function(arg); } 23376: 23376: template struct is_int_function_struct; template inline bool is_int(const Type& arg) { return is_int_function_struct::function(arg); } 23376: 23376: template struct assign_special_function_struct; template inline Result assign_special( Type& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_function_struct::function(arg, a1, a2); } 23376: 23376: template struct construct_special_function_struct; template inline Result construct_special( Type& arg, Result_Class a1, Rounding_Dir a2) { return construct_special_function_struct::function(arg, a1, a2); } 23376: 23376: template struct construct_function_struct; template inline Result construct( To& arg1, const From& arg2, Rounding_Dir a1) { return construct_function_struct::function(arg1, arg2, a1); } 23376: 23376: template struct assign_function_struct; template inline Result assign( To& arg1, const From& arg2, Rounding_Dir a1) { return assign_function_struct::function(arg1, arg2, a1); } 23376: 23376: template struct floor_function_struct; template inline Result floor( To& arg1, const From& arg2, Rounding_Dir a1) { return floor_function_struct::function(arg1, arg2, a1); } 23376: 23376: template struct ceil_function_struct; template inline Result ceil( To& arg1, const From& arg2, Rounding_Dir a1) { return ceil_function_struct::function(arg1, arg2, a1); } 23376: 23376: template struct trunc_function_struct; template inline Result trunc( To& arg1, const From& arg2, Rounding_Dir a1) { return trunc_function_struct::function(arg1, arg2, a1); } 23376: 23376: template struct neg_function_struct; template inline Result neg( To& arg1, const From& arg2, Rounding_Dir a1) { return neg_function_struct::function(arg1, arg2, a1); } 23376: 23376: template struct abs_function_struct; template inline Result abs( To& arg1, const From& arg2, Rounding_Dir a1) { return abs_function_struct::function(arg1, arg2, a1); } 23376: 23376: template struct sqrt_function_struct; template inline Result sqrt( To& arg1, const From& arg2, Rounding_Dir a1) { return sqrt_function_struct::function(arg1, arg2, a1); } 23376: 23376: template struct add_function_struct; template inline Result add( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return add_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct sub_function_struct; template inline Result sub( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return sub_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct mul_function_struct; template inline Result mul( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return mul_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct div_function_struct; template inline Result div( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return div_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct rem_function_struct; template inline Result rem( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return rem_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct idiv_function_struct; template inline Result idiv( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return idiv_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct add_2exp_function_struct; template inline Result add_2exp( To& arg1, const From& arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_function_struct::function(arg1, arg2, a1, a2); } 23376: 23376: 23376: template struct sub_2exp_function_struct; template inline Result sub_2exp( To& arg1, const From& arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_function_struct::function(arg1, arg2, a1, a2); } 23376: 23376: 23376: template struct mul_2exp_function_struct; template inline Result mul_2exp( To& arg1, const From& arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_function_struct::function(arg1, arg2, a1, a2); } 23376: 23376: 23376: template struct div_2exp_function_struct; template inline Result div_2exp( To& arg1, const From& arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_function_struct::function(arg1, arg2, a1, a2); } 23376: 23376: 23376: template struct smod_2exp_function_struct; template inline Result smod_2exp( To& arg1, const From& arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_function_struct::function(arg1, arg2, a1, a2); } 23376: 23376: 23376: template struct umod_2exp_function_struct; template inline Result umod_2exp( To& arg1, const From& arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_function_struct::function(arg1, arg2, a1, a2); } 23376: 23376: 23376: template struct add_mul_function_struct; template inline Result add_mul( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return add_mul_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct sub_mul_function_struct; template inline Result sub_mul( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return sub_mul_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct gcd_function_struct; template inline Result gcd( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return gcd_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct gcdext_function_struct; template inline Result gcdext( To1& arg1, To2& arg2, To3& arg3, const From1& arg4, const From2& arg5, Rounding_Dir a1) { return gcdext_function_struct ::function(arg1, arg2, arg3, arg4, arg5, a1); } 23376: 23376: 23376: template struct lcm_function_struct; template inline Result lcm( To& arg1, const From1& arg2, const From2& arg3, Rounding_Dir a1) { return lcm_function_struct ::function(arg1, arg2, arg3, a1); } 23376: 23376: 23376: template struct input_function_struct; template inline Result input( Type& arg, std::istream& a1, Rounding_Dir a2) { return input_function_struct::function(arg, a1, a2); } 23376: 23376: template struct output_function_struct; template inline Result output(std::ostream& b1, const Type& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_function_struct::function(b1, arg, a1, a2); } 23376: # 577 "../../src/checked_defs.hh" 23376: template 23376: Result round(To& to, Result r, Rounding_Dir dir); 23376: 23376: Result input_mpq(mpq_class& to, std::istream& is); 23376: 23376: std::string float_mpq_to_string(mpq_class& q); 23376: 23376: } 23376: 23376: struct Minus_Infinity { 23376: static const Result_Class vclass = VC_MINUS_INFINITY; 23376: }; 23376: struct Plus_Infinity { 23376: static const Result_Class vclass = VC_PLUS_INFINITY; 23376: }; 23376: struct Not_A_Number { 23376: static const Result_Class vclass = VC_NAN; 23376: }; 23376: 23376: template 23376: struct Is_Special : public False { }; 23376: 23376: template <> 23376: struct Is_Special : public True {}; 23376: 23376: template <> 23376: struct Is_Special : public True {}; 23376: 23376: template <> 23376: struct Is_Special : public True {}; 23376: 23376: extern Minus_Infinity MINUS_INFINITY; 23376: extern Plus_Infinity PLUS_INFINITY; 23376: extern Not_A_Number NOT_A_NUMBER; 23376: 23376: 23376: 23376: 23376: template 23376: struct Checked_Number_Transparent_Policy { 23376: 23376: enum const_bool_value_check_overflow { check_overflow = (false) }; 23376: 23376: 23376: enum const_bool_value_check_inf_add_inf { check_inf_add_inf = (false) }; 23376: 23376: 23376: enum const_bool_value_check_inf_sub_inf { check_inf_sub_inf = (false) }; 23376: 23376: 23376: enum const_bool_value_check_inf_mul_zero { check_inf_mul_zero = (false) }; 23376: 23376: 23376: enum const_bool_value_check_div_zero { check_div_zero = (false) }; 23376: 23376: 23376: enum const_bool_value_check_inf_div_inf { check_inf_div_inf = (false) }; 23376: 23376: 23376: enum const_bool_value_check_inf_mod { check_inf_mod = (false) }; 23376: 23376: 23376: enum const_bool_value_check_sqrt_neg { check_sqrt_neg = (false) }; 23376: 23376: 23376: enum const_bool_value_has_nan { has_nan = (std::numeric_limits::has_quiet_NaN) }; 23376: 23376: 23376: enum const_bool_value_has_infinity { has_infinity = (std::numeric_limits::has_infinity) }; 23376: 23376: 23376: 23376: 23376: 23376: enum const_bool_value_convertible { convertible = (true) }; 23376: 23376: 23376: enum const_bool_value_fpu_check_inexact { fpu_check_inexact = (false) }; 23376: 23376: 23376: enum const_bool_value_fpu_check_nan_result { fpu_check_nan_result = (false) }; 23376: 23376: 23376: 23376: 23376: 23376: static const Rounding_Dir ROUND_DEFAULT_CONSTRUCTOR = ROUND_NATIVE; 23376: 23376: 23376: 23376: 23376: 23376: static const Rounding_Dir ROUND_DEFAULT_OPERATOR = ROUND_NATIVE; 23376: 23376: 23376: 23376: 23376: 23376: static const Rounding_Dir ROUND_DEFAULT_INPUT = ROUND_NATIVE; 23376: 23376: 23376: 23376: 23376: 23376: static const Rounding_Dir ROUND_DEFAULT_OUTPUT = ROUND_NATIVE; 23376: 23376: 23376: 23376: 23376: 23376: static const Rounding_Dir ROUND_DEFAULT_FUNCTION = ROUND_NATIVE; 23376: 23376: 23376: 23376: 23376: 23376: static void handle_result(Result r); 23376: }; 23376: 23376: } 23376: 23376: 23376: 23376: # 1 "../../src/checked_inlines.hh" 1 23376: # 41 "../../src/checked_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Checked { 23376: 23376: template 23376: struct Safe_Conversion : public False { 23376: }; 23376: template 23376: struct Safe_Conversion : public True { 23376: }; 23376: # 59 "../../src/checked_inlines.hh" 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: # 104 "../../src/checked_inlines.hh" 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: # 174 "../../src/checked_inlines.hh" 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: template <> struct Safe_Conversion : public True { }; 23376: template <> struct Safe_Conversion : public True { }; 23376: 23376: 23376: 23376: 23376: template 23376: struct construct_function_struct { 23376: static inline Result function(Type& to, const Type& from, Rounding_Dir) { 23376: new(&to) Type(from); 23376: return V_EQ; 23376: } 23376: }; 23376: 23376: template 23376: struct construct_function_struct { 23376: static inline Result function(To& to, const From& from, Rounding_Dir dir) { 23376: new(&to) To(); 23376: return assign(to, from, dir); 23376: } 23376: }; 23376: 23376: template 23376: struct construct_special_function_struct { 23376: static inline Result function(To& to, Result_Class r, Rounding_Dir dir) { 23376: new(&to) To(); 23376: return assign_special(to, r, dir); 23376: } 23376: }; 23376: 23376: template 23376: inline Result 23376: assign_exact(To& to, const From& from, Rounding_Dir) { 23376: to = from; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, void>::type 23376: copy_generic(Type& to, const Type& from) { 23376: to = from; 23376: } 23376: 23376: template 23376: inline Result 23376: abs_generic(To& to, const From& from, Rounding_Dir dir) { 23376: if (from < 0) { 23376: return neg(to, from, dir); 23376: } 23376: else { 23376: return assign(to, from, dir); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: gcd_exact_no_abs(To& to, const From& x, const From& y) { 23376: To w_x = x; 23376: To w_y = y; 23376: To remainder; 23376: while (w_y != 0) { 23376: 23376: 23376: 23376: rem(remainder, w_x, w_y, 23376: ROUND_NOT_NEEDED); 23376: w_x = w_y; 23376: w_y = remainder; 23376: } 23376: to = w_x; 23376: } 23376: 23376: template 23376: inline Result 23376: gcd_exact(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: gcd_exact_no_abs(to, x, y); 23376: return abs(to, to, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: gcdext_exact(To1& to, To2& s, To3& t, const From1& x, const From2& y, 23376: Rounding_Dir dir) { 23376: 23376: 23376: 23376: 23376: if (y == 0) { 23376: if (x == 0) { 23376: s = 0; 23376: t = 1; 23376: return V_EQ; 23376: } 23376: else { 23376: if (x < 0) { 23376: s = -1; 23376: } 23376: else { 23376: s = 1; 23376: } 23376: t = 0; 23376: return abs(to, x, dir); 23376: } 23376: } 23376: 23376: s = 1; 23376: t = 0; 23376: bool negative_x = x < 0; 23376: bool negative_y = y < 0; 23376: 23376: Result r; 23376: r = abs(to, x, dir); 23376: if (r != V_EQ) { 23376: return r; 23376: } 23376: 23376: From2 a_y; 23376: r = abs(a_y, y, dir); 23376: if (r != V_EQ) { 23376: return r; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (to == a_y) { 23376: goto sign_check; 23376: } 23376: 23376: 23376: { 23376: To2 v1 = 0; 23376: To3 v2 = 1; 23376: To1 v3 = static_cast(a_y); 23376: while (true) { 23376: To1 q = to / v3; 23376: 23376: To1 t3 = to - q*v3; 23376: To2 t1 = s - static_cast(q)*v1; 23376: To3 t2 = t - static_cast(q)*v2; 23376: s = v1; 23376: t = v2; 23376: to = v3; 23376: if (t3 == 0) { 23376: break; 23376: } 23376: v1 = t1; 23376: v2 = t2; 23376: v3 = t3; 23376: } 23376: } 23376: 23376: 23376: sign_check: 23376: 23376: if (negative_x) { 23376: r = neg(s, s, dir); 23376: if (r != V_EQ) { 23376: return r; 23376: } 23376: } 23376: if (negative_y) { 23376: return neg(t, t, dir); 23376: } 23376: return V_EQ; 23376: 23376: } 23376: 23376: template 23376: inline Result 23376: lcm_gcd_exact(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (x == 0 || y == 0) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: To a_x; 23376: To a_y; 23376: Result r; 23376: r = abs(a_x, x, dir); 23376: if (r != V_EQ) { 23376: return r; 23376: } 23376: r = abs(a_y, y, dir); 23376: if (r != V_EQ) { 23376: return r; 23376: } 23376: To gcd; 23376: gcd_exact_no_abs(gcd, a_x, a_y); 23376: 23376: 23376: 23376: div(to, a_x, gcd, ROUND_NOT_NEEDED); 23376: return mul(to, to, a_y, dir); 23376: } 23376: 23376: template 23376: inline Result_Relation 23376: sgn_generic(const Type& x) { 23376: if (x > 0) { 23376: return VR_GT; 23376: } 23376: if (x == 0) { 23376: return VR_EQ; 23376: } 23376: return VR_LT; 23376: } 23376: 23376: template 23376: struct Safe_Int_Comparison : public False { 23376: }; 23376: 23376: template 23376: struct Safe_Int_Comparison::value && C_Integer::value)>::type> 23376: : public Bool<(C_Integer::is_signed 23376: ? (C_Integer::is_signed 23376: || sizeof(T2) < sizeof(T1) 23376: || sizeof(T2) < sizeof(int)) 23376: : (!C_Integer::is_signed 23376: || sizeof(T1) < sizeof(T2) 23376: || sizeof(T1) < sizeof(int)))> { 23376: }; 23376: 23376: 23376: template 23376: inline typename Enable_If<(Safe_Int_Comparison::value 23376: || Safe_Conversion::value 23376: || Safe_Conversion::value), bool>::type 23376: lt(const T1& x, const T2& y) { 23376: return x < y; 23376: } 23376: template 23376: inline typename Enable_If<(Safe_Int_Comparison::value 23376: || Safe_Conversion::value 23376: || Safe_Conversion::value), bool>::type 23376: le(const T1& x, const T2& y) { 23376: return x <= y; 23376: } 23376: template 23376: inline typename Enable_If<(Safe_Int_Comparison::value 23376: || Safe_Conversion::value 23376: || Safe_Conversion::value), bool>::type 23376: eq(const T1& x, const T2& y) { 23376: return x == y; 23376: } 23376: 23376: template 23376: inline typename Enable_If<(!Safe_Int_Comparison::value 23376: && C_Integer::value 23376: && C_Integer::is_signed), bool>::type 23376: lt(const S& x, const U& y) { 23376: return x < 0 || static_cast::other_type>(x) < y; 23376: } 23376: 23376: template 23376: inline typename Enable_If<(!Safe_Int_Comparison::value 23376: && C_Integer::value 23376: && C_Integer::is_signed), bool>::type 23376: lt(const U& x, const S& y) { 23376: return y >= 0 && x < static_cast::other_type>(y); 23376: } 23376: 23376: template 23376: inline typename Enable_If<(!Safe_Int_Comparison::value 23376: && C_Integer::value 23376: && C_Integer::is_signed), bool>::type 23376: le(const S& x, const U& y) { 23376: return x < 0 || static_cast::other_type>(x) <= y; 23376: } 23376: 23376: template 23376: inline typename Enable_If<(!Safe_Int_Comparison::value 23376: && C_Integer::value 23376: && C_Integer::is_signed), bool>::type 23376: le(const U& x, const S& y) { 23376: return y >= 0 && x <= static_cast::other_type>(y); 23376: } 23376: 23376: template 23376: inline typename Enable_If<(!Safe_Int_Comparison::value 23376: && C_Integer::value 23376: && C_Integer::is_signed), bool>::type 23376: eq(const S& x, const U& y) { 23376: return x >= 0 && static_cast::other_type>(x) == y; 23376: } 23376: 23376: template 23376: inline typename Enable_If<(!Safe_Int_Comparison::value 23376: && C_Integer::value 23376: && C_Integer::is_signed), bool>::type 23376: eq(const U& x, const S& y) { 23376: return y >= 0 && x == static_cast::other_type>(y); 23376: } 23376: 23376: template 23376: inline typename Enable_If<(!Safe_Conversion::value 23376: && !Safe_Conversion::value 23376: && (!C_Integer::value || !C_Integer::value)), bool>::type 23376: eq(const T1& x, const T2& y) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; T1& tmp = holder_tmp.item(); 23376: Result r = assign_r(tmp, y, ROUND_CHECK); 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: return r == V_EQ && x == tmp; 23376: } 23376: 23376: template 23376: inline typename Enable_If<(!Safe_Conversion::value 23376: && !Safe_Conversion::value 23376: && (!C_Integer::value || !C_Integer::value)), bool>::type 23376: lt(const T1& x, const T2& y) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; T1& tmp = holder_tmp.item(); 23376: Result r = assign_r(tmp, y, ROUND_UP); 23376: if (!result_representable(r)) { 23376: return true; 23376: } 23376: switch (result_relation(r)) { 23376: case VR_EQ: 23376: case VR_LT: 23376: case VR_LE: 23376: return x < tmp; 23376: default: 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: inline typename 23376: Enable_If<(!Safe_Conversion::value 23376: && !Safe_Conversion::value 23376: && (!C_Integer::value || !C_Integer::value)), bool>::type 23376: le(const T1& x, const T2& y) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; T1& tmp = holder_tmp.item(); 23376: Result r = assign_r(tmp, y, (ROUND_UP | ROUND_STRICT_RELATION)); 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: if (!result_representable(r)) { 23376: return true; 23376: } 23376: switch (result_relation(r)) { 23376: case VR_EQ: 23376: return x <= tmp; 23376: case VR_LT: 23376: return x < tmp; 23376: case VR_LE: 23376: case VR_GE: 23376: case VR_LGE: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: default: 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: lt_p(const Type1& x, const Type2& y) { 23376: return lt(x, y); 23376: } 23376: 23376: template 23376: inline bool 23376: le_p(const Type1& x, const Type2& y) { 23376: return le(x, y); 23376: } 23376: 23376: template 23376: inline bool 23376: eq_p(const Type1& x, const Type2& y) { 23376: return eq(x, y); 23376: } 23376: 23376: template 23376: inline Result_Relation 23376: cmp_generic(const Type1& x, const Type2& y) { 23376: if (lt(y, x)) { 23376: return VR_GT; 23376: } 23376: if (lt(x, y)) { 23376: return VR_LT; 23376: } 23376: return VR_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: assign_nan(Type& to, Result r) { 23376: assign_special(to, VC_NAN, ROUND_IGNORE); 23376: return r; 23376: } 23376: 23376: template 23376: inline Result 23376: input_generic(Type& to, std::istream& is, Rounding_Dir dir) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: Result r = input_mpq(q, is); 23376: Result_Class c = result_class(r); 23376: switch (c) { 23376: case VC_MINUS_INFINITY: 23376: case VC_PLUS_INFINITY: 23376: return assign_special(to, c, dir); 23376: case VC_NAN: 23376: return assign_nan(to, r); 23376: default: 23376: break; 23376: } 23376: ((void) 0); 23376: return assign(to, q, dir); 23376: } 23376: 23376: } 23376: 23376: } 23376: # 701 "../../src/checked_defs.hh" 2 23376: # 1 "../../src/checked_int_inlines.hh" 1 23376: # 28 "../../src/checked_int_inlines.hh" 23376: # 1 "/usr/include/c++/8/cerrno" 1 3 23376: # 39 "/usr/include/c++/8/cerrno" 3 23376: 23376: # 40 "/usr/include/c++/8/cerrno" 3 23376: # 29 "../../src/checked_int_inlines.hh" 2 23376: # 1 "/usr/include/c++/8/cstdlib" 1 3 23376: # 39 "/usr/include/c++/8/cstdlib" 3 23376: 23376: # 40 "/usr/include/c++/8/cstdlib" 3 23376: # 30 "../../src/checked_int_inlines.hh" 2 23376: # 1 "/usr/include/c++/8/climits" 1 3 23376: # 39 "/usr/include/c++/8/climits" 3 23376: 23376: # 40 "/usr/include/c++/8/climits" 3 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 23376: # 43 "/usr/include/c++/8/climits" 2 3 23376: # 31 "../../src/checked_int_inlines.hh" 2 23376: # 43 "../../src/checked_int_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Checked { 23376: # 71 "../../src/checked_int_inlines.hh" 23376: template 23376: struct Extended_Int { 23376: static const Type plus_infinity = C_Integer::max; 23376: static const Type minus_infinity = ((C_Integer::min >= 0) 23376: ? (C_Integer::max - 1) 23376: : C_Integer::min); 23376: static const Type not_a_number 23376: = ((C_Integer::min >= 0) 23376: ? (C_Integer::max - 2 * (Policy::has_infinity ? 1 : 0)) 23376: : (C_Integer::min + (Policy::has_infinity ? 1 : 0))); 23376: static const Type min 23376: = (C_Integer::min 23376: + ((C_Integer::min >= 0) 23376: ? 0 23376: : ((Policy::has_infinity ? 1 : 0) + (Policy::has_nan ? 1 : 0)))); 23376: static const Type max 23376: = (C_Integer::max 23376: - ((C_Integer::min >= 0) 23376: ? (2 * (Policy::has_infinity ? 1 : 0) + (Policy::has_nan ? 1 : 0)) 23376: : (Policy::has_infinity ? 1 : 0))); 23376: }; 23376: 23376: template 23376: inline Result 23376: set_neg_overflow_int(To& to, Rounding_Dir dir) { 23376: if (round_up(dir)) { 23376: to = Extended_Int::min; 23376: return V_LT_INF; 23376: } 23376: else { 23376: if (Policy::has_infinity) { 23376: to = Extended_Int::minus_infinity; 23376: return V_GT_MINUS_INFINITY; 23376: } 23376: return V_GT_MINUS_INFINITY | V_UNREPRESENTABLE; 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: set_pos_overflow_int(To& to, Rounding_Dir dir) { 23376: if (round_down(dir)) { 23376: to = Extended_Int::max; 23376: return V_GT_SUP; 23376: } 23376: else { 23376: if (Policy::has_infinity) { 23376: to = Extended_Int::plus_infinity; 23376: return V_LT_PLUS_INFINITY; 23376: } 23376: return V_LT_PLUS_INFINITY | V_UNREPRESENTABLE; 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: round_lt_int_no_overflow(To& to, Rounding_Dir dir) { 23376: if (round_down(dir)) { 23376: --to; 23376: return V_GT; 23376: } 23376: return V_LT; 23376: } 23376: 23376: template 23376: inline Result 23376: round_gt_int_no_overflow(To& to, Rounding_Dir dir) { 23376: if (round_up(dir)) { 23376: ++to; 23376: return V_LT; 23376: } 23376: return V_GT; 23376: } 23376: 23376: template 23376: inline Result 23376: round_lt_int(To& to, Rounding_Dir dir) { 23376: if (round_down(dir)) { 23376: if (to == Extended_Int::min) { 23376: if (Policy::has_infinity) { 23376: to = Extended_Int::minus_infinity; 23376: return V_GT_MINUS_INFINITY; 23376: } 23376: return V_GT_MINUS_INFINITY | V_UNREPRESENTABLE; 23376: } 23376: else { 23376: --to; 23376: return V_GT; 23376: } 23376: } 23376: return V_LT; 23376: } 23376: 23376: template 23376: inline Result 23376: round_gt_int(To& to, Rounding_Dir dir) { 23376: if (round_up(dir)) { 23376: if (to == Extended_Int::max) { 23376: if (Policy::has_infinity) { 23376: to = Extended_Int::plus_infinity; 23376: return V_LT_PLUS_INFINITY; 23376: } 23376: return V_LT_PLUS_INFINITY | V_UNREPRESENTABLE; 23376: } 23376: else { 23376: ++to; 23376: return V_LT; 23376: } 23376: } 23376: return V_GT; 23376: } 23376: 23376: template struct copy_function_struct { static inline void function( char& arg1, const char &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( signed char& arg1, const signed char &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( signed short& arg1, const signed short &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( signed int& arg1, const signed int &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( signed long& arg1, const signed long &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( signed long long& arg1, const signed long long &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( unsigned char& arg1, const unsigned char &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( unsigned short& arg1, const unsigned short &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( unsigned int& arg1, const unsigned int &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( unsigned long& arg1, const unsigned long &arg2) { return copy_generic(arg1, arg2); } }; 23376: template struct copy_function_struct { static inline void function( unsigned long long& arg1, const unsigned long long &arg2) { return copy_generic(arg1, arg2); } }; 23376: 23376: template 23376: inline Result 23376: classify_int(const Type v, bool nan, bool inf, bool sign) { 23376: if (Policy::has_nan 23376: && (nan || sign) 23376: && v == Extended_Int::not_a_number) { 23376: return V_NAN; 23376: } 23376: if (!inf && !sign) { 23376: return V_LGE; 23376: } 23376: if (Policy::has_infinity) { 23376: if (v == Extended_Int::minus_infinity) { 23376: return inf ? V_EQ_MINUS_INFINITY : V_LT; 23376: } 23376: if (v == Extended_Int::plus_infinity) { 23376: return inf ? V_EQ_PLUS_INFINITY : V_GT; 23376: } 23376: } 23376: if (sign) { 23376: if (v < 0) { 23376: return V_LT; 23376: } 23376: if (v > 0) { 23376: return V_GT; 23376: } 23376: return V_EQ; 23376: } 23376: return V_LGE; 23376: } 23376: 23376: template struct classify_function_struct { static inline Result function(const char& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const signed char& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const signed short& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const signed int& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const signed long& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const signed long long& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const unsigned char& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const unsigned short& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const unsigned int& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const unsigned long& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: template struct classify_function_struct { static inline Result function(const unsigned long long& arg, bool a1, bool a2, bool a3) { return classify_int(arg, a1, a2, a3); } }; 23376: 23376: template 23376: inline bool 23376: is_nan_int(const Type v) { 23376: return Policy::has_nan && v == Extended_Int::not_a_number; 23376: } 23376: 23376: template struct is_nan_function_struct { static inline bool function(const char& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const signed char& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const signed short& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const signed int& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const signed long& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const signed long long& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const unsigned char& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const unsigned short& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const unsigned int& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const unsigned long& arg) { return is_nan_int(arg); } }; 23376: template struct is_nan_function_struct { static inline bool function(const unsigned long long& arg) { return is_nan_int(arg); } }; 23376: 23376: template 23376: inline bool 23376: is_minf_int(const Type v) { 23376: return Policy::has_infinity 23376: && v == Extended_Int::minus_infinity; 23376: } 23376: 23376: template struct is_minf_function_struct { static inline bool function(const char& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const signed char& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const signed short& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const signed int& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const signed long& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const signed long long& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const unsigned char& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const unsigned short& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const unsigned int& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const unsigned long& arg) { return is_minf_int(arg); } }; 23376: template struct is_minf_function_struct { static inline bool function(const unsigned long long& arg) { return is_minf_int(arg); } }; 23376: 23376: template 23376: inline bool 23376: is_pinf_int(const Type v) { 23376: return Policy::has_infinity 23376: && v == Extended_Int::plus_infinity; 23376: } 23376: 23376: template struct is_pinf_function_struct { static inline bool function(const char& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const signed char& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const signed short& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const signed int& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const signed long& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const signed long long& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const unsigned char& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const unsigned short& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const unsigned int& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const unsigned long& arg) { return is_pinf_int(arg); } }; 23376: template struct is_pinf_function_struct { static inline bool function(const unsigned long long& arg) { return is_pinf_int(arg); } }; 23376: 23376: template 23376: inline bool 23376: is_int_int(const Type v) { 23376: return !is_nan(v); 23376: } 23376: 23376: template struct is_int_function_struct { static inline bool function(const char& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const signed char& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const signed short& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const signed int& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const signed long& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const signed long long& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const unsigned char& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const unsigned short& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const unsigned int& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const unsigned long& arg) { return is_int_int(arg); } }; 23376: template struct is_int_function_struct { static inline bool function(const unsigned long long& arg) { return is_int_int(arg); } }; 23376: 23376: template 23376: inline Result 23376: assign_special_int(Type& v, Result_Class c, Rounding_Dir dir) { 23376: ((void) 0); 23376: switch (c) { 23376: case VC_NAN: 23376: if (Policy::has_nan) { 23376: v = Extended_Int::not_a_number; 23376: return V_NAN; 23376: } 23376: return V_NAN | V_UNREPRESENTABLE; 23376: case VC_MINUS_INFINITY: 23376: if (Policy::has_infinity) { 23376: v = Extended_Int::minus_infinity; 23376: return V_EQ_MINUS_INFINITY; 23376: } 23376: if (round_up(dir)) { 23376: v = Extended_Int::min; 23376: return V_LT_INF; 23376: } 23376: return V_EQ_MINUS_INFINITY | V_UNREPRESENTABLE; 23376: case VC_PLUS_INFINITY: 23376: if (Policy::has_infinity) { 23376: v = Extended_Int::plus_infinity; 23376: return V_EQ_PLUS_INFINITY; 23376: } 23376: if (round_down(dir)) { 23376: v = Extended_Int::max; 23376: return V_GT_SUP; 23376: } 23376: return V_EQ_PLUS_INFINITY | V_UNREPRESENTABLE; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_NAN | V_UNREPRESENTABLE; 23376: } 23376: } 23376: 23376: template struct assign_special_function_struct { static inline Result function( char& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( signed char& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( signed short& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( signed int& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( signed long& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( signed long long& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( unsigned char& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( unsigned short& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( unsigned int& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( unsigned long& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: template struct assign_special_function_struct { static inline Result function( unsigned long long& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_int(arg, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: assign_signed_int_signed_int(To& to, const From from, Rounding_Dir dir) { 23376: if (sizeof(To) < sizeof(From) 23376: || (sizeof(To) == sizeof(From) 23376: && (Extended_Int::min > Extended_Int::min 23376: || Extended_Int::max < Extended_Int::max))) { 23376: if (((To_Policy::check_overflow) ? (((from) < (static_cast(Extended_Int::min)))) : ( 23376: # 368 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 368 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: 23376: ) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: if (((To_Policy::check_overflow) ? (((from) > (static_cast(Extended_Int::max)))) : ( 23376: # 373 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 373 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: 23376: ) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: } 23376: to = static_cast(from); 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: assign_signed_int_unsigned_int(To& to, const From from, Rounding_Dir dir) { 23376: if (sizeof(To) <= sizeof(From)) { 23376: if (((To_Policy::check_overflow) ? (from > static_cast(Extended_Int::max)) : ( 23376: # 387 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 387 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: ) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: } 23376: to = static_cast(from); 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: assign_unsigned_int_signed_int(To& to, const From from, Rounding_Dir dir) { 23376: if (((To_Policy::check_overflow) ? (from < 0) : ( 23376: # 399 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 399 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: if (sizeof(To) < sizeof(From)) { 23376: if (((To_Policy::check_overflow) ? (from > static_cast(Extended_Int::max)) : ( 23376: # 403 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 403 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: ) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: } 23376: to = static_cast(from); 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: assign_unsigned_int_unsigned_int(To& to, const From from, Rounding_Dir dir) { 23376: if (sizeof(To) < sizeof(From) 23376: || (sizeof(To) == sizeof(From) 23376: && Extended_Int::max < Extended_Int::max)) { 23376: if (((To_Policy::check_overflow) ? (((from) > (static_cast(Extended_Int::max)))) : ( 23376: # 418 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 418 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: 23376: ) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: } 23376: to = static_cast(from); 23376: return V_EQ; 23376: } 23376: # 453 "../../src/checked_int_inlines.hh" 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( char& arg1, const char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed short& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed int& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long long& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed int& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long long& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long long& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long long& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( char& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned short& arg1, const char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( char& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned int& arg1, const char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( char& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long& arg1, const char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( char& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned short& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned int& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned int& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( char& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed short& arg1, const char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( char& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed int& arg1, const char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( char& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long& arg1, const char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( char& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long long& arg1, const char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed short& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed int& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long long& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed int& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long long& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long long& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( signed long long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( char& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned char& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned short& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned int& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned short& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned int& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned int& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_signed_int_unsigned_int(arg1, arg2, a1); } }; template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_signed_int(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_int_float(To& to, const From from, Rounding_Dir dir) { 23376: if (is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(from)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(from)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: # 565 "../../src/checked_int_inlines.hh" 23376: if (((To_Policy::check_overflow) ? ((from < Extended_Int::min)) : ( 23376: # 565 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 565 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: ) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: if (((To_Policy::check_overflow) ? ((from > Extended_Int::max)) : ( 23376: # 569 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 569 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: ) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: 23376: if (round_not_requested(dir)) { 23376: to = from; 23376: return V_LGE; 23376: } 23376: From i_from = rint(from); 23376: to = i_from; 23376: if (from == i_from) { 23376: return V_EQ; 23376: } 23376: if (round_direct(ROUND_UP)) { 23376: return round_lt_int(to, dir); 23376: } 23376: if (round_direct(ROUND_DOWN)) { 23376: return round_gt_int(to, dir); 23376: } 23376: if (from < i_from) { 23376: return round_lt_int(to, dir); 23376: } 23376: ((void) 0); 23376: return round_gt_int(to, dir); 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( char& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long long& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const float &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( char& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long long& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( char& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long long& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const long double &arg2, Rounding_Dir a1) { return assign_int_float(arg1, arg2, a1); } }; 23376: # 639 "../../src/checked_int_inlines.hh" 23376: template 23376: inline Result 23376: assign_signed_int_mpz(To& to, const mpz_class& from, Rounding_Dir dir) { 23376: if (sizeof(To) <= sizeof(signed long)) { 23376: if (!To_Policy::check_overflow) { 23376: to = from.get_si(); 23376: return V_EQ; 23376: } 23376: if (from.fits_slong_p()) { 23376: signed long v = from.get_si(); 23376: if (((v) < ((Extended_Int::min)))) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: if (((v) > ((Extended_Int::max)))) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: to = v; 23376: return V_EQ; 23376: } 23376: } 23376: else { 23376: mpz_srcptr m = from.get_mpz_t(); 23376: size_t sz = 23376: # 661 "../../src/checked_int_inlines.hh" 3 4 23376: __gmpz_size 23376: # 661 "../../src/checked_int_inlines.hh" 23376: (m); 23376: if (sz <= sizeof(To) / sizeof(mp_limb_t)) { 23376: if (sz == 0) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: To v; 23376: 23376: # 668 "../../src/checked_int_inlines.hh" 3 4 23376: __gmpz_export 23376: # 668 "../../src/checked_int_inlines.hh" 23376: (&v, 0, -1, sizeof(To), 0, 0, m); 23376: if (v >= 0) { 23376: if (::sgn(from) < 0) { 23376: return neg(to, v, dir); 23376: } 23376: to = v; 23376: return V_EQ; 23376: } 23376: } 23376: } 23376: return (::sgn(from) < 0) 23376: ? set_neg_overflow_int(to, dir) 23376: : set_pos_overflow_int(to, dir); 23376: } 23376: 23376: 23376: 23376: 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_signed_int_mpz(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_signed_int_mpz(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_signed_int_mpz(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_signed_int_mpz(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long long& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_signed_int_mpz(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_unsigned_int_mpz(To& to, const mpz_class& from, Rounding_Dir dir) { 23376: if (((To_Policy::check_overflow) ? (::sgn(from) < 0) : ( 23376: # 695 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 695 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: if (sizeof(To) <= sizeof(unsigned long)) { 23376: if (!To_Policy::check_overflow) { 23376: to = static_cast(from.get_ui()); 23376: return V_EQ; 23376: } 23376: if (from.fits_ulong_p()) { 23376: const unsigned long v = from.get_ui(); 23376: if (((v) > ((Extended_Int::max)))) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: to = static_cast(v); 23376: return V_EQ; 23376: } 23376: } 23376: else { 23376: const mpz_srcptr m = from.get_mpz_t(); 23376: const size_t sz = 23376: # 714 "../../src/checked_int_inlines.hh" 3 4 23376: __gmpz_size 23376: # 714 "../../src/checked_int_inlines.hh" 23376: (m); 23376: if (sz <= sizeof(To) / sizeof(mp_limb_t)) { 23376: if (sz == 0) { 23376: to = 0; 23376: } 23376: else { 23376: 23376: # 720 "../../src/checked_int_inlines.hh" 3 4 23376: __gmpz_export 23376: # 720 "../../src/checked_int_inlines.hh" 23376: (&to, 0, -1, sizeof(To), 0, 0, m); 23376: } 23376: return V_EQ; 23376: } 23376: } 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: 23376: 23376: template struct assign_function_struct { static inline Result function( char& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_unsigned_int_mpz(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_unsigned_int_mpz(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_unsigned_int_mpz(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_unsigned_int_mpz(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_unsigned_int_mpz(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_unsigned_int_mpz(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_int_mpq(To& to, const mpq_class& from, Rounding_Dir dir) { 23376: mpz_srcptr n = from.get_num().get_mpz_t(); 23376: mpz_srcptr d = from.get_den().get_mpz_t(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpz_class& q = holder_q.item(); 23376: mpz_ptr q_z = q.get_mpz_t(); 23376: if (round_not_requested(dir)) { 23376: 23376: # 745 "../../src/checked_int_inlines.hh" 3 4 23376: __gmpz_tdiv_q 23376: # 745 "../../src/checked_int_inlines.hh" 23376: (q_z, n, d); 23376: Result r = assign(to, q, dir); 23376: if (r != V_EQ) { 23376: return r; 23376: } 23376: return V_LGE; 23376: } 23376: mpz_t rem; 23376: int sign; 23376: 23376: # 754 "../../src/checked_int_inlines.hh" 3 4 23376: __gmpz_init 23376: # 754 "../../src/checked_int_inlines.hh" 23376: (rem); 23376: 23376: # 755 "../../src/checked_int_inlines.hh" 3 4 23376: __gmpz_tdiv_qr 23376: # 755 "../../src/checked_int_inlines.hh" 23376: (q_z, rem, n, d); 23376: sign = 23376: # 756 "../../src/checked_int_inlines.hh" 3 4 23376: (( 23376: # 756 "../../src/checked_int_inlines.hh" 23376: rem 23376: # 756 "../../src/checked_int_inlines.hh" 3 4 23376: )->_mp_size < 0 ? -1 : ( 23376: # 756 "../../src/checked_int_inlines.hh" 23376: rem 23376: # 756 "../../src/checked_int_inlines.hh" 3 4 23376: )->_mp_size > 0) 23376: # 756 "../../src/checked_int_inlines.hh" 23376: ; 23376: 23376: # 757 "../../src/checked_int_inlines.hh" 3 4 23376: __gmpz_clear 23376: # 757 "../../src/checked_int_inlines.hh" 23376: (rem); 23376: Result r = assign(to, q, dir); 23376: if (r != V_EQ) { 23376: return r; 23376: } 23376: switch (sign) { 23376: case -1: 23376: return round_lt_int(to, dir); 23376: case 1: 23376: return round_gt_int(to, dir); 23376: default: 23376: return V_EQ; 23376: } 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( char& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed char& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed short& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed int& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( signed long long& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned char& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned short& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned int& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( unsigned long long& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_int_mpq(arg1, arg2, a1); } }; 23376: # 821 "../../src/checked_int_inlines.hh" 23376: template 23376: struct Larger; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = (true) }; 23376: enum const_bool_value_use_for_add { use_for_add = (true) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = (true) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = (true) }; 23376: typedef int_fast16_t type_for_neg; 23376: typedef int_fast16_t type_for_add; 23376: typedef int_fast16_t type_for_sub; 23376: typedef int_fast16_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = (true) }; 23376: enum const_bool_value_use_for_add { use_for_add = (true) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = (true) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = (true) }; 23376: typedef int_fast16_t type_for_neg; 23376: typedef int_fast16_t type_for_add; 23376: typedef int_fast16_t type_for_sub; 23376: typedef int_fast16_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = (true) }; 23376: enum const_bool_value_use_for_add { use_for_add = (true) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = (true) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = (true) }; 23376: typedef int_fast16_t type_for_neg; 23376: typedef uint_fast16_t type_for_add; 23376: typedef int_fast16_t type_for_sub; 23376: typedef uint_fast16_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = (true) }; 23376: enum const_bool_value_use_for_add { use_for_add = (true) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = (true) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = (true) }; 23376: typedef int_fast32_t type_for_neg; 23376: typedef int_fast32_t type_for_add; 23376: typedef int_fast32_t type_for_sub; 23376: typedef int_fast32_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = (true) }; 23376: enum const_bool_value_use_for_add { use_for_add = (true) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = (true) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = (true) }; 23376: typedef int_fast32_t type_for_neg; 23376: typedef uint_fast32_t type_for_add; 23376: typedef int_fast32_t type_for_sub; 23376: typedef uint_fast32_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = ((32 == 64)) }; 23376: enum const_bool_value_use_for_add { use_for_add = ((32 == 64)) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = ((32 == 64)) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = (true) }; 23376: typedef int_fast64_t type_for_neg; 23376: typedef int_fast64_t type_for_add; 23376: typedef int_fast64_t type_for_sub; 23376: typedef int_fast64_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = ((32 == 64)) }; 23376: enum const_bool_value_use_for_add { use_for_add = ((32 == 64)) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = ((32 == 64)) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = (true) }; 23376: typedef int_fast64_t type_for_neg; 23376: typedef uint_fast64_t type_for_add; 23376: typedef int_fast64_t type_for_sub; 23376: typedef uint_fast64_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = (false) }; 23376: enum const_bool_value_use_for_add { use_for_add = (false) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = (false) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = ((32 == 32)) }; 23376: typedef int_fast64_t type_for_neg; 23376: typedef int_fast64_t type_for_add; 23376: typedef int_fast64_t type_for_sub; 23376: typedef int_fast64_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = (false) }; 23376: enum const_bool_value_use_for_add { use_for_add = (false) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = (false) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = ((32 == 32)) }; 23376: typedef int_fast64_t type_for_neg; 23376: typedef uint_fast64_t type_for_add; 23376: typedef int_fast64_t type_for_sub; 23376: typedef uint_fast64_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = (false) }; 23376: enum const_bool_value_use_for_add { use_for_add = (false) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = (false) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = (false) }; 23376: typedef int_fast64_t type_for_neg; 23376: typedef int_fast64_t type_for_add; 23376: typedef int_fast64_t type_for_sub; 23376: typedef int_fast64_t type_for_mul; 23376: }; 23376: 23376: template <> 23376: struct Larger { 23376: enum const_bool_value_use_for_neg { use_for_neg = (false) }; 23376: enum const_bool_value_use_for_add { use_for_add = (false) }; 23376: enum const_bool_value_use_for_sub { use_for_sub = (false) }; 23376: enum const_bool_value_use_for_mul { use_for_mul = (false) }; 23376: typedef int_fast64_t type_for_neg; 23376: typedef uint_fast64_t type_for_add; 23376: typedef int_fast64_t type_for_sub; 23376: typedef uint_fast64_t type_for_mul; 23376: }; 23376: 23376: template 23376: inline Result 23376: neg_int_larger(Type& to, const Type x, Rounding_Dir dir) { 23376: typename Larger::type_for_neg l = x; 23376: l = -l; 23376: return assign(to, l, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: add_int_larger(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: typename Larger::type_for_add l = x; 23376: l += y; 23376: return assign(to, l, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: sub_int_larger(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: typename Larger::type_for_sub l = x; 23376: l -= y; 23376: return assign(to, l, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: mul_int_larger(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: typename Larger::type_for_mul l = x; 23376: l *= y; 23376: return assign(to, l, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: neg_signed_int(Type& to, const Type from, Rounding_Dir dir) { 23376: if (To_Policy::check_overflow && Larger::use_for_neg) { 23376: return neg_int_larger(to, from, dir); 23376: } 23376: if (((To_Policy::check_overflow) ? ((from < -Extended_Int::max)) : ( 23376: # 1003 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1003 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: ) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: to = -from; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: neg_unsigned_int(Type& to, const Type from, Rounding_Dir dir) { 23376: if (To_Policy::check_overflow && Larger::use_for_neg) { 23376: return neg_int_larger(to, from, dir); 23376: } 23376: if (((To_Policy::check_overflow) ? (from != 0) : ( 23376: # 1017 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1017 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: to = from; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: add_signed_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_overflow && Larger::use_for_add) { 23376: return add_int_larger(to, x, y, dir); 23376: } 23376: if (To_Policy::check_overflow) { 23376: if (y >= 0) { 23376: if (x > Extended_Int::max - y) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: } 23376: else if (x < Extended_Int::min - y) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: } 23376: to = x + y; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: add_unsigned_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_overflow && Larger::use_for_add) { 23376: return add_int_larger(to, x, y, dir); 23376: } 23376: if (((To_Policy::check_overflow) ? ((x > Extended_Int::max - y)) : ( 23376: # 1052 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1052 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: ) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: to = x + y; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: sub_signed_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_overflow && Larger::use_for_sub) { 23376: return sub_int_larger(to, x, y, dir); 23376: } 23376: if (To_Policy::check_overflow) { 23376: if (y >= 0) { 23376: if (x < Extended_Int::min + y) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: } 23376: else if (x > Extended_Int::max + y) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: } 23376: to = x - y; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: sub_unsigned_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_overflow && Larger::use_for_sub) { 23376: return sub_int_larger(to, x, y, dir); 23376: } 23376: if (((To_Policy::check_overflow) ? ((x < Extended_Int::min + y)) : ( 23376: # 1088 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1088 "../../src/checked_int_inlines.hh" 23376: , false)) 23376: ) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: to = x - y; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: mul_signed_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_overflow && Larger::use_for_mul) { 23376: return mul_int_larger(to, x, y, dir); 23376: } 23376: if (!To_Policy::check_overflow) { 23376: to = x * y; 23376: return V_EQ; 23376: } 23376: if (y == 0) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: if (y == -1) { 23376: return neg_signed_int(to, x, dir); 23376: } 23376: if (x >= 0) { 23376: if (y > 0) { 23376: if (x > Extended_Int::max / y) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: } 23376: else { 23376: if (x > Extended_Int::min / y) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: } 23376: } 23376: else { 23376: if (y < 0) { 23376: if (x < Extended_Int::max / y) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: } 23376: else { 23376: if (x < Extended_Int::min / y) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: } 23376: } 23376: to = x * y; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: mul_unsigned_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_overflow && Larger::use_for_mul) { 23376: return mul_int_larger(to, x, y, dir); 23376: } 23376: if (!To_Policy::check_overflow) { 23376: to = x * y; 23376: return V_EQ; 23376: } 23376: if (y == 0) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: if (x > Extended_Int::max / y) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: to = x * y; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: div_signed_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (((To_Policy::check_div_zero) ? (y == 0) : ( 23376: # 1168 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1168 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: if (To_Policy::check_overflow && y == -1) { 23376: return neg_signed_int(to, x, dir); 23376: } 23376: to = x / y; 23376: if (round_not_requested(dir)) { 23376: return V_LGE; 23376: } 23376: if (y == -1) { 23376: return V_EQ; 23376: } 23376: Type m = x % y; 23376: if (m < 0) { 23376: return round_lt_int_no_overflow(to, dir); 23376: } 23376: else if (m > 0) { 23376: return round_gt_int_no_overflow(to, dir); 23376: } 23376: else { 23376: return V_EQ; 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: div_unsigned_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (((To_Policy::check_div_zero) ? (y == 0) : ( 23376: # 1197 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1197 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: to = x / y; 23376: if (round_not_requested(dir)) { 23376: return V_GE; 23376: } 23376: Type m = x % y; 23376: if (m == 0) { 23376: return V_EQ; 23376: } 23376: return round_gt_int(to, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: idiv_signed_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (((To_Policy::check_div_zero) ? (y == 0) : ( 23376: # 1215 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1215 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: if (To_Policy::check_overflow && y == -1) { 23376: return neg_signed_int(to, x, dir); 23376: } 23376: to = x / y; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: idiv_unsigned_int(Type& to, const Type x, const Type y, Rounding_Dir) { 23376: if (((To_Policy::check_div_zero) ? (y == 0) : ( 23376: # 1229 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1229 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: to = x / y; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: rem_signed_int(Type& to, const Type x, const Type y, Rounding_Dir) { 23376: if (((To_Policy::check_div_zero) ? (y == 0) : ( 23376: # 1240 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1240 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_MOD_ZERO); 23376: } 23376: to = (y == -1) ? 0 : (x % y); 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: rem_unsigned_int(Type& to, const Type x, const Type y, Rounding_Dir) { 23376: if (((To_Policy::check_div_zero) ? (y == 0) : ( 23376: # 1251 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1251 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_MOD_ZERO); 23376: } 23376: to = x % y; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: div_2exp_unsigned_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: to = 0; 23376: if (round_not_requested(dir)) { 23376: return V_GE; 23376: } 23376: if (x == 0) { 23376: return V_EQ; 23376: } 23376: return round_gt_int_no_overflow(to, dir); 23376: } 23376: to = x >> exp; 23376: if (round_not_requested(dir)) { 23376: return V_GE; 23376: } 23376: if (x & ((Type(1) << exp) - 1)) { 23376: return round_gt_int_no_overflow(to, dir); 23376: } 23376: else { 23376: return V_EQ; 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: div_2exp_signed_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (x < 0) { 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: to = 0; 23376: if (round_not_requested(dir)) { 23376: return V_LE; 23376: } 23376: return round_lt_int_no_overflow(to, dir); 23376: } 23376: typedef typename C_Integer::other_type UType; 23376: UType ux = x; 23376: ux = -ux; 23376: to = ~Type(~-(ux >> exp)); 23376: if (round_not_requested(dir)) { 23376: return V_LE; 23376: } 23376: if (ux & ((UType(1) << exp) -1)) { 23376: return round_lt_int_no_overflow(to, dir); 23376: } 23376: return V_EQ; 23376: } 23376: else { 23376: if (exp >= ((sizeof(Type)) * static_cast(8)) - 1) { 23376: to = 0; 23376: if (round_not_requested(dir)) { 23376: return V_GE; 23376: } 23376: if (x == 0) { 23376: return V_EQ; 23376: } 23376: return round_gt_int_no_overflow(to, dir); 23376: } 23376: to = x >> exp; 23376: if (round_not_requested(dir)) { 23376: return V_GE; 23376: } 23376: if (x & ((Type(1) << exp) - 1)) { 23376: return round_gt_int_no_overflow(to, dir); 23376: } 23376: else { 23376: return V_EQ; 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: add_2exp_unsigned_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (!To_Policy::check_overflow) { 23376: to = x + (Type(1) << exp); 23376: return V_EQ; 23376: } 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: Type n = Type(1) << exp; 23376: return add_unsigned_int(to, x, n, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: add_2exp_signed_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (!To_Policy::check_overflow) { 23376: to = x + (Type(1) << exp); 23376: return V_EQ; 23376: } 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: if (exp == ((sizeof(Type)) * static_cast(8)) - 1) { 23376: Type n = -2 * (Type(1) << (exp - 1)); 23376: return sub_signed_int(to, x, n, dir); 23376: } 23376: else { 23376: Type n = Type(1) << exp; 23376: return add_signed_int(to, x, n, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: sub_2exp_unsigned_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (!To_Policy::check_overflow) { 23376: to = x - (Type(1) << exp); 23376: return V_EQ; 23376: } 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: Type n = Type(1) << exp; 23376: return sub_unsigned_int(to, x, n, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: sub_2exp_signed_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (!To_Policy::check_overflow) { 23376: to = x - (Type(1) << exp); 23376: return V_EQ; 23376: } 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: if (exp == ((sizeof(Type)) * static_cast(8)) - 1) { 23376: Type n = -2 * (Type(1) << (exp - 1)); 23376: return add_signed_int(to, x, n, dir); 23376: } 23376: else { 23376: Type n = Type(1) << exp; 23376: return sub_signed_int(to, x, n, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: mul_2exp_unsigned_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (!To_Policy::check_overflow) { 23376: to = x << exp; 23376: return V_EQ; 23376: } 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: if (x == 0) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: if (x > Extended_Int::max >> exp) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: to = x << exp; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: mul_2exp_signed_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (x < 0) { 23376: if (!To_Policy::check_overflow) { 23376: to = x * (Type(1) << exp); 23376: return V_EQ; 23376: } 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: typedef typename C_Integer::other_type UType; 23376: UType mask = UType(-1) << (((sizeof(Type)) * static_cast(8)) - exp - 1); 23376: UType ux = x; 23376: if ((ux & mask) != mask) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: ux <<= exp; 23376: Type n = ~(Type(~ux)); 23376: if (((n) < ((Extended_Int::min)))) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: to = n; 23376: } 23376: else { 23376: if (!To_Policy::check_overflow) { 23376: to = x << exp; 23376: return V_EQ; 23376: } 23376: if (exp >= ((sizeof(Type)) * static_cast(8)) - 1) { 23376: if (x == 0) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: if (x > Extended_Int::max >> exp) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: to = x << exp; 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: smod_2exp_unsigned_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (exp > ((sizeof(Type)) * static_cast(8))) { 23376: to = x; 23376: } 23376: else { 23376: Type v = (exp == ((sizeof(Type)) * static_cast(8)) ? x : (x & ((Type(1) << exp) - 1))); 23376: if (v >= (Type(1) << (exp - 1))) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: else { 23376: to = v; 23376: } 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: smod_2exp_signed_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir) { 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: to = x; 23376: } 23376: else { 23376: Type m = Type(1) << (exp - 1); 23376: to = (x & (m - 1)) - (x & m); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: umod_2exp_unsigned_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir) { 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: to = x; 23376: } 23376: else { 23376: to = x & ((Type(1) << exp) - 1); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: umod_2exp_signed_int(Type& to, const Type x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: if (exp >= ((sizeof(Type)) * static_cast(8))) { 23376: if (x < 0) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: to = x; 23376: } 23376: else { 23376: to = x & ((Type(1) << exp) - 1); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline void 23376: isqrt_rem(Type& q, Type& r, const Type from) { 23376: q = 0; 23376: r = from; 23376: Type t(1); 23376: for (t <<= ((sizeof(Type)) * static_cast(8)) - 2; t != 0; t >>= 2) { 23376: Type s = q + t; 23376: if (s <= r) { 23376: r -= s; 23376: q = s + t; 23376: } 23376: q >>= 1; 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: sqrt_unsigned_int(Type& to, const Type from, Rounding_Dir dir) { 23376: Type rem; 23376: isqrt_rem(to, rem, from); 23376: if (round_not_requested(dir)) { 23376: return V_GE; 23376: } 23376: if (rem == 0) { 23376: return V_EQ; 23376: } 23376: return round_gt_int(to, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: sqrt_signed_int(Type& to, const Type from, Rounding_Dir dir) { 23376: if (((To_Policy::check_sqrt_neg) ? (from < 0) : ( 23376: # 1566 "../../src/checked_int_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 1566 "../../src/checked_int_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_SQRT_NEG); 23376: } 23376: return sqrt_unsigned_int(to, from, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: add_mul_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: Type z; 23376: Result r = mul(z, x, y, dir); 23376: switch (result_overflow(r)) { 23376: case 0: 23376: return add(to, to, z, dir); 23376: case -1: 23376: if (to <= 0) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: return assign_nan(to, V_UNKNOWN_NEG_OVERFLOW); 23376: case 1: 23376: if (to >= 0) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: return assign_nan(to, V_UNKNOWN_POS_OVERFLOW); 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_NAN; 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: sub_mul_int(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: Type z; 23376: Result r = mul(z, x, y, dir); 23376: switch (result_overflow(r)) { 23376: case 0: 23376: return sub(to, to, z, dir); 23376: case -1: 23376: if (to >= 0) { 23376: return set_pos_overflow_int(to, dir); 23376: } 23376: return assign_nan(to, V_UNKNOWN_NEG_OVERFLOW); 23376: case 1: 23376: if (to <= 0) { 23376: return set_neg_overflow_int(to, dir); 23376: } 23376: return assign_nan(to, V_UNKNOWN_POS_OVERFLOW); 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_NAN; 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: output_char(std::ostream& os, Type& from, 23376: const Numeric_Format&, Rounding_Dir) { 23376: os << int(from); 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: output_int(std::ostream& os, Type& from, const Numeric_Format&, Rounding_Dir) { 23376: os << from; 23376: return V_EQ; 23376: } 23376: 23376: 23376: 23376: 23376: template struct floor_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct floor_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct floor_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct floor_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct floor_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: 23376: template struct floor_function_struct { static inline Result function( char& arg1, const char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct floor_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct floor_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct floor_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct floor_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct floor_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct ceil_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct ceil_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct ceil_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct ceil_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct ceil_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: 23376: template struct ceil_function_struct { static inline Result function( char& arg1, const char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct ceil_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct ceil_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct ceil_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct ceil_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct ceil_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct trunc_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct trunc_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct trunc_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct trunc_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: template struct trunc_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_signed_int_signed_int(arg1, arg2, a1); } }; 23376: 23376: template struct trunc_function_struct { static inline Result function( char& arg1, const char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct trunc_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct trunc_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct trunc_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct trunc_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct trunc_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct neg_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, Rounding_Dir a1) { return neg_signed_int(arg1, arg2, a1); } }; 23376: template struct neg_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, Rounding_Dir a1) { return neg_signed_int(arg1, arg2, a1); } }; 23376: template struct neg_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, Rounding_Dir a1) { return neg_signed_int(arg1, arg2, a1); } }; 23376: template struct neg_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, Rounding_Dir a1) { return neg_signed_int(arg1, arg2, a1); } }; 23376: template struct neg_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, Rounding_Dir a1) { return neg_signed_int(arg1, arg2, a1); } }; 23376: 23376: template struct neg_function_struct { static inline Result function( char& arg1, const char &arg2, Rounding_Dir a1) { return neg_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct neg_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, Rounding_Dir a1) { return neg_unsigned_int(arg1, arg2, a1); } }; 23376: template struct neg_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, Rounding_Dir a1) { return neg_unsigned_int(arg1, arg2, a1); } }; 23376: template struct neg_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, Rounding_Dir a1) { return neg_unsigned_int(arg1, arg2, a1); } }; 23376: template struct neg_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return neg_unsigned_int(arg1, arg2, a1); } }; 23376: template struct neg_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return neg_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct add_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return add_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return add_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return add_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return add_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return add_signed_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct add_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return add_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct add_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return add_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return add_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return add_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return add_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return add_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct sub_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return sub_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return sub_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return sub_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return sub_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return sub_signed_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct sub_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return sub_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct sub_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return sub_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return sub_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return sub_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return sub_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return sub_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct mul_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return mul_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct mul_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return mul_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct mul_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return mul_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct mul_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return mul_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct mul_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return mul_signed_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct mul_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return mul_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct mul_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return mul_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct mul_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return mul_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct mul_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return mul_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct mul_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return mul_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct mul_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return mul_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct div_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return div_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct div_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return div_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct div_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return div_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct div_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return div_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct div_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return div_signed_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct div_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return div_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct div_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return div_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct div_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return div_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct div_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return div_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct div_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return div_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct div_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return div_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct idiv_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return idiv_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct idiv_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return idiv_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct idiv_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return idiv_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct idiv_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return idiv_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct idiv_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return idiv_signed_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct idiv_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return idiv_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct idiv_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return idiv_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct idiv_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return idiv_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct idiv_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return idiv_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct idiv_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return idiv_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct idiv_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return idiv_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct rem_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return rem_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct rem_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return rem_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct rem_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return rem_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct rem_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return rem_signed_int(arg1, arg2, arg3, a1); } }; 23376: template struct rem_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return rem_signed_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct rem_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return rem_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct rem_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return rem_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct rem_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return rem_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct rem_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return rem_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct rem_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return rem_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: template struct rem_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return rem_unsigned_int(arg1, arg2, arg3, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct add_2exp_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct add_2exp_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct add_2exp_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct add_2exp_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct add_2exp_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct add_2exp_function_struct { static inline Result function( char& arg1, const char &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct add_2exp_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct add_2exp_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct add_2exp_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct add_2exp_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct add_2exp_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: 23376: 23376: 23376: template struct sub_2exp_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct sub_2exp_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct sub_2exp_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct sub_2exp_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct sub_2exp_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct sub_2exp_function_struct { static inline Result function( char& arg1, const char &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct sub_2exp_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct sub_2exp_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct sub_2exp_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct sub_2exp_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct sub_2exp_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: 23376: 23376: 23376: template struct mul_2exp_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct mul_2exp_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct mul_2exp_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct mul_2exp_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct mul_2exp_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct mul_2exp_function_struct { static inline Result function( char& arg1, const char &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct mul_2exp_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct mul_2exp_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct mul_2exp_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct mul_2exp_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct mul_2exp_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: 23376: 23376: 23376: template struct div_2exp_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct div_2exp_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct div_2exp_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct div_2exp_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct div_2exp_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct div_2exp_function_struct { static inline Result function( char& arg1, const char &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct div_2exp_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct div_2exp_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct div_2exp_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct div_2exp_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct div_2exp_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: 23376: 23376: 23376: template struct smod_2exp_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct smod_2exp_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct smod_2exp_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct smod_2exp_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct smod_2exp_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct smod_2exp_function_struct { static inline Result function( char& arg1, const char &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct smod_2exp_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct smod_2exp_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct smod_2exp_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct smod_2exp_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct smod_2exp_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: 23376: 23376: 23376: template struct umod_2exp_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct umod_2exp_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct umod_2exp_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct umod_2exp_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: template struct umod_2exp_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_signed_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct umod_2exp_function_struct { static inline Result function( char& arg1, const char &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: template struct umod_2exp_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct umod_2exp_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct umod_2exp_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct umod_2exp_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: template struct umod_2exp_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_unsigned_int(arg1, arg2, a1, a2); } }; 23376: 23376: 23376: 23376: 23376: template struct sqrt_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, Rounding_Dir a1) { return sqrt_signed_int(arg1, arg2, a1); } }; 23376: template struct sqrt_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, Rounding_Dir a1) { return sqrt_signed_int(arg1, arg2, a1); } }; 23376: template struct sqrt_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, Rounding_Dir a1) { return sqrt_signed_int(arg1, arg2, a1); } }; 23376: template struct sqrt_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, Rounding_Dir a1) { return sqrt_signed_int(arg1, arg2, a1); } }; 23376: template struct sqrt_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, Rounding_Dir a1) { return sqrt_signed_int(arg1, arg2, a1); } }; 23376: 23376: template struct sqrt_function_struct { static inline Result function( char& arg1, const char &arg2, Rounding_Dir a1) { return sqrt_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct sqrt_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, Rounding_Dir a1) { return sqrt_unsigned_int(arg1, arg2, a1); } }; 23376: template struct sqrt_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, Rounding_Dir a1) { return sqrt_unsigned_int(arg1, arg2, a1); } }; 23376: template struct sqrt_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, Rounding_Dir a1) { return sqrt_unsigned_int(arg1, arg2, a1); } }; 23376: template struct sqrt_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return sqrt_unsigned_int(arg1, arg2, a1); } }; 23376: template struct sqrt_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return sqrt_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct abs_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, Rounding_Dir a1) { return abs_generic(arg1, arg2, a1); } }; 23376: template struct abs_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, Rounding_Dir a1) { return abs_generic(arg1, arg2, a1); } }; 23376: template struct abs_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, Rounding_Dir a1) { return abs_generic(arg1, arg2, a1); } }; 23376: template struct abs_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, Rounding_Dir a1) { return abs_generic(arg1, arg2, a1); } }; 23376: template struct abs_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, Rounding_Dir a1) { return abs_generic(arg1, arg2, a1); } }; 23376: 23376: template struct abs_function_struct { static inline Result function( char& arg1, const char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct abs_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct abs_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct abs_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct abs_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: template struct abs_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_unsigned_int_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template struct gcd_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct gcd_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return gcd_exact(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct gcdext_function_struct { static inline Result function( char& arg1, char &arg2, char &arg3, const char &arg4, const char &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: template struct gcdext_function_struct { static inline Result function( signed char& arg1, signed char &arg2, signed char &arg3, const signed char &arg4, const signed char &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: template struct gcdext_function_struct { static inline Result function( signed short& arg1, signed short &arg2, signed short &arg3, const signed short &arg4, const signed short &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: template struct gcdext_function_struct { static inline Result function( signed int& arg1, signed int &arg2, signed int &arg3, const signed int &arg4, const signed int &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: template struct gcdext_function_struct { static inline Result function( signed long& arg1, signed long &arg2, signed long &arg3, const signed long &arg4, const signed long &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: template struct gcdext_function_struct { static inline Result function( signed long long& arg1, signed long long &arg2, signed long long &arg3, const signed long long &arg4, const signed long long &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: template struct gcdext_function_struct { static inline Result function( unsigned char& arg1, unsigned char &arg2, unsigned char &arg3, const unsigned char &arg4, const unsigned char &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: template struct gcdext_function_struct { static inline Result function( unsigned short& arg1, unsigned short &arg2, unsigned short &arg3, const unsigned short &arg4, const unsigned short &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: template struct gcdext_function_struct { static inline Result function( unsigned int& arg1, unsigned int &arg2, unsigned int &arg3, const unsigned int &arg4, const unsigned int &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: template struct gcdext_function_struct { static inline Result function( unsigned long& arg1, unsigned long &arg2, unsigned long &arg3, const unsigned long &arg4, const unsigned long &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: template struct gcdext_function_struct { static inline Result function( unsigned long long& arg1, unsigned long long &arg2, unsigned long long &arg3, const unsigned long long &arg4, const unsigned long long &arg5, Rounding_Dir a1) { return gcdext_exact(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: 23376: 23376: 23376: template struct lcm_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: template struct lcm_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return lcm_gcd_exact(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct sgn_function_struct { static inline Result_Relation function(const char& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const signed char& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const signed short& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const signed int& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const signed long& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const signed long long& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const unsigned char& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const unsigned short& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const unsigned int& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const unsigned long& arg) { return sgn_generic(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const unsigned long long& arg) { return sgn_generic(arg); } }; 23376: 23376: template struct cmp_function_struct { static inline Result_Relation function(const char& arg1, const char &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const signed char& arg1, const signed char &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const signed short& arg1, const signed short &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const signed int& arg1, const signed int &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const signed long& arg1, const signed long &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const signed long long& arg1, const signed long long &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const unsigned char& arg1, const unsigned char &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const unsigned short& arg1, const unsigned short &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const unsigned int& arg1, const unsigned int &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const unsigned long& arg1, const unsigned long &arg2) { return cmp_generic(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const unsigned long long& arg1, const unsigned long long &arg2) { return cmp_generic(arg1, arg2); } }; 23376: 23376: template struct add_mul_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct add_mul_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return add_mul_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct sub_mul_function_struct { static inline Result function( char& arg1, const char &arg2, const char &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( signed char& arg1, const signed char &arg2, const signed char &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( signed short& arg1, const signed short &arg2, const signed short &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( signed int& arg1, const signed int &arg2, const signed int &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( signed long& arg1, const signed long &arg2, const signed long &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( signed long long& arg1, const signed long long &arg2, const signed long long &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( unsigned char& arg1, const unsigned char &arg2, const unsigned char &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( unsigned short& arg1, const unsigned short &arg2, const unsigned short &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( unsigned int& arg1, const unsigned int &arg2, const unsigned int &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( unsigned long& arg1, const unsigned long &arg2, const unsigned long &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: template struct sub_mul_function_struct { static inline Result function( unsigned long long& arg1, const unsigned long long &arg2, const unsigned long long &arg3, Rounding_Dir a1) { return sub_mul_int(arg1, arg2, arg3, a1); } }; 23376: 23376: template struct input_function_struct { static inline Result function( char& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( signed char& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( signed short& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( signed int& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( signed long& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( signed long long& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( unsigned char& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( unsigned short& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( unsigned int& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( unsigned long& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct input_function_struct { static inline Result function( unsigned long long& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const char& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_char(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const signed char& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_char(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const signed short& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_int(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const signed int& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_int(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const signed long& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_int(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const signed long long& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_int(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const unsigned char& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_char(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const unsigned short& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_int(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const unsigned int& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_int(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const unsigned long& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_int(b1, arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const unsigned long long& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_int(b1, arg, a1, a2); } }; 23376: 23376: } 23376: 23376: } 23376: # 702 "../../src/checked_defs.hh" 2 23376: # 1 "../../src/checked_float_inlines.hh" 1 23376: # 28 "../../src/checked_float_inlines.hh" 23376: # 1 "/usr/include/c++/8/cmath" 1 3 23376: # 39 "/usr/include/c++/8/cmath" 3 23376: 23376: # 40 "/usr/include/c++/8/cmath" 3 23376: # 29 "../../src/checked_float_inlines.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Checked { 23376: 23376: inline float 23376: multiply_add(float x, float y, float z) { 23376: 23376: 23376: 23376: 23376: return x*y + z; 23376: 23376: } 23376: 23376: inline double 23376: multiply_add(double x, double y, double z) { 23376: 23376: 23376: 23376: 23376: return x*y + z; 23376: 23376: } 23376: 23376: inline long double 23376: multiply_add(long double x, long double y, long double z) { 23376: 23376: 23376: 23376: 23376: return x*y + z; 23376: 23376: } 23376: 23376: 23376: inline float 23376: round_to_integer(float x) { 23376: return rintf(x); 23376: } 23376: 23376: 23376: inline double 23376: round_to_integer(double x) { 23376: return rint(x); 23376: } 23376: 23376: 23376: inline long double 23376: round_to_integer(long double x) { 23376: return rintl(x); 23376: } 23376: # 99 "../../src/checked_float_inlines.hh" 23376: inline bool 23376: fpu_direct_rounding(Rounding_Dir dir) { 23376: return round_direct(dir) || round_not_requested(dir); 23376: } 23376: 23376: inline bool 23376: fpu_inverse_rounding(Rounding_Dir dir) { 23376: return round_inverse(dir); 23376: } 23376: # 133 "../../src/checked_float_inlines.hh" 23376: inline void 23376: limit_precision(const float& v) { 23376: PPL_CC_FLUSH(v); 23376: } 23376: 23376: inline void 23376: limit_precision(const double& v) { 23376: PPL_CC_FLUSH(v); 23376: } 23376: 23376: inline void 23376: limit_precision(const long double&) { 23376: } 23376: 23376: template 23376: inline Result 23376: classify_float(const T v, bool nan, bool inf, bool sign) { 23376: Float f(v); 23376: if ((nan || sign) && ((Policy::has_nan) ? (f.u.binary.is_nan()) : ( 23376: # 151 "../../src/checked_float_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 151 "../../src/checked_float_inlines.hh" 23376: , false))) { 23376: return V_NAN; 23376: } 23376: if (inf) { 23376: if (Policy::has_infinity) { 23376: int sign_inf = f.u.binary.inf_sign(); 23376: if (sign_inf < 0) { 23376: return V_EQ_MINUS_INFINITY; 23376: } 23376: if (sign_inf > 0) { 23376: return V_EQ_PLUS_INFINITY; 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: } 23376: } 23376: if (sign) { 23376: if (v < 0) { 23376: return V_LT; 23376: } 23376: if (v > 0) { 23376: return V_GT; 23376: } 23376: return V_EQ; 23376: } 23376: return V_LGE; 23376: } 23376: 23376: template 23376: inline bool 23376: is_nan_float(const T v) { 23376: Float f(v); 23376: return ((Policy::has_nan) ? (f.u.binary.is_nan()) : ( 23376: # 184 "../../src/checked_float_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 184 "../../src/checked_float_inlines.hh" 23376: , false)); 23376: } 23376: 23376: template 23376: inline bool 23376: is_inf_float(const T v) { 23376: Float f(v); 23376: return ((Policy::has_infinity) ? ((f.u.binary.inf_sign() != 0)) : ( 23376: # 191 "../../src/checked_float_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 191 "../../src/checked_float_inlines.hh" 23376: , false)); 23376: } 23376: template 23376: inline bool 23376: is_minf_float(const T v) { 23376: Float f(v); 23376: return ((Policy::has_infinity) ? ((f.u.binary.inf_sign() < 0)) : ( 23376: # 197 "../../src/checked_float_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 197 "../../src/checked_float_inlines.hh" 23376: , false)); 23376: } 23376: 23376: template 23376: inline bool 23376: is_pinf_float(const T v) { 23376: Float f(v); 23376: return ((Policy::has_infinity) ? ((f.u.binary.inf_sign() > 0)) : ( 23376: # 204 "../../src/checked_float_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 204 "../../src/checked_float_inlines.hh" 23376: , false)); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: is_int_float(const T v) { 23376: return round_to_integer(v) == v; 23376: } 23376: 23376: template 23376: inline Result 23376: assign_special_float(T& v, Result_Class c, Rounding_Dir) { 23376: ((void) 0); 23376: switch (c) { 23376: case VC_MINUS_INFINITY: 23376: v = - 23376: # 220 "../../src/checked_float_inlines.hh" 3 4 23376: (__builtin_huge_val ()) 23376: # 220 "../../src/checked_float_inlines.hh" 23376: ; 23376: return V_EQ_MINUS_INFINITY; 23376: case VC_PLUS_INFINITY: 23376: v = 23376: # 223 "../../src/checked_float_inlines.hh" 3 4 23376: (__builtin_huge_val ()) 23376: # 223 "../../src/checked_float_inlines.hh" 23376: ; 23376: return V_EQ_PLUS_INFINITY; 23376: case VC_NAN: 23376: v = 23376: # 226 "../../src/checked_float_inlines.hh" 3 4 23376: (__builtin_nanf ("")) 23376: # 226 "../../src/checked_float_inlines.hh" 23376: ; 23376: return V_NAN; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_NAN | V_UNREPRESENTABLE; 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: pred_float(T& v) { 23376: Float f(v); 23376: ((void) 0); 23376: ((void) 0); 23376: if (f.u.binary.zero_sign() > 0) { 23376: f.u.binary.negate(); 23376: f.u.binary.inc(); 23376: } 23376: else if (f.u.binary.sign_bit()) { 23376: f.u.binary.inc(); 23376: } 23376: else { 23376: f.u.binary.dec(); 23376: } 23376: v = f.value(); 23376: } 23376: 23376: template 23376: inline void 23376: succ_float(T& v) { 23376: Float f(v); 23376: ((void) 0); 23376: ((void) 0); 23376: if (f.u.binary.zero_sign() < 0) { 23376: f.u.binary.negate(); 23376: f.u.binary.inc(); 23376: } 23376: else if (!f.u.binary.sign_bit()) { 23376: f.u.binary.inc(); 23376: } 23376: else { 23376: f.u.binary.dec(); 23376: } 23376: v = f.value(); 23376: } 23376: 23376: template 23376: inline Result 23376: round_lt_float(To& to, Rounding_Dir dir) { 23376: if (round_down(dir)) { 23376: pred_float(to); 23376: return V_GT; 23376: } 23376: return V_LT; 23376: } 23376: 23376: template 23376: inline Result 23376: round_gt_float(To& to, Rounding_Dir dir) { 23376: if (round_up(dir)) { 23376: succ_float(to); 23376: return V_LT; 23376: } 23376: return V_GT; 23376: } 23376: 23376: 23376: template 23376: inline void 23376: prepare_inexact(Rounding_Dir dir) { 23376: if (Policy::fpu_check_inexact 23376: && !round_not_needed(dir) && round_strict_relation(dir)) { 23376: fpu_reset_inexact(); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: result_relation(Rounding_Dir dir) { 23376: if (Policy::fpu_check_inexact 23376: && !round_not_needed(dir) && round_strict_relation(dir)) { 23376: switch (fpu_check_inexact()) { 23376: case 0: 23376: return V_EQ; 23376: case -1: 23376: goto unknown; 23376: case 1: 23376: break; 23376: } 23376: switch (round_dir(dir)) { 23376: case ROUND_DOWN: 23376: return V_GT; 23376: case ROUND_UP: 23376: return V_LT; 23376: default: 23376: return V_NE; 23376: } 23376: } 23376: else { 23376: unknown: 23376: switch (round_dir(dir)) { 23376: case ROUND_DOWN: 23376: return V_GE; 23376: case ROUND_UP: 23376: return V_LE; 23376: default: 23376: return V_LGE; 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: assign_float_float_exact(To& to, const From from, Rounding_Dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: to = from; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: assign_float_float_inexact(To& to, const From from, Rounding_Dir dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: prepare_inexact(dir); 23376: if (fpu_direct_rounding(dir)) { 23376: to = from; 23376: } 23376: else if (fpu_inverse_rounding(dir)) { 23376: From tmp = -from; 23376: to = tmp; 23376: limit_precision(to); 23376: to = -to; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(dir)); 23376: limit_precision(from); 23376: to = from; 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: return result_relation(dir); 23376: } 23376: 23376: template 23376: inline Result 23376: assign_float_float(To& to, const From from, Rounding_Dir dir) { 23376: if (sizeof(From) > sizeof(To)) { 23376: return assign_float_float_inexact(to, from, dir); 23376: } 23376: else { 23376: return assign_float_float_exact(to, from, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: floor_float(Type& to, const Type from, Rounding_Dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (fpu_direct_rounding(ROUND_DOWN)) { 23376: to = round_to_integer(from); 23376: } 23376: else if (fpu_inverse_rounding(ROUND_DOWN)) { 23376: to = round_to_integer(-from); 23376: limit_precision(to); 23376: to = -to; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(ROUND_DOWN)); 23376: limit_precision(from); 23376: to = round_to_integer(from); 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: ceil_float(Type& to, const Type from, Rounding_Dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (fpu_direct_rounding(ROUND_UP)) { 23376: to = round_to_integer(from); 23376: } 23376: else if (fpu_inverse_rounding(ROUND_UP)) { 23376: to = round_to_integer(-from); 23376: limit_precision(to); 23376: to = -to; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(ROUND_UP)); 23376: limit_precision(from); 23376: to = round_to_integer(from); 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: trunc_float(Type& to, const Type from, Rounding_Dir dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (from >= 0) { 23376: return floor(to, from, dir); 23376: } 23376: else { 23376: return ceil(to, from, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: neg_float(Type& to, const Type from, Rounding_Dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: to = -from; 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: add_float(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_inf_add_inf 23376: && is_inf_float(x) && x == -y) { 23376: return assign_nan(to, V_INF_ADD_INF); 23376: } 23376: prepare_inexact(dir); 23376: if (fpu_direct_rounding(dir)) { 23376: to = x + y; 23376: } 23376: else if (fpu_inverse_rounding(dir)) { 23376: to = -x - y; 23376: limit_precision(to); 23376: to = -to; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(dir)); 23376: limit_precision(x); 23376: limit_precision(y); 23376: to = x + y; 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: if (To_Policy::fpu_check_nan_result && is_nan(to)) { 23376: return V_NAN; 23376: } 23376: return result_relation(dir); 23376: } 23376: 23376: template 23376: inline Result 23376: sub_float(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_inf_sub_inf 23376: && is_inf_float(x) && x == y) { 23376: return assign_nan(to, V_INF_SUB_INF); 23376: } 23376: prepare_inexact(dir); 23376: if (fpu_direct_rounding(dir)) { 23376: to = x - y; 23376: } 23376: else if (fpu_inverse_rounding(dir)) { 23376: to = y - x; 23376: limit_precision(to); 23376: to = -to; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(dir)); 23376: limit_precision(x); 23376: limit_precision(y); 23376: to = x - y; 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: if (To_Policy::fpu_check_nan_result && is_nan(to)) { 23376: return V_NAN; 23376: } 23376: return result_relation(dir); 23376: } 23376: 23376: template 23376: inline Result 23376: mul_float(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_inf_mul_zero 23376: && ((x == 0 && is_inf_float(y)) 23376: || 23376: (y == 0 && is_inf_float(x)))) { 23376: return assign_nan(to, V_INF_MUL_ZERO); 23376: } 23376: prepare_inexact(dir); 23376: if (fpu_direct_rounding(dir)) { 23376: to = x * y; 23376: } 23376: else if (fpu_inverse_rounding(dir)) { 23376: to = x * -y; 23376: limit_precision(to); 23376: to = -to; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(dir)); 23376: limit_precision(x); 23376: limit_precision(y); 23376: to = x * y; 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: if (To_Policy::fpu_check_nan_result && is_nan(to)) { 23376: return V_NAN; 23376: } 23376: return result_relation(dir); 23376: } 23376: 23376: template 23376: inline Result 23376: div_float(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_inf_div_inf 23376: && is_inf_float(x) && is_inf_float(y)) { 23376: return assign_nan(to, V_INF_DIV_INF); 23376: } 23376: if (To_Policy::check_div_zero && y == 0) { 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: prepare_inexact(dir); 23376: if (fpu_direct_rounding(dir)) { 23376: to = x / y; 23376: } 23376: else if (fpu_inverse_rounding(dir)) { 23376: to = x / -y; 23376: limit_precision(to); 23376: to = -to; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(dir)); 23376: limit_precision(x); 23376: limit_precision(y); 23376: to = x / y; 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: if (To_Policy::fpu_check_nan_result && is_nan(to)) { 23376: return V_NAN; 23376: } 23376: return result_relation(dir); 23376: } 23376: 23376: template 23376: inline Result 23376: idiv_float(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: Type temp; 23376: 23376: dir = round_dir(dir); 23376: Result r = div(temp, x, y, dir); 23376: if (result_class(r) != VC_NORMAL) { 23376: to = temp; 23376: return r; 23376: } 23376: Result r1 = trunc(to, temp, ROUND_NOT_NEEDED); 23376: ((void) 0); 23376: if (r == V_EQ || to != temp) { 23376: return r1; 23376: } 23376: 23376: return (dir == ROUND_UP) ? V_LE : V_GE; 23376: } 23376: 23376: template 23376: inline Result 23376: rem_float(Type& to, const Type x, const Type y, Rounding_Dir) { 23376: if (To_Policy::check_inf_mod && is_inf_float(x)) { 23376: return assign_nan(to, V_INF_MOD); 23376: } 23376: if (To_Policy::check_div_zero && y == 0) { 23376: return assign_nan(to, V_MOD_ZERO); 23376: } 23376: to = std::fmod(x, y); 23376: if (To_Policy::fpu_check_nan_result && is_nan(to)) { 23376: return V_NAN; 23376: } 23376: return V_EQ; 23376: } 23376: 23376: struct Float_2exp { 23376: enum const_bool_value_has_nan { has_nan = (false) }; 23376: enum const_bool_value_has_infinity { has_infinity = (false) }; 23376: }; 23376: 23376: template 23376: inline Result 23376: add_2exp_float(Type& to, const Type x, unsigned int exp, Rounding_Dir dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: ((void) 0); 23376: return 23376: add(to, 23376: x, 23376: Type(1ULL << exp), 23376: dir); 23376: } 23376: 23376: template 23376: inline Result 23376: sub_2exp_float(Type& to, const Type x, unsigned int exp, Rounding_Dir dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: ((void) 0); 23376: return 23376: sub(to, 23376: x, 23376: Type(1ULL << exp), 23376: dir); 23376: } 23376: 23376: template 23376: inline Result 23376: mul_2exp_float(Type& to, const Type x, unsigned int exp, Rounding_Dir dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: ((void) 0); 23376: return 23376: mul(to, 23376: x, 23376: Type(1ULL << exp), 23376: dir); 23376: } 23376: 23376: template 23376: inline Result 23376: div_2exp_float(Type& to, const Type x, unsigned int exp, Rounding_Dir dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: ((void) 0); 23376: return 23376: div(to, 23376: x, 23376: Type(1ULL << exp), 23376: dir); 23376: } 23376: 23376: template 23376: inline Result 23376: smod_2exp_float(Type& to, const Type x, unsigned int exp, Rounding_Dir dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (To_Policy::check_inf_mod && is_inf_float(x)) { 23376: return assign_nan(to, V_INF_MOD); 23376: } 23376: ((void) 0); 23376: Type m = 1ULL << exp; 23376: rem_float(to, x, m, ROUND_IGNORE); 23376: Type m2 = m / 2; 23376: if (to < -m2) { 23376: return add_float(to, to, m, dir); 23376: } 23376: else if (to >= m2) { 23376: return sub_float(to, to, m, dir); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: umod_2exp_float(Type& to, const Type x, unsigned int exp, Rounding_Dir dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (To_Policy::check_inf_mod && is_inf_float(x)) { 23376: return assign_nan(to, V_INF_MOD); 23376: } 23376: ((void) 0); 23376: Type m = 1ULL << exp; 23376: rem_float(to, x, m, ROUND_IGNORE); 23376: if (to < 0) { 23376: return add_float(to, to, m, dir); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: abs_float(Type& to, const Type from, Rounding_Dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: to = std::abs(from); 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: sqrt_float(Type& to, const Type from, Rounding_Dir dir) { 23376: if (To_Policy::fpu_check_nan_result && is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (To_Policy::check_sqrt_neg && from < 0) { 23376: return assign_nan(to, V_SQRT_NEG); 23376: } 23376: prepare_inexact(dir); 23376: if (fpu_direct_rounding(dir)) { 23376: to = std::sqrt(from); 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(dir)); 23376: limit_precision(from); 23376: to = std::sqrt(from); 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: return result_relation(dir); 23376: } 23376: 23376: template 23376: inline Result_Relation 23376: sgn_float(const Type x) { 23376: if (x > 0) { 23376: return VR_GT; 23376: } 23376: if (x < 0) { 23376: return VR_LT; 23376: } 23376: if (x == 0) { 23376: return VR_EQ; 23376: } 23376: return VR_EMPTY; 23376: } 23376: 23376: template 23376: inline Result_Relation 23376: cmp_float(const Type x, const Type y) { 23376: if (x > y) { 23376: return VR_GT; 23376: } 23376: if (x < y) { 23376: return VR_LT; 23376: } 23376: if (x == y) { 23376: return VR_EQ; 23376: } 23376: return VR_EMPTY; 23376: } 23376: 23376: template 23376: inline Result 23376: assign_float_int_inexact(To& to, const From from, Rounding_Dir dir) { 23376: prepare_inexact(dir); 23376: if (fpu_direct_rounding(dir)) { 23376: to = from; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(dir)); 23376: to = from; 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: return result_relation(dir); 23376: } 23376: 23376: template 23376: inline Result 23376: assign_float_int(To& to, const From from, Rounding_Dir dir) { 23376: if (((sizeof(From)) * static_cast(8)) > Float::Binary::MANTISSA_BITS) { 23376: return assign_float_int_inexact(to, from, dir); 23376: } 23376: else { 23376: return assign_exact(to, from, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: set_neg_overflow_float(T& to, Rounding_Dir dir) { 23376: switch (round_dir(dir)) { 23376: case ROUND_UP: 23376: { 23376: Float f; 23376: f.u.binary.set_max(true); 23376: to = f.value(); 23376: return V_LT_INF; 23376: } 23376: case ROUND_DOWN: 23376: case ROUND_IGNORE: 23376: to = - 23376: # 836 "../../src/checked_float_inlines.hh" 3 4 23376: (__builtin_huge_val ()) 23376: # 836 "../../src/checked_float_inlines.hh" 23376: ; 23376: return V_GT_MINUS_INFINITY; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_GT_MINUS_INFINITY; 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: set_pos_overflow_float(T& to, Rounding_Dir dir) { 23376: switch (round_dir(dir)) { 23376: case ROUND_DOWN: 23376: { 23376: Float f; 23376: f.u.binary.set_max(false); 23376: to = f.value(); 23376: return V_GT_SUP; 23376: } 23376: case ROUND_UP: 23376: case ROUND_IGNORE: 23376: to = 23376: # 857 "../../src/checked_float_inlines.hh" 3 4 23376: (__builtin_huge_val ()) 23376: # 857 "../../src/checked_float_inlines.hh" 23376: ; 23376: return V_LT_PLUS_INFINITY; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_LT_PLUS_INFINITY; 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: assign_float_mpz(T& to, const mpz_class& from, Rounding_Dir dir) { 23376: int sign = sgn(from); 23376: if (sign == 0) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: mpz_srcptr from_z = from.get_mpz_t(); 23376: size_t exponent = 23376: # 874 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_sizeinbase 23376: # 874 "../../src/checked_float_inlines.hh" 23376: (from_z, 2) - 1; 23376: if (exponent > size_t(Float::Binary::EXPONENT_MAX)) { 23376: if (sign < 0) { 23376: return set_neg_overflow_float(to, dir); 23376: } 23376: else { 23376: return set_pos_overflow_float(to, dir); 23376: } 23376: } 23376: unsigned long zeroes = 23376: # 883 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpn_scan1 23376: # 883 "../../src/checked_float_inlines.hh" 23376: (from_z->_mp_d, 0); 23376: size_t meaningful_bits = exponent - zeroes; 23376: mpz_t mantissa; 23376: 23376: # 886 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_init 23376: # 886 "../../src/checked_float_inlines.hh" 23376: (mantissa); 23376: if (exponent > Float::Binary::MANTISSA_BITS) { 23376: 23376: # 888 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_tdiv_q_2exp 23376: # 888 "../../src/checked_float_inlines.hh" 23376: (mantissa, 23376: from_z, 23376: exponent - Float::Binary::MANTISSA_BITS); 23376: } 23376: else { 23376: 23376: # 893 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 893 "../../src/checked_float_inlines.hh" 23376: (mantissa, from_z, Float::Binary::MANTISSA_BITS - exponent); 23376: } 23376: Float f; 23376: f.u.binary.build(sign < 0, mantissa, static_cast(exponent)); 23376: 23376: # 897 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_clear 23376: # 897 "../../src/checked_float_inlines.hh" 23376: (mantissa); 23376: to = f.value(); 23376: if (meaningful_bits > Float::Binary::MANTISSA_BITS) { 23376: if (sign < 0) { 23376: return round_lt_float(to, dir); 23376: } 23376: else { 23376: return round_gt_float(to, dir); 23376: } 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: assign_float_mpq(T& to, const mpq_class& from, Rounding_Dir dir) { 23376: const mpz_class& numer = from.get_num(); 23376: const mpz_class& denom = from.get_den(); 23376: if (denom == 1) { 23376: return assign_float_mpz(to, numer, dir); 23376: } 23376: mpz_srcptr numer_z = numer.get_mpz_t(); 23376: mpz_srcptr denom_z = denom.get_mpz_t(); 23376: int sign = sgn(numer); 23376: long exponent = static_cast( 23376: # 921 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_sizeinbase 23376: # 921 "../../src/checked_float_inlines.hh" 23376: (numer_z, 2)) 23376: - static_cast( 23376: # 922 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_sizeinbase 23376: # 922 "../../src/checked_float_inlines.hh" 23376: (denom_z, 2)); 23376: if (exponent < Float::Binary::EXPONENT_MIN_DENORM) { 23376: to = 0; 23376: inexact: 23376: if (sign < 0) { 23376: return round_lt_float(to, dir); 23376: } 23376: else { 23376: return round_gt_float(to, dir); 23376: } 23376: } 23376: if (exponent > Float::Binary::EXPONENT_MAX + 1) { 23376: overflow: 23376: if (sign < 0) { 23376: return set_neg_overflow_float(to, dir); 23376: } 23376: else { 23376: return set_pos_overflow_float(to, dir); 23376: } 23376: } 23376: unsigned int needed_bits = Float::Binary::MANTISSA_BITS + 1; 23376: if (exponent < Float::Binary::EXPONENT_MIN) { 23376: long diff = Float::Binary::EXPONENT_MIN - exponent; 23376: needed_bits -= static_cast(diff); 23376: } 23376: mpz_t mantissa; 23376: 23376: # 948 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_init 23376: # 948 "../../src/checked_float_inlines.hh" 23376: (mantissa); 23376: { 23376: long shift = static_cast(needed_bits) - exponent; 23376: if (shift > 0) { 23376: 23376: # 952 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 952 "../../src/checked_float_inlines.hh" 23376: (mantissa, numer_z, static_cast(shift)); 23376: numer_z = mantissa; 23376: } 23376: else if (shift < 0) { 23376: shift = -shift; 23376: 23376: # 957 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 957 "../../src/checked_float_inlines.hh" 23376: (mantissa, denom_z, static_cast(shift)); 23376: denom_z = mantissa; 23376: } 23376: } 23376: mpz_t r; 23376: 23376: # 962 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_init 23376: # 962 "../../src/checked_float_inlines.hh" 23376: (r); 23376: 23376: # 963 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_tdiv_qr 23376: # 963 "../../src/checked_float_inlines.hh" 23376: (mantissa, r, numer_z, denom_z); 23376: size_t bits = 23376: # 964 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_sizeinbase 23376: # 964 "../../src/checked_float_inlines.hh" 23376: (mantissa, 2); 23376: bool inexact = ( 23376: # 965 "../../src/checked_float_inlines.hh" 3 4 23376: (( 23376: # 965 "../../src/checked_float_inlines.hh" 23376: r 23376: # 965 "../../src/checked_float_inlines.hh" 3 4 23376: )->_mp_size < 0 ? -1 : ( 23376: # 965 "../../src/checked_float_inlines.hh" 23376: r 23376: # 965 "../../src/checked_float_inlines.hh" 3 4 23376: )->_mp_size > 0) 23376: # 965 "../../src/checked_float_inlines.hh" 23376: != 0); 23376: 23376: # 966 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_clear 23376: # 966 "../../src/checked_float_inlines.hh" 23376: (r); 23376: if (bits == needed_bits + 1) { 23376: inexact = (inexact || 23376: # 968 "../../src/checked_float_inlines.hh" 3 4 23376: ((( 23376: # 968 "../../src/checked_float_inlines.hh" 23376: mantissa 23376: # 968 "../../src/checked_float_inlines.hh" 3 4 23376: )->_mp_size != 0) & (static_cast (( 23376: # 968 "../../src/checked_float_inlines.hh" 23376: mantissa 23376: # 968 "../../src/checked_float_inlines.hh" 3 4 23376: )->_mp_d[0]))) 23376: # 968 "../../src/checked_float_inlines.hh" 23376: ); 23376: 23376: # 969 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_tdiv_q_2exp 23376: # 969 "../../src/checked_float_inlines.hh" 23376: (mantissa, mantissa, 1); 23376: } 23376: else { 23376: --exponent; 23376: } 23376: if (exponent > Float::Binary::EXPONENT_MAX) { 23376: 23376: # 975 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_clear 23376: # 975 "../../src/checked_float_inlines.hh" 23376: (mantissa); 23376: goto overflow; 23376: } 23376: else if (exponent < Float::Binary::EXPONENT_MIN - 1) { 23376: 23376: exponent = Float::Binary::EXPONENT_MIN - 1; 23376: } 23376: Float f; 23376: f.u.binary.build(sign < 0, mantissa, exponent); 23376: 23376: # 984 "../../src/checked_float_inlines.hh" 3 4 23376: __gmpz_clear 23376: # 984 "../../src/checked_float_inlines.hh" 23376: (mantissa); 23376: to = f.value(); 23376: if (inexact) { 23376: goto inexact; 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: add_mul_float(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_inf_mul_zero 23376: && ((x == 0 && is_inf_float(y)) 23376: || 23376: (y == 0 && is_inf_float(x)))) { 23376: return assign_nan(to, V_INF_MUL_ZERO); 23376: } 23376: 23376: prepare_inexact(dir); 23376: if (fpu_direct_rounding(dir)) { 23376: to = multiply_add(x, y, to); 23376: } 23376: else if (fpu_inverse_rounding(dir)) { 23376: to = multiply_add(-x, y, -to); 23376: limit_precision(to); 23376: to = -to; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(dir)); 23376: limit_precision(x); 23376: limit_precision(y); 23376: limit_precision(to); 23376: to = multiply_add(x, y, to); 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: if (To_Policy::fpu_check_nan_result && is_nan(to)) { 23376: return V_NAN; 23376: } 23376: return result_relation(dir); 23376: } 23376: 23376: template 23376: inline Result 23376: sub_mul_float(Type& to, const Type x, const Type y, Rounding_Dir dir) { 23376: if (To_Policy::check_inf_mul_zero 23376: && ((x == 0 && is_inf_float(y)) 23376: || 23376: (y == 0 && is_inf_float(x)))) { 23376: return assign_nan(to, V_INF_MUL_ZERO); 23376: } 23376: 23376: prepare_inexact(dir); 23376: if (fpu_direct_rounding(dir)) { 23376: to = multiply_add(x, -y, to); 23376: } 23376: else if (fpu_inverse_rounding(dir)) { 23376: to = multiply_add(x, y, -to); 23376: limit_precision(to); 23376: to = -to; 23376: } 23376: else { 23376: fpu_rounding_control_word_type old 23376: = fpu_save_rounding_direction(round_fpu_dir(dir)); 23376: limit_precision(x); 23376: limit_precision(y); 23376: limit_precision(to); 23376: to = multiply_add(x, -y, to); 23376: limit_precision(to); 23376: fpu_restore_rounding_direction(old); 23376: } 23376: if (To_Policy::fpu_check_nan_result && is_nan(to)) { 23376: return V_NAN; 23376: } 23376: return result_relation(dir); 23376: } 23376: 23376: template 23376: inline void 23376: assign_mpq_numeric_float(mpq_class& to, const From from) { 23376: to = from; 23376: } 23376: 23376: template <> 23376: inline void 23376: assign_mpq_numeric_float(mpq_class& to, const long double from) { 23376: to = 0; 23376: if (from == 0.0L) { 23376: return; 23376: } 23376: mpz_class& num = to.get_num(); 23376: mpz_class& den = to.get_den(); 23376: int exp; 23376: long double n = std::frexp(from, &exp); 23376: bool neg = false; 23376: if (n < 0.0L) { 23376: neg = true; 23376: n = -n; 23376: } 23376: const long double mult = static_cast( 23376: # 1085 "../../src/checked_float_inlines.hh" 3 4 23376: (0x7fffffffL * 2UL + 1UL) 23376: # 1085 "../../src/checked_float_inlines.hh" 23376: ) + 1.0L; 23376: const unsigned int bits = sizeof(unsigned long) * 8; 23376: while (true) { 23376: n *= mult; 23376: exp -= bits; 23376: const long double intpart = std::floor(n); 23376: num += static_cast(intpart); 23376: n -= intpart; 23376: if (n == 0.0L) { 23376: break; 23376: } 23376: num <<= bits; 23376: } 23376: if (exp < 0) { 23376: den <<= -exp; 23376: } 23376: else { 23376: num <<= exp; 23376: } 23376: if (neg) { 23376: to = -to; 23376: } 23376: to.canonicalize(); 23376: } 23376: 23376: template 23376: inline Result 23376: output_float(std::ostream& os, const Type from, const Numeric_Format&, 23376: Rounding_Dir) { 23376: if (from == 0) { 23376: os << "0"; 23376: } 23376: else if (is_minf(from)) { 23376: os << "-inf"; 23376: } 23376: else if (is_pinf(from)) { 23376: os << "+inf"; 23376: } 23376: else if (is_nan(from)) { 23376: os << "nan"; 23376: } 23376: else { 23376: mpq_class q; 23376: assign_mpq_numeric_float(q, from); 23376: std::string s = float_mpq_to_string(q); 23376: os << s; 23376: } 23376: return V_EQ; 23376: } 23376: # 1307 "../../src/checked_float_inlines.hh" 23376: } 23376: 23376: } 23376: # 703 "../../src/checked_defs.hh" 2 23376: # 1 "../../src/checked_mpz_inlines.hh" 1 23376: # 27 "../../src/checked_mpz_inlines.hh" 23376: # 1 "/usr/include/c++/8/sstream" 1 3 23376: # 36 "/usr/include/c++/8/sstream" 3 23376: 23376: # 37 "/usr/include/c++/8/sstream" 3 23376: 23376: 23376: 23376: 23376: 23376: # 41 "/usr/include/c++/8/sstream" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: namespace __cxx11 { 23376: # 64 "/usr/include/c++/8/sstream" 3 23376: template 23376: class basic_stringbuf : public basic_streambuf<_CharT, _Traits> 23376: { 23376: struct __xfer_bufptrs; 23376: public: 23376: 23376: typedef _CharT char_type; 23376: typedef _Traits traits_type; 23376: 23376: 23376: typedef _Alloc allocator_type; 23376: typedef typename traits_type::int_type int_type; 23376: typedef typename traits_type::pos_type pos_type; 23376: typedef typename traits_type::off_type off_type; 23376: 23376: typedef basic_streambuf __streambuf_type; 23376: typedef basic_string __string_type; 23376: typedef typename __string_type::size_type __size_type; 23376: 23376: protected: 23376: 23376: ios_base::openmode _M_mode; 23376: 23376: 23376: __string_type _M_string; 23376: 23376: public: 23376: # 99 "/usr/include/c++/8/sstream" 3 23376: explicit 23376: basic_stringbuf(ios_base::openmode __mode = ios_base::in | ios_base::out) 23376: : __streambuf_type(), _M_mode(__mode), _M_string() 23376: { } 23376: # 112 "/usr/include/c++/8/sstream" 3 23376: explicit 23376: basic_stringbuf(const __string_type& __str, 23376: ios_base::openmode __mode = ios_base::in | ios_base::out) 23376: : __streambuf_type(), _M_mode(), 23376: _M_string(__str.data(), __str.size(), __str.get_allocator()) 23376: { _M_stringbuf_init(__mode); } 23376: 23376: 23376: basic_stringbuf(const basic_stringbuf&) = delete; 23376: 23376: basic_stringbuf(basic_stringbuf&& __rhs) 23376: : basic_stringbuf(std::move(__rhs), __xfer_bufptrs(__rhs, this)) 23376: { __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); } 23376: 23376: 23376: 23376: basic_stringbuf& 23376: operator=(const basic_stringbuf&) = delete; 23376: 23376: basic_stringbuf& 23376: operator=(basic_stringbuf&& __rhs) 23376: { 23376: __xfer_bufptrs __st{__rhs, this}; 23376: const __streambuf_type& __base = __rhs; 23376: __streambuf_type::operator=(__base); 23376: this->pubimbue(__rhs.getloc()); 23376: _M_mode = __rhs._M_mode; 23376: _M_string = std::move(__rhs._M_string); 23376: __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(basic_stringbuf& __rhs) 23376: { 23376: __xfer_bufptrs __l_st{*this, std::__addressof(__rhs)}; 23376: __xfer_bufptrs __r_st{__rhs, this}; 23376: __streambuf_type& __base = __rhs; 23376: __streambuf_type::swap(__base); 23376: __rhs.pubimbue(this->pubimbue(__rhs.getloc())); 23376: std::swap(_M_mode, __rhs._M_mode); 23376: std::swap(_M_string, __rhs._M_string); 23376: } 23376: # 166 "/usr/include/c++/8/sstream" 3 23376: __string_type 23376: str() const 23376: { 23376: __string_type __ret(_M_string.get_allocator()); 23376: if (this->pptr()) 23376: { 23376: 23376: if (this->pptr() > this->egptr()) 23376: __ret.assign(this->pbase(), this->pptr()); 23376: else 23376: __ret.assign(this->pbase(), this->egptr()); 23376: } 23376: else 23376: __ret = _M_string; 23376: return __ret; 23376: } 23376: # 190 "/usr/include/c++/8/sstream" 3 23376: void 23376: str(const __string_type& __s) 23376: { 23376: 23376: 23376: _M_string.assign(__s.data(), __s.size()); 23376: _M_stringbuf_init(_M_mode); 23376: } 23376: 23376: protected: 23376: 23376: void 23376: _M_stringbuf_init(ios_base::openmode __mode) 23376: { 23376: _M_mode = __mode; 23376: __size_type __len = 0; 23376: if (_M_mode & (ios_base::ate | ios_base::app)) 23376: __len = _M_string.size(); 23376: _M_sync(const_cast(_M_string.data()), 0, __len); 23376: } 23376: 23376: virtual streamsize 23376: showmanyc() 23376: { 23376: streamsize __ret = -1; 23376: if (_M_mode & ios_base::in) 23376: { 23376: _M_update_egptr(); 23376: __ret = this->egptr() - this->gptr(); 23376: } 23376: return __ret; 23376: } 23376: 23376: virtual int_type 23376: underflow(); 23376: 23376: virtual int_type 23376: pbackfail(int_type __c = traits_type::eof()); 23376: 23376: virtual int_type 23376: overflow(int_type __c = traits_type::eof()); 23376: # 243 "/usr/include/c++/8/sstream" 3 23376: virtual __streambuf_type* 23376: setbuf(char_type* __s, streamsize __n) 23376: { 23376: if (__s && __n >= 0) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: _M_string.clear(); 23376: 23376: 23376: _M_sync(__s, __n, 0); 23376: } 23376: return this; 23376: } 23376: 23376: virtual pos_type 23376: seekoff(off_type __off, ios_base::seekdir __way, 23376: ios_base::openmode __mode = ios_base::in | ios_base::out); 23376: 23376: virtual pos_type 23376: seekpos(pos_type __sp, 23376: ios_base::openmode __mode = ios_base::in | ios_base::out); 23376: 23376: 23376: 23376: 23376: void 23376: _M_sync(char_type* __base, __size_type __i, __size_type __o); 23376: 23376: 23376: 23376: void 23376: _M_update_egptr() 23376: { 23376: const bool __testin = _M_mode & ios_base::in; 23376: if (this->pptr() && this->pptr() > this->egptr()) 23376: { 23376: if (__testin) 23376: this->setg(this->eback(), this->gptr(), this->pptr()); 23376: else 23376: this->setg(this->pptr(), this->pptr(), this->pptr()); 23376: } 23376: } 23376: 23376: 23376: 23376: void 23376: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off); 23376: 23376: private: 23376: 23376: 23376: 23376: 23376: struct __xfer_bufptrs 23376: { 23376: __xfer_bufptrs(const basic_stringbuf& __from, basic_stringbuf* __to) 23376: : _M_to{__to}, _M_goff{-1, -1, -1}, _M_poff{-1, -1, -1} 23376: { 23376: const _CharT* const __str = __from._M_string.data(); 23376: const _CharT* __end = nullptr; 23376: if (__from.eback()) 23376: { 23376: _M_goff[0] = __from.eback() - __str; 23376: _M_goff[1] = __from.gptr() - __str; 23376: _M_goff[2] = __from.egptr() - __str; 23376: __end = __from.egptr(); 23376: } 23376: if (__from.pbase()) 23376: { 23376: _M_poff[0] = __from.pbase() - __str; 23376: _M_poff[1] = __from.pptr() - __from.pbase(); 23376: _M_poff[2] = __from.epptr() - __str; 23376: if (__from.pptr() > __end) 23376: __end = __from.pptr(); 23376: } 23376: 23376: 23376: if (__end) 23376: { 23376: 23376: 23376: auto& __mut_from = const_cast(__from); 23376: __mut_from._M_string._M_length(__end - __str); 23376: } 23376: } 23376: 23376: ~__xfer_bufptrs() 23376: { 23376: char_type* __str = const_cast(_M_to->_M_string.data()); 23376: if (_M_goff[0] != -1) 23376: _M_to->setg(__str+_M_goff[0], __str+_M_goff[1], __str+_M_goff[2]); 23376: if (_M_poff[0] != -1) 23376: _M_to->_M_pbump(__str+_M_poff[0], __str+_M_poff[2], _M_poff[1]); 23376: } 23376: 23376: basic_stringbuf* _M_to; 23376: off_type _M_goff[3]; 23376: off_type _M_poff[3]; 23376: }; 23376: # 357 "/usr/include/c++/8/sstream" 3 23376: basic_stringbuf(basic_stringbuf&& __rhs, __xfer_bufptrs&&) 23376: : __streambuf_type(static_cast(__rhs)), 23376: _M_mode(__rhs._M_mode), _M_string(std::move(__rhs._M_string)) 23376: { } 23376: 23376: }; 23376: # 380 "/usr/include/c++/8/sstream" 3 23376: template 23376: class basic_istringstream : public basic_istream<_CharT, _Traits> 23376: { 23376: public: 23376: 23376: typedef _CharT char_type; 23376: typedef _Traits traits_type; 23376: 23376: 23376: typedef _Alloc allocator_type; 23376: typedef typename traits_type::int_type int_type; 23376: typedef typename traits_type::pos_type pos_type; 23376: typedef typename traits_type::off_type off_type; 23376: 23376: 23376: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 23376: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 23376: typedef basic_istream __istream_type; 23376: 23376: private: 23376: __stringbuf_type _M_stringbuf; 23376: 23376: public: 23376: # 416 "/usr/include/c++/8/sstream" 3 23376: explicit 23376: basic_istringstream(ios_base::openmode __mode = ios_base::in) 23376: : __istream_type(), _M_stringbuf(__mode | ios_base::in) 23376: { this->init(&_M_stringbuf); } 23376: # 434 "/usr/include/c++/8/sstream" 3 23376: explicit 23376: basic_istringstream(const __string_type& __str, 23376: ios_base::openmode __mode = ios_base::in) 23376: : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in) 23376: { this->init(&_M_stringbuf); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ~basic_istringstream() 23376: { } 23376: 23376: 23376: basic_istringstream(const basic_istringstream&) = delete; 23376: 23376: basic_istringstream(basic_istringstream&& __rhs) 23376: : __istream_type(std::move(__rhs)), 23376: _M_stringbuf(std::move(__rhs._M_stringbuf)) 23376: { __istream_type::set_rdbuf(&_M_stringbuf); } 23376: 23376: 23376: 23376: basic_istringstream& 23376: operator=(const basic_istringstream&) = delete; 23376: 23376: basic_istringstream& 23376: operator=(basic_istringstream&& __rhs) 23376: { 23376: __istream_type::operator=(std::move(__rhs)); 23376: _M_stringbuf = std::move(__rhs._M_stringbuf); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(basic_istringstream& __rhs) 23376: { 23376: __istream_type::swap(__rhs); 23376: _M_stringbuf.swap(__rhs._M_stringbuf); 23376: } 23376: # 485 "/usr/include/c++/8/sstream" 3 23376: __stringbuf_type* 23376: rdbuf() const 23376: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 23376: 23376: 23376: 23376: 23376: 23376: __string_type 23376: str() const 23376: { return _M_stringbuf.str(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: str(const __string_type& __s) 23376: { _M_stringbuf.str(__s); } 23376: }; 23376: # 524 "/usr/include/c++/8/sstream" 3 23376: template 23376: class basic_ostringstream : public basic_ostream<_CharT, _Traits> 23376: { 23376: public: 23376: 23376: typedef _CharT char_type; 23376: typedef _Traits traits_type; 23376: 23376: 23376: typedef _Alloc allocator_type; 23376: typedef typename traits_type::int_type int_type; 23376: typedef typename traits_type::pos_type pos_type; 23376: typedef typename traits_type::off_type off_type; 23376: 23376: 23376: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 23376: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 23376: typedef basic_ostream __ostream_type; 23376: 23376: private: 23376: __stringbuf_type _M_stringbuf; 23376: 23376: public: 23376: # 560 "/usr/include/c++/8/sstream" 3 23376: explicit 23376: basic_ostringstream(ios_base::openmode __mode = ios_base::out) 23376: : __ostream_type(), _M_stringbuf(__mode | ios_base::out) 23376: { this->init(&_M_stringbuf); } 23376: # 578 "/usr/include/c++/8/sstream" 3 23376: explicit 23376: basic_ostringstream(const __string_type& __str, 23376: ios_base::openmode __mode = ios_base::out) 23376: : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out) 23376: { this->init(&_M_stringbuf); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ~basic_ostringstream() 23376: { } 23376: 23376: 23376: basic_ostringstream(const basic_ostringstream&) = delete; 23376: 23376: basic_ostringstream(basic_ostringstream&& __rhs) 23376: : __ostream_type(std::move(__rhs)), 23376: _M_stringbuf(std::move(__rhs._M_stringbuf)) 23376: { __ostream_type::set_rdbuf(&_M_stringbuf); } 23376: 23376: 23376: 23376: basic_ostringstream& 23376: operator=(const basic_ostringstream&) = delete; 23376: 23376: basic_ostringstream& 23376: operator=(basic_ostringstream&& __rhs) 23376: { 23376: __ostream_type::operator=(std::move(__rhs)); 23376: _M_stringbuf = std::move(__rhs._M_stringbuf); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(basic_ostringstream& __rhs) 23376: { 23376: __ostream_type::swap(__rhs); 23376: _M_stringbuf.swap(__rhs._M_stringbuf); 23376: } 23376: # 629 "/usr/include/c++/8/sstream" 3 23376: __stringbuf_type* 23376: rdbuf() const 23376: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 23376: 23376: 23376: 23376: 23376: 23376: __string_type 23376: str() const 23376: { return _M_stringbuf.str(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: str(const __string_type& __s) 23376: { _M_stringbuf.str(__s); } 23376: }; 23376: # 668 "/usr/include/c++/8/sstream" 3 23376: template 23376: class basic_stringstream : public basic_iostream<_CharT, _Traits> 23376: { 23376: public: 23376: 23376: typedef _CharT char_type; 23376: typedef _Traits traits_type; 23376: 23376: 23376: typedef _Alloc allocator_type; 23376: typedef typename traits_type::int_type int_type; 23376: typedef typename traits_type::pos_type pos_type; 23376: typedef typename traits_type::off_type off_type; 23376: 23376: 23376: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 23376: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 23376: typedef basic_iostream __iostream_type; 23376: 23376: private: 23376: __stringbuf_type _M_stringbuf; 23376: 23376: public: 23376: # 703 "/usr/include/c++/8/sstream" 3 23376: explicit 23376: basic_stringstream(ios_base::openmode __m = ios_base::out | ios_base::in) 23376: : __iostream_type(), _M_stringbuf(__m) 23376: { this->init(&_M_stringbuf); } 23376: # 719 "/usr/include/c++/8/sstream" 3 23376: explicit 23376: basic_stringstream(const __string_type& __str, 23376: ios_base::openmode __m = ios_base::out | ios_base::in) 23376: : __iostream_type(), _M_stringbuf(__str, __m) 23376: { this->init(&_M_stringbuf); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ~basic_stringstream() 23376: { } 23376: 23376: 23376: basic_stringstream(const basic_stringstream&) = delete; 23376: 23376: basic_stringstream(basic_stringstream&& __rhs) 23376: : __iostream_type(std::move(__rhs)), 23376: _M_stringbuf(std::move(__rhs._M_stringbuf)) 23376: { __iostream_type::set_rdbuf(&_M_stringbuf); } 23376: 23376: 23376: 23376: basic_stringstream& 23376: operator=(const basic_stringstream&) = delete; 23376: 23376: basic_stringstream& 23376: operator=(basic_stringstream&& __rhs) 23376: { 23376: __iostream_type::operator=(std::move(__rhs)); 23376: _M_stringbuf = std::move(__rhs._M_stringbuf); 23376: return *this; 23376: } 23376: 23376: void 23376: swap(basic_stringstream& __rhs) 23376: { 23376: __iostream_type::swap(__rhs); 23376: _M_stringbuf.swap(__rhs._M_stringbuf); 23376: } 23376: # 770 "/usr/include/c++/8/sstream" 3 23376: __stringbuf_type* 23376: rdbuf() const 23376: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 23376: 23376: 23376: 23376: 23376: 23376: __string_type 23376: str() const 23376: { return _M_stringbuf.str(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: str(const __string_type& __s) 23376: { _M_stringbuf.str(__s); } 23376: }; 23376: 23376: 23376: 23376: template 23376: inline void 23376: swap(basic_stringbuf<_CharT, _Traits, _Allocator>& __x, 23376: basic_stringbuf<_CharT, _Traits, _Allocator>& __y) 23376: { __x.swap(__y); } 23376: 23376: 23376: template 23376: inline void 23376: swap(basic_istringstream<_CharT, _Traits, _Allocator>& __x, 23376: basic_istringstream<_CharT, _Traits, _Allocator>& __y) 23376: { __x.swap(__y); } 23376: 23376: 23376: template 23376: inline void 23376: swap(basic_ostringstream<_CharT, _Traits, _Allocator>& __x, 23376: basic_ostringstream<_CharT, _Traits, _Allocator>& __y) 23376: { __x.swap(__y); } 23376: 23376: 23376: template 23376: inline void 23376: swap(basic_stringstream<_CharT, _Traits, _Allocator>& __x, 23376: basic_stringstream<_CharT, _Traits, _Allocator>& __y) 23376: { __x.swap(__y); } 23376: 23376: 23376: } 23376: 23376: } 23376: 23376: # 1 "/usr/include/c++/8/bits/sstream.tcc" 1 3 23376: # 37 "/usr/include/c++/8/bits/sstream.tcc" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/sstream.tcc" 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 23376: basic_stringbuf<_CharT, _Traits, _Alloc>:: 23376: pbackfail(int_type __c) 23376: { 23376: int_type __ret = traits_type::eof(); 23376: if (this->eback() < this->gptr()) 23376: { 23376: 23376: 23376: const bool __testeof = traits_type::eq_int_type(__c, __ret); 23376: if (!__testeof) 23376: { 23376: const bool __testeq = traits_type::eq(traits_type:: 23376: to_char_type(__c), 23376: this->gptr()[-1]); 23376: const bool __testout = this->_M_mode & ios_base::out; 23376: if (__testeq || __testout) 23376: { 23376: this->gbump(-1); 23376: if (!__testeq) 23376: *this->gptr() = traits_type::to_char_type(__c); 23376: __ret = __c; 23376: } 23376: } 23376: else 23376: { 23376: this->gbump(-1); 23376: __ret = traits_type::not_eof(__c); 23376: } 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 23376: basic_stringbuf<_CharT, _Traits, _Alloc>:: 23376: overflow(int_type __c) 23376: { 23376: const bool __testout = this->_M_mode & ios_base::out; 23376: if (__builtin_expect(!__testout, false)) 23376: return traits_type::eof(); 23376: 23376: const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof()); 23376: if (__builtin_expect(__testeof, false)) 23376: return traits_type::not_eof(__c); 23376: 23376: const __size_type __capacity = _M_string.capacity(); 23376: 23376: 23376: if ((this->epptr() - this->pbase()) < __capacity) 23376: { 23376: 23376: char_type* __base = const_cast(_M_string.data()); 23376: _M_pbump(__base, __base + __capacity, this->pptr() - this->pbase()); 23376: if (_M_mode & ios_base::in) 23376: { 23376: const __size_type __nget = this->gptr() - this->eback(); 23376: const __size_type __eget = this->egptr() - this->eback(); 23376: this->setg(__base, __base + __nget, __base + __eget + 1); 23376: } 23376: *this->pptr() = traits_type::to_char_type(__c); 23376: this->pbump(1); 23376: return __c; 23376: } 23376: 23376: 23376: const __size_type __max_size = _M_string.max_size(); 23376: const bool __testput = this->pptr() < this->epptr(); 23376: if (__builtin_expect(!__testput && __capacity == __max_size, false)) 23376: return traits_type::eof(); 23376: 23376: 23376: 23376: const char_type __conv = traits_type::to_char_type(__c); 23376: if (!__testput) 23376: { 23376: # 129 "/usr/include/c++/8/bits/sstream.tcc" 3 23376: const __size_type __opt_len = std::max(__size_type(2 * __capacity), 23376: __size_type(512)); 23376: const __size_type __len = std::min(__opt_len, __max_size); 23376: __string_type __tmp(_M_string.get_allocator()); 23376: __tmp.reserve(__len); 23376: if (this->pbase()) 23376: __tmp.assign(this->pbase(), this->epptr() - this->pbase()); 23376: __tmp.push_back(__conv); 23376: _M_string.swap(__tmp); 23376: _M_sync(const_cast(_M_string.data()), 23376: this->gptr() - this->eback(), this->pptr() - this->pbase()); 23376: } 23376: else 23376: *this->pptr() = __conv; 23376: this->pbump(1); 23376: return __c; 23376: } 23376: 23376: template 23376: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 23376: basic_stringbuf<_CharT, _Traits, _Alloc>:: 23376: underflow() 23376: { 23376: int_type __ret = traits_type::eof(); 23376: const bool __testin = this->_M_mode & ios_base::in; 23376: if (__testin) 23376: { 23376: 23376: _M_update_egptr(); 23376: 23376: if (this->gptr() < this->egptr()) 23376: __ret = traits_type::to_int_type(*this->gptr()); 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 23376: basic_stringbuf<_CharT, _Traits, _Alloc>:: 23376: seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode) 23376: { 23376: pos_type __ret = pos_type(off_type(-1)); 23376: bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 23376: bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 23376: const bool __testboth = __testin && __testout && __way != ios_base::cur; 23376: __testin &= !(__mode & ios_base::out); 23376: __testout &= !(__mode & ios_base::in); 23376: 23376: 23376: 23376: const char_type* __beg = __testin ? this->eback() : this->pbase(); 23376: if ((__beg || !__off) && (__testin || __testout || __testboth)) 23376: { 23376: _M_update_egptr(); 23376: 23376: off_type __newoffi = __off; 23376: off_type __newoffo = __newoffi; 23376: if (__way == ios_base::cur) 23376: { 23376: __newoffi += this->gptr() - __beg; 23376: __newoffo += this->pptr() - __beg; 23376: } 23376: else if (__way == ios_base::end) 23376: __newoffo = __newoffi += this->egptr() - __beg; 23376: 23376: if ((__testin || __testboth) 23376: && __newoffi >= 0 23376: && this->egptr() - __beg >= __newoffi) 23376: { 23376: this->setg(this->eback(), this->eback() + __newoffi, 23376: this->egptr()); 23376: __ret = pos_type(__newoffi); 23376: } 23376: if ((__testout || __testboth) 23376: && __newoffo >= 0 23376: && this->egptr() - __beg >= __newoffo) 23376: { 23376: _M_pbump(this->pbase(), this->epptr(), __newoffo); 23376: __ret = pos_type(__newoffo); 23376: } 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 23376: basic_stringbuf<_CharT, _Traits, _Alloc>:: 23376: seekpos(pos_type __sp, ios_base::openmode __mode) 23376: { 23376: pos_type __ret = pos_type(off_type(-1)); 23376: const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 23376: const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 23376: 23376: const char_type* __beg = __testin ? this->eback() : this->pbase(); 23376: if ((__beg || !off_type(__sp)) && (__testin || __testout)) 23376: { 23376: _M_update_egptr(); 23376: 23376: const off_type __pos(__sp); 23376: const bool __testpos = (0 <= __pos 23376: && __pos <= this->egptr() - __beg); 23376: if (__testpos) 23376: { 23376: if (__testin) 23376: this->setg(this->eback(), this->eback() + __pos, 23376: this->egptr()); 23376: if (__testout) 23376: _M_pbump(this->pbase(), this->epptr(), __pos); 23376: __ret = __sp; 23376: } 23376: } 23376: return __ret; 23376: } 23376: 23376: template 23376: void 23376: basic_stringbuf<_CharT, _Traits, _Alloc>:: 23376: _M_sync(char_type* __base, __size_type __i, __size_type __o) 23376: { 23376: const bool __testin = _M_mode & ios_base::in; 23376: const bool __testout = _M_mode & ios_base::out; 23376: char_type* __endg = __base + _M_string.size(); 23376: char_type* __endp = __base + _M_string.capacity(); 23376: 23376: if (__base != _M_string.data()) 23376: { 23376: 23376: __endg += __i; 23376: __i = 0; 23376: __endp = __endg; 23376: } 23376: 23376: if (__testin) 23376: this->setg(__base, __base + __i, __endg); 23376: if (__testout) 23376: { 23376: _M_pbump(__base, __endp, __o); 23376: 23376: 23376: 23376: if (!__testin) 23376: this->setg(__endg, __endg, __endg); 23376: } 23376: } 23376: 23376: template 23376: void 23376: basic_stringbuf<_CharT, _Traits, _Alloc>:: 23376: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off) 23376: { 23376: this->setp(__pbeg, __pend); 23376: while (__off > __gnu_cxx::__numeric_traits::__max) 23376: { 23376: this->pbump(__gnu_cxx::__numeric_traits::__max); 23376: __off -= __gnu_cxx::__numeric_traits::__max; 23376: } 23376: this->pbump(__off); 23376: } 23376: 23376: 23376: 23376: 23376: extern template class basic_stringbuf; 23376: extern template class basic_istringstream; 23376: extern template class basic_ostringstream; 23376: extern template class basic_stringstream; 23376: 23376: 23376: extern template class basic_stringbuf; 23376: extern template class basic_istringstream; 23376: extern template class basic_ostringstream; 23376: extern template class basic_stringstream; 23376: 23376: 23376: 23376: 23376: } 23376: # 828 "/usr/include/c++/8/sstream" 2 3 23376: # 28 "../../src/checked_mpz_inlines.hh" 2 23376: 23376: 23376: # 29 "../../src/checked_mpz_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Checked { 23376: 23376: template 23376: inline Result 23376: round_lt_mpz(mpz_class& to, Rounding_Dir dir) { 23376: if (round_down(dir)) { 23376: --to; 23376: return V_GT; 23376: } 23376: return V_LT; 23376: } 23376: 23376: template 23376: inline Result 23376: round_gt_mpz(mpz_class& to, Rounding_Dir dir) { 23376: if (round_up(dir)) { 23376: ++to; 23376: return V_LT; 23376: } 23376: return V_GT; 23376: } 23376: 23376: 23376: 23376: typedef decltype(__mpz_struct()._mp_size) mp_size_field_t; 23376: # 64 "../../src/checked_mpz_inlines.hh" 23376: inline mp_size_field_t 23376: get_mp_size(const mpz_class &v) { 23376: return v.get_mpz_t()->_mp_size; 23376: } 23376: 23376: inline void 23376: set_mp_size(mpz_class &v, mp_size_field_t size) { 23376: v.get_mpz_t()->_mp_size = size; 23376: } 23376: 23376: template 23376: inline Result 23376: classify_mpz(const mpz_class& v, bool nan, bool inf, bool sign) { 23376: if (Policy::has_nan || Policy::has_infinity) { 23376: mp_size_field_t s = get_mp_size(v); 23376: if (Policy::has_nan 23376: && (nan || sign) 23376: && s == C_Integer::min + 1) { 23376: return V_NAN; 23376: } 23376: if (!inf && !sign) { 23376: return V_LGE; 23376: } 23376: if (Policy::has_infinity) { 23376: if (s == C_Integer::min) { 23376: return inf ? V_EQ_MINUS_INFINITY : V_LT; 23376: } 23376: if (s == C_Integer::max) { 23376: return inf ? V_EQ_PLUS_INFINITY : V_GT; 23376: } 23376: } 23376: } 23376: if (sign) { 23376: return static_cast(sgn(v)); 23376: } 23376: return V_LGE; 23376: } 23376: 23376: template struct classify_function_struct { static inline Result function(const mpz_class& arg, bool a1, bool a2, bool a3) { return classify_mpz(arg, a1, a2, a3); } }; 23376: 23376: template 23376: inline bool 23376: is_nan_mpz(const mpz_class& v) { 23376: return Policy::has_nan 23376: && get_mp_size(v) == C_Integer::min + 1; 23376: } 23376: 23376: template struct is_nan_function_struct { static inline bool function(const mpz_class& arg) { return is_nan_mpz(arg); } }; 23376: 23376: template 23376: inline bool 23376: is_minf_mpz(const mpz_class& v) { 23376: return Policy::has_infinity 23376: && get_mp_size(v) == C_Integer::min; 23376: } 23376: 23376: template struct is_minf_function_struct { static inline bool function(const mpz_class& arg) { return is_minf_mpz(arg); } }; 23376: 23376: template 23376: inline bool 23376: is_pinf_mpz(const mpz_class& v) { 23376: return Policy::has_infinity 23376: && get_mp_size(v) == C_Integer::max; 23376: } 23376: 23376: template struct is_pinf_function_struct { static inline bool function(const mpz_class& arg) { return is_pinf_mpz(arg); } }; 23376: 23376: template 23376: inline bool 23376: is_int_mpz(const mpz_class& v) { 23376: return !is_nan(v); 23376: } 23376: 23376: template struct is_int_function_struct { static inline bool function(const mpz_class& arg) { return is_int_mpz(arg); } }; 23376: 23376: template 23376: inline Result 23376: assign_special_mpz(mpz_class& v, Result_Class c, Rounding_Dir) { 23376: switch (c) { 23376: case VC_NAN: 23376: if (Policy::has_nan) { 23376: set_mp_size(v, C_Integer::min + 1); 23376: } 23376: return V_NAN; 23376: case VC_MINUS_INFINITY: 23376: if (Policy::has_infinity) { 23376: set_mp_size(v, C_Integer::min); 23376: return V_EQ_MINUS_INFINITY; 23376: } 23376: return V_EQ_MINUS_INFINITY | V_UNREPRESENTABLE; 23376: case VC_PLUS_INFINITY: 23376: if (Policy::has_infinity) { 23376: set_mp_size(v, C_Integer::max); 23376: return V_EQ_PLUS_INFINITY; 23376: } 23376: return V_EQ_PLUS_INFINITY | V_UNREPRESENTABLE; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_NAN; 23376: } 23376: } 23376: 23376: template struct assign_special_function_struct { static inline Result function( mpz_class& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_mpz(arg, a1, a2); } }; 23376: 23376: template 23376: inline void 23376: copy_mpz(mpz_class& to, const mpz_class& from) { 23376: if (is_nan_mpz(from)) { 23376: ((void) 0); 23376: } 23376: else if (is_minf_mpz(from) || is_pinf_mpz(from)) { 23376: ((void) 0); 23376: } 23376: else { 23376: to = from; 23376: return; 23376: } 23376: set_mp_size(to, get_mp_size(from)); 23376: } 23376: 23376: template struct copy_function_struct { static inline void function( mpz_class& arg1, const mpz_class &arg2) { return copy_mpz(arg1, arg2); } }; 23376: 23376: template 23376: inline Result 23376: construct_mpz_base(mpz_class& to, const From from, Rounding_Dir) { 23376: new(&to) mpz_class(from); 23376: return V_EQ; 23376: } 23376: 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const char &arg2, Rounding_Dir a1) { return construct_mpz_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const signed char &arg2, Rounding_Dir a1) { return construct_mpz_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const signed short &arg2, Rounding_Dir a1) { return construct_mpz_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const signed int &arg2, Rounding_Dir a1) { return construct_mpz_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const signed long &arg2, Rounding_Dir a1) { return construct_mpz_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const unsigned char &arg2, Rounding_Dir a1) { return construct_mpz_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const unsigned short &arg2, Rounding_Dir a1) { return construct_mpz_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const unsigned int &arg2, Rounding_Dir a1) { return construct_mpz_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const unsigned long &arg2, Rounding_Dir a1) { return construct_mpz_base(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: construct_mpz_float(mpz_class& to, const From& from, Rounding_Dir dir) { 23376: if (is_nan(from)) { 23376: return construct_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(from)) { 23376: return construct_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(from)) { 23376: return construct_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: if (round_not_requested(dir)) { 23376: new(&to) mpz_class(from); 23376: return V_LGE; 23376: } 23376: From n = rint(from); 23376: new(&to) mpz_class(n); 23376: if (from == n) { 23376: return V_EQ; 23376: } 23376: if (from < 0) { 23376: return round_lt_mpz(to, dir); 23376: } 23376: else { 23376: return round_gt_mpz(to, dir); 23376: } 23376: } 23376: 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const float &arg2, Rounding_Dir a1) { return construct_mpz_float(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpz_class& arg1, const double &arg2, Rounding_Dir a1) { return construct_mpz_float(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const char &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_mpz_signed_int(mpz_class& to, const From from, Rounding_Dir) { 23376: if (sizeof(From) <= sizeof(signed long)) { 23376: to = static_cast(from); 23376: } 23376: else { 23376: mpz_ptr m = to.get_mpz_t(); 23376: if (from >= 0) { 23376: 23376: # 255 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_import 23376: # 255 "../../src/checked_mpz_inlines.hh" 23376: (m, 1, 1, sizeof(From), 0, 0, &from); 23376: } 23376: else { 23376: From n = -from; 23376: 23376: # 259 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_import 23376: # 259 "../../src/checked_mpz_inlines.hh" 23376: (m, 1, 1, sizeof(From), 0, 0, &n); 23376: 23376: # 260 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_neg 23376: # 260 "../../src/checked_mpz_inlines.hh" 23376: (m, m); 23376: } 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_mpz_signed_int(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_mpz_unsigned_int(mpz_class& to, const From from, Rounding_Dir) { 23376: if (sizeof(From) <= sizeof(unsigned long)) { 23376: to = static_cast(from); 23376: } 23376: else { 23376: 23376: # 275 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_import 23376: # 275 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), 1, 1, sizeof(From), 0, 0, &from); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_mpz_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_mpz_float(mpz_class& to, const From from, Rounding_Dir dir) { 23376: if (is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(from)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(from)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: if (round_not_requested(dir)) { 23376: to = from; 23376: return V_LGE; 23376: } 23376: From i_from = rint(from); 23376: to = i_from; 23376: if (from == i_from) { 23376: return V_EQ; 23376: } 23376: if (round_direct(ROUND_UP)) { 23376: return round_lt_mpz(to, dir); 23376: } 23376: if (round_direct(ROUND_DOWN)) { 23376: return round_gt_mpz(to, dir); 23376: } 23376: if (from < i_from) { 23376: return round_lt_mpz(to, dir); 23376: } 23376: if (from > i_from) { 23376: return round_gt_mpz(to, dir); 23376: } 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_NAN; 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const float &arg2, Rounding_Dir a1) { return assign_mpz_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const double &arg2, Rounding_Dir a1) { return assign_mpz_float(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_mpz_long_double(mpz_class& to, const From& from, Rounding_Dir dir) { 23376: if (is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(from)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(from)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: 23376: std::stringstream ss; 23376: output(ss, from, Numeric_Format(), dir); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; mpq_class& tmp = holder_tmp.item(); 23376: 23376: 23376: 23376: input_mpq(tmp, ss); 23376: ((void) 0); 23376: return assign(to, tmp, dir); 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const long double &arg2, Rounding_Dir a1) { return assign_mpz_long_double(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_mpz_mpq(mpz_class& to, const mpq_class& from, Rounding_Dir dir) { 23376: if (round_not_needed(dir)) { 23376: to = from.get_num(); 23376: return V_LGE; 23376: } 23376: if (round_ignore(dir)) { 23376: to = from; 23376: return V_LGE; 23376: } 23376: const mpz_srcptr n = from.get_num().get_mpz_t(); 23376: const mpz_srcptr d = from.get_den().get_mpz_t(); 23376: if (round_down(dir)) { 23376: 23376: # 362 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_fdiv_q 23376: # 362 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), n, d); 23376: if (round_strict_relation(dir)) { 23376: return ( 23376: # 364 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_divisible_p 23376: # 364 "../../src/checked_mpz_inlines.hh" 23376: (n, d) != 0) ? V_EQ : V_GT; 23376: } 23376: return V_GE; 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: # 370 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_cdiv_q 23376: # 370 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), n, d); 23376: if (round_strict_relation(dir)) { 23376: return ( 23376: # 372 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_divisible_p 23376: # 372 "../../src/checked_mpz_inlines.hh" 23376: (n, d) != 0) ? V_EQ : V_LT; 23376: } 23376: return V_LE; 23376: } 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( mpz_class& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_mpz_mpq(arg1, arg2, a1); } }; 23376: 23376: template struct floor_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct ceil_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct trunc_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: neg_mpz(mpz_class& to, const mpz_class& from, Rounding_Dir) { 23376: 23376: # 387 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_neg 23376: # 387 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), from.get_mpz_t()); 23376: return V_EQ; 23376: } 23376: 23376: template struct neg_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, Rounding_Dir a1) { return neg_mpz(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: add_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, Rounding_Dir) { 23376: to = x + y; 23376: return V_EQ; 23376: } 23376: 23376: template struct add_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return add_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: sub_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, Rounding_Dir) { 23376: to = x - y; 23376: return V_EQ; 23376: } 23376: 23376: template struct sub_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return sub_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: mul_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, Rounding_Dir) { 23376: to = x * y; 23376: return V_EQ; 23376: } 23376: 23376: template struct mul_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return mul_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: div_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, 23376: Rounding_Dir dir) { 23376: if (((To_Policy::check_div_zero) ? (::sgn(y) == 0) : ( 23376: # 424 "../../src/checked_mpz_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 424 "../../src/checked_mpz_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: const mpz_srcptr n = x.get_mpz_t(); 23376: const mpz_srcptr d = y.get_mpz_t(); 23376: if (round_not_needed(dir)) { 23376: 23376: # 430 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_divexact 23376: # 430 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), n, d); 23376: return V_LGE; 23376: } 23376: if (round_ignore(dir)) { 23376: 23376: # 434 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_cdiv_q 23376: # 434 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), n, d); 23376: return V_LE; 23376: } 23376: if (round_down(dir)) { 23376: 23376: # 438 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_fdiv_q 23376: # 438 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), n, d); 23376: if (round_strict_relation(dir)) { 23376: return ( 23376: # 440 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_divisible_p 23376: # 440 "../../src/checked_mpz_inlines.hh" 23376: (n, d) != 0) ? V_EQ : V_GT; 23376: } 23376: return V_GE; 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: # 446 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_cdiv_q 23376: # 446 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), n, d); 23376: if (round_strict_relation(dir)) { 23376: return ( 23376: # 448 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_divisible_p 23376: # 448 "../../src/checked_mpz_inlines.hh" 23376: (n, d) != 0) ? V_EQ : V_LT; 23376: } 23376: return V_LE; 23376: } 23376: } 23376: 23376: template struct div_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return div_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: idiv_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, 23376: Rounding_Dir) { 23376: if (((To_Policy::check_div_zero) ? (::sgn(y) == 0) : ( 23376: # 460 "../../src/checked_mpz_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 460 "../../src/checked_mpz_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: mpz_srcptr n = x.get_mpz_t(); 23376: mpz_srcptr d = y.get_mpz_t(); 23376: 23376: # 465 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_tdiv_q 23376: # 465 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), n, d); 23376: return V_EQ; 23376: } 23376: 23376: template struct idiv_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return idiv_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: rem_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, Rounding_Dir) { 23376: if (((To_Policy::check_div_zero) ? (::sgn(y) == 0) : ( 23376: # 474 "../../src/checked_mpz_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 474 "../../src/checked_mpz_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_MOD_ZERO); 23376: } 23376: to = x % y; 23376: return V_EQ; 23376: } 23376: 23376: template struct rem_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return rem_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: add_2exp_mpz(mpz_class& to, const mpz_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_v; mpz_class& v = holder_v.item(); 23376: v = 1; 23376: 23376: # 489 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 489 "../../src/checked_mpz_inlines.hh" 23376: (v.get_mpz_t(), v.get_mpz_t(), exp); 23376: to = x + v; 23376: return V_EQ; 23376: } 23376: 23376: template struct add_2exp_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_mpz(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: sub_2exp_mpz(mpz_class& to, const mpz_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_v; mpz_class& v = holder_v.item(); 23376: v = 1; 23376: 23376: # 502 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 502 "../../src/checked_mpz_inlines.hh" 23376: (v.get_mpz_t(), v.get_mpz_t(), exp); 23376: to = x - v; 23376: return V_EQ; 23376: } 23376: 23376: template struct sub_2exp_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_mpz(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: mul_2exp_mpz(mpz_class& to, const mpz_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: 23376: # 513 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 513 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), x.get_mpz_t(), exp); 23376: return V_EQ; 23376: } 23376: 23376: template struct mul_2exp_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_mpz(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: div_2exp_mpz(mpz_class& to, const mpz_class& x, unsigned int exp, 23376: Rounding_Dir dir) { 23376: const mpz_srcptr n = x.get_mpz_t(); 23376: if (round_not_requested(dir)) { 23376: 23376: # 525 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_tdiv_q_2exp 23376: # 525 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), x.get_mpz_t(), exp); 23376: return V_LGE; 23376: } 23376: if (round_down(dir)) { 23376: 23376: # 529 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_fdiv_q_2exp 23376: # 529 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), n, exp); 23376: if (round_strict_relation(dir)) { 23376: return ( 23376: # 531 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_divisible_2exp_p 23376: # 531 "../../src/checked_mpz_inlines.hh" 23376: (n, exp) != 0) ? V_EQ : V_GT; 23376: } 23376: return V_GE; 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: # 537 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_cdiv_q_2exp 23376: # 537 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), n, exp); 23376: if (round_strict_relation(dir)) { 23376: return ( 23376: # 539 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_divisible_2exp_p 23376: # 539 "../../src/checked_mpz_inlines.hh" 23376: (n, exp) != 0) ? V_EQ : V_LT; 23376: } 23376: return V_LE; 23376: } 23376: } 23376: 23376: template struct div_2exp_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_mpz(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: smod_2exp_mpz(mpz_class& to, const mpz_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: if ( 23376: # 551 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_tstbit 23376: # 551 "../../src/checked_mpz_inlines.hh" 23376: (x.get_mpz_t(), exp - 1) != 0) { 23376: 23376: # 552 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_cdiv_r_2exp 23376: # 552 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), x.get_mpz_t(), exp); 23376: } 23376: else { 23376: 23376: # 555 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_fdiv_r_2exp 23376: # 555 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), x.get_mpz_t(), exp); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template struct smod_2exp_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_mpz(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: umod_2exp_mpz(mpz_class& to, const mpz_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: 23376: # 566 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_fdiv_r_2exp 23376: # 566 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), x.get_mpz_t(), exp); 23376: return V_EQ; 23376: } 23376: 23376: template struct umod_2exp_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_mpz(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: abs_mpz(mpz_class& to, const mpz_class& from, Rounding_Dir) { 23376: to = abs(from); 23376: return V_EQ; 23376: } 23376: 23376: template struct abs_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, Rounding_Dir a1) { return abs_mpz(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: add_mul_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, 23376: Rounding_Dir) { 23376: 23376: # 585 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_addmul 23376: # 585 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), x.get_mpz_t(), y.get_mpz_t()); 23376: return V_EQ; 23376: } 23376: 23376: template struct add_mul_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return add_mul_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: sub_mul_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, 23376: Rounding_Dir) { 23376: 23376: # 595 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_submul 23376: # 595 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), x.get_mpz_t(), y.get_mpz_t()); 23376: return V_EQ; 23376: } 23376: 23376: template struct sub_mul_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return sub_mul_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: gcd_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, Rounding_Dir) { 23376: 23376: # 604 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_gcd 23376: # 604 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), x.get_mpz_t(), y.get_mpz_t()); 23376: return V_EQ; 23376: } 23376: 23376: template struct gcd_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return gcd_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: gcdext_mpz(mpz_class& to, mpz_class& s, mpz_class& t, 23376: const mpz_class& x, const mpz_class& y, 23376: Rounding_Dir) { 23376: 23376: # 615 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_gcdext 23376: # 615 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), s.get_mpz_t(), t.get_mpz_t(), 23376: x.get_mpz_t(), y.get_mpz_t()); 23376: return V_EQ; 23376: } 23376: 23376: template struct gcdext_function_struct { static inline Result function( mpz_class& arg1, mpz_class &arg2, mpz_class &arg3, const mpz_class &arg4, const mpz_class &arg5, Rounding_Dir a1) { return gcdext_mpz(arg1, arg2, arg3, arg4, arg5, a1); } }; 23376: 23376: template 23376: inline Result 23376: lcm_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y, Rounding_Dir) { 23376: 23376: # 625 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_lcm 23376: # 625 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), x.get_mpz_t(), y.get_mpz_t()); 23376: return V_EQ; 23376: } 23376: 23376: template struct lcm_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, const mpz_class &arg3, Rounding_Dir a1) { return lcm_mpz(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: sqrt_mpz(mpz_class& to, const mpz_class& from, Rounding_Dir dir) { 23376: if (((To_Policy::check_sqrt_neg) ? (from < 0) : ( 23376: # 634 "../../src/checked_mpz_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 634 "../../src/checked_mpz_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_SQRT_NEG); 23376: } 23376: if (round_not_requested(dir)) { 23376: to = sqrt(from); 23376: return V_GE; 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_r; mpz_class& r = holder_r.item(); 23376: 23376: # 642 "../../src/checked_mpz_inlines.hh" 3 4 23376: __gmpz_sqrtrem 23376: # 642 "../../src/checked_mpz_inlines.hh" 23376: (to.get_mpz_t(), r.get_mpz_t(), from.get_mpz_t()); 23376: if (r == 0) { 23376: return V_EQ; 23376: } 23376: return round_gt_mpz(to, dir); 23376: } 23376: 23376: template struct sqrt_function_struct { static inline Result function( mpz_class& arg1, const mpz_class &arg2, Rounding_Dir a1) { return sqrt_mpz(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result_Relation 23376: sgn_mp(const Type& x) { 23376: const int sign = ::sgn(x); 23376: return (sign > 0) ? VR_GT : ((sign < 0) ? VR_LT : VR_EQ); 23376: } 23376: 23376: template struct sgn_function_struct { static inline Result_Relation function(const mpz_class& arg) { return sgn_mp(arg); } }; 23376: template struct sgn_function_struct { static inline Result_Relation function(const mpq_class& arg) { return sgn_mp(arg); } }; 23376: 23376: template 23376: inline Result_Relation 23376: cmp_mp(const Type& x, const Type& y) { 23376: int i = ::cmp(x, y); 23376: return (i > 0) ? VR_GT : ((i < 0) ? VR_LT : VR_EQ); 23376: } 23376: 23376: template struct cmp_function_struct { static inline Result_Relation function(const mpz_class& arg1, const mpz_class &arg2) { return cmp_mp(arg1, arg2); } }; 23376: template struct cmp_function_struct { static inline Result_Relation function(const mpq_class& arg1, const mpq_class &arg2) { return cmp_mp(arg1, arg2); } }; 23376: 23376: template 23376: inline Result 23376: output_mpz(std::ostream& os, const mpz_class& from, const Numeric_Format&, 23376: Rounding_Dir) { 23376: os << from; 23376: return V_EQ; 23376: } 23376: 23376: template struct input_function_struct { static inline Result function( mpz_class& arg, std::istream& a1, Rounding_Dir a2) { return input_generic(arg, a1, a2); } }; 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const mpz_class& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_mpz(b1, arg, a1, a2); } }; 23376: 23376: } 23376: 23376: } 23376: # 704 "../../src/checked_defs.hh" 2 23376: # 1 "../../src/checked_mpq_inlines.hh" 1 23376: # 28 "../../src/checked_mpq_inlines.hh" 23376: # 1 "/usr/include/c++/8/climits" 1 3 23376: # 39 "/usr/include/c++/8/climits" 3 23376: 23376: # 40 "/usr/include/c++/8/climits" 3 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 23376: # 43 "/usr/include/c++/8/climits" 2 3 23376: # 29 "../../src/checked_mpq_inlines.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Checked { 23376: 23376: template 23376: inline Result 23376: classify_mpq(const mpq_class& v, bool nan, bool inf, bool sign) { 23376: if ((Policy::has_nan || Policy::has_infinity) 23376: && ::sgn(v.get_den()) == 0) { 23376: int s = ::sgn(v.get_num()); 23376: if (Policy::has_nan && (nan || sign) && s == 0) { 23376: return V_NAN; 23376: } 23376: if (!inf && !sign) { 23376: return V_LGE; 23376: } 23376: if (Policy::has_infinity) { 23376: if (s < 0) { 23376: return inf ? V_EQ_MINUS_INFINITY : V_LT; 23376: } 23376: if (s > 0) { 23376: return inf ? V_EQ_PLUS_INFINITY : V_GT; 23376: } 23376: } 23376: } 23376: if (sign) { 23376: return static_cast(sgn(v)); 23376: } 23376: return V_LGE; 23376: } 23376: 23376: template struct classify_function_struct { static inline Result function(const mpq_class& arg, bool a1, bool a2, bool a3) { return classify_mpq(arg, a1, a2, a3); } }; 23376: 23376: template 23376: inline bool 23376: is_nan_mpq(const mpq_class& v) { 23376: return Policy::has_nan 23376: && ::sgn(v.get_den()) == 0 23376: && ::sgn(v.get_num()) == 0; 23376: } 23376: 23376: template struct is_nan_function_struct { static inline bool function(const mpq_class& arg) { return is_nan_mpq(arg); } }; 23376: 23376: template 23376: inline bool 23376: is_minf_mpq(const mpq_class& v) { 23376: return Policy::has_infinity 23376: && ::sgn(v.get_den()) == 0 23376: && ::sgn(v.get_num()) < 0; 23376: } 23376: 23376: template struct is_minf_function_struct { static inline bool function(const mpq_class& arg) { return is_minf_mpq(arg); } }; 23376: 23376: template 23376: inline bool 23376: is_pinf_mpq(const mpq_class& v) { 23376: return Policy::has_infinity 23376: && ::sgn(v.get_den()) == 0 23376: && ::sgn(v.get_num()) > 0; 23376: } 23376: 23376: template struct is_pinf_function_struct { static inline bool function(const mpq_class& arg) { return is_pinf_mpq(arg); } }; 23376: 23376: template 23376: inline bool 23376: is_int_mpq(const mpq_class& v) { 23376: if ((Policy::has_infinity || Policy::has_nan) 23376: && ::sgn(v.get_den()) == 0) { 23376: return !(Policy::has_nan && ::sgn(v.get_num()) == 0); 23376: } 23376: else { 23376: return v.get_den() == 1; 23376: } 23376: } 23376: 23376: template struct is_int_function_struct { static inline bool function(const mpq_class& arg) { return is_int_mpq(arg); } }; 23376: 23376: template 23376: inline Result 23376: assign_special_mpq(mpq_class& v, Result_Class c, Rounding_Dir) { 23376: switch (c) { 23376: case VC_NAN: 23376: if (Policy::has_nan) { 23376: v.get_num() = 0; 23376: v.get_den() = 0; 23376: return V_NAN | V_UNREPRESENTABLE; 23376: } 23376: return V_NAN; 23376: case VC_MINUS_INFINITY: 23376: if (Policy::has_infinity) { 23376: v.get_num() = -1; 23376: v.get_den() = 0; 23376: return V_EQ_MINUS_INFINITY; 23376: } 23376: return V_EQ_MINUS_INFINITY | V_UNREPRESENTABLE; 23376: case VC_PLUS_INFINITY: 23376: if (Policy::has_infinity) { 23376: v.get_num() = 1; 23376: v.get_den() = 0; 23376: return V_EQ_PLUS_INFINITY; 23376: } 23376: return V_EQ_PLUS_INFINITY | V_UNREPRESENTABLE; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_NAN | V_UNREPRESENTABLE; 23376: } 23376: } 23376: 23376: template struct assign_special_function_struct { static inline Result function( mpq_class& arg, Result_Class a1, Rounding_Dir a2) { return assign_special_mpq(arg, a1, a2); } }; 23376: 23376: template struct copy_function_struct { static inline void function( mpq_class& arg1, const mpq_class &arg2) { return copy_generic(arg1, arg2); } }; 23376: 23376: template 23376: inline Result 23376: construct_mpq_base(mpq_class& to, const From& from, Rounding_Dir) { 23376: new(&to) mpq_class(from); 23376: return V_EQ; 23376: } 23376: 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const mpz_class &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const char &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const signed char &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const signed short &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const signed int &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const signed long &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const unsigned char &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const unsigned short &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const unsigned int &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const unsigned long &arg2, Rounding_Dir a1) { return construct_mpq_base(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: construct_mpq_float(mpq_class& to, const From& from, Rounding_Dir dir) { 23376: if (is_nan(from)) { 23376: return construct_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(from)) { 23376: return construct_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(from)) { 23376: return construct_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: new(&to) mpq_class(from); 23376: return V_EQ; 23376: } 23376: 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const float &arg2, Rounding_Dir a1) { return construct_mpq_float(arg1, arg2, a1); } }; 23376: template struct construct_function_struct { static inline Result function( mpq_class& arg1, const double &arg2, Rounding_Dir a1) { return construct_mpq_float(arg1, arg2, a1); } }; 23376: 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const mpz_class &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const char &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const signed char &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const signed short &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const signed int &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const signed long &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const unsigned char &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const unsigned short &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const unsigned int &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const unsigned long &arg2, Rounding_Dir a1) { return assign_exact(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_mpq_float(mpq_class& to, const From& from, Rounding_Dir dir) { 23376: if (is_nan(from)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(from)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(from)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: assign_mpq_numeric_float(to, from); 23376: return V_EQ; 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const float &arg2, Rounding_Dir a1) { return assign_mpq_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const double &arg2, Rounding_Dir a1) { return assign_mpq_float(arg1, arg2, a1); } }; 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const long double &arg2, Rounding_Dir a1) { return assign_mpq_float(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_mpq_signed_int(mpq_class& to, const From from, Rounding_Dir) { 23376: if (sizeof(From) <= sizeof(signed long)) { 23376: to = static_cast(from); 23376: } 23376: else { 23376: mpz_ptr m = to.get_num().get_mpz_t(); 23376: if (from >= 0) { 23376: 23376: # 221 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_import 23376: # 221 "../../src/checked_mpq_inlines.hh" 23376: (m, 1, 1, sizeof(From), 0, 0, &from); 23376: } 23376: else { 23376: From n = -from; 23376: 23376: # 225 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_import 23376: # 225 "../../src/checked_mpq_inlines.hh" 23376: (m, 1, 1, sizeof(From), 0, 0, &n); 23376: 23376: # 226 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_neg 23376: # 226 "../../src/checked_mpq_inlines.hh" 23376: (m, m); 23376: } 23376: to.get_den() = 1; 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const signed long long &arg2, Rounding_Dir a1) { return assign_mpq_signed_int(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: assign_mpq_unsigned_int(mpq_class& to, const From from, Rounding_Dir) { 23376: if (sizeof(From) <= sizeof(unsigned long)) { 23376: to = static_cast(from); 23376: } 23376: else { 23376: 23376: # 242 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_import 23376: # 242 "../../src/checked_mpq_inlines.hh" 23376: (to.get_num().get_mpz_t(), 1, 1, sizeof(From), 0, 0, &from); 23376: to.get_den() = 1; 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template struct assign_function_struct { static inline Result function( mpq_class& arg1, const unsigned long long &arg2, Rounding_Dir a1) { return assign_mpq_unsigned_int(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: floor_mpq(mpq_class& to, const mpq_class& from, Rounding_Dir) { 23376: 23376: # 253 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_fdiv_q 23376: # 253 "../../src/checked_mpq_inlines.hh" 23376: (to.get_num().get_mpz_t(), 23376: from.get_num().get_mpz_t(), from.get_den().get_mpz_t()); 23376: to.get_den() = 1; 23376: return V_EQ; 23376: } 23376: 23376: template struct floor_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, Rounding_Dir a1) { return floor_mpq(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: ceil_mpq(mpq_class& to, const mpq_class& from, Rounding_Dir) { 23376: 23376: # 264 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_cdiv_q 23376: # 264 "../../src/checked_mpq_inlines.hh" 23376: (to.get_num().get_mpz_t(), 23376: from.get_num().get_mpz_t(), from.get_den().get_mpz_t()); 23376: to.get_den() = 1; 23376: return V_EQ; 23376: } 23376: 23376: template struct ceil_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, Rounding_Dir a1) { return ceil_mpq(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: trunc_mpq(mpq_class& to, const mpq_class& from, Rounding_Dir) { 23376: 23376: # 275 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_tdiv_q 23376: # 275 "../../src/checked_mpq_inlines.hh" 23376: (to.get_num().get_mpz_t(), 23376: from.get_num().get_mpz_t(), from.get_den().get_mpz_t()); 23376: to.get_den() = 1; 23376: return V_EQ; 23376: } 23376: 23376: template struct trunc_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, Rounding_Dir a1) { return trunc_mpq(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: neg_mpq(mpq_class& to, const mpq_class& from, Rounding_Dir) { 23376: 23376: # 286 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpq_neg 23376: # 286 "../../src/checked_mpq_inlines.hh" 23376: (to.get_mpq_t(), from.get_mpq_t()); 23376: return V_EQ; 23376: } 23376: 23376: template struct neg_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, Rounding_Dir a1) { return neg_mpq(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: add_mpq(mpq_class& to, const mpq_class& x, const mpq_class& y, Rounding_Dir) { 23376: to = x + y; 23376: return V_EQ; 23376: } 23376: 23376: template struct add_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, const mpq_class &arg3, Rounding_Dir a1) { return add_mpq(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: sub_mpq(mpq_class& to, const mpq_class& x, const mpq_class& y, Rounding_Dir) { 23376: to = x - y; 23376: return V_EQ; 23376: } 23376: 23376: template struct sub_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, const mpq_class &arg3, Rounding_Dir a1) { return sub_mpq(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: mul_mpq(mpq_class& to, const mpq_class& x, const mpq_class& y, Rounding_Dir) { 23376: to = x * y; 23376: return V_EQ; 23376: } 23376: 23376: template struct mul_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, const mpq_class &arg3, Rounding_Dir a1) { return mul_mpq(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: div_mpq(mpq_class& to, const mpq_class& x, const mpq_class& y, Rounding_Dir) { 23376: if (((To_Policy::check_div_zero) ? (sgn(y) == 0) : ( 23376: # 322 "../../src/checked_mpq_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 322 "../../src/checked_mpq_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: to = x / y; 23376: return V_EQ; 23376: } 23376: 23376: template struct div_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, const mpq_class &arg3, Rounding_Dir a1) { return div_mpq(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: idiv_mpq(mpq_class& to, const mpq_class& x, const mpq_class& y, Rounding_Dir dir) { 23376: if (((To_Policy::check_div_zero) ? (sgn(y) == 0) : ( 23376: # 334 "../../src/checked_mpq_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 334 "../../src/checked_mpq_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: to = x / y; 23376: return trunc(to, to, dir); 23376: } 23376: 23376: template struct idiv_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, const mpq_class &arg3, Rounding_Dir a1) { return idiv_mpq(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: rem_mpq(mpq_class& to, const mpq_class& x, const mpq_class& y, Rounding_Dir) { 23376: if (((To_Policy::check_div_zero) ? (sgn(y) == 0) : ( 23376: # 346 "../../src/checked_mpq_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 346 "../../src/checked_mpq_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_MOD_ZERO); 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; mpq_class& tmp = holder_tmp.item(); 23376: tmp = x / y; 23376: tmp.get_num() %= tmp.get_den(); 23376: to = tmp * y; 23376: return V_EQ; 23376: } 23376: 23376: template struct rem_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, const mpq_class &arg3, Rounding_Dir a1) { return rem_mpq(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: add_2exp_mpq(mpq_class& to, const mpq_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_v; mpz_class& v = holder_v.item(); 23376: v = 1; 23376: 23376: # 364 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 364 "../../src/checked_mpq_inlines.hh" 23376: (v.get_mpz_t(), v.get_mpz_t(), exp); 23376: to = x + v; 23376: return V_EQ; 23376: } 23376: 23376: template struct add_2exp_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, unsigned int a1, Rounding_Dir a2) { return add_2exp_mpq(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: sub_2exp_mpq(mpq_class& to, const mpq_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_v; mpz_class& v = holder_v.item(); 23376: v = 1; 23376: 23376: # 377 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 377 "../../src/checked_mpq_inlines.hh" 23376: (v.get_mpz_t(), v.get_mpz_t(), exp); 23376: to = x - v; 23376: return V_EQ; 23376: } 23376: 23376: template struct sub_2exp_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, unsigned int a1, Rounding_Dir a2) { return sub_2exp_mpq(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: mul_2exp_mpq(mpq_class& to, const mpq_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: 23376: # 388 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 388 "../../src/checked_mpq_inlines.hh" 23376: (to.get_num().get_mpz_t(), x.get_num().get_mpz_t(), exp); 23376: to.get_den() = x.get_den(); 23376: to.canonicalize(); 23376: return V_EQ; 23376: } 23376: 23376: template struct mul_2exp_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, unsigned int a1, Rounding_Dir a2) { return mul_2exp_mpq(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: div_2exp_mpq(mpq_class& to, const mpq_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: to.get_num() = x.get_num(); 23376: 23376: # 401 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 401 "../../src/checked_mpq_inlines.hh" 23376: (to.get_den().get_mpz_t(), x.get_den().get_mpz_t(), exp); 23376: to.canonicalize(); 23376: return V_EQ; 23376: } 23376: 23376: template struct div_2exp_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, unsigned int a1, Rounding_Dir a2) { return div_2exp_mpq(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: smod_2exp_mpq(mpq_class& to, const mpq_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: 23376: # 412 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 412 "../../src/checked_mpq_inlines.hh" 23376: (to.get_den().get_mpz_t(), x.get_den().get_mpz_t(), exp); 23376: 23376: # 413 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_fdiv_r 23376: # 413 "../../src/checked_mpq_inlines.hh" 23376: (to.get_num().get_mpz_t(), x.get_num().get_mpz_t(), to.get_den().get_mpz_t()); 23376: 23376: # 414 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_fdiv_q_2exp 23376: # 414 "../../src/checked_mpq_inlines.hh" 23376: (to.get_den().get_mpz_t(), to.get_den().get_mpz_t(), 1); 23376: bool neg = to.get_num() >= to.get_den(); 23376: 23376: # 416 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 416 "../../src/checked_mpq_inlines.hh" 23376: (to.get_den().get_mpz_t(), to.get_den().get_mpz_t(), 1); 23376: if (neg) { 23376: to.get_num() -= to.get_den(); 23376: } 23376: 23376: # 420 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 420 "../../src/checked_mpq_inlines.hh" 23376: (to.get_num().get_mpz_t(), to.get_num().get_mpz_t(), exp); 23376: to.canonicalize(); 23376: return V_EQ; 23376: } 23376: 23376: template struct smod_2exp_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, unsigned int a1, Rounding_Dir a2) { return smod_2exp_mpq(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: umod_2exp_mpq(mpq_class& to, const mpq_class& x, unsigned int exp, 23376: Rounding_Dir) { 23376: 23376: # 431 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 431 "../../src/checked_mpq_inlines.hh" 23376: (to.get_den().get_mpz_t(), x.get_den().get_mpz_t(), exp); 23376: 23376: # 432 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_fdiv_r 23376: # 432 "../../src/checked_mpq_inlines.hh" 23376: (to.get_num().get_mpz_t(), x.get_num().get_mpz_t(), to.get_den().get_mpz_t()); 23376: 23376: # 433 "../../src/checked_mpq_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 433 "../../src/checked_mpq_inlines.hh" 23376: (to.get_num().get_mpz_t(), to.get_num().get_mpz_t(), exp); 23376: to.canonicalize(); 23376: return V_EQ; 23376: } 23376: 23376: template struct umod_2exp_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, unsigned int a1, Rounding_Dir a2) { return umod_2exp_mpq(arg1, arg2, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: abs_mpq(mpq_class& to, const mpq_class& from, Rounding_Dir) { 23376: to = abs(from); 23376: return V_EQ; 23376: } 23376: 23376: template struct abs_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, Rounding_Dir a1) { return abs_mpq(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: add_mul_mpq(mpq_class& to, const mpq_class& x, const mpq_class& y, 23376: Rounding_Dir) { 23376: to += x * y; 23376: return V_EQ; 23376: } 23376: 23376: template struct add_mul_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, const mpq_class &arg3, Rounding_Dir a1) { return add_mul_mpq(arg1, arg2, arg3, a1); } }; 23376: 23376: template 23376: inline Result 23376: sub_mul_mpq(mpq_class& to, const mpq_class& x, const mpq_class& y, 23376: Rounding_Dir) { 23376: to -= x * y; 23376: return V_EQ; 23376: } 23376: 23376: template struct sub_mul_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, const mpq_class &arg3, Rounding_Dir a1) { return sub_mul_mpq(arg1, arg2, arg3, a1); } }; 23376: 23376: extern unsigned irrational_precision; 23376: 23376: template 23376: inline Result 23376: sqrt_mpq(mpq_class& to, const mpq_class& from, Rounding_Dir dir) { 23376: if (((To_Policy::check_sqrt_neg) ? (from < 0) : ( 23376: # 474 "../../src/checked_mpq_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 474 "../../src/checked_mpq_inlines.hh" 23376: , false))) { 23376: return assign_nan(to, V_SQRT_NEG); 23376: } 23376: if (from == 0) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: bool gt1 = from.get_num() > from.get_den(); 23376: const mpz_class& from_a = gt1 ? from.get_num() : from.get_den(); 23376: const mpz_class& from_b = gt1 ? from.get_den() : from.get_num(); 23376: mpz_class& to_a = gt1 ? to.get_num() : to.get_den(); 23376: mpz_class& to_b = gt1 ? to.get_den() : to.get_num(); 23376: Rounding_Dir rdir = gt1 ? dir : inverse(dir); 23376: mul_2exp(to_a, from_a, 23376: 2*irrational_precision, ROUND_IGNORE); 23376: Result r_div 23376: = div(to_a, to_a, from_b, rdir); 23376: Result r_sqrt = sqrt(to_a, to_a, rdir); 23376: to_b = 1; 23376: mul_2exp(to_b, to_b, 23376: irrational_precision, ROUND_IGNORE); 23376: to.canonicalize(); 23376: return (r_div != V_EQ) ? r_div : r_sqrt; 23376: } 23376: 23376: template struct sqrt_function_struct { static inline Result function( mpq_class& arg1, const mpq_class &arg2, Rounding_Dir a1) { return sqrt_mpq(arg1, arg2, a1); } }; 23376: 23376: template 23376: inline Result 23376: input_mpq(mpq_class& to, std::istream& is, Rounding_Dir dir) { 23376: Result r = input_mpq(to, is); 23376: Result_Class c = result_class(r); 23376: switch (c) { 23376: case VC_MINUS_INFINITY: 23376: case VC_PLUS_INFINITY: 23376: return assign_special(to, c, dir); 23376: case VC_NAN: 23376: return assign_nan(to, r); 23376: default: 23376: return r; 23376: } 23376: } 23376: 23376: template struct input_function_struct { static inline Result function( mpq_class& arg, std::istream& a1, Rounding_Dir a2) { return input_mpq(arg, a1, a2); } }; 23376: 23376: template 23376: inline Result 23376: output_mpq(std::ostream& os, 23376: const mpq_class& from, 23376: const Numeric_Format&, 23376: Rounding_Dir) { 23376: os << from; 23376: return V_EQ; 23376: } 23376: 23376: template struct output_function_struct { static inline Result function(std::ostream& b1, const mpq_class& arg, const Numeric_Format& a1, Rounding_Dir a2) { return output_mpq(b1, arg, a1, a2); } }; 23376: 23376: } 23376: 23376: 23376: inline unsigned 23376: irrational_precision() { 23376: return Checked::irrational_precision; 23376: } 23376: # 548 "../../src/checked_mpq_inlines.hh" 23376: inline void 23376: set_irrational_precision(const unsigned p) { 23376: if (p <= 0x7fffffff) { 23376: Checked::irrational_precision = p; 23376: } 23376: else { 23376: throw std::invalid_argument("PPL::set_irrational_precision(p)" 23376: " with p > INT_MAX"); 23376: } 23376: } 23376: 23376: } 23376: # 705 "../../src/checked_defs.hh" 2 23376: # 1 "../../src/checked_ext_inlines.hh" 1 23376: # 27 "../../src/checked_ext_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template struct FPU_Related : public False {}; 23376: template <> struct FPU_Related : public True {}; 23376: template <> struct FPU_Related : public True {}; 23376: template <> struct FPU_Related : public True {}; 23376: 23376: namespace Checked { 23376: 23376: template 23376: inline bool 23376: handle_ext_natively(const T&) { 23376: return FPU_Related::value; 23376: } 23376: 23376: template 23376: inline bool 23376: ext_to_handle(const Type& x) { 23376: return !handle_ext_natively(x) 23376: && (Policy::has_infinity || Policy::has_nan); 23376: } 23376: 23376: template 23376: inline Result_Relation 23376: sgn_ext(const Type& x) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return VR_EMPTY; 23376: } 23376: else if (is_minf(x)) { 23376: return VR_LT; 23376: } 23376: else if (is_pinf(x)) { 23376: return VR_GT; 23376: } 23376: else { 23376: native: 23376: return sgn(x); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: construct_ext(To& to, const From& x, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return construct_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return construct_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return construct_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return construct(to, x, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: assign_ext(To& to, const From& x, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return assign(to, x, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: neg_ext(To& to, const From& x, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return neg(to, x, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: floor_ext(To& to, const From& x, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return floor(to, x, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: ceil_ext(To& to, const From& x, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return ceil(to, x, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: trunc_ext(To& to, const From& x, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return trunc(to, x, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: abs_ext(To& to, const From& x, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x) || is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return abs(to, x, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: add_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: if (((To_Policy::check_inf_add_inf) ? (is_pinf(y)) : ( 23376: # 232 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 232 "../../src/checked_ext_inlines.hh" 23376: , false))) { 23376: goto inf_add_inf; 23376: } 23376: else { 23376: goto minf; 23376: } 23376: } 23376: else if (is_pinf(x)) { 23376: if (((To_Policy::check_inf_add_inf) ? (is_minf(y)) : ( 23376: # 240 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 240 "../../src/checked_ext_inlines.hh" 23376: , false))) { 23376: inf_add_inf: 23376: return assign_nan(to, V_INF_ADD_INF); 23376: } 23376: else { 23376: goto pinf; 23376: } 23376: } 23376: else { 23376: if (is_minf(y)) { 23376: minf: 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(y)) { 23376: pinf: 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return add(to, x, y, dir); 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: sub_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: if (((To_Policy::check_inf_sub_inf) ? (is_minf(y)) : ( 23376: # 275 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 275 "../../src/checked_ext_inlines.hh" 23376: , false))) { 23376: goto inf_sub_inf; 23376: } 23376: else { 23376: goto minf; 23376: } 23376: } 23376: else if (is_pinf(x)) { 23376: if (((To_Policy::check_inf_sub_inf) ? (is_pinf(y)) : ( 23376: # 283 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 283 "../../src/checked_ext_inlines.hh" 23376: , false))) { 23376: inf_sub_inf: 23376: return assign_nan(to, V_INF_SUB_INF); 23376: } 23376: else { 23376: goto pinf; 23376: } 23376: } 23376: else { 23376: if (is_pinf(y)) { 23376: minf: 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_minf(y)) { 23376: pinf: 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return sub(to, x, y, dir); 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: mul_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (is_minf(x)) { 23376: switch (sgn_ext(y)) { 23376: case VR_LT: 23376: goto pinf; 23376: case VR_GT: 23376: goto minf; 23376: default: 23376: goto inf_mul_zero; 23376: } 23376: } 23376: else if (is_pinf(x)) { 23376: switch (sgn_ext(y)) { 23376: case VR_LT: 23376: goto minf; 23376: case VR_GT: 23376: goto pinf; 23376: default: 23376: goto inf_mul_zero; 23376: } 23376: } 23376: else { 23376: if (is_minf(y)) { 23376: switch (sgn(x)) { 23376: case VR_LT: 23376: goto pinf; 23376: case VR_GT: 23376: goto minf; 23376: default: 23376: goto inf_mul_zero; 23376: } 23376: } 23376: else if (is_pinf(y)) { 23376: switch (sgn(x)) { 23376: case VR_LT: 23376: minf: 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: case VR_GT: 23376: pinf: 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: default: 23376: inf_mul_zero: 23376: ((void) 0); 23376: return assign_nan(to, V_INF_MUL_ZERO); 23376: } 23376: } 23376: else { 23376: native: 23376: return mul(to, x, y, dir); 23376: } 23376: } 23376: } 23376: 23376: 23376: template 23376: inline Result 23376: add_mul_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (!ext_to_handle(to) 23376: && !ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(to) 23376: || is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (is_minf(x)) { 23376: switch (sgn_ext(y)) { 23376: case VR_LT: 23376: goto a_pinf; 23376: case VR_GT: 23376: goto a_minf; 23376: default: 23376: goto inf_mul_zero; 23376: } 23376: } 23376: else if (is_pinf(x)) { 23376: switch (sgn_ext(y)) { 23376: case VR_LT: 23376: goto a_minf; 23376: case VR_GT: 23376: goto a_pinf; 23376: default: 23376: goto inf_mul_zero; 23376: } 23376: } 23376: else { 23376: if (is_minf(y)) { 23376: switch (sgn(x)) { 23376: case VR_LT: 23376: goto a_pinf; 23376: case VR_GT: 23376: goto a_minf; 23376: default: 23376: goto inf_mul_zero; 23376: } 23376: } 23376: else if (is_pinf(y)) { 23376: switch (sgn(x)) { 23376: case VR_LT: 23376: a_minf: 23376: if (((To_Policy::check_inf_add_inf) ? (is_pinf(to)) : ( 23376: # 417 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 417 "../../src/checked_ext_inlines.hh" 23376: , false))) { 23376: goto inf_add_inf; 23376: } 23376: else { 23376: goto minf; 23376: } 23376: case VR_GT: 23376: a_pinf: 23376: if (((To_Policy::check_inf_add_inf) ? (is_minf(to)) : ( 23376: # 425 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 425 "../../src/checked_ext_inlines.hh" 23376: , false))) { 23376: inf_add_inf: 23376: return assign_nan(to, V_INF_ADD_INF); 23376: } 23376: else { 23376: goto pinf; 23376: } 23376: default: 23376: inf_mul_zero: 23376: ((void) 0); 23376: return assign_nan(to, V_INF_MUL_ZERO); 23376: } 23376: } 23376: else { 23376: if (is_minf(to)) { 23376: minf: 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: if (is_pinf(to)) { 23376: pinf: 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: native: 23376: return add_mul(to, x, y, dir); 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: sub_mul_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (!ext_to_handle(to) 23376: && !ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(to) 23376: || is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (is_minf(x)) { 23376: switch (sgn_ext(y)) { 23376: case VR_LT: 23376: goto a_pinf; 23376: case VR_GT: 23376: goto a_minf; 23376: default: 23376: goto inf_mul_zero; 23376: } 23376: } 23376: else if (is_pinf(x)) { 23376: switch (sgn_ext(y)) { 23376: case VR_LT: 23376: goto a_minf; 23376: case VR_GT: 23376: goto a_pinf; 23376: default: 23376: goto inf_mul_zero; 23376: } 23376: } 23376: else { 23376: if (is_minf(y)) { 23376: switch (sgn(x)) { 23376: case VR_LT: 23376: goto a_pinf; 23376: case VR_GT: 23376: goto a_minf; 23376: default: 23376: goto inf_mul_zero; 23376: } 23376: } 23376: else if (is_pinf(y)) { 23376: switch (sgn(x)) { 23376: case VR_LT: 23376: a_minf: 23376: if (((To_Policy::check_inf_sub_inf) ? (is_minf(to)) : ( 23376: # 500 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 500 "../../src/checked_ext_inlines.hh" 23376: , false))) { 23376: goto inf_sub_inf; 23376: } 23376: else { 23376: goto pinf; 23376: } 23376: case VR_GT: 23376: a_pinf: 23376: if (((To_Policy::check_inf_sub_inf) ? (is_pinf(to)) : ( 23376: # 508 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 508 "../../src/checked_ext_inlines.hh" 23376: , false))) { 23376: inf_sub_inf: 23376: return assign_nan(to, V_INF_SUB_INF); 23376: } 23376: else { 23376: goto minf; 23376: } 23376: default: 23376: inf_mul_zero: 23376: ((void) 0); 23376: return assign_nan(to, V_INF_MUL_ZERO); 23376: } 23376: } 23376: else { 23376: if (is_minf(to)) { 23376: minf: 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: if (is_pinf(to)) { 23376: pinf: 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: native: 23376: return sub_mul(to, x, y, dir); 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: div_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (is_minf(x)) { 23376: if (((To_Policy::check_inf_div_inf) ? (is_minf(y) || is_pinf(y)) : ( 23376: # 547 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 547 "../../src/checked_ext_inlines.hh" 23376: , false)) 23376: ) { 23376: goto inf_div_inf; 23376: } 23376: else { 23376: switch (sgn(y)) { 23376: case VR_LT: 23376: goto pinf; 23376: case VR_GT: 23376: goto minf; 23376: default: 23376: goto div_zero; 23376: } 23376: } 23376: } 23376: else if (is_pinf(x)) { 23376: if (((To_Policy::check_inf_div_inf) ? (is_minf(y) || is_pinf(y)) : ( 23376: # 563 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 563 "../../src/checked_ext_inlines.hh" 23376: , false)) 23376: ) { 23376: inf_div_inf: 23376: return assign_nan(to, V_INF_DIV_INF); 23376: } 23376: else { 23376: switch (sgn(y)) { 23376: case VR_LT: 23376: minf: 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: case VR_GT: 23376: pinf: 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: default: 23376: div_zero: 23376: ((void) 0); 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: } 23376: } 23376: else { 23376: if (is_minf(y) || is_pinf(y)) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: else { 23376: native: 23376: return div(to, x, y, dir); 23376: } 23376: } 23376: } 23376: 23376: 23376: template 23376: inline Result 23376: idiv_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: if (is_minf(x)) { 23376: if (((To_Policy::check_inf_div_inf) ? (is_minf(y) || is_pinf(y)) : ( 23376: # 607 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 607 "../../src/checked_ext_inlines.hh" 23376: , false)) 23376: ) { 23376: goto inf_div_inf; 23376: } 23376: else { 23376: switch (sgn(y)) { 23376: case VR_LT: 23376: goto pinf; 23376: case VR_GT: 23376: goto minf; 23376: default: 23376: goto div_zero; 23376: } 23376: } 23376: } 23376: else if (is_pinf(x)) { 23376: if (((To_Policy::check_inf_div_inf) ? (is_minf(y) || is_pinf(y)) : ( 23376: # 623 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 623 "../../src/checked_ext_inlines.hh" 23376: , false)) 23376: ) { 23376: inf_div_inf: 23376: return assign_nan(to, V_INF_DIV_INF); 23376: } 23376: else { 23376: switch (sgn(y)) { 23376: case VR_LT: 23376: minf: 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: case VR_GT: 23376: pinf: 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: default: 23376: div_zero: 23376: ((void) 0); 23376: return assign_nan(to, V_DIV_ZERO); 23376: } 23376: } 23376: } 23376: else { 23376: if (is_minf(y) || is_pinf(y)) { 23376: to = 0; 23376: return V_EQ; 23376: } 23376: else { 23376: native: 23376: return idiv(to, x, y, dir); 23376: } 23376: } 23376: } 23376: 23376: 23376: template 23376: inline Result 23376: rem_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (((To_Policy::check_inf_mod) ? (is_minf(x) || is_pinf(x)) : ( 23376: # 666 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 666 "../../src/checked_ext_inlines.hh" 23376: , false)) 23376: ) { 23376: return assign_nan(to, V_INF_MOD); 23376: } 23376: else { 23376: if (is_minf(y) || is_pinf(y)) { 23376: to = x; 23376: return V_EQ; 23376: } 23376: else { 23376: native: 23376: return rem(to, x, y, dir); 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: add_2exp_ext(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return add_2exp(to, x, exp, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: sub_2exp_ext(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return sub_2exp(to, x, exp, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: mul_2exp_ext(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return mul_2exp(to, x, exp, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: div_2exp_ext(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_special(to, VC_MINUS_INFINITY, dir); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return div_2exp(to, x, exp, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: smod_2exp_ext(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (((To_Policy::check_inf_mod) ? (is_minf(x) || is_pinf(x)) : ( 23376: # 780 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 780 "../../src/checked_ext_inlines.hh" 23376: , false)) 23376: ) { 23376: return assign_nan(to, V_INF_MOD); 23376: } 23376: else { 23376: native: 23376: return smod_2exp(to, x, exp, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: umod_2exp_ext(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (((To_Policy::check_inf_mod) ? (is_minf(x) || is_pinf(x)) : ( 23376: # 800 "../../src/checked_ext_inlines.hh" 3 4 23376: (static_cast (0)) 23376: # 800 "../../src/checked_ext_inlines.hh" 23376: , false)) 23376: ) { 23376: return assign_nan(to, V_INF_MOD); 23376: } 23376: else { 23376: native: 23376: return umod_2exp(to, x, exp, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: sqrt_ext(To& to, const From& x, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x)) { 23376: return assign_nan(to, V_SQRT_NEG); 23376: } 23376: else if (is_pinf(x)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: native: 23376: return sqrt(to, x, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: gcd_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x) || is_pinf(x)) { 23376: return abs_ext(to, y, dir); 23376: } 23376: else if (is_minf(y) || is_pinf(y)) { 23376: return abs_ext(to, x, dir); 23376: } 23376: else { 23376: return gcd(to, x, y, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: gcdext_ext(To1& to, To2& s, To3& t, const From1& x, const From2& y, 23376: Rounding_Dir dir) { 23376: if (is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x) || is_pinf(x)) { 23376: s = 0; 23376: t = y > 0 ? -1 : 1; 23376: return abs_ext(to, y, dir); 23376: } 23376: else if (is_minf(y) || is_pinf(y)) { 23376: s = x > 0 ? -1 : 1; 23376: t = 0; 23376: return abs_ext(to, x, dir); 23376: } 23376: else { 23376: return gcdext(to, s, t, x, y, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: lcm_ext(To& to, const From1& x, const From2& y, Rounding_Dir dir) { 23376: if (is_nan(x) || is_nan(y)) { 23376: return assign_special(to, VC_NAN, ROUND_IGNORE); 23376: } 23376: else if (is_minf(x) || is_pinf(x) 23376: || is_minf(y) || is_pinf(y)) { 23376: return assign_special(to, VC_PLUS_INFINITY, dir); 23376: } 23376: else { 23376: return lcm(to, x, y, dir); 23376: } 23376: } 23376: 23376: template 23376: inline Result_Relation 23376: cmp_ext(const Type1& x, const Type2& y) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return VR_EMPTY; 23376: } 23376: else if (is_minf(x)) { 23376: return is_minf(y) ? VR_EQ : VR_LT; 23376: } 23376: else if (is_pinf(x)) { 23376: return is_pinf(y) ? VR_EQ : VR_GT; 23376: } 23376: else { 23376: if (is_minf(y)) { 23376: return VR_GT; 23376: } 23376: if (is_pinf(y)) { 23376: return VR_LT; 23376: } 23376: native: 23376: return cmp(x, y); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: lt_ext(const Type1& x, const Type2& y) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return false; 23376: } 23376: if (is_pinf(x) || is_minf(y)) { 23376: return false; 23376: } 23376: if (is_minf(x) || is_pinf(y)) { 23376: return true; 23376: } 23376: native: 23376: return lt_p(x, y); 23376: } 23376: 23376: template 23376: inline bool 23376: gt_ext(const Type1& x, const Type2& y) { 23376: return lt_ext(y, x); 23376: } 23376: 23376: template 23376: inline bool 23376: le_ext(const Type1& x, const Type2& y) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return false; 23376: } 23376: if (is_minf(x) || is_pinf(y)) { 23376: return true; 23376: } 23376: if (is_pinf(x) || is_minf(y)) { 23376: return false; 23376: } 23376: native: 23376: return le_p(x, y); 23376: } 23376: 23376: template 23376: inline bool 23376: ge_ext(const Type1& x, const Type2& y) { 23376: return le_ext(y, x); 23376: } 23376: 23376: template 23376: inline bool 23376: eq_ext(const Type1& x, const Type2& y) { 23376: if (!ext_to_handle(x) && !ext_to_handle(y)) { 23376: goto native; 23376: } 23376: if (is_nan(x) || is_nan(y)) { 23376: return false; 23376: } 23376: if (is_minf(x)) { 23376: return is_minf(y); 23376: } 23376: if (is_pinf(x)) { 23376: return is_pinf(y); 23376: } 23376: else if (is_minf(y) || is_pinf(y)) { 23376: return false; 23376: } 23376: native: 23376: return eq_p(x, y); 23376: } 23376: 23376: template 23376: inline bool 23376: ne_ext(const Type1& x, const Type2& y) { 23376: return !eq_ext(x, y); 23376: } 23376: 23376: template 23376: inline Result 23376: output_ext(std::ostream& os, const Type& x, 23376: const Numeric_Format& format, Rounding_Dir dir) { 23376: if (!ext_to_handle(x)) { 23376: goto native; 23376: } 23376: if (is_nan(x)) { 23376: os << "nan"; 23376: return V_NAN; 23376: } 23376: if (is_minf(x)) { 23376: os << "-inf"; 23376: return V_EQ; 23376: } 23376: if (is_pinf(x)) { 23376: os << "+inf"; 23376: return V_EQ; 23376: } 23376: native: 23376: return output(os, x, format, dir); 23376: } 23376: 23376: template 23376: inline Result 23376: input_ext(To& to, std::istream& is, Rounding_Dir dir) { 23376: return input(to, is, dir); 23376: } 23376: 23376: } 23376: 23376: } 23376: # 706 "../../src/checked_defs.hh" 2 23376: # 29 "../../src/Checked_Number_defs.hh" 2 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: struct Extended_Number_Policy { 23376: enum const_bool_value_check_overflow { check_overflow = (true) }; 23376: enum const_bool_value_check_inf_add_inf { check_inf_add_inf = (false) }; 23376: enum const_bool_value_check_inf_sub_inf { check_inf_sub_inf = (false) }; 23376: enum const_bool_value_check_inf_mul_zero { check_inf_mul_zero = (false) }; 23376: enum const_bool_value_check_div_zero { check_div_zero = (false) }; 23376: enum const_bool_value_check_inf_div_inf { check_inf_div_inf = (false) }; 23376: enum const_bool_value_check_inf_mod { check_inf_mod = (false) }; 23376: enum const_bool_value_check_sqrt_neg { check_sqrt_neg = (false) }; 23376: enum const_bool_value_has_nan { has_nan = (true) }; 23376: enum const_bool_value_has_infinity { has_infinity = (true) }; 23376: 23376: 23376: 23376: 23376: enum const_bool_value_fpu_check_inexact { fpu_check_inexact = (true) }; 23376: enum const_bool_value_fpu_check_nan_result { fpu_check_nan_result = (true) }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static void handle_result(Result r); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct Check_Overflow_Policy { 23376: enum const_bool_value_check_overflow { check_overflow = (true) }; 23376: enum const_bool_value_check_inf_add_inf { check_inf_add_inf = (false) }; 23376: enum const_bool_value_check_inf_sub_inf { check_inf_sub_inf = (false) }; 23376: enum const_bool_value_check_inf_mul_zero { check_inf_mul_zero = (false) }; 23376: enum const_bool_value_check_div_zero { check_div_zero = (false) }; 23376: enum const_bool_value_check_inf_div_inf { check_inf_div_inf = (false) }; 23376: enum const_bool_value_check_inf_mod { check_inf_mod = (false) }; 23376: enum const_bool_value_check_sqrt_neg { check_sqrt_neg = (false) }; 23376: enum const_bool_value_has_nan { has_nan = (std::numeric_limits::has_quiet_NaN) }; 23376: enum const_bool_value_has_infinity { has_infinity = (std::numeric_limits::has_infinity) }; 23376: enum const_bool_value_convertible { convertible = (true) }; 23376: enum const_bool_value_fpu_check_inexact { fpu_check_inexact = (true) }; 23376: enum const_bool_value_fpu_check_nan_result { fpu_check_nan_result = (true) }; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct Native_Checked_From_Wrapper; 23376: 23376: 23376: 23376: 23376: template 23376: struct Native_Checked_From_Wrapper::value>::type> { 23376: typedef Checked_Number_Transparent_Policy Policy; 23376: static const T& raw_value(const T& v) { 23376: return v; 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct Native_Checked_From_Wrapper > { 23376: typedef P Policy; 23376: static const T& raw_value(const Checked_Number& v) { 23376: return v.raw_value(); 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct Native_Checked_To_Wrapper; 23376: 23376: 23376: 23376: 23376: template 23376: struct Native_Checked_To_Wrapper::value>::type> { 23376: typedef Check_Overflow_Policy Policy; 23376: static T& raw_value(T& v) { 23376: return v; 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct Native_Checked_To_Wrapper > { 23376: typedef P Policy; 23376: static T& raw_value(Checked_Number& v) { 23376: return v.raw_value(); 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct Is_Checked : public False { }; 23376: 23376: 23376: 23376: 23376: template 23376: struct Is_Checked > : public True { }; 23376: 23376: 23376: 23376: 23376: template 23376: struct Is_Native_Or_Checked 23376: : public Bool::value || Is_Checked::value> { }; 23376: # 169 "../../src/Checked_Number_defs.hh" 23376: template 23376: class Checked_Number { 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: Checked_Number(); 23376: 23376: 23376: Checked_Number(const Checked_Number& y); 23376: 23376: 23376: template 23376: Checked_Number(const Checked_Number& y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(char y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(signed char y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(signed short y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(signed int y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(signed long y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(signed long long y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(unsigned char y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(unsigned short y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(unsigned int y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(unsigned long y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(unsigned long long y, Rounding_Dir dir); 23376: # 235 "../../src/Checked_Number_defs.hh" 23376: Checked_Number(const mpq_class& y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(const mpz_class& y, Rounding_Dir dir); 23376: 23376: 23376: Checked_Number(const char* y, Rounding_Dir dir); 23376: 23376: 23376: template 23376: Checked_Number(const From&, Rounding_Dir dir, 23376: typename Enable_If::value, bool>::type 23376: ignored = false); 23376: 23376: 23376: template 23376: explicit Checked_Number(const Checked_Number& y); 23376: 23376: 23376: Checked_Number(char y); 23376: 23376: 23376: Checked_Number(signed char y); 23376: 23376: 23376: Checked_Number(signed short y); 23376: 23376: 23376: Checked_Number(signed int y); 23376: 23376: 23376: Checked_Number(signed long y); 23376: 23376: 23376: Checked_Number(signed long long y); 23376: 23376: 23376: Checked_Number(unsigned char y); 23376: 23376: 23376: Checked_Number(unsigned short y); 23376: 23376: 23376: Checked_Number(unsigned int y); 23376: 23376: 23376: Checked_Number(unsigned long y); 23376: 23376: 23376: Checked_Number(unsigned long long y); 23376: 23376: 23376: Checked_Number(float y); 23376: 23376: 23376: Checked_Number(double y); 23376: 23376: 23376: Checked_Number(long double y); 23376: 23376: 23376: Checked_Number(const mpq_class& y); 23376: 23376: 23376: Checked_Number(const mpz_class& y); 23376: 23376: 23376: Checked_Number(const char* y); 23376: 23376: 23376: template 23376: Checked_Number(const From&, typename Enable_If::value, bool>::type ignored = false); 23376: # 315 "../../src/Checked_Number_defs.hh" 23376: operator T() const; 23376: 23376: 23376: T& raw_value(); 23376: 23376: 23376: const T& raw_value() const; 23376: 23376: 23376: 23376: 23376: bool OK() const; 23376: # 338 "../../src/Checked_Number_defs.hh" 23376: Result classify(bool nan = true, bool inf = true, bool sign = true) const; 23376: 23376: 23376: 23376: 23376: 23376: Checked_Number& operator=(const Checked_Number& y); 23376: 23376: 23376: template 23376: Checked_Number& operator=(const From& y); 23376: 23376: 23376: template 23376: Checked_Number& operator+=(const Checked_Number& y); 23376: 23376: 23376: Checked_Number& operator+=(const T& y); 23376: 23376: 23376: template 23376: typename Enable_If::value, 23376: Checked_Number&>::type 23376: operator+=(const From& y); 23376: 23376: 23376: template 23376: Checked_Number& operator-=(const Checked_Number& y); 23376: 23376: 23376: Checked_Number& operator-=(const T& y); 23376: 23376: 23376: template 23376: typename Enable_If::value, 23376: Checked_Number&>::type 23376: operator-=(const From& y); 23376: 23376: 23376: template 23376: Checked_Number& operator*=(const Checked_Number& y); 23376: 23376: 23376: Checked_Number& operator*=(const T& y); 23376: 23376: 23376: template 23376: typename Enable_If::value, 23376: Checked_Number&>::type 23376: operator*=(const From& y); 23376: 23376: 23376: template 23376: Checked_Number& operator/=(const Checked_Number& y); 23376: 23376: 23376: Checked_Number& operator/=(const T& y); 23376: 23376: 23376: template 23376: typename Enable_If::value, 23376: Checked_Number&>::type 23376: operator/=(const From& y); 23376: 23376: 23376: template 23376: Checked_Number& operator%=(const Checked_Number& y); 23376: 23376: 23376: Checked_Number& operator%=(const T& y); 23376: 23376: 23376: template 23376: typename Enable_If::value, 23376: Checked_Number& >::type 23376: operator%=(const From& y); 23376: # 422 "../../src/Checked_Number_defs.hh" 23376: Checked_Number& operator++(); 23376: 23376: 23376: Checked_Number operator++(int); 23376: 23376: 23376: Checked_Number& operator--(); 23376: 23376: 23376: Checked_Number operator--(int); 23376: 23376: 23376: 23376: private: 23376: 23376: T v; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct Slow_Copy > : public Bool::value> {}; 23376: 23376: 23376: template 23376: typename Enable_If::value, bool>::type 23376: is_not_a_number(const T& x); 23376: 23376: 23376: template 23376: typename Enable_If::value, bool>::type 23376: is_minus_infinity(const T& x); 23376: 23376: 23376: template 23376: typename Enable_If::value, bool>::type 23376: is_plus_infinity(const T& x); 23376: 23376: 23376: template 23376: typename Enable_If::value, int>::type 23376: infinity_sign(const T& x); 23376: 23376: 23376: template 23376: typename Enable_If::value, bool>::type 23376: is_integer(const T& x); 23376: 23376: 23376: template 23376: typename Enable_If::value && Is_Special::value, Result>::type 23376: construct(To& to, const From& x, Rounding_Dir dir); 23376: 23376: 23376: template 23376: typename Enable_If::value && Is_Special::value, Result>::type 23376: assign_r(To& to, const From& x, Rounding_Dir dir); 23376: 23376: 23376: template 23376: typename Enable_If::value, Result>::type 23376: assign_r(To& to, const char* x, Rounding_Dir dir); 23376: 23376: 23376: template 23376: typename Enable_If::value, Result>::type 23376: assign_r(To& to, char* x, Rounding_Dir dir); 23376: # 498 "../../src/Checked_Number_defs.hh" 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type assign_r(To& to, const From& x, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type floor_assign_r(To& to, const From& x, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type ceil_assign_r(To& to, const From& x, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type trunc_assign_r(To& to, const From& x, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type neg_assign_r(To& to, const From& x, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type abs_assign_r(To& to, const From& x, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type sqrt_assign_r(To& to, const From& x, Rounding_Dir dir); 23376: # 515 "../../src/Checked_Number_defs.hh" 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type add_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type sub_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type mul_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type div_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type smod_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type umod_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir); 23376: # 532 "../../src/Checked_Number_defs.hh" 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type add_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type sub_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type mul_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type div_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type idiv_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type rem_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type gcd_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type lcm_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type add_mul_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type sub_mul_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir); 23376: # 558 "../../src/Checked_Number_defs.hh" 23376: template typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type gcdext_assign_r(To1& to, To2& s, To3& t, const From1& x, const From2& y, Rounding_Dir dir); 23376: # 572 "../../src/Checked_Number_defs.hh" 23376: template 23376: memory_size_type 23376: total_memory_in_bytes(const Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: memory_size_type 23376: external_memory_in_bytes(const Checked_Number& x); 23376: # 589 "../../src/Checked_Number_defs.hh" 23376: template 23376: Checked_Number 23376: operator+(const Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: Checked_Number 23376: operator-(const Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: void 23376: floor_assign(Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: void 23376: floor_assign(Checked_Number& x, const Checked_Number& y); 23376: 23376: 23376: 23376: template 23376: void 23376: ceil_assign(Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: void 23376: ceil_assign(Checked_Number& x, const Checked_Number& y); 23376: 23376: 23376: 23376: template 23376: void 23376: trunc_assign(Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: void 23376: trunc_assign(Checked_Number& x, const Checked_Number& y); 23376: 23376: 23376: 23376: template 23376: void 23376: neg_assign(Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: void 23376: neg_assign(Checked_Number& x, const Checked_Number& y); 23376: 23376: 23376: 23376: template 23376: void 23376: abs_assign(Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: void 23376: abs_assign(Checked_Number& x, const Checked_Number& y); 23376: 23376: 23376: 23376: template 23376: void 23376: add_mul_assign(Checked_Number& x, 23376: const Checked_Number& y, 23376: const Checked_Number& z); 23376: 23376: 23376: 23376: template 23376: void 23376: sub_mul_assign(Checked_Number& x, 23376: const Checked_Number& y, 23376: const Checked_Number& z); 23376: 23376: 23376: 23376: template 23376: void 23376: gcd_assign(Checked_Number& x, 23376: const Checked_Number& y, 23376: const Checked_Number& z); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: gcdext_assign(Checked_Number& x, 23376: Checked_Number& s, 23376: Checked_Number& t, 23376: const Checked_Number& y, 23376: const Checked_Number& z); 23376: 23376: 23376: 23376: template 23376: void 23376: lcm_assign(Checked_Number& x, 23376: const Checked_Number& y, 23376: const Checked_Number& z); 23376: 23376: 23376: 23376: template 23376: void 23376: mul_2exp_assign(Checked_Number& x, 23376: const Checked_Number& y, 23376: unsigned int exp); 23376: 23376: 23376: 23376: template 23376: void 23376: div_2exp_assign(Checked_Number& x, 23376: const Checked_Number& y, 23376: unsigned int exp); 23376: # 727 "../../src/Checked_Number_defs.hh" 23376: template 23376: void 23376: exact_div_assign(Checked_Number& x, 23376: const Checked_Number& y, 23376: const Checked_Number& z); 23376: 23376: 23376: 23376: template 23376: void sqrt_assign(Checked_Number& x, 23376: const Checked_Number& y); 23376: # 747 "../../src/Checked_Number_defs.hh" 23376: template 23376: inline 23376: typename Enable_If::value 23376: && Is_Native_Or_Checked::value 23376: && (Is_Checked::value || Is_Checked::value), 23376: bool>::type 23376: operator==(const T1& x, const T2& y); 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Is_Native_Or_Checked::value, 23376: bool>::type 23376: equal(const T1& x, const T2& y); 23376: 23376: 23376: 23376: template 23376: inline 23376: typename Enable_If::value 23376: && Is_Native_Or_Checked::value 23376: && (Is_Checked::value || Is_Checked::value), 23376: bool>::type 23376: operator!=(const T1& x, const T2& y); 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Is_Native_Or_Checked::value, 23376: bool>::type 23376: not_equal(const T1& x, const T2& y); 23376: 23376: 23376: 23376: template 23376: inline 23376: typename Enable_If::value 23376: && Is_Native_Or_Checked::value 23376: && (Is_Checked::value || Is_Checked::value), 23376: bool>::type 23376: operator>=(const T1& x, const T2& y); 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Is_Native_Or_Checked::value, 23376: bool>::type 23376: greater_or_equal(const T1& x, const T2& y); 23376: 23376: 23376: 23376: template 23376: inline 23376: typename Enable_If::value 23376: && Is_Native_Or_Checked::value 23376: && (Is_Checked::value || Is_Checked::value), 23376: bool>::type 23376: operator>(const T1& x, const T2& y); 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Is_Native_Or_Checked::value, 23376: bool>::type 23376: greater_than(const T1& x, const T2& y); 23376: 23376: 23376: 23376: template 23376: inline 23376: typename Enable_If::value 23376: && Is_Native_Or_Checked::value 23376: && (Is_Checked::value || Is_Checked::value), 23376: bool>::type 23376: operator<=(const T1& x, const T2& y); 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Is_Native_Or_Checked::value, 23376: bool>::type 23376: less_or_equal(const T1& x, const T2& y); 23376: 23376: 23376: 23376: template 23376: inline 23376: typename Enable_If::value 23376: && Is_Native_Or_Checked::value 23376: && (Is_Checked::value || Is_Checked::value), 23376: bool>::type 23376: operator<(const T1& x, const T2& y); 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Is_Native_Or_Checked::value, 23376: bool>::type 23376: less_than(const T1& x, const T2& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline typename Enable_If::value, int>::type 23376: sgn(const From& x); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Is_Native_Or_Checked::value, 23376: int>::type 23376: cmp(const From1& x, const From2& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value, Result>::type 23376: output(std::ostream& os, 23376: const T& x, 23376: const Numeric_Format& format, 23376: Rounding_Dir dir); 23376: 23376: 23376: 23376: template 23376: std::ostream& 23376: operator<<(std::ostream& os, const Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value, void>::type 23376: ascii_dump(std::ostream& s, const T& t); 23376: # 1019 "../../src/Checked_Number_defs.hh" 23376: template 23376: typename Enable_If::value, Result>::type 23376: input(T& x, std::istream& is, Rounding_Dir dir); 23376: 23376: 23376: 23376: template 23376: std::istream& 23376: operator>>(std::istream& is, Checked_Number& x); 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value, bool>::type 23376: ascii_load(std::ostream& s, T& t); 23376: 23376: 23376: 23376: void throw_result_exception(Result r); 23376: 23376: template 23376: T 23376: plus_infinity(); 23376: 23376: template 23376: T 23376: minus_infinity(); 23376: 23376: template 23376: T 23376: not_a_number(); 23376: 23376: 23376: 23376: template 23376: void swap(Checked_Number& x, Checked_Number& y); 23376: 23376: template 23376: struct FPU_Related > : public FPU_Related {}; 23376: 23376: template 23376: void maybe_reset_fpu_inexact(); 23376: 23376: template 23376: int maybe_check_fpu_inexact(); 23376: 23376: } 23376: 23376: # 1 "../../src/Checked_Number_inlines.hh" 1 23376: # 31 "../../src/Checked_Number_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: inline Rounding_Dir 23376: rounding_dir(Rounding_Dir dir) { 23376: if (dir == ROUND_NOT_NEEDED) { 23376: 23376: 23376: 23376: } 23376: return dir; 23376: } 23376: 23376: inline Result 23376: check_result(Result r, Rounding_Dir dir) { 23376: if (dir == ROUND_NOT_NEEDED) { 23376: 23376: 23376: 23376: return r; 23376: } 23376: return r; 23376: } 23376: 23376: 23376: template 23376: inline void 23376: Checked_Number_Transparent_Policy::handle_result(Result) { 23376: } 23376: 23376: inline void 23376: Extended_Number_Policy::handle_result(Result r) { 23376: if (result_class(r) == VC_NAN) { 23376: throw_result_exception(r); 23376: } 23376: } 23376: 23376: template 23376: inline 23376: Checked_Number::Checked_Number() 23376: : v(0) { 23376: } 23376: 23376: template 23376: inline 23376: Checked_Number::Checked_Number(const Checked_Number& y) { 23376: 23376: Checked::copy(v, y.raw_value()); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Checked_Number 23376: ::Checked_Number(const Checked_Number& y, 23376: Rounding_Dir dir) { 23376: 23376: Policy::handle_result(check_result(Checked::assign_ext 23376: (v, 23376: y.raw_value(), 23376: rounding_dir(dir)), 23376: dir) 23376: ); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Checked_Number 23376: ::Checked_Number(const Checked_Number& y) { 23376: 23376: Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; 23376: Policy::handle_result(check_result(Checked::assign_ext 23376: (v, 23376: y.raw_value(), 23376: rounding_dir(dir)), 23376: dir)); 23376: } 23376: # 133 "../../src/Checked_Number_inlines.hh" 23376: template inline Checked_Number::Checked_Number(const char y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const char y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const signed char y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const signed char y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const signed short y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const signed short y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const signed int y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const signed int y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const signed long y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const signed long y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const signed long long y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const signed long long y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const unsigned char y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const unsigned char y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const unsigned short y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const unsigned short y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const unsigned int y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const unsigned int y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const unsigned long y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const unsigned long y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const unsigned long long y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const unsigned long long y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: # 153 "../../src/Checked_Number_inlines.hh" 23376: template inline Checked_Number::Checked_Number(const mpq_class& y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const mpq_class& y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: template inline Checked_Number::Checked_Number(const mpz_class& y, Rounding_Dir dir) { Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } template inline Checked_Number::Checked_Number(const mpz_class& y) { Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; Policy::handle_result(check_result(Checked::assign_ext > (v, y, rounding_dir(dir)), dir)); } 23376: 23376: 23376: 23376: 23376: template 23376: inline 23376: Checked_Number::Checked_Number(const char* y, Rounding_Dir dir) { 23376: std::istringstream s(y); 23376: Policy::handle_result(check_result(Checked::input(v, 23376: s, 23376: rounding_dir(dir)), 23376: dir)); 23376: } 23376: 23376: template 23376: inline 23376: Checked_Number::Checked_Number(const char* y) { 23376: std::istringstream s(y); 23376: Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; 23376: Policy::handle_result(check_result(Checked::input(v, 23376: s, 23376: rounding_dir(dir)), 23376: dir)); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Checked_Number 23376: ::Checked_Number(const From&, 23376: Rounding_Dir dir, 23376: typename Enable_If::value, bool>::type) { 23376: Policy::handle_result(check_result(Checked::assign_special(v, 23376: From::vclass, 23376: rounding_dir(dir)), 23376: dir)); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Checked_Number::Checked_Number(const From&, typename Enable_If::value, bool>::type) { 23376: Rounding_Dir dir = Policy::ROUND_DEFAULT_CONSTRUCTOR; 23376: Policy::handle_result(check_result(Checked::assign_special(v, 23376: From::vclass, 23376: rounding_dir(dir)), 23376: dir)); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Is_Special::value, Result>::type 23376: assign_r(To& to, const From&, Rounding_Dir dir) { 23376: return check_result(Checked::assign_special 23376: ::Policy>(Native_Checked_To_Wrapper::raw_value(to), 23376: From::vclass, 23376: rounding_dir(dir)), 23376: dir); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value && Is_Special::value, Result>::type 23376: construct(To& to, const From&, Rounding_Dir dir) { 23376: return check_result(Checked::construct_special 23376: ::Policy>(Native_Checked_To_Wrapper::raw_value(to), 23376: From::vclass, 23376: rounding_dir(dir)), 23376: dir); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, bool>::type 23376: is_minus_infinity(const T& x) { 23376: return Checked::is_minf 23376: ::Policy>(Native_Checked_From_Wrapper::raw_value(x)); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, bool>::type 23376: is_plus_infinity(const T& x) { 23376: return Checked::is_pinf 23376: ::Policy>(Native_Checked_From_Wrapper::raw_value(x)); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, int>::type 23376: infinity_sign(const T& x) { 23376: return is_minus_infinity(x) ? -1 : (is_plus_infinity(x) ? 1 : 0); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, bool>::type 23376: is_not_a_number(const T& x) { 23376: return Checked::is_nan 23376: ::Policy>(Native_Checked_From_Wrapper::raw_value(x)); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, bool>::type 23376: is_integer(const T& x) { 23376: return Checked::is_int 23376: ::Policy>(Native_Checked_From_Wrapper::raw_value(x)); 23376: } 23376: 23376: template 23376: inline 23376: Checked_Number::operator T() const { 23376: if (Policy::convertible) { 23376: return v; 23376: } 23376: } 23376: 23376: template 23376: inline T& 23376: Checked_Number::raw_value() { 23376: return v; 23376: } 23376: 23376: template 23376: inline const T& 23376: Checked_Number::raw_value() const { 23376: return v; 23376: } 23376: 23376: 23376: template 23376: inline const T& 23376: raw_value(const Checked_Number& x) { 23376: return x.raw_value(); 23376: } 23376: 23376: 23376: template 23376: inline T& 23376: raw_value(Checked_Number& x) { 23376: return x.raw_value(); 23376: } 23376: 23376: template 23376: inline bool 23376: Checked_Number::OK() const { 23376: return true; 23376: } 23376: 23376: template 23376: inline Result 23376: Checked_Number::classify(bool nan, bool inf, bool sign) const { 23376: return Checked::classify(v, nan, inf, sign); 23376: } 23376: 23376: template 23376: inline bool 23376: is_not_a_number(const Checked_Number& x) { 23376: return Checked::is_nan(x.raw_value()); 23376: } 23376: 23376: template 23376: inline bool 23376: is_minus_infinity(const Checked_Number& x) { 23376: return Checked::is_minf(x.raw_value()); 23376: } 23376: 23376: template 23376: inline bool 23376: is_plus_infinity(const Checked_Number& x) { 23376: return Checked::is_pinf(x.raw_value()); 23376: } 23376: 23376: 23376: template 23376: inline memory_size_type 23376: total_memory_in_bytes(const Checked_Number& x) { 23376: return total_memory_in_bytes(x.raw_value()); 23376: } 23376: 23376: 23376: template 23376: inline memory_size_type 23376: external_memory_in_bytes(const Checked_Number& x) { 23376: return external_memory_in_bytes(x.raw_value()); 23376: } 23376: 23376: 23376: 23376: template 23376: inline typename Enable_If::value, Result>::type 23376: assign_r(To& to, const char* x, Rounding_Dir dir) { 23376: std::istringstream s(x); 23376: return check_result(Checked::input 23376: ::Policy>(Native_Checked_To_Wrapper::raw_value(to), 23376: s, 23376: rounding_dir(dir)), 23376: dir); 23376: } 23376: # 365 "../../src/Checked_Number_inlines.hh" 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type construct(To& to, const From& x, Rounding_Dir dir) { return check_result(Checked::construct_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type assign_r(To& to, const From& x, Rounding_Dir dir) { return check_result(Checked::assign_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type floor_assign_r(To& to, const From& x, Rounding_Dir dir) { return check_result(Checked::floor_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type ceil_assign_r(To& to, const From& x, Rounding_Dir dir) { return check_result(Checked::ceil_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type trunc_assign_r(To& to, const From& x, Rounding_Dir dir) { return check_result(Checked::trunc_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type neg_assign_r(To& to, const From& x, Rounding_Dir dir) { return check_result(Checked::neg_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type abs_assign_r(To& to, const From& x, Rounding_Dir dir) { return check_result(Checked::abs_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type sqrt_assign_r(To& to, const From& x, Rounding_Dir dir) { return check_result(Checked::sqrt_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), rounding_dir(dir)), dir); } 23376: # 393 "../../src/Checked_Number_inlines.hh" 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type add_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { return check_result(Checked::add_2exp_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), exp, rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type sub_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { return check_result(Checked::sub_2exp_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), exp, rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type mul_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { return check_result(Checked::mul_2exp_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), exp, rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type div_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { return check_result(Checked::div_2exp_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), exp, rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type smod_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { return check_result(Checked::smod_2exp_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), exp, rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, Result>::type umod_2exp_assign_r(To& to, const From& x, unsigned int exp, Rounding_Dir dir) { return check_result(Checked::umod_2exp_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), exp, rounding_dir(dir)), dir); } 23376: # 422 "../../src/Checked_Number_inlines.hh" 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type add_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::add_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type sub_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::sub_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type mul_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::mul_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type div_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::div_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type idiv_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::idiv_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type rem_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::rem_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type gcd_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::gcd_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type lcm_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::lcm_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type add_mul_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::add_mul_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type sub_mul_assign_r(To& to, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::sub_mul_ext ::Policy, typename Native_Checked_From_Wrapper ::Policy, typename Native_Checked_From_Wrapper ::Policy>(Native_Checked_To_Wrapper::raw_value(to), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: # 464 "../../src/Checked_Number_inlines.hh" 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value && Is_Native_Or_Checked::value, Result>::type gcdext_assign_r(To1& to, To2& s, To3& t, const From1& x, const From2& y, Rounding_Dir dir) { return check_result(Checked::gcdext_ext::Policy, typename Native_Checked_To_Wrapper::Policy, typename Native_Checked_To_Wrapper::Policy, typename Native_Checked_From_Wrapper::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_To_Wrapper::raw_value(to), Native_Checked_To_Wrapper::raw_value(s), Native_Checked_To_Wrapper::raw_value(t), Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y), rounding_dir(dir)), dir); } 23376: # 485 "../../src/Checked_Number_inlines.hh" 23376: template inline Checked_Number& Checked_Number::operator ++() { Policy::handle_result((add_assign_r)(*this, *this, T(1), Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template inline Checked_Number Checked_Number::operator ++(int) { T r = v; Policy::handle_result((add_assign_r)(*this, *this, T(1), Policy::ROUND_DEFAULT_OPERATOR)); return r;} 23376: template inline Checked_Number& Checked_Number::operator --() { Policy::handle_result((sub_assign_r)(*this, *this, T(1), Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template inline Checked_Number Checked_Number::operator --(int) { T r = v; Policy::handle_result((sub_assign_r)(*this, *this, T(1), Policy::ROUND_DEFAULT_OPERATOR)); return r;} 23376: 23376: 23376: 23376: template 23376: inline Checked_Number& 23376: Checked_Number::operator=(const Checked_Number& y) { 23376: Checked::copy(v, y.raw_value()); 23376: return *this; 23376: } 23376: template 23376: template 23376: inline Checked_Number& 23376: Checked_Number::operator=(const From& y) { 23376: Policy::handle_result(assign_r(*this, y, Policy::ROUND_DEFAULT_OPERATOR)); 23376: return *this; 23376: } 23376: # 531 "../../src/Checked_Number_inlines.hh" 23376: template template inline Checked_Number& Checked_Number::operator +=(const Checked_Number& y) { Policy::handle_result((add_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template inline Checked_Number& Checked_Number::operator +=(const T& y) { Policy::handle_result((add_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template template inline typename Enable_If::value, Checked_Number& >::type Checked_Number::operator +=(const From& y) { Checked_Number cy(y); Policy::handle_result((add_assign_r)(*this, *this, cy, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } 23376: template template inline Checked_Number& Checked_Number::operator -=(const Checked_Number& y) { Policy::handle_result((sub_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template inline Checked_Number& Checked_Number::operator -=(const T& y) { Policy::handle_result((sub_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template template inline typename Enable_If::value, Checked_Number& >::type Checked_Number::operator -=(const From& y) { Checked_Number cy(y); Policy::handle_result((sub_assign_r)(*this, *this, cy, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } 23376: template template inline Checked_Number& Checked_Number::operator *=(const Checked_Number& y) { Policy::handle_result((mul_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template inline Checked_Number& Checked_Number::operator *=(const T& y) { Policy::handle_result((mul_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template template inline typename Enable_If::value, Checked_Number& >::type Checked_Number::operator *=(const From& y) { Checked_Number cy(y); Policy::handle_result((mul_assign_r)(*this, *this, cy, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } 23376: template template inline Checked_Number& Checked_Number::operator /=(const Checked_Number& y) { Policy::handle_result((div_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template inline Checked_Number& Checked_Number::operator /=(const T& y) { Policy::handle_result((div_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template template inline typename Enable_If::value, Checked_Number& >::type Checked_Number::operator /=(const From& y) { Checked_Number cy(y); Policy::handle_result((div_assign_r)(*this, *this, cy, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } 23376: template template inline Checked_Number& Checked_Number::operator %=(const Checked_Number& y) { Policy::handle_result((rem_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template inline Checked_Number& Checked_Number::operator %=(const T& y) { Policy::handle_result((rem_assign_r)(*this, *this, y, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } template template inline typename Enable_If::value, Checked_Number& >::type Checked_Number::operator %=(const From& y) { Checked_Number cy(y); Policy::handle_result((rem_assign_r)(*this, *this, cy, Policy::ROUND_DEFAULT_OPERATOR)); return *this; } 23376: # 565 "../../src/Checked_Number_inlines.hh" 23376: template inline Checked_Number operator +(const Checked_Number& x, const Checked_Number& y) { Checked_Number r; Policy::handle_result((add_assign_r)(r, x, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator +(const Type& x, const Checked_Number& y) { Checked_Number r(x); Policy::handle_result((add_assign_r)(r, r, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator +(const Checked_Number& x, const Type& y) { Checked_Number r(y); Policy::handle_result((add_assign_r)(r, x, r, Policy::ROUND_DEFAULT_OPERATOR)); return r; } 23376: template inline Checked_Number operator -(const Checked_Number& x, const Checked_Number& y) { Checked_Number r; Policy::handle_result((sub_assign_r)(r, x, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator -(const Type& x, const Checked_Number& y) { Checked_Number r(x); Policy::handle_result((sub_assign_r)(r, r, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator -(const Checked_Number& x, const Type& y) { Checked_Number r(y); Policy::handle_result((sub_assign_r)(r, x, r, Policy::ROUND_DEFAULT_OPERATOR)); return r; } 23376: template inline Checked_Number operator *(const Checked_Number& x, const Checked_Number& y) { Checked_Number r; Policy::handle_result((mul_assign_r)(r, x, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator *(const Type& x, const Checked_Number& y) { Checked_Number r(x); Policy::handle_result((mul_assign_r)(r, r, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator *(const Checked_Number& x, const Type& y) { Checked_Number r(y); Policy::handle_result((mul_assign_r)(r, x, r, Policy::ROUND_DEFAULT_OPERATOR)); return r; } 23376: template inline Checked_Number operator /(const Checked_Number& x, const Checked_Number& y) { Checked_Number r; Policy::handle_result((div_assign_r)(r, x, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator /(const Type& x, const Checked_Number& y) { Checked_Number r(x); Policy::handle_result((div_assign_r)(r, r, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator /(const Checked_Number& x, const Type& y) { Checked_Number r(y); Policy::handle_result((div_assign_r)(r, x, r, Policy::ROUND_DEFAULT_OPERATOR)); return r; } 23376: template inline Checked_Number operator %(const Checked_Number& x, const Checked_Number& y) { Checked_Number r; Policy::handle_result((rem_assign_r)(r, x, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator %(const Type& x, const Checked_Number& y) { Checked_Number r(x); Policy::handle_result((rem_assign_r)(r, r, y, Policy::ROUND_DEFAULT_OPERATOR)); return r; } template inline typename Enable_If::value, Checked_Number >::type operator %(const Checked_Number& x, const Type& y) { Checked_Number r(y); Policy::handle_result((rem_assign_r)(r, x, r, Policy::ROUND_DEFAULT_OPERATOR)); return r; } 23376: # 587 "../../src/Checked_Number_inlines.hh" 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && (Is_Checked::value || Is_Checked::value), bool>::type operator ==(const T1& x, const T2& y) { return Checked::eq_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && (Is_Checked::value || Is_Checked::value), bool>::type operator !=(const T1& x, const T2& y) { return Checked::ne_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && (Is_Checked::value || Is_Checked::value), bool>::type operator >=(const T1& x, const T2& y) { return Checked::ge_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && (Is_Checked::value || Is_Checked::value), bool>::type operator >(const T1& x, const T2& y) { return Checked::gt_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && (Is_Checked::value || Is_Checked::value), bool>::type operator <=(const T1& x, const T2& y) { return Checked::le_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value && (Is_Checked::value || Is_Checked::value), bool>::type operator <(const T1& x, const T2& y) { return Checked::lt_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: # 608 "../../src/Checked_Number_inlines.hh" 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, bool>::type equal(const T1& x, const T2& y) { return Checked::eq_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, bool>::type not_equal(const T1& x, const T2& y) { return Checked::ne_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, bool>::type greater_or_equal(const T1& x, const T2& y) { return Checked::ge_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, bool>::type greater_than(const T1& x, const T2& y) { return Checked::gt_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, bool>::type less_or_equal(const T1& x, const T2& y) { return Checked::le_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: template inline typename Enable_If::value && Is_Native_Or_Checked::value, bool>::type less_than(const T1& x, const T2& y) { return Checked::lt_ext::Policy, typename Native_Checked_From_Wrapper::Policy> (Native_Checked_From_Wrapper::raw_value(x), Native_Checked_From_Wrapper::raw_value(y)); } 23376: 23376: 23376: 23376: 23376: template 23376: inline Checked_Number 23376: operator+(const Checked_Number& x) { 23376: return x; 23376: } 23376: 23376: 23376: template 23376: inline Checked_Number 23376: operator-(const Checked_Number& x) { 23376: Checked_Number r; 23376: Policy::handle_result(neg_assign_r(r, x, Policy::ROUND_DEFAULT_OPERATOR)); 23376: return r; 23376: } 23376: # 665 "../../src/Checked_Number_inlines.hh" 23376: template inline void sqrt_assign(Checked_Number& x, const Checked_Number& y) { Policy::handle_result((sqrt_assign_r)(x, y, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void floor_assign(Checked_Number& x) { Policy::handle_result((floor_assign_r)(x, x, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: template inline void floor_assign(Checked_Number& x, const Checked_Number& y) { Policy::handle_result((floor_assign_r)(x, y, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void ceil_assign(Checked_Number& x) { Policy::handle_result((ceil_assign_r)(x, x, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: template inline void ceil_assign(Checked_Number& x, const Checked_Number& y) { Policy::handle_result((ceil_assign_r)(x, y, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void trunc_assign(Checked_Number& x) { Policy::handle_result((trunc_assign_r)(x, x, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: template inline void trunc_assign(Checked_Number& x, const Checked_Number& y) { Policy::handle_result((trunc_assign_r)(x, y, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void neg_assign(Checked_Number& x) { Policy::handle_result((neg_assign_r)(x, x, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: template inline void neg_assign(Checked_Number& x, const Checked_Number& y) { Policy::handle_result((neg_assign_r)(x, y, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void abs_assign(Checked_Number& x) { Policy::handle_result((abs_assign_r)(x, x, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: template inline void abs_assign(Checked_Number& x, const Checked_Number& y) { Policy::handle_result((abs_assign_r)(x, y, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void add_mul_assign(Checked_Number& x, const Checked_Number& y, const Checked_Number& z) { Policy::handle_result((add_mul_assign_r)(x, y, z, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void sub_mul_assign(Checked_Number& x, const Checked_Number& y, const Checked_Number& z) { Policy::handle_result((sub_mul_assign_r)(x, y, z, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void rem_assign(Checked_Number& x, const Checked_Number& y, const Checked_Number& z) { Policy::handle_result((rem_assign_r)(x, y, z, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void gcd_assign(Checked_Number& x, const Checked_Number& y, const Checked_Number& z) { Policy::handle_result((gcd_assign_r)(x, y, z, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void gcdext_assign(Checked_Number& x, Checked_Number& s, Checked_Number& t, const Checked_Number& y, const Checked_Number& z) { Policy::handle_result((gcdext_assign_r)(x, s, t, y, z, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template inline void lcm_assign(Checked_Number& x, const Checked_Number& y, const Checked_Number& z) { Policy::handle_result((lcm_assign_r)(x, y, z, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: # 708 "../../src/Checked_Number_inlines.hh" 23376: template inline void mul_2exp_assign(Checked_Number& x, const Checked_Number& y, unsigned int exp) { Policy::handle_result((mul_2exp_assign_r)(x, y, exp, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: template inline void div_2exp_assign(Checked_Number& x, const Checked_Number& y, unsigned int exp) { Policy::handle_result((div_2exp_assign_r)(x, y, exp, Policy::ROUND_DEFAULT_FUNCTION)); } 23376: 23376: template 23376: inline void 23376: exact_div_assign(Checked_Number& x, 23376: const Checked_Number& y, 23376: const Checked_Number& z) { 23376: Policy::handle_result(div_assign_r(x, y, z, ROUND_NOT_NEEDED)); 23376: } 23376: 23376: 23376: template 23376: inline typename Enable_If::value, int>::type 23376: sgn(const From& x) { 23376: Result_Relation r 23376: = Checked::sgn_ext::Policy> 23376: (Native_Checked_From_Wrapper::raw_value(x)); 23376: switch (r) { 23376: case VR_LT: 23376: return -1; 23376: case VR_EQ: 23376: return 0; 23376: case VR_GT: 23376: return 1; 23376: default: 23376: throw(0); 23376: } 23376: } 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Is_Native_Or_Checked::value, 23376: int>::type 23376: cmp(const From1& x, const From2& y) { 23376: Result_Relation r 23376: = Checked::cmp_ext::Policy, 23376: typename Native_Checked_From_Wrapper::Policy> 23376: (Native_Checked_From_Wrapper::raw_value(x), 23376: Native_Checked_From_Wrapper::raw_value(y)); 23376: switch (r) { 23376: case VR_LT: 23376: return -1; 23376: case VR_EQ: 23376: return 0; 23376: case VR_GT: 23376: return 1; 23376: default: 23376: throw(0); 23376: } 23376: } 23376: 23376: 23376: template 23376: typename Enable_If::value, Result>::type 23376: output(std::ostream& os, const T& x, 23376: const Numeric_Format& format, Rounding_Dir dir) { 23376: return check_result(Checked::output_ext::Policy> 23376: (os, 23376: Native_Checked_From_Wrapper::raw_value(x), 23376: format, 23376: rounding_dir(dir)), 23376: dir); 23376: } 23376: 23376: 23376: template 23376: inline std::ostream& 23376: operator<<(std::ostream& os, const Checked_Number& x) { 23376: Policy::handle_result(output(os, x, Numeric_Format(), ROUND_IGNORE)); 23376: return os; 23376: } 23376: 23376: 23376: template 23376: typename Enable_If::value, Result>::type 23376: input(T& x, std::istream& is, Rounding_Dir dir) { 23376: return check_result(Checked::input_ext::Policy> 23376: (Native_Checked_To_Wrapper::raw_value(x), 23376: is, 23376: rounding_dir(dir)), 23376: dir); 23376: } 23376: 23376: 23376: template 23376: inline std::istream& operator>>(std::istream& is, 23376: Checked_Number& x) { 23376: Result r = input(x, is, Policy::ROUND_DEFAULT_INPUT); 23376: if (r == V_CVT_STR_UNK) { 23376: is.setstate(std::ios::failbit); 23376: } 23376: else { 23376: Policy::handle_result(r); 23376: } 23376: return is; 23376: } 23376: 23376: template 23376: inline T 23376: plus_infinity() { 23376: return PLUS_INFINITY; 23376: } 23376: 23376: template 23376: inline T 23376: minus_infinity() { 23376: return MINUS_INFINITY; 23376: } 23376: 23376: template 23376: inline T 23376: not_a_number() { 23376: return NOT_A_NUMBER; 23376: } 23376: 23376: 23376: template 23376: inline void 23376: swap(Checked_Number& x, Checked_Number& y) { 23376: using std::swap; 23376: swap(x.raw_value(), y.raw_value()); 23376: } 23376: 23376: template 23376: inline void 23376: maybe_reset_fpu_inexact() { 23376: if (FPU_Related::value) { 23376: return fpu_reset_inexact(); 23376: } 23376: } 23376: 23376: template 23376: inline int 23376: maybe_check_fpu_inexact() { 23376: if (FPU_Related::value) { 23376: return fpu_check_inexact(); 23376: } 23376: else { 23376: return 0; 23376: } 23376: } 23376: 23376: } 23376: # 1068 "../../src/Checked_Number_defs.hh" 2 23376: # 1 "../../src/Checked_Number_templates.hh" 1 23376: # 28 "../../src/Checked_Number_templates.hh" 23376: # 1 "/usr/include/c++/8/iomanip" 1 3 23376: # 36 "/usr/include/c++/8/iomanip" 3 23376: 23376: # 37 "/usr/include/c++/8/iomanip" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/locale" 1 3 23376: # 36 "/usr/include/c++/8/locale" 3 23376: 23376: # 37 "/usr/include/c++/8/locale" 3 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/locale_facets_nonio.h" 1 3 23376: # 37 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: 23376: # 38 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: 23376: # 1 "/usr/include/c++/8/ctime" 1 3 23376: # 39 "/usr/include/c++/8/ctime" 3 23376: 23376: # 40 "/usr/include/c++/8/ctime" 3 23376: # 58 "/usr/include/c++/8/ctime" 3 23376: 23376: # 58 "/usr/include/c++/8/ctime" 3 23376: namespace std 23376: { 23376: using ::clock_t; 23376: using ::time_t; 23376: using ::tm; 23376: 23376: using ::clock; 23376: using ::difftime; 23376: using ::mktime; 23376: using ::time; 23376: using ::asctime; 23376: using ::ctime; 23376: using ::gmtime; 23376: using ::localtime; 23376: using ::strftime; 23376: } 23376: # 40 "/usr/include/c++/8/bits/locale_facets_nonio.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 52 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: class time_base 23376: { 23376: public: 23376: enum dateorder { no_order, dmy, mdy, ymd, ydm }; 23376: }; 23376: 23376: template 23376: struct __timepunct_cache : public locale::facet 23376: { 23376: 23376: static const _CharT* _S_timezones[14]; 23376: 23376: const _CharT* _M_date_format; 23376: const _CharT* _M_date_era_format; 23376: const _CharT* _M_time_format; 23376: const _CharT* _M_time_era_format; 23376: const _CharT* _M_date_time_format; 23376: const _CharT* _M_date_time_era_format; 23376: const _CharT* _M_am; 23376: const _CharT* _M_pm; 23376: const _CharT* _M_am_pm_format; 23376: 23376: 23376: const _CharT* _M_day1; 23376: const _CharT* _M_day2; 23376: const _CharT* _M_day3; 23376: const _CharT* _M_day4; 23376: const _CharT* _M_day5; 23376: const _CharT* _M_day6; 23376: const _CharT* _M_day7; 23376: 23376: 23376: const _CharT* _M_aday1; 23376: const _CharT* _M_aday2; 23376: const _CharT* _M_aday3; 23376: const _CharT* _M_aday4; 23376: const _CharT* _M_aday5; 23376: const _CharT* _M_aday6; 23376: const _CharT* _M_aday7; 23376: 23376: 23376: const _CharT* _M_month01; 23376: const _CharT* _M_month02; 23376: const _CharT* _M_month03; 23376: const _CharT* _M_month04; 23376: const _CharT* _M_month05; 23376: const _CharT* _M_month06; 23376: const _CharT* _M_month07; 23376: const _CharT* _M_month08; 23376: const _CharT* _M_month09; 23376: const _CharT* _M_month10; 23376: const _CharT* _M_month11; 23376: const _CharT* _M_month12; 23376: 23376: 23376: const _CharT* _M_amonth01; 23376: const _CharT* _M_amonth02; 23376: const _CharT* _M_amonth03; 23376: const _CharT* _M_amonth04; 23376: const _CharT* _M_amonth05; 23376: const _CharT* _M_amonth06; 23376: const _CharT* _M_amonth07; 23376: const _CharT* _M_amonth08; 23376: const _CharT* _M_amonth09; 23376: const _CharT* _M_amonth10; 23376: const _CharT* _M_amonth11; 23376: const _CharT* _M_amonth12; 23376: 23376: bool _M_allocated; 23376: 23376: __timepunct_cache(size_t __refs = 0) : facet(__refs), 23376: _M_date_format(0), _M_date_era_format(0), _M_time_format(0), 23376: _M_time_era_format(0), _M_date_time_format(0), 23376: _M_date_time_era_format(0), _M_am(0), _M_pm(0), 23376: _M_am_pm_format(0), _M_day1(0), _M_day2(0), _M_day3(0), 23376: _M_day4(0), _M_day5(0), _M_day6(0), _M_day7(0), 23376: _M_aday1(0), _M_aday2(0), _M_aday3(0), _M_aday4(0), 23376: _M_aday5(0), _M_aday6(0), _M_aday7(0), _M_month01(0), 23376: _M_month02(0), _M_month03(0), _M_month04(0), _M_month05(0), 23376: _M_month06(0), _M_month07(0), _M_month08(0), _M_month09(0), 23376: _M_month10(0), _M_month11(0), _M_month12(0), _M_amonth01(0), 23376: _M_amonth02(0), _M_amonth03(0), _M_amonth04(0), 23376: _M_amonth05(0), _M_amonth06(0), _M_amonth07(0), 23376: _M_amonth08(0), _M_amonth09(0), _M_amonth10(0), 23376: _M_amonth11(0), _M_amonth12(0), _M_allocated(false) 23376: { } 23376: 23376: ~__timepunct_cache(); 23376: 23376: private: 23376: __timepunct_cache& 23376: operator=(const __timepunct_cache&); 23376: 23376: explicit 23376: __timepunct_cache(const __timepunct_cache&); 23376: }; 23376: 23376: template 23376: __timepunct_cache<_CharT>::~__timepunct_cache() 23376: { 23376: if (_M_allocated) 23376: { 23376: 23376: } 23376: } 23376: 23376: 23376: template<> 23376: const char* 23376: __timepunct_cache::_S_timezones[14]; 23376: 23376: 23376: template<> 23376: const wchar_t* 23376: __timepunct_cache::_S_timezones[14]; 23376: 23376: 23376: 23376: template 23376: const _CharT* __timepunct_cache<_CharT>::_S_timezones[14]; 23376: 23376: template 23376: class __timepunct : public locale::facet 23376: { 23376: public: 23376: 23376: typedef _CharT __char_type; 23376: typedef __timepunct_cache<_CharT> __cache_type; 23376: 23376: protected: 23376: __cache_type* _M_data; 23376: __c_locale _M_c_locale_timepunct; 23376: const char* _M_name_timepunct; 23376: 23376: public: 23376: 23376: static locale::id id; 23376: 23376: explicit 23376: __timepunct(size_t __refs = 0); 23376: 23376: explicit 23376: __timepunct(__cache_type* __cache, size_t __refs = 0); 23376: # 206 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0); 23376: 23376: 23376: 23376: void 23376: _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, 23376: const tm* __tm) const throw (); 23376: 23376: void 23376: _M_date_formats(const _CharT** __date) const 23376: { 23376: 23376: __date[0] = _M_data->_M_date_format; 23376: __date[1] = _M_data->_M_date_era_format; 23376: } 23376: 23376: void 23376: _M_time_formats(const _CharT** __time) const 23376: { 23376: 23376: __time[0] = _M_data->_M_time_format; 23376: __time[1] = _M_data->_M_time_era_format; 23376: } 23376: 23376: void 23376: _M_date_time_formats(const _CharT** __dt) const 23376: { 23376: 23376: __dt[0] = _M_data->_M_date_time_format; 23376: __dt[1] = _M_data->_M_date_time_era_format; 23376: } 23376: 23376: 23376: void 23376: _M_am_pm_format(const _CharT*) const 23376: { } 23376: 23376: 23376: void 23376: _M_am_pm(const _CharT** __ampm) const 23376: { 23376: __ampm[0] = _M_data->_M_am; 23376: __ampm[1] = _M_data->_M_pm; 23376: } 23376: 23376: void 23376: _M_days(const _CharT** __days) const 23376: { 23376: __days[0] = _M_data->_M_day1; 23376: __days[1] = _M_data->_M_day2; 23376: __days[2] = _M_data->_M_day3; 23376: __days[3] = _M_data->_M_day4; 23376: __days[4] = _M_data->_M_day5; 23376: __days[5] = _M_data->_M_day6; 23376: __days[6] = _M_data->_M_day7; 23376: } 23376: 23376: void 23376: _M_days_abbreviated(const _CharT** __days) const 23376: { 23376: __days[0] = _M_data->_M_aday1; 23376: __days[1] = _M_data->_M_aday2; 23376: __days[2] = _M_data->_M_aday3; 23376: __days[3] = _M_data->_M_aday4; 23376: __days[4] = _M_data->_M_aday5; 23376: __days[5] = _M_data->_M_aday6; 23376: __days[6] = _M_data->_M_aday7; 23376: } 23376: 23376: void 23376: _M_months(const _CharT** __months) const 23376: { 23376: __months[0] = _M_data->_M_month01; 23376: __months[1] = _M_data->_M_month02; 23376: __months[2] = _M_data->_M_month03; 23376: __months[3] = _M_data->_M_month04; 23376: __months[4] = _M_data->_M_month05; 23376: __months[5] = _M_data->_M_month06; 23376: __months[6] = _M_data->_M_month07; 23376: __months[7] = _M_data->_M_month08; 23376: __months[8] = _M_data->_M_month09; 23376: __months[9] = _M_data->_M_month10; 23376: __months[10] = _M_data->_M_month11; 23376: __months[11] = _M_data->_M_month12; 23376: } 23376: 23376: void 23376: _M_months_abbreviated(const _CharT** __months) const 23376: { 23376: __months[0] = _M_data->_M_amonth01; 23376: __months[1] = _M_data->_M_amonth02; 23376: __months[2] = _M_data->_M_amonth03; 23376: __months[3] = _M_data->_M_amonth04; 23376: __months[4] = _M_data->_M_amonth05; 23376: __months[5] = _M_data->_M_amonth06; 23376: __months[6] = _M_data->_M_amonth07; 23376: __months[7] = _M_data->_M_amonth08; 23376: __months[8] = _M_data->_M_amonth09; 23376: __months[9] = _M_data->_M_amonth10; 23376: __months[10] = _M_data->_M_amonth11; 23376: __months[11] = _M_data->_M_amonth12; 23376: } 23376: 23376: protected: 23376: virtual 23376: ~__timepunct(); 23376: 23376: 23376: void 23376: _M_initialize_timepunct(__c_locale __cloc = 0); 23376: }; 23376: 23376: template 23376: locale::id __timepunct<_CharT>::id; 23376: 23376: 23376: template<> 23376: void 23376: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 23376: 23376: template<> 23376: void 23376: __timepunct::_M_put(char*, size_t, const char*, const tm*) const throw (); 23376: 23376: 23376: template<> 23376: void 23376: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 23376: 23376: template<> 23376: void 23376: __timepunct::_M_put(wchar_t*, size_t, const wchar_t*, 23376: const tm*) const throw (); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/time_members.h" 1 3 23376: # 37 "/usr/include/arm-linux-gnueabihf/c++/8/bits/time_members.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: __timepunct<_CharT>::__timepunct(size_t __refs) 23376: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 23376: _M_name_timepunct(_S_get_c_name()) 23376: { _M_initialize_timepunct(); } 23376: 23376: template 23376: __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 23376: : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(0), 23376: _M_name_timepunct(_S_get_c_name()) 23376: { _M_initialize_timepunct(); } 23376: 23376: template 23376: __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, 23376: size_t __refs) 23376: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 23376: _M_name_timepunct(0) 23376: { 23376: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 23376: { 23376: const size_t __len = __builtin_strlen(__s) + 1; 23376: char* __tmp = new char[__len]; 23376: __builtin_memcpy(__tmp, __s, __len); 23376: _M_name_timepunct = __tmp; 23376: } 23376: else 23376: _M_name_timepunct = _S_get_c_name(); 23376: 23376: try 23376: { _M_initialize_timepunct(__cloc); } 23376: catch(...) 23376: { 23376: if (_M_name_timepunct != _S_get_c_name()) 23376: delete [] _M_name_timepunct; 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: __timepunct<_CharT>::~__timepunct() 23376: { 23376: if (_M_name_timepunct != _S_get_c_name()) 23376: delete [] _M_name_timepunct; 23376: delete _M_data; 23376: _S_destroy_c_locale(_M_c_locale_timepunct); 23376: } 23376: 23376: 23376: } 23376: # 347 "/usr/include/c++/8/bits/locale_facets_nonio.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: namespace __cxx11 { 23376: # 367 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: template 23376: class time_get : public locale::facet, public time_base 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _InIter iter_type; 23376: 23376: 23376: 23376: static locale::id id; 23376: # 388 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: time_get(size_t __refs = 0) 23376: : facet (__refs) { } 23376: # 405 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: dateorder 23376: date_order() const 23376: { return this->do_date_order(); } 23376: # 429 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: get_time(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const 23376: { return this->do_get_time(__beg, __end, __io, __err, __tm); } 23376: # 454 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: get_date(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const 23376: { return this->do_get_date(__beg, __end, __io, __err, __tm); } 23376: # 482 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const 23376: { return this->do_get_weekday(__beg, __end, __io, __err, __tm); } 23376: # 511 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: get_monthname(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const 23376: { return this->do_get_monthname(__beg, __end, __io, __err, __tm); } 23376: # 537 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: get_year(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const 23376: { return this->do_get_year(__beg, __end, __io, __err, __tm); } 23376: # 558 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: inline 23376: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm, char __format, 23376: char __modifier = 0) const 23376: { 23376: return this->do_get(__s, __end, __io, __err, __tm, __format, 23376: __modifier); 23376: } 23376: # 585 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 23376: const char_type* __fmtend) const; 23376: 23376: 23376: protected: 23376: 23376: virtual 23376: ~time_get() { } 23376: # 605 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual dateorder 23376: do_date_order() const; 23376: # 623 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const; 23376: # 642 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const; 23376: # 661 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_get_weekday(iter_type __beg, iter_type __end, ios_base&, 23376: ios_base::iostate& __err, tm* __tm) const; 23376: # 680 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_get_monthname(iter_type __beg, iter_type __end, ios_base&, 23376: ios_base::iostate& __err, tm* __tm) const; 23376: # 699 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const; 23376: # 722 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual 23376: 23376: iter_type 23376: do_get(iter_type __s, iter_type __end, ios_base& __f, 23376: ios_base::iostate& __err, tm* __tm, 23376: char __format, char __modifier) const; 23376: 23376: 23376: 23376: iter_type 23376: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 23376: int __min, int __max, size_t __len, 23376: ios_base& __io, ios_base::iostate& __err) const; 23376: 23376: 23376: iter_type 23376: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 23376: const _CharT** __names, size_t __indexlen, 23376: ios_base& __io, ios_base::iostate& __err) const; 23376: 23376: 23376: iter_type 23376: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 23376: const _CharT** __names, size_t __indexlen, 23376: ios_base& __io, ios_base::iostate& __err) const; 23376: 23376: 23376: iter_type 23376: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm, 23376: const _CharT* __format) const; 23376: }; 23376: 23376: template 23376: locale::id time_get<_CharT, _InIter>::id; 23376: 23376: 23376: template 23376: class time_get_byname : public time_get<_CharT, _InIter> 23376: { 23376: public: 23376: 23376: typedef _CharT char_type; 23376: typedef _InIter iter_type; 23376: 23376: explicit 23376: time_get_byname(const char*, size_t __refs = 0) 23376: : time_get<_CharT, _InIter>(__refs) { } 23376: 23376: 23376: explicit 23376: time_get_byname(const string& __s, size_t __refs = 0) 23376: : time_get_byname(__s.c_str(), __refs) { } 23376: 23376: 23376: protected: 23376: virtual 23376: ~time_get_byname() { } 23376: }; 23376: 23376: } 23376: # 796 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: template 23376: class time_put : public locale::facet 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _OutIter iter_type; 23376: 23376: 23376: 23376: static locale::id id; 23376: # 817 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: time_put(size_t __refs = 0) 23376: : facet(__refs) { } 23376: # 836 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 23376: const _CharT* __beg, const _CharT* __end) const; 23376: # 856 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: put(iter_type __s, ios_base& __io, char_type __fill, 23376: const tm* __tm, char __format, char __mod = 0) const 23376: { return this->do_put(__s, __io, __fill, __tm, __format, __mod); } 23376: 23376: protected: 23376: 23376: virtual 23376: ~time_put() 23376: { } 23376: # 883 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 23376: char __format, char __mod) const; 23376: }; 23376: 23376: template 23376: locale::id time_put<_CharT, _OutIter>::id; 23376: 23376: 23376: template 23376: class time_put_byname : public time_put<_CharT, _OutIter> 23376: { 23376: public: 23376: 23376: typedef _CharT char_type; 23376: typedef _OutIter iter_type; 23376: 23376: explicit 23376: time_put_byname(const char*, size_t __refs = 0) 23376: : time_put<_CharT, _OutIter>(__refs) 23376: { } 23376: 23376: 23376: explicit 23376: time_put_byname(const string& __s, size_t __refs = 0) 23376: : time_put_byname(__s.c_str(), __refs) { } 23376: 23376: 23376: protected: 23376: virtual 23376: ~time_put_byname() { } 23376: }; 23376: # 928 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: class money_base 23376: { 23376: public: 23376: enum part { none, space, symbol, sign, value }; 23376: struct pattern { char field[4]; }; 23376: 23376: static const pattern _S_default_pattern; 23376: 23376: enum 23376: { 23376: _S_minus, 23376: _S_zero, 23376: _S_end = 11 23376: }; 23376: 23376: 23376: 23376: static const char* _S_atoms; 23376: 23376: 23376: 23376: __attribute__ ((__const__)) static pattern 23376: _S_construct_pattern(char __precedes, char __space, char __posn) throw (); 23376: }; 23376: 23376: template 23376: struct __moneypunct_cache : public locale::facet 23376: { 23376: const char* _M_grouping; 23376: size_t _M_grouping_size; 23376: bool _M_use_grouping; 23376: _CharT _M_decimal_point; 23376: _CharT _M_thousands_sep; 23376: const _CharT* _M_curr_symbol; 23376: size_t _M_curr_symbol_size; 23376: const _CharT* _M_positive_sign; 23376: size_t _M_positive_sign_size; 23376: const _CharT* _M_negative_sign; 23376: size_t _M_negative_sign_size; 23376: int _M_frac_digits; 23376: money_base::pattern _M_pos_format; 23376: money_base::pattern _M_neg_format; 23376: 23376: 23376: 23376: 23376: _CharT _M_atoms[money_base::_S_end]; 23376: 23376: bool _M_allocated; 23376: 23376: __moneypunct_cache(size_t __refs = 0) : facet(__refs), 23376: _M_grouping(0), _M_grouping_size(0), _M_use_grouping(false), 23376: _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()), 23376: _M_curr_symbol(0), _M_curr_symbol_size(0), 23376: _M_positive_sign(0), _M_positive_sign_size(0), 23376: _M_negative_sign(0), _M_negative_sign_size(0), 23376: _M_frac_digits(0), 23376: _M_pos_format(money_base::pattern()), 23376: _M_neg_format(money_base::pattern()), _M_allocated(false) 23376: { } 23376: 23376: ~__moneypunct_cache(); 23376: 23376: void 23376: _M_cache(const locale& __loc); 23376: 23376: private: 23376: __moneypunct_cache& 23376: operator=(const __moneypunct_cache&); 23376: 23376: explicit 23376: __moneypunct_cache(const __moneypunct_cache&); 23376: }; 23376: 23376: template 23376: __moneypunct_cache<_CharT, _Intl>::~__moneypunct_cache() 23376: { 23376: if (_M_allocated) 23376: { 23376: delete [] _M_grouping; 23376: delete [] _M_curr_symbol; 23376: delete [] _M_positive_sign; 23376: delete [] _M_negative_sign; 23376: } 23376: } 23376: 23376: namespace __cxx11 { 23376: # 1023 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: template 23376: class moneypunct : public locale::facet, public money_base 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 23376: 23376: private: 23376: __cache_type* _M_data; 23376: 23376: public: 23376: 23376: 23376: static const bool intl = _Intl; 23376: 23376: static locale::id id; 23376: # 1052 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: moneypunct(size_t __refs = 0) 23376: : facet(__refs), _M_data(0) 23376: { _M_initialize_moneypunct(); } 23376: # 1065 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: moneypunct(__cache_type* __cache, size_t __refs = 0) 23376: : facet(__refs), _M_data(__cache) 23376: { _M_initialize_moneypunct(); } 23376: # 1080 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: moneypunct(__c_locale __cloc, const char* __s, size_t __refs = 0) 23376: : facet(__refs), _M_data(0) 23376: { _M_initialize_moneypunct(__cloc, __s); } 23376: # 1094 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: char_type 23376: decimal_point() const 23376: { return this->do_decimal_point(); } 23376: # 1107 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: char_type 23376: thousands_sep() const 23376: { return this->do_thousands_sep(); } 23376: # 1137 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: string 23376: grouping() const 23376: { return this->do_grouping(); } 23376: # 1150 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: string_type 23376: curr_symbol() const 23376: { return this->do_curr_symbol(); } 23376: # 1167 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: string_type 23376: positive_sign() const 23376: { return this->do_positive_sign(); } 23376: # 1184 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: string_type 23376: negative_sign() const 23376: { return this->do_negative_sign(); } 23376: # 1200 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: int 23376: frac_digits() const 23376: { return this->do_frac_digits(); } 23376: # 1236 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: pattern 23376: pos_format() const 23376: { return this->do_pos_format(); } 23376: 23376: pattern 23376: neg_format() const 23376: { return this->do_neg_format(); } 23376: 23376: 23376: protected: 23376: 23376: virtual 23376: ~moneypunct(); 23376: # 1258 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual char_type 23376: do_decimal_point() const 23376: { return _M_data->_M_decimal_point; } 23376: # 1270 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual char_type 23376: do_thousands_sep() const 23376: { return _M_data->_M_thousands_sep; } 23376: # 1283 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual string 23376: do_grouping() const 23376: { return _M_data->_M_grouping; } 23376: # 1296 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual string_type 23376: do_curr_symbol() const 23376: { return _M_data->_M_curr_symbol; } 23376: # 1309 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual string_type 23376: do_positive_sign() const 23376: { return _M_data->_M_positive_sign; } 23376: # 1322 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual string_type 23376: do_negative_sign() const 23376: { return _M_data->_M_negative_sign; } 23376: # 1336 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual int 23376: do_frac_digits() const 23376: { return _M_data->_M_frac_digits; } 23376: # 1350 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual pattern 23376: do_pos_format() const 23376: { return _M_data->_M_pos_format; } 23376: # 1364 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual pattern 23376: do_neg_format() const 23376: { return _M_data->_M_neg_format; } 23376: 23376: 23376: void 23376: _M_initialize_moneypunct(__c_locale __cloc = 0, 23376: const char* __name = 0); 23376: }; 23376: 23376: template 23376: locale::id moneypunct<_CharT, _Intl>::id; 23376: 23376: template 23376: const bool moneypunct<_CharT, _Intl>::intl; 23376: 23376: template<> 23376: moneypunct::~moneypunct(); 23376: 23376: template<> 23376: moneypunct::~moneypunct(); 23376: 23376: template<> 23376: void 23376: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 23376: 23376: template<> 23376: void 23376: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 23376: 23376: 23376: template<> 23376: moneypunct::~moneypunct(); 23376: 23376: template<> 23376: moneypunct::~moneypunct(); 23376: 23376: template<> 23376: void 23376: moneypunct::_M_initialize_moneypunct(__c_locale, 23376: const char*); 23376: 23376: template<> 23376: void 23376: moneypunct::_M_initialize_moneypunct(__c_locale, 23376: const char*); 23376: 23376: 23376: 23376: template 23376: class moneypunct_byname : public moneypunct<_CharT, _Intl> 23376: { 23376: public: 23376: typedef _CharT char_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: static const bool intl = _Intl; 23376: 23376: explicit 23376: moneypunct_byname(const char* __s, size_t __refs = 0) 23376: : moneypunct<_CharT, _Intl>(__refs) 23376: { 23376: if (__builtin_strcmp(__s, "C") != 0 23376: && __builtin_strcmp(__s, "POSIX") != 0) 23376: { 23376: __c_locale __tmp; 23376: this->_S_create_c_locale(__tmp, __s); 23376: this->_M_initialize_moneypunct(__tmp); 23376: this->_S_destroy_c_locale(__tmp); 23376: } 23376: } 23376: 23376: 23376: explicit 23376: moneypunct_byname(const string& __s, size_t __refs = 0) 23376: : moneypunct_byname(__s.c_str(), __refs) { } 23376: 23376: 23376: protected: 23376: virtual 23376: ~moneypunct_byname() { } 23376: }; 23376: 23376: template 23376: const bool moneypunct_byname<_CharT, _Intl>::intl; 23376: 23376: } 23376: 23376: namespace __cxx11 { 23376: # 1467 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: template 23376: class money_get : public locale::facet 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _InIter iter_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: 23376: 23376: static locale::id id; 23376: # 1489 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: money_get(size_t __refs = 0) : facet(__refs) { } 23376: # 1519 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 23376: ios_base::iostate& __err, long double& __units) const 23376: { return this->do_get(__s, __end, __intl, __io, __err, __units); } 23376: # 1550 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 23376: ios_base::iostate& __err, string_type& __digits) const 23376: { return this->do_get(__s, __end, __intl, __io, __err, __digits); } 23376: 23376: protected: 23376: 23376: virtual 23376: ~money_get() { } 23376: # 1574 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 23376: ios_base::iostate& __err, long double& __units) const; 23376: # 1586 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 23376: ios_base::iostate& __err, string_type& __digits) const; 23376: # 1598 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: template 23376: iter_type 23376: _M_extract(iter_type __s, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, string& __digits) const; 23376: }; 23376: 23376: template 23376: locale::id money_get<_CharT, _InIter>::id; 23376: # 1620 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: template 23376: class money_put : public locale::facet 23376: { 23376: public: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _OutIter iter_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: 23376: 23376: static locale::id id; 23376: # 1641 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: money_put(size_t __refs = 0) : facet(__refs) { } 23376: # 1661 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: put(iter_type __s, bool __intl, ios_base& __io, 23376: char_type __fill, long double __units) const 23376: { return this->do_put(__s, __intl, __io, __fill, __units); } 23376: # 1684 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: iter_type 23376: put(iter_type __s, bool __intl, ios_base& __io, 23376: char_type __fill, const string_type& __digits) const 23376: { return this->do_put(__s, __intl, __io, __fill, __digits); } 23376: 23376: protected: 23376: 23376: virtual 23376: ~money_put() { } 23376: # 1719 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 23376: long double __units) const; 23376: # 1743 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual iter_type 23376: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 23376: const string_type& __digits) const; 23376: # 1755 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: template 23376: iter_type 23376: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 23376: const string_type& __digits) const; 23376: }; 23376: 23376: template 23376: locale::id money_put<_CharT, _OutIter>::id; 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: struct messages_base 23376: { 23376: typedef int catalog; 23376: }; 23376: 23376: namespace __cxx11 { 23376: # 1798 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: template 23376: class messages : public locale::facet, public messages_base 23376: { 23376: public: 23376: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: 23376: protected: 23376: 23376: 23376: __c_locale _M_c_locale_messages; 23376: const char* _M_name_messages; 23376: 23376: public: 23376: 23376: static locale::id id; 23376: # 1826 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: messages(size_t __refs = 0); 23376: # 1840 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: explicit 23376: messages(__c_locale __cloc, const char* __s, size_t __refs = 0); 23376: # 1853 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: catalog 23376: open(const basic_string& __s, const locale& __loc) const 23376: { return this->do_open(__s, __loc); } 23376: # 1871 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: catalog 23376: open(const basic_string&, const locale&, const char*) const; 23376: # 1889 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: string_type 23376: get(catalog __c, int __set, int __msgid, const string_type& __s) const 23376: { return this->do_get(__c, __set, __msgid, __s); } 23376: # 1900 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: void 23376: close(catalog __c) const 23376: { return this->do_close(__c); } 23376: 23376: protected: 23376: 23376: virtual 23376: ~messages(); 23376: # 1920 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual catalog 23376: do_open(const basic_string&, const locale&) const; 23376: # 1939 "/usr/include/c++/8/bits/locale_facets_nonio.h" 3 23376: virtual string_type 23376: do_get(catalog, int, int, const string_type& __dfault) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual void 23376: do_close(catalog) const; 23376: 23376: 23376: char* 23376: _M_convert_to_char(const string_type& __msg) const 23376: { 23376: 23376: return reinterpret_cast(const_cast<_CharT*>(__msg.c_str())); 23376: } 23376: 23376: 23376: string_type 23376: _M_convert_from_char(char*) const 23376: { 23376: 23376: return string_type(); 23376: } 23376: }; 23376: 23376: template 23376: locale::id messages<_CharT>::id; 23376: 23376: 23376: template<> 23376: string 23376: messages::do_get(catalog, int, int, const string&) const; 23376: 23376: 23376: template<> 23376: wstring 23376: messages::do_get(catalog, int, int, const wstring&) const; 23376: 23376: 23376: 23376: template 23376: class messages_byname : public messages<_CharT> 23376: { 23376: public: 23376: typedef _CharT char_type; 23376: typedef basic_string<_CharT> string_type; 23376: 23376: explicit 23376: messages_byname(const char* __s, size_t __refs = 0); 23376: 23376: 23376: explicit 23376: messages_byname(const string& __s, size_t __refs = 0) 23376: : messages_byname(__s.c_str(), __refs) { } 23376: 23376: 23376: protected: 23376: virtual 23376: ~messages_byname() 23376: { } 23376: }; 23376: 23376: } 23376: 23376: 23376: } 23376: 23376: 23376: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/messages_members.h" 1 3 23376: # 36 "/usr/include/arm-linux-gnueabihf/c++/8/bits/messages_members.h" 3 23376: # 1 "/usr/include/libintl.h" 1 3 4 23376: # 34 "/usr/include/libintl.h" 3 4 23376: extern "C" { 23376: 23376: 23376: 23376: 23376: extern char *gettext (const char *__msgid) 23376: throw () __attribute__ ((__format_arg__ (1))); 23376: 23376: 23376: 23376: extern char *dgettext (const char *__domainname, const char *__msgid) 23376: throw () __attribute__ ((__format_arg__ (2))); 23376: extern char *__dgettext (const char *__domainname, const char *__msgid) 23376: throw () __attribute__ ((__format_arg__ (2))); 23376: 23376: 23376: 23376: extern char *dcgettext (const char *__domainname, 23376: const char *__msgid, int __category) 23376: throw () __attribute__ ((__format_arg__ (2))); 23376: extern char *__dcgettext (const char *__domainname, 23376: const char *__msgid, int __category) 23376: throw () __attribute__ ((__format_arg__ (2))); 23376: 23376: 23376: 23376: 23376: extern char *ngettext (const char *__msgid1, const char *__msgid2, 23376: unsigned long int __n) 23376: throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); 23376: 23376: 23376: 23376: extern char *dngettext (const char *__domainname, const char *__msgid1, 23376: const char *__msgid2, unsigned long int __n) 23376: throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 23376: 23376: 23376: 23376: extern char *dcngettext (const char *__domainname, const char *__msgid1, 23376: const char *__msgid2, unsigned long int __n, 23376: int __category) 23376: throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 23376: 23376: 23376: 23376: 23376: 23376: extern char *textdomain (const char *__domainname) throw (); 23376: 23376: 23376: 23376: extern char *bindtextdomain (const char *__domainname, 23376: const char *__dirname) throw (); 23376: 23376: 23376: 23376: extern char *bind_textdomain_codeset (const char *__domainname, 23376: const char *__codeset) throw (); 23376: # 121 "/usr/include/libintl.h" 3 4 23376: } 23376: # 37 "/usr/include/arm-linux-gnueabihf/c++/8/bits/messages_members.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: messages<_CharT>::messages(size_t __refs) 23376: : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 23376: _M_name_messages(_S_get_c_name()) 23376: { } 23376: 23376: template 23376: messages<_CharT>::messages(__c_locale __cloc, const char* __s, 23376: size_t __refs) 23376: : facet(__refs), _M_c_locale_messages(0), _M_name_messages(0) 23376: { 23376: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 23376: { 23376: const size_t __len = __builtin_strlen(__s) + 1; 23376: char* __tmp = new char[__len]; 23376: __builtin_memcpy(__tmp, __s, __len); 23376: _M_name_messages = __tmp; 23376: } 23376: else 23376: _M_name_messages = _S_get_c_name(); 23376: 23376: 23376: _M_c_locale_messages = _S_clone_c_locale(__cloc); 23376: } 23376: 23376: template 23376: typename messages<_CharT>::catalog 23376: messages<_CharT>::open(const basic_string& __s, const locale& __loc, 23376: const char* __dir) const 23376: { 23376: bindtextdomain(__s.c_str(), __dir); 23376: return this->do_open(__s, __loc); 23376: } 23376: 23376: 23376: template 23376: messages<_CharT>::~messages() 23376: { 23376: if (_M_name_messages != _S_get_c_name()) 23376: delete [] _M_name_messages; 23376: _S_destroy_c_locale(_M_c_locale_messages); 23376: } 23376: 23376: template 23376: typename messages<_CharT>::catalog 23376: messages<_CharT>::do_open(const basic_string& __s, 23376: const locale&) const 23376: { 23376: 23376: 23376: textdomain(__s.c_str()); 23376: return 0; 23376: } 23376: 23376: template 23376: void 23376: messages<_CharT>::do_close(catalog) const 23376: { } 23376: 23376: 23376: template 23376: messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) 23376: : messages<_CharT>(__refs) 23376: { 23376: if (this->_M_name_messages != locale::facet::_S_get_c_name()) 23376: { 23376: delete [] this->_M_name_messages; 23376: if (__builtin_strcmp(__s, locale::facet::_S_get_c_name()) != 0) 23376: { 23376: const size_t __len = __builtin_strlen(__s) + 1; 23376: char* __tmp = new char[__len]; 23376: __builtin_memcpy(__tmp, __s, __len); 23376: this->_M_name_messages = __tmp; 23376: } 23376: else 23376: this->_M_name_messages = locale::facet::_S_get_c_name(); 23376: } 23376: 23376: if (__builtin_strcmp(__s, "C") != 0 23376: && __builtin_strcmp(__s, "POSIX") != 0) 23376: { 23376: this->_S_destroy_c_locale(this->_M_c_locale_messages); 23376: this->_S_create_c_locale(this->_M_c_locale_messages, __s); 23376: } 23376: } 23376: 23376: 23376: template<> 23376: typename messages::catalog 23376: messages::do_open(const basic_string&, 23376: const locale&) const; 23376: 23376: template<> 23376: void 23376: messages::do_close(catalog) const; 23376: 23376: 23376: template<> 23376: typename messages::catalog 23376: messages::do_open(const basic_string&, 23376: const locale&) const; 23376: 23376: template<> 23376: void 23376: messages::do_close(catalog) const; 23376: 23376: 23376: 23376: } 23376: # 2011 "/usr/include/c++/8/bits/locale_facets_nonio.h" 2 3 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/codecvt.h" 1 3 23376: # 39 "/usr/include/c++/8/bits/codecvt.h" 3 23376: 23376: # 40 "/usr/include/c++/8/bits/codecvt.h" 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: class codecvt_base 23376: { 23376: public: 23376: enum result 23376: { 23376: ok, 23376: partial, 23376: error, 23376: noconv 23376: }; 23376: }; 23376: # 67 "/usr/include/c++/8/bits/codecvt.h" 3 23376: template 23376: class __codecvt_abstract_base 23376: : public locale::facet, public codecvt_base 23376: { 23376: public: 23376: 23376: typedef codecvt_base::result result; 23376: typedef _InternT intern_type; 23376: typedef _ExternT extern_type; 23376: typedef _StateT state_type; 23376: # 115 "/usr/include/c++/8/bits/codecvt.h" 3 23376: result 23376: out(state_type& __state, const intern_type* __from, 23376: const intern_type* __from_end, const intern_type*& __from_next, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const 23376: { 23376: return this->do_out(__state, __from, __from_end, __from_next, 23376: __to, __to_end, __to_next); 23376: } 23376: # 154 "/usr/include/c++/8/bits/codecvt.h" 3 23376: result 23376: unshift(state_type& __state, extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const 23376: { return this->do_unshift(__state, __to,__to_end,__to_next); } 23376: # 195 "/usr/include/c++/8/bits/codecvt.h" 3 23376: result 23376: in(state_type& __state, const extern_type* __from, 23376: const extern_type* __from_end, const extern_type*& __from_next, 23376: intern_type* __to, intern_type* __to_end, 23376: intern_type*& __to_next) const 23376: { 23376: return this->do_in(__state, __from, __from_end, __from_next, 23376: __to, __to_end, __to_next); 23376: } 23376: 23376: int 23376: encoding() const throw() 23376: { return this->do_encoding(); } 23376: 23376: bool 23376: always_noconv() const throw() 23376: { return this->do_always_noconv(); } 23376: 23376: int 23376: length(state_type& __state, const extern_type* __from, 23376: const extern_type* __end, size_t __max) const 23376: { return this->do_length(__state, __from, __end, __max); } 23376: 23376: int 23376: max_length() const throw() 23376: { return this->do_max_length(); } 23376: 23376: protected: 23376: explicit 23376: __codecvt_abstract_base(size_t __refs = 0) : locale::facet(__refs) { } 23376: 23376: virtual 23376: ~__codecvt_abstract_base() { } 23376: # 236 "/usr/include/c++/8/bits/codecvt.h" 3 23376: virtual result 23376: do_out(state_type& __state, const intern_type* __from, 23376: const intern_type* __from_end, const intern_type*& __from_next, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const = 0; 23376: 23376: virtual result 23376: do_unshift(state_type& __state, extern_type* __to, 23376: extern_type* __to_end, extern_type*& __to_next) const = 0; 23376: 23376: virtual result 23376: do_in(state_type& __state, const extern_type* __from, 23376: const extern_type* __from_end, const extern_type*& __from_next, 23376: intern_type* __to, intern_type* __to_end, 23376: intern_type*& __to_next) const = 0; 23376: 23376: virtual int 23376: do_encoding() const throw() = 0; 23376: 23376: virtual bool 23376: do_always_noconv() const throw() = 0; 23376: 23376: virtual int 23376: do_length(state_type&, const extern_type* __from, 23376: const extern_type* __end, size_t __max) const = 0; 23376: 23376: virtual int 23376: do_max_length() const throw() = 0; 23376: }; 23376: # 273 "/usr/include/c++/8/bits/codecvt.h" 3 23376: template 23376: class codecvt 23376: : public __codecvt_abstract_base<_InternT, _ExternT, _StateT> 23376: { 23376: public: 23376: 23376: typedef codecvt_base::result result; 23376: typedef _InternT intern_type; 23376: typedef _ExternT extern_type; 23376: typedef _StateT state_type; 23376: 23376: protected: 23376: __c_locale _M_c_locale_codecvt; 23376: 23376: public: 23376: static locale::id id; 23376: 23376: explicit 23376: codecvt(size_t __refs = 0) 23376: : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs), 23376: _M_c_locale_codecvt(0) 23376: { } 23376: 23376: explicit 23376: codecvt(__c_locale __cloc, size_t __refs = 0); 23376: 23376: protected: 23376: virtual 23376: ~codecvt() { } 23376: 23376: virtual result 23376: do_out(state_type& __state, const intern_type* __from, 23376: const intern_type* __from_end, const intern_type*& __from_next, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_unshift(state_type& __state, extern_type* __to, 23376: extern_type* __to_end, extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_in(state_type& __state, const extern_type* __from, 23376: const extern_type* __from_end, const extern_type*& __from_next, 23376: intern_type* __to, intern_type* __to_end, 23376: intern_type*& __to_next) const; 23376: 23376: virtual int 23376: do_encoding() const throw(); 23376: 23376: virtual bool 23376: do_always_noconv() const throw(); 23376: 23376: virtual int 23376: do_length(state_type&, const extern_type* __from, 23376: const extern_type* __end, size_t __max) const; 23376: 23376: virtual int 23376: do_max_length() const throw(); 23376: }; 23376: 23376: template 23376: locale::id codecvt<_InternT, _ExternT, _StateT>::id; 23376: 23376: 23376: template<> 23376: class codecvt 23376: : public __codecvt_abstract_base 23376: { 23376: friend class messages; 23376: 23376: public: 23376: 23376: typedef char intern_type; 23376: typedef char extern_type; 23376: typedef mbstate_t state_type; 23376: 23376: protected: 23376: __c_locale _M_c_locale_codecvt; 23376: 23376: public: 23376: static locale::id id; 23376: 23376: explicit 23376: codecvt(size_t __refs = 0); 23376: 23376: explicit 23376: codecvt(__c_locale __cloc, size_t __refs = 0); 23376: 23376: protected: 23376: virtual 23376: ~codecvt(); 23376: 23376: virtual result 23376: do_out(state_type& __state, const intern_type* __from, 23376: const intern_type* __from_end, const intern_type*& __from_next, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_unshift(state_type& __state, extern_type* __to, 23376: extern_type* __to_end, extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_in(state_type& __state, const extern_type* __from, 23376: const extern_type* __from_end, const extern_type*& __from_next, 23376: intern_type* __to, intern_type* __to_end, 23376: intern_type*& __to_next) const; 23376: 23376: virtual int 23376: do_encoding() const throw(); 23376: 23376: virtual bool 23376: do_always_noconv() const throw(); 23376: 23376: virtual int 23376: do_length(state_type&, const extern_type* __from, 23376: const extern_type* __end, size_t __max) const; 23376: 23376: virtual int 23376: do_max_length() const throw(); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: class codecvt 23376: : public __codecvt_abstract_base 23376: { 23376: friend class messages; 23376: 23376: public: 23376: 23376: typedef wchar_t intern_type; 23376: typedef char extern_type; 23376: typedef mbstate_t state_type; 23376: 23376: protected: 23376: __c_locale _M_c_locale_codecvt; 23376: 23376: public: 23376: static locale::id id; 23376: 23376: explicit 23376: codecvt(size_t __refs = 0); 23376: 23376: explicit 23376: codecvt(__c_locale __cloc, size_t __refs = 0); 23376: 23376: protected: 23376: virtual 23376: ~codecvt(); 23376: 23376: virtual result 23376: do_out(state_type& __state, const intern_type* __from, 23376: const intern_type* __from_end, const intern_type*& __from_next, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_unshift(state_type& __state, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_in(state_type& __state, 23376: const extern_type* __from, const extern_type* __from_end, 23376: const extern_type*& __from_next, 23376: intern_type* __to, intern_type* __to_end, 23376: intern_type*& __to_next) const; 23376: 23376: virtual 23376: int do_encoding() const throw(); 23376: 23376: virtual 23376: bool do_always_noconv() const throw(); 23376: 23376: virtual 23376: int do_length(state_type&, const extern_type* __from, 23376: const extern_type* __end, size_t __max) const; 23376: 23376: virtual int 23376: do_max_length() const throw(); 23376: }; 23376: # 467 "/usr/include/c++/8/bits/codecvt.h" 3 23376: template<> 23376: class codecvt 23376: : public __codecvt_abstract_base 23376: { 23376: public: 23376: 23376: typedef char16_t intern_type; 23376: typedef char extern_type; 23376: typedef mbstate_t state_type; 23376: 23376: public: 23376: static locale::id id; 23376: 23376: explicit 23376: codecvt(size_t __refs = 0) 23376: : __codecvt_abstract_base(__refs) { } 23376: 23376: protected: 23376: virtual 23376: ~codecvt(); 23376: 23376: virtual result 23376: do_out(state_type& __state, const intern_type* __from, 23376: const intern_type* __from_end, const intern_type*& __from_next, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_unshift(state_type& __state, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_in(state_type& __state, 23376: const extern_type* __from, const extern_type* __from_end, 23376: const extern_type*& __from_next, 23376: intern_type* __to, intern_type* __to_end, 23376: intern_type*& __to_next) const; 23376: 23376: virtual 23376: int do_encoding() const throw(); 23376: 23376: virtual 23376: bool do_always_noconv() const throw(); 23376: 23376: virtual 23376: int do_length(state_type&, const extern_type* __from, 23376: const extern_type* __end, size_t __max) const; 23376: 23376: virtual int 23376: do_max_length() const throw(); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template<> 23376: class codecvt 23376: : public __codecvt_abstract_base 23376: { 23376: public: 23376: 23376: typedef char32_t intern_type; 23376: typedef char extern_type; 23376: typedef mbstate_t state_type; 23376: 23376: public: 23376: static locale::id id; 23376: 23376: explicit 23376: codecvt(size_t __refs = 0) 23376: : __codecvt_abstract_base(__refs) { } 23376: 23376: protected: 23376: virtual 23376: ~codecvt(); 23376: 23376: virtual result 23376: do_out(state_type& __state, const intern_type* __from, 23376: const intern_type* __from_end, const intern_type*& __from_next, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_unshift(state_type& __state, 23376: extern_type* __to, extern_type* __to_end, 23376: extern_type*& __to_next) const; 23376: 23376: virtual result 23376: do_in(state_type& __state, 23376: const extern_type* __from, const extern_type* __from_end, 23376: const extern_type*& __from_next, 23376: intern_type* __to, intern_type* __to_end, 23376: intern_type*& __to_next) const; 23376: 23376: virtual 23376: int do_encoding() const throw(); 23376: 23376: virtual 23376: bool do_always_noconv() const throw(); 23376: 23376: virtual 23376: int do_length(state_type&, const extern_type* __from, 23376: const extern_type* __end, size_t __max) const; 23376: 23376: virtual int 23376: do_max_length() const throw(); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> 23376: { 23376: public: 23376: explicit 23376: codecvt_byname(const char* __s, size_t __refs = 0) 23376: : codecvt<_InternT, _ExternT, _StateT>(__refs) 23376: { 23376: if (__builtin_strcmp(__s, "C") != 0 23376: && __builtin_strcmp(__s, "POSIX") != 0) 23376: { 23376: this->_S_destroy_c_locale(this->_M_c_locale_codecvt); 23376: this->_S_create_c_locale(this->_M_c_locale_codecvt, __s); 23376: } 23376: } 23376: 23376: 23376: explicit 23376: codecvt_byname(const string& __s, size_t __refs = 0) 23376: : codecvt_byname(__s.c_str(), __refs) { } 23376: 23376: 23376: protected: 23376: virtual 23376: ~codecvt_byname() { } 23376: }; 23376: 23376: 23376: template<> 23376: class codecvt_byname 23376: : public codecvt 23376: { 23376: public: 23376: explicit 23376: codecvt_byname(const char*, size_t __refs = 0) 23376: : codecvt(__refs) { } 23376: 23376: explicit 23376: codecvt_byname(const string& __s, size_t __refs = 0) 23376: : codecvt_byname(__s.c_str(), __refs) { } 23376: 23376: protected: 23376: virtual 23376: ~codecvt_byname() { } 23376: }; 23376: 23376: template<> 23376: class codecvt_byname 23376: : public codecvt 23376: { 23376: public: 23376: explicit 23376: codecvt_byname(const char*, size_t __refs = 0) 23376: : codecvt(__refs) { } 23376: 23376: explicit 23376: codecvt_byname(const string& __s, size_t __refs = 0) 23376: : codecvt_byname(__s.c_str(), __refs) { } 23376: 23376: protected: 23376: virtual 23376: ~codecvt_byname() { } 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: extern template class codecvt_byname; 23376: 23376: extern template 23376: const codecvt& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: 23376: extern template class codecvt_byname; 23376: 23376: extern template 23376: const codecvt& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: 23376: 23376: extern template class codecvt_byname; 23376: extern template class codecvt_byname; 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 2014 "/usr/include/c++/8/bits/locale_facets_nonio.h" 2 3 23376: 23376: # 1 "/usr/include/c++/8/bits/locale_facets_nonio.tcc" 1 3 23376: # 33 "/usr/include/c++/8/bits/locale_facets_nonio.tcc" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/locale_facets_nonio.tcc" 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: template 23376: struct __use_cache<__moneypunct_cache<_CharT, _Intl> > 23376: { 23376: const __moneypunct_cache<_CharT, _Intl>* 23376: operator() (const locale& __loc) const 23376: { 23376: const size_t __i = moneypunct<_CharT, _Intl>::id._M_id(); 23376: const locale::facet** __caches = __loc._M_impl->_M_caches; 23376: if (!__caches[__i]) 23376: { 23376: __moneypunct_cache<_CharT, _Intl>* __tmp = 0; 23376: try 23376: { 23376: __tmp = new __moneypunct_cache<_CharT, _Intl>; 23376: __tmp->_M_cache(__loc); 23376: } 23376: catch(...) 23376: { 23376: delete __tmp; 23376: throw; 23376: } 23376: __loc._M_impl->_M_install_cache(__tmp, __i); 23376: } 23376: return static_cast< 23376: const __moneypunct_cache<_CharT, _Intl>*>(__caches[__i]); 23376: } 23376: }; 23376: 23376: template 23376: void 23376: __moneypunct_cache<_CharT, _Intl>::_M_cache(const locale& __loc) 23376: { 23376: const moneypunct<_CharT, _Intl>& __mp = 23376: use_facet >(__loc); 23376: 23376: _M_decimal_point = __mp.decimal_point(); 23376: _M_thousands_sep = __mp.thousands_sep(); 23376: _M_frac_digits = __mp.frac_digits(); 23376: 23376: char* __grouping = 0; 23376: _CharT* __curr_symbol = 0; 23376: _CharT* __positive_sign = 0; 23376: _CharT* __negative_sign = 0; 23376: try 23376: { 23376: const string& __g = __mp.grouping(); 23376: _M_grouping_size = __g.size(); 23376: __grouping = new char[_M_grouping_size]; 23376: __g.copy(__grouping, _M_grouping_size); 23376: _M_use_grouping = (_M_grouping_size 23376: && static_cast(__grouping[0]) > 0 23376: && (__grouping[0] 23376: != __gnu_cxx::__numeric_traits::__max)); 23376: 23376: const basic_string<_CharT>& __cs = __mp.curr_symbol(); 23376: _M_curr_symbol_size = __cs.size(); 23376: __curr_symbol = new _CharT[_M_curr_symbol_size]; 23376: __cs.copy(__curr_symbol, _M_curr_symbol_size); 23376: 23376: const basic_string<_CharT>& __ps = __mp.positive_sign(); 23376: _M_positive_sign_size = __ps.size(); 23376: __positive_sign = new _CharT[_M_positive_sign_size]; 23376: __ps.copy(__positive_sign, _M_positive_sign_size); 23376: 23376: const basic_string<_CharT>& __ns = __mp.negative_sign(); 23376: _M_negative_sign_size = __ns.size(); 23376: __negative_sign = new _CharT[_M_negative_sign_size]; 23376: __ns.copy(__negative_sign, _M_negative_sign_size); 23376: 23376: _M_pos_format = __mp.pos_format(); 23376: _M_neg_format = __mp.neg_format(); 23376: 23376: const ctype<_CharT>& __ct = use_facet >(__loc); 23376: __ct.widen(money_base::_S_atoms, 23376: money_base::_S_atoms + money_base::_S_end, _M_atoms); 23376: 23376: _M_grouping = __grouping; 23376: _M_curr_symbol = __curr_symbol; 23376: _M_positive_sign = __positive_sign; 23376: _M_negative_sign = __negative_sign; 23376: _M_allocated = true; 23376: } 23376: catch(...) 23376: { 23376: delete [] __grouping; 23376: delete [] __curr_symbol; 23376: delete [] __positive_sign; 23376: delete [] __negative_sign; 23376: throw; 23376: } 23376: } 23376: 23376: namespace __cxx11 { 23376: 23376: template 23376: template 23376: _InIter 23376: money_get<_CharT, _InIter>:: 23376: _M_extract(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, string& __units) const 23376: { 23376: typedef char_traits<_CharT> __traits_type; 23376: typedef typename string_type::size_type size_type; 23376: typedef money_base::part part; 23376: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 23376: 23376: const locale& __loc = __io._M_getloc(); 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: 23376: __use_cache<__cache_type> __uc; 23376: const __cache_type* __lc = __uc(__loc); 23376: const char_type* __lit = __lc->_M_atoms; 23376: 23376: 23376: bool __negative = false; 23376: 23376: size_type __sign_size = 0; 23376: 23376: const bool __mandatory_sign = (__lc->_M_positive_sign_size 23376: && __lc->_M_negative_sign_size); 23376: 23376: string __grouping_tmp; 23376: if (__lc->_M_use_grouping) 23376: __grouping_tmp.reserve(32); 23376: 23376: int __last_pos = 0; 23376: 23376: int __n = 0; 23376: 23376: bool __testvalid = true; 23376: 23376: bool __testdecfound = false; 23376: 23376: 23376: string __res; 23376: __res.reserve(32); 23376: 23376: const char_type* __lit_zero = __lit + money_base::_S_zero; 23376: const money_base::pattern __p = __lc->_M_neg_format; 23376: for (int __i = 0; __i < 4 && __testvalid; ++__i) 23376: { 23376: const part __which = static_cast(__p.field[__i]); 23376: switch (__which) 23376: { 23376: case money_base::symbol: 23376: 23376: 23376: 23376: 23376: if (__io.flags() & ios_base::showbase || __sign_size > 1 23376: || __i == 0 23376: || (__i == 1 && (__mandatory_sign 23376: || (static_cast(__p.field[0]) 23376: == money_base::sign) 23376: || (static_cast(__p.field[2]) 23376: == money_base::space))) 23376: || (__i == 2 && ((static_cast(__p.field[3]) 23376: == money_base::value) 23376: || (__mandatory_sign 23376: && (static_cast(__p.field[3]) 23376: == money_base::sign))))) 23376: { 23376: const size_type __len = __lc->_M_curr_symbol_size; 23376: size_type __j = 0; 23376: for (; __beg != __end && __j < __len 23376: && *__beg == __lc->_M_curr_symbol[__j]; 23376: ++__beg, (void)++__j); 23376: if (__j != __len 23376: && (__j || __io.flags() & ios_base::showbase)) 23376: __testvalid = false; 23376: } 23376: break; 23376: case money_base::sign: 23376: 23376: if (__lc->_M_positive_sign_size && __beg != __end 23376: && *__beg == __lc->_M_positive_sign[0]) 23376: { 23376: __sign_size = __lc->_M_positive_sign_size; 23376: ++__beg; 23376: } 23376: else if (__lc->_M_negative_sign_size && __beg != __end 23376: && *__beg == __lc->_M_negative_sign[0]) 23376: { 23376: __negative = true; 23376: __sign_size = __lc->_M_negative_sign_size; 23376: ++__beg; 23376: } 23376: else if (__lc->_M_positive_sign_size 23376: && !__lc->_M_negative_sign_size) 23376: 23376: 23376: __negative = true; 23376: else if (__mandatory_sign) 23376: __testvalid = false; 23376: break; 23376: case money_base::value: 23376: 23376: 23376: for (; __beg != __end; ++__beg) 23376: { 23376: const char_type __c = *__beg; 23376: const char_type* __q = __traits_type::find(__lit_zero, 23376: 10, __c); 23376: if (__q != 0) 23376: { 23376: __res += money_base::_S_atoms[__q - __lit]; 23376: ++__n; 23376: } 23376: else if (__c == __lc->_M_decimal_point 23376: && !__testdecfound) 23376: { 23376: if (__lc->_M_frac_digits <= 0) 23376: break; 23376: 23376: __last_pos = __n; 23376: __n = 0; 23376: __testdecfound = true; 23376: } 23376: else if (__lc->_M_use_grouping 23376: && __c == __lc->_M_thousands_sep 23376: && !__testdecfound) 23376: { 23376: if (__n) 23376: { 23376: 23376: __grouping_tmp += static_cast(__n); 23376: __n = 0; 23376: } 23376: else 23376: { 23376: __testvalid = false; 23376: break; 23376: } 23376: } 23376: else 23376: break; 23376: } 23376: if (__res.empty()) 23376: __testvalid = false; 23376: break; 23376: case money_base::space: 23376: 23376: if (__beg != __end && __ctype.is(ctype_base::space, *__beg)) 23376: ++__beg; 23376: else 23376: __testvalid = false; 23376: 23376: case money_base::none: 23376: 23376: if (__i != 3) 23376: for (; __beg != __end 23376: && __ctype.is(ctype_base::space, *__beg); ++__beg); 23376: break; 23376: } 23376: } 23376: 23376: 23376: if (__sign_size > 1 && __testvalid) 23376: { 23376: const char_type* __sign = __negative ? __lc->_M_negative_sign 23376: : __lc->_M_positive_sign; 23376: size_type __i = 1; 23376: for (; __beg != __end && __i < __sign_size 23376: && *__beg == __sign[__i]; ++__beg, (void)++__i); 23376: 23376: if (__i != __sign_size) 23376: __testvalid = false; 23376: } 23376: 23376: if (__testvalid) 23376: { 23376: 23376: if (__res.size() > 1) 23376: { 23376: const size_type __first = __res.find_first_not_of('0'); 23376: const bool __only_zeros = __first == string::npos; 23376: if (__first) 23376: __res.erase(0, __only_zeros ? __res.size() - 1 : __first); 23376: } 23376: 23376: 23376: if (__negative && __res[0] != '0') 23376: __res.insert(__res.begin(), '-'); 23376: 23376: 23376: if (__grouping_tmp.size()) 23376: { 23376: 23376: __grouping_tmp += static_cast(__testdecfound ? __last_pos 23376: : __n); 23376: if (!std::__verify_grouping(__lc->_M_grouping, 23376: __lc->_M_grouping_size, 23376: __grouping_tmp)) 23376: __err |= ios_base::failbit; 23376: } 23376: 23376: 23376: if (__testdecfound && __n != __lc->_M_frac_digits) 23376: __testvalid = false; 23376: } 23376: 23376: 23376: if (!__testvalid) 23376: __err |= ios_base::failbit; 23376: else 23376: __units.swap(__res); 23376: 23376: 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: # 368 "/usr/include/c++/8/bits/locale_facets_nonio.tcc" 3 23376: template 23376: _InIter 23376: money_get<_CharT, _InIter>:: 23376: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 23376: ios_base::iostate& __err, long double& __units) const 23376: { 23376: string __str; 23376: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 23376: : _M_extract(__beg, __end, __io, __err, __str); 23376: std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale()); 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: money_get<_CharT, _InIter>:: 23376: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 23376: ios_base::iostate& __err, string_type& __digits) const 23376: { 23376: typedef typename string::size_type size_type; 23376: 23376: const locale& __loc = __io._M_getloc(); 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: 23376: string __str; 23376: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 23376: : _M_extract(__beg, __end, __io, __err, __str); 23376: const size_type __len = __str.size(); 23376: if (__len) 23376: { 23376: __digits.resize(__len); 23376: __ctype.widen(__str.data(), __str.data() + __len, &__digits[0]); 23376: } 23376: return __beg; 23376: } 23376: 23376: template 23376: template 23376: _OutIter 23376: money_put<_CharT, _OutIter>:: 23376: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 23376: const string_type& __digits) const 23376: { 23376: typedef typename string_type::size_type size_type; 23376: typedef money_base::part part; 23376: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 23376: 23376: const locale& __loc = __io._M_getloc(); 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: 23376: __use_cache<__cache_type> __uc; 23376: const __cache_type* __lc = __uc(__loc); 23376: const char_type* __lit = __lc->_M_atoms; 23376: 23376: 23376: 23376: const char_type* __beg = __digits.data(); 23376: 23376: money_base::pattern __p; 23376: const char_type* __sign; 23376: size_type __sign_size; 23376: if (!(*__beg == __lit[money_base::_S_minus])) 23376: { 23376: __p = __lc->_M_pos_format; 23376: __sign = __lc->_M_positive_sign; 23376: __sign_size = __lc->_M_positive_sign_size; 23376: } 23376: else 23376: { 23376: __p = __lc->_M_neg_format; 23376: __sign = __lc->_M_negative_sign; 23376: __sign_size = __lc->_M_negative_sign_size; 23376: if (__digits.size()) 23376: ++__beg; 23376: } 23376: 23376: 23376: size_type __len = __ctype.scan_not(ctype_base::digit, __beg, 23376: __beg + __digits.size()) - __beg; 23376: if (__len) 23376: { 23376: 23376: 23376: 23376: string_type __value; 23376: __value.reserve(2 * __len); 23376: 23376: 23376: 23376: long __paddec = __len - __lc->_M_frac_digits; 23376: if (__paddec > 0) 23376: { 23376: if (__lc->_M_frac_digits < 0) 23376: __paddec = __len; 23376: if (__lc->_M_grouping_size) 23376: { 23376: __value.assign(2 * __paddec, char_type()); 23376: _CharT* __vend = 23376: std::__add_grouping(&__value[0], __lc->_M_thousands_sep, 23376: __lc->_M_grouping, 23376: __lc->_M_grouping_size, 23376: __beg, __beg + __paddec); 23376: __value.erase(__vend - &__value[0]); 23376: } 23376: else 23376: __value.assign(__beg, __paddec); 23376: } 23376: 23376: 23376: if (__lc->_M_frac_digits > 0) 23376: { 23376: __value += __lc->_M_decimal_point; 23376: if (__paddec >= 0) 23376: __value.append(__beg + __paddec, __lc->_M_frac_digits); 23376: else 23376: { 23376: 23376: __value.append(-__paddec, __lit[money_base::_S_zero]); 23376: __value.append(__beg, __len); 23376: } 23376: } 23376: 23376: 23376: const ios_base::fmtflags __f = __io.flags() 23376: & ios_base::adjustfield; 23376: __len = __value.size() + __sign_size; 23376: __len += ((__io.flags() & ios_base::showbase) 23376: ? __lc->_M_curr_symbol_size : 0); 23376: 23376: string_type __res; 23376: __res.reserve(2 * __len); 23376: 23376: const size_type __width = static_cast(__io.width()); 23376: const bool __testipad = (__f == ios_base::internal 23376: && __len < __width); 23376: 23376: for (int __i = 0; __i < 4; ++__i) 23376: { 23376: const part __which = static_cast(__p.field[__i]); 23376: switch (__which) 23376: { 23376: case money_base::symbol: 23376: if (__io.flags() & ios_base::showbase) 23376: __res.append(__lc->_M_curr_symbol, 23376: __lc->_M_curr_symbol_size); 23376: break; 23376: case money_base::sign: 23376: 23376: 23376: 23376: if (__sign_size) 23376: __res += __sign[0]; 23376: break; 23376: case money_base::value: 23376: __res += __value; 23376: break; 23376: case money_base::space: 23376: 23376: 23376: 23376: if (__testipad) 23376: __res.append(__width - __len, __fill); 23376: else 23376: __res += __fill; 23376: break; 23376: case money_base::none: 23376: if (__testipad) 23376: __res.append(__width - __len, __fill); 23376: break; 23376: } 23376: } 23376: 23376: 23376: if (__sign_size > 1) 23376: __res.append(__sign + 1, __sign_size - 1); 23376: 23376: 23376: __len = __res.size(); 23376: if (__width > __len) 23376: { 23376: if (__f == ios_base::left) 23376: 23376: __res.append(__width - __len, __fill); 23376: else 23376: 23376: __res.insert(0, __width - __len, __fill); 23376: __len = __width; 23376: } 23376: 23376: 23376: __s = std::__write(__s, __res.data(), __len); 23376: } 23376: __io.width(0); 23376: return __s; 23376: } 23376: # 574 "/usr/include/c++/8/bits/locale_facets_nonio.tcc" 3 23376: template 23376: _OutIter 23376: money_put<_CharT, _OutIter>:: 23376: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 23376: long double __units) const 23376: { 23376: const locale __loc = __io.getloc(); 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: 23376: 23376: int __cs_size = 64; 23376: char* __cs = static_cast(__builtin_alloca(__cs_size)); 23376: 23376: 23376: int __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 23376: "%.*Lf", 0, __units); 23376: 23376: if (__len >= __cs_size) 23376: { 23376: __cs_size = __len + 1; 23376: __cs = static_cast(__builtin_alloca(__cs_size)); 23376: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 23376: "%.*Lf", 0, __units); 23376: } 23376: # 606 "/usr/include/c++/8/bits/locale_facets_nonio.tcc" 3 23376: string_type __digits(__len, char_type()); 23376: __ctype.widen(__cs, __cs + __len, &__digits[0]); 23376: return __intl ? _M_insert(__s, __io, __fill, __digits) 23376: : _M_insert(__s, __io, __fill, __digits); 23376: } 23376: 23376: template 23376: _OutIter 23376: money_put<_CharT, _OutIter>:: 23376: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 23376: const string_type& __digits) const 23376: { return __intl ? _M_insert(__s, __io, __fill, __digits) 23376: : _M_insert(__s, __io, __fill, __digits); } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: time_base::dateorder 23376: time_get<_CharT, _InIter>::do_date_order() const 23376: { return time_base::no_order; } 23376: 23376: 23376: 23376: template 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm, 23376: const _CharT* __format) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: const size_t __len = char_traits<_CharT>::length(__format); 23376: 23376: ios_base::iostate __tmperr = ios_base::goodbit; 23376: size_t __i = 0; 23376: for (; __beg != __end && __i < __len && !__tmperr; ++__i) 23376: { 23376: if (__ctype.narrow(__format[__i], 0) == '%') 23376: { 23376: 23376: char __c = __ctype.narrow(__format[++__i], 0); 23376: int __mem = 0; 23376: if (__c == 'E' || __c == 'O') 23376: __c = __ctype.narrow(__format[++__i], 0); 23376: switch (__c) 23376: { 23376: const char* __cs; 23376: _CharT __wcs[10]; 23376: case 'a': 23376: 23376: const char_type* __days1[7]; 23376: __tp._M_days_abbreviated(__days1); 23376: __beg = _M_extract_name(__beg, __end, __mem, __days1, 23376: 7, __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_wday = __mem; 23376: break; 23376: case 'A': 23376: 23376: const char_type* __days2[7]; 23376: __tp._M_days(__days2); 23376: __beg = _M_extract_name(__beg, __end, __mem, __days2, 23376: 7, __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_wday = __mem; 23376: break; 23376: case 'h': 23376: case 'b': 23376: 23376: const char_type* __months1[12]; 23376: __tp._M_months_abbreviated(__months1); 23376: __beg = _M_extract_name(__beg, __end, __mem, 23376: __months1, 12, __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_mon = __mem; 23376: break; 23376: case 'B': 23376: 23376: const char_type* __months2[12]; 23376: __tp._M_months(__months2); 23376: __beg = _M_extract_name(__beg, __end, __mem, 23376: __months2, 12, __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_mon = __mem; 23376: break; 23376: case 'c': 23376: 23376: const char_type* __dt[2]; 23376: __tp._M_date_time_formats(__dt); 23376: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 23376: __tm, __dt[0]); 23376: break; 23376: case 'd': 23376: 23376: __beg = _M_extract_num(__beg, __end, __mem, 1, 31, 2, 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_mday = __mem; 23376: break; 23376: case 'e': 23376: 23376: 23376: if (__ctype.is(ctype_base::space, *__beg)) 23376: __beg = _M_extract_num(++__beg, __end, __mem, 1, 9, 23376: 1, __io, __tmperr); 23376: else 23376: __beg = _M_extract_num(__beg, __end, __mem, 10, 31, 23376: 2, __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_mday = __mem; 23376: break; 23376: case 'D': 23376: 23376: __cs = "%m/%d/%y"; 23376: __ctype.widen(__cs, __cs + 9, __wcs); 23376: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 23376: __tm, __wcs); 23376: break; 23376: case 'H': 23376: 23376: __beg = _M_extract_num(__beg, __end, __mem, 0, 23, 2, 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_hour = __mem; 23376: break; 23376: case 'I': 23376: 23376: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_hour = __mem; 23376: break; 23376: case 'm': 23376: 23376: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_mon = __mem - 1; 23376: break; 23376: case 'M': 23376: 23376: __beg = _M_extract_num(__beg, __end, __mem, 0, 59, 2, 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_min = __mem; 23376: break; 23376: case 'n': 23376: if (__ctype.narrow(*__beg, 0) == '\n') 23376: ++__beg; 23376: else 23376: __tmperr |= ios_base::failbit; 23376: break; 23376: case 'R': 23376: 23376: __cs = "%H:%M"; 23376: __ctype.widen(__cs, __cs + 6, __wcs); 23376: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 23376: __tm, __wcs); 23376: break; 23376: case 'S': 23376: 23376: 23376: 23376: __beg = _M_extract_num(__beg, __end, __mem, 0, 60, 2, 23376: 23376: 23376: 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_sec = __mem; 23376: break; 23376: case 't': 23376: if (__ctype.narrow(*__beg, 0) == '\t') 23376: ++__beg; 23376: else 23376: __tmperr |= ios_base::failbit; 23376: break; 23376: case 'T': 23376: 23376: __cs = "%H:%M:%S"; 23376: __ctype.widen(__cs, __cs + 9, __wcs); 23376: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 23376: __tm, __wcs); 23376: break; 23376: case 'x': 23376: 23376: const char_type* __dates[2]; 23376: __tp._M_date_formats(__dates); 23376: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 23376: __tm, __dates[0]); 23376: break; 23376: case 'X': 23376: 23376: const char_type* __times[2]; 23376: __tp._M_time_formats(__times); 23376: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 23376: __tm, __times[0]); 23376: break; 23376: case 'y': 23376: case 'C': 23376: 23376: case 'Y': 23376: 23376: 23376: 23376: 23376: __beg = _M_extract_num(__beg, __end, __mem, 0, 9999, 4, 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_year = __mem < 0 ? __mem + 100 : __mem - 1900; 23376: break; 23376: case 'Z': 23376: 23376: if (__ctype.is(ctype_base::upper, *__beg)) 23376: { 23376: int __tmp; 23376: __beg = _M_extract_name(__beg, __end, __tmp, 23376: __timepunct_cache<_CharT>::_S_timezones, 23376: 14, __io, __tmperr); 23376: 23376: 23376: if (__beg != __end && !__tmperr && __tmp == 0 23376: && (*__beg == __ctype.widen('-') 23376: || *__beg == __ctype.widen('+'))) 23376: { 23376: __beg = _M_extract_num(__beg, __end, __tmp, 0, 23, 2, 23376: __io, __tmperr); 23376: __beg = _M_extract_num(__beg, __end, __tmp, 0, 59, 2, 23376: __io, __tmperr); 23376: } 23376: } 23376: else 23376: __tmperr |= ios_base::failbit; 23376: break; 23376: default: 23376: 23376: __tmperr |= ios_base::failbit; 23376: } 23376: } 23376: else 23376: { 23376: 23376: if (__format[__i] == *__beg) 23376: ++__beg; 23376: else 23376: __tmperr |= ios_base::failbit; 23376: } 23376: } 23376: 23376: if (__tmperr || __i != __len) 23376: __err |= ios_base::failbit; 23376: 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 23376: int __min, int __max, size_t __len, 23376: ios_base& __io, ios_base::iostate& __err) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: 23376: 23376: int __mult = __len == 2 ? 10 : (__len == 4 ? 1000 : 1); 23376: 23376: ++__min; 23376: size_t __i = 0; 23376: int __value = 0; 23376: for (; __beg != __end && __i < __len; ++__beg, (void)++__i) 23376: { 23376: const char __c = __ctype.narrow(*__beg, '*'); 23376: if (__c >= '0' && __c <= '9') 23376: { 23376: __value = __value * 10 + (__c - '0'); 23376: const int __valuec = __value * __mult; 23376: if (__valuec > __max || __valuec + __mult < __min) 23376: break; 23376: __mult /= 10; 23376: } 23376: else 23376: break; 23376: } 23376: if (__i == __len) 23376: __member = __value; 23376: 23376: else if (__len == 4 && __i == 2) 23376: __member = __value - 100; 23376: else 23376: __err |= ios_base::failbit; 23376: 23376: return __beg; 23376: } 23376: 23376: 23376: 23376: template 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 23376: const _CharT** __names, size_t __indexlen, 23376: ios_base& __io, ios_base::iostate& __err) const 23376: { 23376: typedef char_traits<_CharT> __traits_type; 23376: const locale& __loc = __io._M_getloc(); 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: 23376: int* __matches = static_cast(__builtin_alloca(sizeof(int) 23376: * __indexlen)); 23376: size_t __nmatches = 0; 23376: size_t __pos = 0; 23376: bool __testvalid = true; 23376: const char_type* __name; 23376: 23376: 23376: 23376: 23376: 23376: if (__beg != __end) 23376: { 23376: const char_type __c = *__beg; 23376: for (size_t __i1 = 0; __i1 < __indexlen; ++__i1) 23376: if (__c == __names[__i1][0] 23376: || __c == __ctype.toupper(__names[__i1][0])) 23376: __matches[__nmatches++] = __i1; 23376: } 23376: 23376: while (__nmatches > 1) 23376: { 23376: 23376: size_t __minlen = __traits_type::length(__names[__matches[0]]); 23376: for (size_t __i2 = 1; __i2 < __nmatches; ++__i2) 23376: __minlen = std::min(__minlen, 23376: __traits_type::length(__names[__matches[__i2]])); 23376: ++__beg; 23376: ++__pos; 23376: if (__pos < __minlen && __beg != __end) 23376: for (size_t __i3 = 0; __i3 < __nmatches;) 23376: { 23376: __name = __names[__matches[__i3]]; 23376: if (!(__name[__pos] == *__beg)) 23376: __matches[__i3] = __matches[--__nmatches]; 23376: else 23376: ++__i3; 23376: } 23376: else 23376: break; 23376: } 23376: 23376: if (__nmatches == 1) 23376: { 23376: 23376: ++__beg; 23376: ++__pos; 23376: __name = __names[__matches[0]]; 23376: const size_t __len = __traits_type::length(__name); 23376: while (__pos < __len && __beg != __end && __name[__pos] == *__beg) 23376: ++__beg, (void)++__pos; 23376: 23376: if (__len == __pos) 23376: __member = __matches[0]; 23376: else 23376: __testvalid = false; 23376: } 23376: else 23376: __testvalid = false; 23376: if (!__testvalid) 23376: __err |= ios_base::failbit; 23376: 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 23376: const _CharT** __names, size_t __indexlen, 23376: ios_base& __io, ios_base::iostate& __err) const 23376: { 23376: typedef char_traits<_CharT> __traits_type; 23376: const locale& __loc = __io._M_getloc(); 23376: const ctype<_CharT>& __ctype = use_facet >(__loc); 23376: 23376: int* __matches = static_cast(__builtin_alloca(2 * sizeof(int) 23376: * __indexlen)); 23376: size_t __nmatches = 0; 23376: size_t* __matches_lengths = 0; 23376: size_t __pos = 0; 23376: 23376: if (__beg != __end) 23376: { 23376: const char_type __c = *__beg; 23376: for (size_t __i = 0; __i < 2 * __indexlen; ++__i) 23376: if (__c == __names[__i][0] 23376: || __c == __ctype.toupper(__names[__i][0])) 23376: __matches[__nmatches++] = __i; 23376: } 23376: 23376: if (__nmatches) 23376: { 23376: ++__beg; 23376: ++__pos; 23376: 23376: __matches_lengths 23376: = static_cast(__builtin_alloca(sizeof(size_t) 23376: * __nmatches)); 23376: for (size_t __i = 0; __i < __nmatches; ++__i) 23376: __matches_lengths[__i] 23376: = __traits_type::length(__names[__matches[__i]]); 23376: } 23376: 23376: for (; __beg != __end; ++__beg, (void)++__pos) 23376: { 23376: size_t __nskipped = 0; 23376: const char_type __c = *__beg; 23376: for (size_t __i = 0; __i < __nmatches;) 23376: { 23376: const char_type* __name = __names[__matches[__i]]; 23376: if (__pos >= __matches_lengths[__i]) 23376: ++__nskipped, ++__i; 23376: else if (!(__name[__pos] == __c)) 23376: { 23376: --__nmatches; 23376: __matches[__i] = __matches[__nmatches]; 23376: __matches_lengths[__i] = __matches_lengths[__nmatches]; 23376: } 23376: else 23376: ++__i; 23376: } 23376: if (__nskipped == __nmatches) 23376: break; 23376: } 23376: 23376: if ((__nmatches == 1 && __matches_lengths[0] == __pos) 23376: || (__nmatches == 2 && (__matches_lengths[0] == __pos 23376: || __matches_lengths[1] == __pos))) 23376: __member = (__matches[0] >= __indexlen 23376: ? __matches[0] - __indexlen : __matches[0]); 23376: else 23376: __err |= ios_base::failbit; 23376: 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 23376: const char_type* __times[2]; 23376: __tp._M_time_formats(__times); 23376: __beg = _M_extract_via_format(__beg, __end, __io, __err, 23376: __tm, __times[0]); 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 23376: const char_type* __dates[2]; 23376: __tp._M_date_formats(__dates); 23376: __beg = _M_extract_via_format(__beg, __end, __io, __err, 23376: __tm, __dates[0]); 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 23376: const char_type* __days[14]; 23376: __tp._M_days_abbreviated(__days); 23376: __tp._M_days(__days + 7); 23376: int __tmpwday; 23376: ios_base::iostate __tmperr = ios_base::goodbit; 23376: 23376: __beg = _M_extract_wday_or_month(__beg, __end, __tmpwday, __days, 7, 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_wday = __tmpwday; 23376: else 23376: __err |= ios_base::failbit; 23376: 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: do_get_monthname(iter_type __beg, iter_type __end, 23376: ios_base& __io, ios_base::iostate& __err, tm* __tm) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 23376: const char_type* __months[24]; 23376: __tp._M_months_abbreviated(__months); 23376: __tp._M_months(__months + 12); 23376: int __tmpmon; 23376: ios_base::iostate __tmperr = ios_base::goodbit; 23376: 23376: __beg = _M_extract_wday_or_month(__beg, __end, __tmpmon, __months, 12, 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_mon = __tmpmon; 23376: else 23376: __err |= ios_base::failbit; 23376: 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: 23376: template 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm) const 23376: { 23376: int __tmpyear; 23376: ios_base::iostate __tmperr = ios_base::goodbit; 23376: 23376: __beg = _M_extract_num(__beg, __end, __tmpyear, 0, 9999, 4, 23376: __io, __tmperr); 23376: if (!__tmperr) 23376: __tm->tm_year = __tmpyear < 0 ? __tmpyear + 100 : __tmpyear - 1900; 23376: else 23376: __err |= ios_base::failbit; 23376: 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: 23376: 23376: template 23376: inline 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: get(iter_type __s, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 23376: const char_type* __fmtend) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: ctype<_CharT> const& __ctype = use_facet >(__loc); 23376: __err = ios_base::goodbit; 23376: while (__fmt != __fmtend && 23376: __err == ios_base::goodbit) 23376: { 23376: if (__s == __end) 23376: { 23376: __err = ios_base::eofbit | ios_base::failbit; 23376: break; 23376: } 23376: else if (__ctype.narrow(*__fmt, 0) == '%') 23376: { 23376: char __format; 23376: char __mod = 0; 23376: if (++__fmt == __fmtend) 23376: { 23376: __err = ios_base::failbit; 23376: break; 23376: } 23376: const char __c = __ctype.narrow(*__fmt, 0); 23376: if (__c != 'E' && __c != 'O') 23376: __format = __c; 23376: else if (++__fmt != __fmtend) 23376: { 23376: __mod = __c; 23376: __format = __ctype.narrow(*__fmt, 0); 23376: } 23376: else 23376: { 23376: __err = ios_base::failbit; 23376: break; 23376: } 23376: __s = this->do_get(__s, __end, __io, __err, __tm, __format, 23376: __mod); 23376: ++__fmt; 23376: } 23376: else if (__ctype.is(ctype_base::space, *__fmt)) 23376: { 23376: ++__fmt; 23376: while (__fmt != __fmtend && 23376: __ctype.is(ctype_base::space, *__fmt)) 23376: ++__fmt; 23376: 23376: while (__s != __end && 23376: __ctype.is(ctype_base::space, *__s)) 23376: ++__s; 23376: } 23376: 23376: else if (__ctype.tolower(*__s) == __ctype.tolower(*__fmt) || 23376: __ctype.toupper(*__s) == __ctype.toupper(*__fmt)) 23376: { 23376: ++__s; 23376: ++__fmt; 23376: } 23376: else 23376: { 23376: __err = ios_base::failbit; 23376: break; 23376: } 23376: } 23376: return __s; 23376: } 23376: 23376: template 23376: inline 23376: _InIter 23376: time_get<_CharT, _InIter>:: 23376: do_get(iter_type __beg, iter_type __end, ios_base& __io, 23376: ios_base::iostate& __err, tm* __tm, 23376: char __format, char __mod) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: ctype<_CharT> const& __ctype = use_facet >(__loc); 23376: __err = ios_base::goodbit; 23376: 23376: char_type __fmt[4]; 23376: __fmt[0] = __ctype.widen('%'); 23376: if (!__mod) 23376: { 23376: __fmt[1] = __format; 23376: __fmt[2] = char_type(); 23376: } 23376: else 23376: { 23376: __fmt[1] = __mod; 23376: __fmt[2] = __format; 23376: __fmt[3] = char_type(); 23376: } 23376: 23376: __beg = _M_extract_via_format(__beg, __end, __io, __err, __tm, __fmt); 23376: if (__beg == __end) 23376: __err |= ios_base::eofbit; 23376: return __beg; 23376: } 23376: 23376: 23376: 23376: template 23376: _OutIter 23376: time_put<_CharT, _OutIter>:: 23376: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 23376: const _CharT* __beg, const _CharT* __end) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: ctype<_CharT> const& __ctype = use_facet >(__loc); 23376: for (; __beg != __end; ++__beg) 23376: if (__ctype.narrow(*__beg, 0) != '%') 23376: { 23376: *__s = *__beg; 23376: ++__s; 23376: } 23376: else if (++__beg != __end) 23376: { 23376: char __format; 23376: char __mod = 0; 23376: const char __c = __ctype.narrow(*__beg, 0); 23376: if (__c != 'E' && __c != 'O') 23376: __format = __c; 23376: else if (++__beg != __end) 23376: { 23376: __mod = __c; 23376: __format = __ctype.narrow(*__beg, 0); 23376: } 23376: else 23376: break; 23376: __s = this->do_put(__s, __io, __fill, __tm, __format, __mod); 23376: } 23376: else 23376: break; 23376: return __s; 23376: } 23376: 23376: template 23376: _OutIter 23376: time_put<_CharT, _OutIter>:: 23376: do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm, 23376: char __format, char __mod) const 23376: { 23376: const locale& __loc = __io._M_getloc(); 23376: ctype<_CharT> const& __ctype = use_facet >(__loc); 23376: __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); 23376: 23376: 23376: 23376: const size_t __maxlen = 128; 23376: char_type __res[__maxlen]; 23376: 23376: 23376: 23376: 23376: 23376: 23376: char_type __fmt[4]; 23376: __fmt[0] = __ctype.widen('%'); 23376: if (!__mod) 23376: { 23376: __fmt[1] = __format; 23376: __fmt[2] = char_type(); 23376: } 23376: else 23376: { 23376: __fmt[1] = __mod; 23376: __fmt[2] = __format; 23376: __fmt[3] = char_type(); 23376: } 23376: 23376: __tp._M_put(__res, __maxlen, __fmt, __tm); 23376: 23376: 23376: return std::__write(__s, __res, char_traits::length(__res)); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: extern template class moneypunct; 23376: extern template class moneypunct; 23376: extern template class moneypunct_byname; 23376: extern template class moneypunct_byname; 23376: extern template class __cxx11:: money_get; 23376: extern template class __cxx11:: money_put; 23376: extern template class __timepunct; 23376: extern template class time_put; 23376: extern template class time_put_byname; 23376: extern template class time_get; 23376: extern template class time_get_byname; 23376: extern template class messages; 23376: extern template class messages_byname; 23376: 23376: extern template 23376: const moneypunct& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const moneypunct& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const money_put& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const money_get& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const __timepunct& 23376: use_facet<__timepunct >(const locale&); 23376: 23376: extern template 23376: const time_put& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const time_get& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const messages& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet<__timepunct >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: 23376: extern template class moneypunct; 23376: extern template class moneypunct; 23376: extern template class moneypunct_byname; 23376: extern template class moneypunct_byname; 23376: extern template class __cxx11:: money_get; 23376: extern template class __cxx11:: money_put; 23376: extern template class __timepunct; 23376: extern template class time_put; 23376: extern template class time_put_byname; 23376: extern template class time_get; 23376: extern template class time_get_byname; 23376: extern template class messages; 23376: extern template class messages_byname; 23376: 23376: extern template 23376: const moneypunct& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const moneypunct& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const money_put& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const money_get& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const __timepunct& 23376: use_facet<__timepunct >(const locale&); 23376: 23376: extern template 23376: const time_put& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const time_get& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: const messages& 23376: use_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet<__timepunct >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: extern template 23376: bool 23376: has_facet >(const locale&); 23376: 23376: 23376: 23376: 23376: } 23376: # 2016 "/usr/include/c++/8/bits/locale_facets_nonio.h" 2 3 23376: # 42 "/usr/include/c++/8/locale" 2 3 23376: 23376: # 1 "/usr/include/c++/8/bits/locale_conv.h" 1 3 23376: # 41 "/usr/include/c++/8/bits/locale_conv.h" 3 23376: # 1 "/usr/include/c++/8/bits/unique_ptr.h" 1 3 23376: # 41 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: template class auto_ptr; 23376: #pragma GCC diagnostic pop 23376: 23376: 23376: 23376: template 23376: struct default_delete 23376: { 23376: 23376: constexpr default_delete() noexcept = default; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template::value>::type> 23376: default_delete(const default_delete<_Up>&) noexcept { } 23376: 23376: 23376: void 23376: operator()(_Tp* __ptr) const 23376: { 23376: static_assert(!is_void<_Tp>::value, 23376: "can't delete pointer to incomplete type"); 23376: static_assert(sizeof(_Tp)>0, 23376: "can't delete pointer to incomplete type"); 23376: delete __ptr; 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: struct default_delete<_Tp[]> 23376: { 23376: public: 23376: 23376: constexpr default_delete() noexcept = default; 23376: # 104 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: template::value>::type> 23376: default_delete(const default_delete<_Up[]>&) noexcept { } 23376: 23376: 23376: template 23376: typename enable_if::value>::type 23376: operator()(_Up* __ptr) const 23376: { 23376: static_assert(sizeof(_Tp)>0, 23376: "can't delete pointer to incomplete type"); 23376: delete [] __ptr; 23376: } 23376: }; 23376: 23376: template 23376: class __uniq_ptr_impl 23376: { 23376: template 23376: struct _Ptr 23376: { 23376: using type = _Up*; 23376: }; 23376: 23376: template 23376: struct 23376: _Ptr<_Up, _Ep, __void_t::type::pointer>> 23376: { 23376: using type = typename remove_reference<_Ep>::type::pointer; 23376: }; 23376: 23376: public: 23376: using _DeleterConstraint = enable_if< 23376: __and_<__not_>, 23376: is_default_constructible<_Dp>>::value>; 23376: 23376: using pointer = typename _Ptr<_Tp, _Dp>::type; 23376: 23376: __uniq_ptr_impl() = default; 23376: __uniq_ptr_impl(pointer __p) : _M_t() { _M_ptr() = __p; } 23376: 23376: template 23376: __uniq_ptr_impl(pointer __p, _Del&& __d) 23376: : _M_t(__p, std::forward<_Del>(__d)) { } 23376: 23376: pointer& _M_ptr() { return std::get<0>(_M_t); } 23376: pointer _M_ptr() const { return std::get<0>(_M_t); } 23376: _Dp& _M_deleter() { return std::get<1>(_M_t); } 23376: const _Dp& _M_deleter() const { return std::get<1>(_M_t); } 23376: 23376: private: 23376: tuple _M_t; 23376: }; 23376: 23376: 23376: template > 23376: class unique_ptr 23376: { 23376: template 23376: using _DeleterConstraint = 23376: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 23376: 23376: __uniq_ptr_impl<_Tp, _Dp> _M_t; 23376: 23376: public: 23376: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 23376: using element_type = _Tp; 23376: using deleter_type = _Dp; 23376: 23376: 23376: 23376: template 23376: using __safe_conversion_up = __and_< 23376: is_convertible::pointer, pointer>, 23376: __not_>, 23376: __or_<__and_, 23376: is_same>, 23376: __and_<__not_>, 23376: is_convertible<_Ep, deleter_type>> 23376: > 23376: >; 23376: 23376: 23376: 23376: 23376: template > 23376: constexpr unique_ptr() noexcept 23376: : _M_t() 23376: { } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template > 23376: explicit 23376: unique_ptr(pointer __p) noexcept 23376: : _M_t(__p) 23376: { } 23376: # 215 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: unique_ptr(pointer __p, 23376: typename conditional::value, 23376: deleter_type, const deleter_type&>::type __d) noexcept 23376: : _M_t(__p, __d) { } 23376: # 227 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: unique_ptr(pointer __p, 23376: typename remove_reference::type&& __d) noexcept 23376: : _M_t(std::move(__p), std::move(__d)) 23376: { static_assert(!std::is_reference::value, 23376: "rvalue deleter bound to reference"); } 23376: 23376: 23376: template > 23376: constexpr unique_ptr(nullptr_t) noexcept : _M_t() { } 23376: 23376: 23376: 23376: 23376: unique_ptr(unique_ptr&& __u) noexcept 23376: : _M_t(__u.release(), std::forward(__u.get_deleter())) { } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template, 23376: typename conditional::value, 23376: is_same<_Ep, _Dp>, 23376: is_convertible<_Ep, _Dp>>::type>> 23376: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 23376: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 23376: { } 23376: 23376: 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: 23376: template, is_same<_Dp, default_delete<_Tp>>>> 23376: unique_ptr(auto_ptr<_Up>&& __u) noexcept; 23376: #pragma GCC diagnostic pop 23376: 23376: 23376: 23376: ~unique_ptr() noexcept 23376: { 23376: auto& __ptr = _M_t._M_ptr(); 23376: if (__ptr != nullptr) 23376: get_deleter()(__ptr); 23376: __ptr = pointer(); 23376: } 23376: # 286 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: unique_ptr& 23376: operator=(unique_ptr&& __u) noexcept 23376: { 23376: reset(__u.release()); 23376: get_deleter() = std::forward(__u.get_deleter()); 23376: return *this; 23376: } 23376: # 301 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: template 23376: typename enable_if< __and_< 23376: __safe_conversion_up<_Up, _Ep>, 23376: is_assignable 23376: >::value, 23376: unique_ptr&>::type 23376: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 23376: { 23376: reset(__u.release()); 23376: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 23376: return *this; 23376: } 23376: 23376: 23376: unique_ptr& 23376: operator=(nullptr_t) noexcept 23376: { 23376: reset(); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: typename add_lvalue_reference::type 23376: operator*() const 23376: { 23376: ; 23376: return *get(); 23376: } 23376: 23376: 23376: pointer 23376: operator->() const noexcept 23376: { 23376: ; 23376: return get(); 23376: } 23376: 23376: 23376: pointer 23376: get() const noexcept 23376: { return _M_t._M_ptr(); } 23376: 23376: 23376: deleter_type& 23376: get_deleter() noexcept 23376: { return _M_t._M_deleter(); } 23376: 23376: 23376: const deleter_type& 23376: get_deleter() const noexcept 23376: { return _M_t._M_deleter(); } 23376: 23376: 23376: explicit operator bool() const noexcept 23376: { return get() == pointer() ? false : true; } 23376: 23376: 23376: 23376: 23376: pointer 23376: release() noexcept 23376: { 23376: pointer __p = get(); 23376: _M_t._M_ptr() = pointer(); 23376: return __p; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: reset(pointer __p = pointer()) noexcept 23376: { 23376: using std::swap; 23376: swap(_M_t._M_ptr(), __p); 23376: if (__p != pointer()) 23376: get_deleter()(__p); 23376: } 23376: 23376: 23376: void 23376: swap(unique_ptr& __u) noexcept 23376: { 23376: using std::swap; 23376: swap(_M_t, __u._M_t); 23376: } 23376: 23376: 23376: unique_ptr(const unique_ptr&) = delete; 23376: unique_ptr& operator=(const unique_ptr&) = delete; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: class unique_ptr<_Tp[], _Dp> 23376: { 23376: template 23376: using _DeleterConstraint = 23376: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 23376: 23376: __uniq_ptr_impl<_Tp, _Dp> _M_t; 23376: 23376: template 23376: using __remove_cv = typename remove_cv<_Up>::type; 23376: 23376: 23376: template 23376: using __is_derived_Tp 23376: = __and_< is_base_of<_Tp, _Up>, 23376: __not_, __remove_cv<_Up>>> >; 23376: 23376: public: 23376: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 23376: using element_type = _Tp; 23376: using deleter_type = _Dp; 23376: 23376: 23376: 23376: template, 23376: typename _Up_element_type = typename _Up_up::element_type> 23376: using __safe_conversion_up = __and_< 23376: is_array<_Up>, 23376: is_same, 23376: is_same, 23376: is_convertible<_Up_element_type(*)[], element_type(*)[]>, 23376: __or_<__and_, is_same>, 23376: __and_<__not_>, 23376: is_convertible<_Ep, deleter_type>>> 23376: >; 23376: 23376: 23376: template 23376: using __safe_conversion_raw = __and_< 23376: __or_<__or_, 23376: is_same<_Up, nullptr_t>>, 23376: __and_, 23376: is_same, 23376: is_convertible< 23376: typename remove_pointer<_Up>::type(*)[], 23376: element_type(*)[]> 23376: > 23376: > 23376: >; 23376: 23376: 23376: 23376: 23376: template > 23376: constexpr unique_ptr() noexcept 23376: : _M_t() 23376: { } 23376: # 470 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: template, 23376: typename = typename enable_if< 23376: __safe_conversion_raw<_Up>::value, bool>::type> 23376: explicit 23376: unique_ptr(_Up __p) noexcept 23376: : _M_t(__p) 23376: { } 23376: # 488 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: template::value, bool>::type> 23376: unique_ptr(_Up __p, 23376: typename conditional::value, 23376: deleter_type, const deleter_type&>::type __d) noexcept 23376: : _M_t(__p, __d) { } 23376: # 504 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: template::value, bool>::type> 23376: unique_ptr(_Up __p, typename 23376: remove_reference::type&& __d) noexcept 23376: : _M_t(std::move(__p), std::move(__d)) 23376: { static_assert(!is_reference::value, 23376: "rvalue deleter bound to reference"); } 23376: 23376: 23376: unique_ptr(unique_ptr&& __u) noexcept 23376: : _M_t(__u.release(), std::forward(__u.get_deleter())) { } 23376: 23376: 23376: template > 23376: constexpr unique_ptr(nullptr_t) noexcept : _M_t() { } 23376: 23376: template>> 23376: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 23376: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 23376: { } 23376: 23376: 23376: ~unique_ptr() 23376: { 23376: auto& __ptr = _M_t._M_ptr(); 23376: if (__ptr != nullptr) 23376: get_deleter()(__ptr); 23376: __ptr = pointer(); 23376: } 23376: # 545 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: unique_ptr& 23376: operator=(unique_ptr&& __u) noexcept 23376: { 23376: reset(__u.release()); 23376: get_deleter() = std::forward(__u.get_deleter()); 23376: return *this; 23376: } 23376: # 560 "/usr/include/c++/8/bits/unique_ptr.h" 3 23376: template 23376: typename 23376: enable_if<__and_<__safe_conversion_up<_Up, _Ep>, 23376: is_assignable 23376: >::value, 23376: unique_ptr&>::type 23376: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 23376: { 23376: reset(__u.release()); 23376: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 23376: return *this; 23376: } 23376: 23376: 23376: unique_ptr& 23376: operator=(nullptr_t) noexcept 23376: { 23376: reset(); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: typename std::add_lvalue_reference::type 23376: operator[](size_t __i) const 23376: { 23376: ; 23376: return get()[__i]; 23376: } 23376: 23376: 23376: pointer 23376: get() const noexcept 23376: { return _M_t._M_ptr(); } 23376: 23376: 23376: deleter_type& 23376: get_deleter() noexcept 23376: { return _M_t._M_deleter(); } 23376: 23376: 23376: const deleter_type& 23376: get_deleter() const noexcept 23376: { return _M_t._M_deleter(); } 23376: 23376: 23376: explicit operator bool() const noexcept 23376: { return get() == pointer() ? false : true; } 23376: 23376: 23376: 23376: 23376: pointer 23376: release() noexcept 23376: { 23376: pointer __p = get(); 23376: _M_t._M_ptr() = pointer(); 23376: return __p; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template , 23376: __and_, 23376: is_pointer<_Up>, 23376: is_convertible< 23376: typename remove_pointer<_Up>::type(*)[], 23376: element_type(*)[] 23376: > 23376: > 23376: > 23376: >> 23376: void 23376: reset(_Up __p) noexcept 23376: { 23376: pointer __ptr = __p; 23376: using std::swap; 23376: swap(_M_t._M_ptr(), __ptr); 23376: if (__ptr != nullptr) 23376: get_deleter()(__ptr); 23376: } 23376: 23376: void reset(nullptr_t = nullptr) noexcept 23376: { 23376: reset(pointer()); 23376: } 23376: 23376: 23376: void 23376: swap(unique_ptr& __u) noexcept 23376: { 23376: using std::swap; 23376: swap(_M_t, __u._M_t); 23376: } 23376: 23376: 23376: unique_ptr(const unique_ptr&) = delete; 23376: unique_ptr& operator=(const unique_ptr&) = delete; 23376: }; 23376: 23376: template 23376: inline 23376: 23376: 23376: typename enable_if<__is_swappable<_Dp>::value>::type 23376: 23376: 23376: 23376: swap(unique_ptr<_Tp, _Dp>& __x, 23376: unique_ptr<_Tp, _Dp>& __y) noexcept 23376: { __x.swap(__y); } 23376: 23376: 23376: template 23376: typename enable_if::value>::type 23376: swap(unique_ptr<_Tp, _Dp>&, 23376: unique_ptr<_Tp, _Dp>&) = delete; 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const unique_ptr<_Tp, _Dp>& __x, 23376: const unique_ptr<_Up, _Ep>& __y) 23376: { return __x.get() == __y.get(); } 23376: 23376: template 23376: inline bool 23376: operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 23376: { return !__x; } 23376: 23376: template 23376: inline bool 23376: operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 23376: { return !__x; } 23376: 23376: template 23376: inline bool 23376: operator!=(const unique_ptr<_Tp, _Dp>& __x, 23376: const unique_ptr<_Up, _Ep>& __y) 23376: { return __x.get() != __y.get(); } 23376: 23376: template 23376: inline bool 23376: operator!=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 23376: { return (bool)__x; } 23376: 23376: template 23376: inline bool 23376: operator!=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 23376: { return (bool)__x; } 23376: 23376: template 23376: inline bool 23376: operator<(const unique_ptr<_Tp, _Dp>& __x, 23376: const unique_ptr<_Up, _Ep>& __y) 23376: { 23376: typedef typename 23376: std::common_type::pointer, 23376: typename unique_ptr<_Up, _Ep>::pointer>::type _CT; 23376: return std::less<_CT>()(__x.get(), __y.get()); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 23376: { return std::less::pointer>()(__x.get(), 23376: nullptr); } 23376: 23376: template 23376: inline bool 23376: operator<(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 23376: { return std::less::pointer>()(nullptr, 23376: __x.get()); } 23376: 23376: template 23376: inline bool 23376: operator<=(const unique_ptr<_Tp, _Dp>& __x, 23376: const unique_ptr<_Up, _Ep>& __y) 23376: { return !(__y < __x); } 23376: 23376: template 23376: inline bool 23376: operator<=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 23376: { return !(nullptr < __x); } 23376: 23376: template 23376: inline bool 23376: operator<=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 23376: { return !(__x < nullptr); } 23376: 23376: template 23376: inline bool 23376: operator>(const unique_ptr<_Tp, _Dp>& __x, 23376: const unique_ptr<_Up, _Ep>& __y) 23376: { return (__y < __x); } 23376: 23376: template 23376: inline bool 23376: operator>(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 23376: { return std::less::pointer>()(nullptr, 23376: __x.get()); } 23376: 23376: template 23376: inline bool 23376: operator>(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 23376: { return std::less::pointer>()(__x.get(), 23376: nullptr); } 23376: 23376: template 23376: inline bool 23376: operator>=(const unique_ptr<_Tp, _Dp>& __x, 23376: const unique_ptr<_Up, _Ep>& __y) 23376: { return !(__x < __y); } 23376: 23376: template 23376: inline bool 23376: operator>=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 23376: { return !(__x < nullptr); } 23376: 23376: template 23376: inline bool 23376: operator>=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 23376: { return !(nullptr < __x); } 23376: 23376: 23376: template 23376: struct hash> 23376: : public __hash_base>, 23376: private __poison_hash::pointer> 23376: { 23376: size_t 23376: operator()(const unique_ptr<_Tp, _Dp>& __u) const noexcept 23376: { 23376: typedef unique_ptr<_Tp, _Dp> _UP; 23376: return std::hash()(__u.get()); 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct _MakeUniq 23376: { typedef unique_ptr<_Tp> __single_object; }; 23376: 23376: template 23376: struct _MakeUniq<_Tp[]> 23376: { typedef unique_ptr<_Tp[]> __array; }; 23376: 23376: template 23376: struct _MakeUniq<_Tp[_Bound]> 23376: { struct __invalid_type { }; }; 23376: 23376: 23376: template 23376: inline typename _MakeUniq<_Tp>::__single_object 23376: make_unique(_Args&&... __args) 23376: { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); } 23376: 23376: 23376: template 23376: inline typename _MakeUniq<_Tp>::__array 23376: make_unique(size_t __num) 23376: { return unique_ptr<_Tp>(new remove_extent_t<_Tp>[__num]()); } 23376: 23376: 23376: template 23376: inline typename _MakeUniq<_Tp>::__invalid_type 23376: make_unique(_Args&&...) = delete; 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 42 "/usr/include/c++/8/bits/locale_conv.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool 23376: __do_str_codecvt(const _InChar* __first, const _InChar* __last, 23376: _OutStr& __outstr, const _Codecvt& __cvt, _State& __state, 23376: size_t& __count, _Fn __fn) 23376: { 23376: if (__first == __last) 23376: { 23376: __outstr.clear(); 23376: __count = 0; 23376: return true; 23376: } 23376: 23376: size_t __outchars = 0; 23376: auto __next = __first; 23376: const auto __maxlen = __cvt.max_length() + 1; 23376: 23376: codecvt_base::result __result; 23376: do 23376: { 23376: __outstr.resize(__outstr.size() + (__last - __next) * __maxlen); 23376: auto __outnext = &__outstr.front() + __outchars; 23376: auto const __outlast = &__outstr.back() + 1; 23376: __result = (__cvt.*__fn)(__state, __next, __last, __next, 23376: __outnext, __outlast, __outnext); 23376: __outchars = __outnext - &__outstr.front(); 23376: } 23376: while (__result == codecvt_base::partial && __next != __last 23376: && (__outstr.size() - __outchars) < __maxlen); 23376: 23376: if (__result == codecvt_base::error) 23376: { 23376: __count = __next - __first; 23376: return false; 23376: } 23376: 23376: if (__result == codecvt_base::noconv) 23376: { 23376: __outstr.assign(__first, __last); 23376: __count = __last - __first; 23376: } 23376: else 23376: { 23376: __outstr.resize(__outchars); 23376: __count = __next - __first; 23376: } 23376: 23376: return true; 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: __str_codecvt_in(const char* __first, const char* __last, 23376: basic_string<_CharT, _Traits, _Alloc>& __outstr, 23376: const codecvt<_CharT, char, _State>& __cvt, 23376: _State& __state, size_t& __count) 23376: { 23376: using _Codecvt = codecvt<_CharT, char, _State>; 23376: using _ConvFn 23376: = codecvt_base::result 23376: (_Codecvt::*)(_State&, const char*, const char*, const char*&, 23376: _CharT*, _CharT*, _CharT*&) const; 23376: _ConvFn __fn = &codecvt<_CharT, char, _State>::in; 23376: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 23376: __count, __fn); 23376: } 23376: 23376: template 23376: inline bool 23376: __str_codecvt_in(const char* __first, const char* __last, 23376: basic_string<_CharT, _Traits, _Alloc>& __outstr, 23376: const codecvt<_CharT, char, _State>& __cvt) 23376: { 23376: _State __state = {}; 23376: size_t __n; 23376: return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 23376: basic_string& __outstr, 23376: const codecvt<_CharT, char, _State>& __cvt, 23376: _State& __state, size_t& __count) 23376: { 23376: using _Codecvt = codecvt<_CharT, char, _State>; 23376: using _ConvFn 23376: = codecvt_base::result 23376: (_Codecvt::*)(_State&, const _CharT*, const _CharT*, const _CharT*&, 23376: char*, char*, char*&) const; 23376: _ConvFn __fn = &codecvt<_CharT, char, _State>::out; 23376: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 23376: __count, __fn); 23376: } 23376: 23376: template 23376: inline bool 23376: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 23376: basic_string& __outstr, 23376: const codecvt<_CharT, char, _State>& __cvt) 23376: { 23376: _State __state = {}; 23376: size_t __n; 23376: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n); 23376: } 23376: 23376: 23376: 23376: namespace __cxx11 { 23376: 23376: 23376: template, 23376: typename _Byte_alloc = allocator> 23376: class wstring_convert 23376: { 23376: public: 23376: typedef basic_string, _Byte_alloc> byte_string; 23376: typedef basic_string<_Elem, char_traits<_Elem>, _Wide_alloc> wide_string; 23376: typedef typename _Codecvt::state_type state_type; 23376: typedef typename wide_string::traits_type::int_type int_type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: wstring_convert(_Codecvt* __pcvt = new _Codecvt()) : _M_cvt(__pcvt) 23376: { 23376: if (!_M_cvt) 23376: __throw_logic_error("wstring_convert"); 23376: } 23376: # 198 "/usr/include/c++/8/bits/locale_conv.h" 3 23376: wstring_convert(_Codecvt* __pcvt, state_type __state) 23376: : _M_cvt(__pcvt), _M_state(__state), _M_with_cvtstate(true) 23376: { 23376: if (!_M_cvt) 23376: __throw_logic_error("wstring_convert"); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: wstring_convert(const byte_string& __byte_err, 23376: const wide_string& __wide_err = wide_string()) 23376: : _M_cvt(new _Codecvt), 23376: _M_byte_err_string(__byte_err), _M_wide_err_string(__wide_err), 23376: _M_with_strings(true) 23376: { 23376: if (!_M_cvt) 23376: __throw_logic_error("wstring_convert"); 23376: } 23376: 23376: ~wstring_convert() = default; 23376: 23376: 23376: 23376: wstring_convert(const wstring_convert&) = delete; 23376: wstring_convert& operator=(const wstring_convert&) = delete; 23376: 23376: 23376: wide_string 23376: from_bytes(char __byte) 23376: { 23376: char __bytes[2] = { __byte }; 23376: return from_bytes(__bytes, __bytes+1); 23376: } 23376: 23376: wide_string 23376: from_bytes(const char* __ptr) 23376: { return from_bytes(__ptr, __ptr+char_traits::length(__ptr)); } 23376: 23376: wide_string 23376: from_bytes(const byte_string& __str) 23376: { 23376: auto __ptr = __str.data(); 23376: return from_bytes(__ptr, __ptr + __str.size()); 23376: } 23376: 23376: wide_string 23376: from_bytes(const char* __first, const char* __last) 23376: { 23376: if (!_M_with_cvtstate) 23376: _M_state = state_type(); 23376: wide_string __out{ _M_wide_err_string.get_allocator() }; 23376: if (__str_codecvt_in(__first, __last, __out, *_M_cvt, _M_state, 23376: _M_count)) 23376: return __out; 23376: if (_M_with_strings) 23376: return _M_wide_err_string; 23376: __throw_range_error("wstring_convert::from_bytes"); 23376: } 23376: 23376: 23376: 23376: byte_string 23376: to_bytes(_Elem __wchar) 23376: { 23376: _Elem __wchars[2] = { __wchar }; 23376: return to_bytes(__wchars, __wchars+1); 23376: } 23376: 23376: byte_string 23376: to_bytes(const _Elem* __ptr) 23376: { 23376: return to_bytes(__ptr, __ptr+wide_string::traits_type::length(__ptr)); 23376: } 23376: 23376: byte_string 23376: to_bytes(const wide_string& __wstr) 23376: { 23376: auto __ptr = __wstr.data(); 23376: return to_bytes(__ptr, __ptr + __wstr.size()); 23376: } 23376: 23376: byte_string 23376: to_bytes(const _Elem* __first, const _Elem* __last) 23376: { 23376: if (!_M_with_cvtstate) 23376: _M_state = state_type(); 23376: byte_string __out{ _M_byte_err_string.get_allocator() }; 23376: if (__str_codecvt_out(__first, __last, __out, *_M_cvt, _M_state, 23376: _M_count)) 23376: return __out; 23376: if (_M_with_strings) 23376: return _M_byte_err_string; 23376: __throw_range_error("wstring_convert::to_bytes"); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: size_t converted() const noexcept { return _M_count; } 23376: 23376: 23376: state_type state() const { return _M_state; } 23376: 23376: private: 23376: unique_ptr<_Codecvt> _M_cvt; 23376: byte_string _M_byte_err_string; 23376: wide_string _M_wide_err_string; 23376: state_type _M_state = state_type(); 23376: size_t _M_count = 0; 23376: bool _M_with_cvtstate = false; 23376: bool _M_with_strings = false; 23376: }; 23376: 23376: } 23376: 23376: 23376: template> 23376: class wbuffer_convert : public basic_streambuf<_Elem, _Tr> 23376: { 23376: typedef basic_streambuf<_Elem, _Tr> _Wide_streambuf; 23376: 23376: public: 23376: typedef typename _Codecvt::state_type state_type; 23376: # 336 "/usr/include/c++/8/bits/locale_conv.h" 3 23376: explicit 23376: wbuffer_convert(streambuf* __bytebuf = 0, _Codecvt* __pcvt = new _Codecvt, 23376: state_type __state = state_type()) 23376: : _M_buf(__bytebuf), _M_cvt(__pcvt), _M_state(__state) 23376: { 23376: if (!_M_cvt) 23376: __throw_logic_error("wbuffer_convert"); 23376: 23376: _M_always_noconv = _M_cvt->always_noconv(); 23376: 23376: if (_M_buf) 23376: { 23376: this->setp(_M_put_area, _M_put_area + _S_buffer_length); 23376: this->setg(_M_get_area + _S_putback_length, 23376: _M_get_area + _S_putback_length, 23376: _M_get_area + _S_putback_length); 23376: } 23376: } 23376: 23376: ~wbuffer_convert() = default; 23376: 23376: 23376: 23376: wbuffer_convert(const wbuffer_convert&) = delete; 23376: wbuffer_convert& operator=(const wbuffer_convert&) = delete; 23376: 23376: streambuf* rdbuf() const noexcept { return _M_buf; } 23376: 23376: streambuf* 23376: rdbuf(streambuf *__bytebuf) noexcept 23376: { 23376: auto __prev = _M_buf; 23376: _M_buf = __bytebuf; 23376: return __prev; 23376: } 23376: 23376: 23376: state_type state() const noexcept { return _M_state; } 23376: 23376: protected: 23376: int 23376: sync() 23376: { return _M_buf && _M_conv_put() && !_M_buf->pubsync() ? 0 : -1; } 23376: 23376: typename _Wide_streambuf::int_type 23376: overflow(typename _Wide_streambuf::int_type __out) 23376: { 23376: if (!_M_buf || !_M_conv_put()) 23376: return _Tr::eof(); 23376: else if (!_Tr::eq_int_type(__out, _Tr::eof())) 23376: return this->sputc(__out); 23376: return _Tr::not_eof(__out); 23376: } 23376: 23376: typename _Wide_streambuf::int_type 23376: underflow() 23376: { 23376: if (!_M_buf) 23376: return _Tr::eof(); 23376: 23376: if (this->gptr() < this->egptr() || (_M_buf && _M_conv_get())) 23376: return _Tr::to_int_type(*this->gptr()); 23376: else 23376: return _Tr::eof(); 23376: } 23376: 23376: streamsize 23376: xsputn(const typename _Wide_streambuf::char_type* __s, streamsize __n) 23376: { 23376: if (!_M_buf || __n == 0) 23376: return 0; 23376: streamsize __done = 0; 23376: do 23376: { 23376: auto __nn = std::min(this->epptr() - this->pptr(), 23376: __n - __done); 23376: _Tr::copy(this->pptr(), __s + __done, __nn); 23376: this->pbump(__nn); 23376: __done += __nn; 23376: } while (__done < __n && _M_conv_put()); 23376: return __done; 23376: } 23376: 23376: private: 23376: 23376: bool 23376: _M_conv_get() 23376: { 23376: const streamsize __pb1 = this->gptr() - this->eback(); 23376: const streamsize __pb2 = _S_putback_length; 23376: const streamsize __npb = std::min(__pb1, __pb2); 23376: 23376: _Tr::move(_M_get_area + _S_putback_length - __npb, 23376: this->gptr() - __npb, __npb); 23376: 23376: streamsize __nbytes = sizeof(_M_get_buf) - _M_unconv; 23376: __nbytes = std::min(__nbytes, _M_buf->in_avail()); 23376: if (__nbytes < 1) 23376: __nbytes = 1; 23376: __nbytes = _M_buf->sgetn(_M_get_buf + _M_unconv, __nbytes); 23376: if (__nbytes < 1) 23376: return false; 23376: __nbytes += _M_unconv; 23376: 23376: 23376: 23376: _Elem* __outbuf = _M_get_area + _S_putback_length; 23376: _Elem* __outnext = __outbuf; 23376: const char* __bnext = _M_get_buf; 23376: 23376: codecvt_base::result __result; 23376: if (_M_always_noconv) 23376: __result = codecvt_base::noconv; 23376: else 23376: { 23376: _Elem* __outend = _M_get_area + _S_buffer_length; 23376: 23376: __result = _M_cvt->in(_M_state, 23376: __bnext, __bnext + __nbytes, __bnext, 23376: __outbuf, __outend, __outnext); 23376: } 23376: 23376: if (__result == codecvt_base::noconv) 23376: { 23376: 23376: auto __get_buf = reinterpret_cast(_M_get_buf); 23376: _Tr::copy(__outbuf, __get_buf, __nbytes); 23376: _M_unconv = 0; 23376: return true; 23376: } 23376: 23376: if ((_M_unconv = _M_get_buf + __nbytes - __bnext)) 23376: char_traits::move(_M_get_buf, __bnext, _M_unconv); 23376: 23376: this->setg(__outbuf, __outbuf, __outnext); 23376: 23376: return __result != codecvt_base::error; 23376: } 23376: 23376: 23376: bool 23376: _M_put(...) 23376: { return false; } 23376: 23376: bool 23376: _M_put(const char* __p, streamsize __n) 23376: { 23376: if (_M_buf->sputn(__p, __n) < __n) 23376: return false; 23376: return true; 23376: } 23376: 23376: 23376: bool 23376: _M_conv_put() 23376: { 23376: _Elem* const __first = this->pbase(); 23376: const _Elem* const __last = this->pptr(); 23376: const streamsize __pending = __last - __first; 23376: 23376: if (_M_always_noconv) 23376: return _M_put(__first, __pending); 23376: 23376: char __outbuf[2 * _S_buffer_length]; 23376: 23376: const _Elem* __next = __first; 23376: const _Elem* __start; 23376: do 23376: { 23376: __start = __next; 23376: char* __outnext = __outbuf; 23376: char* const __outlast = __outbuf + sizeof(__outbuf); 23376: auto __result = _M_cvt->out(_M_state, __next, __last, __next, 23376: __outnext, __outlast, __outnext); 23376: if (__result == codecvt_base::error) 23376: return false; 23376: else if (__result == codecvt_base::noconv) 23376: return _M_put(__next, __pending); 23376: 23376: if (!_M_put(__outbuf, __outnext - __outbuf)) 23376: return false; 23376: } 23376: while (__next != __last && __next != __start); 23376: 23376: if (__next != __last) 23376: _Tr::move(__first, __next, __last - __next); 23376: 23376: this->pbump(__first - __next); 23376: return __next != __first; 23376: } 23376: 23376: streambuf* _M_buf; 23376: unique_ptr<_Codecvt> _M_cvt; 23376: state_type _M_state; 23376: 23376: static const streamsize _S_buffer_length = 32; 23376: static const streamsize _S_putback_length = 3; 23376: _Elem _M_put_area[_S_buffer_length]; 23376: _Elem _M_get_area[_S_buffer_length]; 23376: streamsize _M_unconv = 0; 23376: char _M_get_buf[_S_buffer_length-_S_putback_length]; 23376: bool _M_always_noconv; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 44 "/usr/include/c++/8/locale" 2 3 23376: # 44 "/usr/include/c++/8/iomanip" 2 3 23376: 23376: # 1 "/usr/include/c++/8/bits/quoted_string.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/quoted_string.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/quoted_string.h" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: namespace __detail { 23376: 23376: 23376: 23376: template 23376: struct _Quoted_string 23376: { 23376: static_assert(is_reference<_String>::value 23376: || is_pointer<_String>::value, 23376: "String type must be pointer or reference"); 23376: 23376: _Quoted_string(_String __str, _CharT __del, _CharT __esc) 23376: : _M_string(__str), _M_delim{__del}, _M_escape{__esc} 23376: { } 23376: 23376: _Quoted_string& 23376: operator=(_Quoted_string&) = delete; 23376: 23376: _String _M_string; 23376: _CharT _M_delim; 23376: _CharT _M_escape; 23376: }; 23376: # 91 "/usr/include/c++/8/bits/quoted_string.h" 3 23376: template 23376: std::basic_ostream<_CharT, _Traits>& 23376: operator<<(std::basic_ostream<_CharT, _Traits>& __os, 23376: const _Quoted_string& __str) 23376: { 23376: std::basic_ostringstream<_CharT, _Traits> __ostr; 23376: __ostr << __str._M_delim; 23376: for (const _CharT* __c = __str._M_string; *__c; ++__c) 23376: { 23376: if (*__c == __str._M_delim || *__c == __str._M_escape) 23376: __ostr << __str._M_escape; 23376: __ostr << *__c; 23376: } 23376: __ostr << __str._M_delim; 23376: 23376: return __os << __ostr.str(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: std::basic_ostream<_CharT, _Traits>& 23376: operator<<(std::basic_ostream<_CharT, _Traits>& __os, 23376: const _Quoted_string<_String, _CharT>& __str) 23376: { 23376: std::basic_ostringstream<_CharT, _Traits> __ostr; 23376: __ostr << __str._M_delim; 23376: for (auto __c : __str._M_string) 23376: { 23376: if (__c == __str._M_delim || __c == __str._M_escape) 23376: __ostr << __str._M_escape; 23376: __ostr << __c; 23376: } 23376: __ostr << __str._M_delim; 23376: 23376: return __os << __ostr.str(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: std::basic_istream<_CharT, _Traits>& 23376: operator>>(std::basic_istream<_CharT, _Traits>& __is, 23376: const _Quoted_string&, 23376: _CharT>& __str) 23376: { 23376: _CharT __c; 23376: __is >> __c; 23376: if (!__is.good()) 23376: return __is; 23376: if (__c != __str._M_delim) 23376: { 23376: __is.unget(); 23376: __is >> __str._M_string; 23376: return __is; 23376: } 23376: __str._M_string.clear(); 23376: std::ios_base::fmtflags __flags 23376: = __is.flags(__is.flags() & ~std::ios_base::skipws); 23376: do 23376: { 23376: __is >> __c; 23376: if (!__is.good()) 23376: break; 23376: if (__c == __str._M_escape) 23376: { 23376: __is >> __c; 23376: if (!__is.good()) 23376: break; 23376: } 23376: else if (__c == __str._M_delim) 23376: break; 23376: __str._M_string += __c; 23376: } 23376: while (true); 23376: __is.setf(__flags); 23376: 23376: return __is; 23376: } 23376: } 23376: 23376: 23376: } 23376: # 46 "/usr/include/c++/8/iomanip" 2 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: struct _Resetiosflags { ios_base::fmtflags _M_mask; }; 23376: # 65 "/usr/include/c++/8/iomanip" 3 23376: inline _Resetiosflags 23376: resetiosflags(ios_base::fmtflags __mask) 23376: { return { __mask }; } 23376: 23376: template 23376: inline basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __is, _Resetiosflags __f) 23376: { 23376: __is.setf(ios_base::fmtflags(0), __f._M_mask); 23376: return __is; 23376: } 23376: 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, _Resetiosflags __f) 23376: { 23376: __os.setf(ios_base::fmtflags(0), __f._M_mask); 23376: return __os; 23376: } 23376: 23376: 23376: struct _Setiosflags { ios_base::fmtflags _M_mask; }; 23376: # 95 "/usr/include/c++/8/iomanip" 3 23376: inline _Setiosflags 23376: setiosflags(ios_base::fmtflags __mask) 23376: { return { __mask }; } 23376: 23376: template 23376: inline basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __is, _Setiosflags __f) 23376: { 23376: __is.setf(__f._M_mask); 23376: return __is; 23376: } 23376: 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setiosflags __f) 23376: { 23376: __os.setf(__f._M_mask); 23376: return __os; 23376: } 23376: 23376: 23376: struct _Setbase { int _M_base; }; 23376: # 126 "/usr/include/c++/8/iomanip" 3 23376: inline _Setbase 23376: setbase(int __base) 23376: { return { __base }; } 23376: 23376: template 23376: inline basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __is, _Setbase __f) 23376: { 23376: __is.setf(__f._M_base == 8 ? ios_base::oct : 23376: __f._M_base == 10 ? ios_base::dec : 23376: __f._M_base == 16 ? ios_base::hex : 23376: ios_base::fmtflags(0), ios_base::basefield); 23376: return __is; 23376: } 23376: 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setbase __f) 23376: { 23376: __os.setf(__f._M_base == 8 ? ios_base::oct : 23376: __f._M_base == 10 ? ios_base::dec : 23376: __f._M_base == 16 ? ios_base::hex : 23376: ios_base::fmtflags(0), ios_base::basefield); 23376: return __os; 23376: } 23376: 23376: 23376: template 23376: struct _Setfill { _CharT _M_c; }; 23376: # 163 "/usr/include/c++/8/iomanip" 3 23376: template 23376: inline _Setfill<_CharT> 23376: setfill(_CharT __c) 23376: { return { __c }; } 23376: 23376: template 23376: inline basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f) 23376: { 23376: __is.fill(__f._M_c); 23376: return __is; 23376: } 23376: 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setfill<_CharT> __f) 23376: { 23376: __os.fill(__f._M_c); 23376: return __os; 23376: } 23376: 23376: 23376: struct _Setprecision { int _M_n; }; 23376: # 194 "/usr/include/c++/8/iomanip" 3 23376: inline _Setprecision 23376: setprecision(int __n) 23376: { return { __n }; } 23376: 23376: template 23376: inline basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __is, _Setprecision __f) 23376: { 23376: __is.precision(__f._M_n); 23376: return __is; 23376: } 23376: 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setprecision __f) 23376: { 23376: __os.precision(__f._M_n); 23376: return __os; 23376: } 23376: 23376: 23376: struct _Setw { int _M_n; }; 23376: # 224 "/usr/include/c++/8/iomanip" 3 23376: inline _Setw 23376: setw(int __n) 23376: { return { __n }; } 23376: 23376: template 23376: inline basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __is, _Setw __f) 23376: { 23376: __is.width(__f._M_n); 23376: return __is; 23376: } 23376: 23376: template 23376: inline basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setw __f) 23376: { 23376: __os.width(__f._M_n); 23376: return __os; 23376: } 23376: 23376: 23376: 23376: template 23376: struct _Get_money { _MoneyT& _M_mon; bool _M_intl; }; 23376: # 257 "/usr/include/c++/8/iomanip" 3 23376: template 23376: inline _Get_money<_MoneyT> 23376: get_money(_MoneyT& __mon, bool __intl = false) 23376: { return { __mon, __intl }; } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __is, _Get_money<_MoneyT> __f) 23376: { 23376: typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, false); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: typedef istreambuf_iterator<_CharT, _Traits> _Iter; 23376: typedef money_get<_CharT, _Iter> _MoneyGet; 23376: 23376: const _MoneyGet& __mg = use_facet<_MoneyGet>(__is.getloc()); 23376: __mg.get(_Iter(__is.rdbuf()), _Iter(), __f._M_intl, 23376: __is, __err, __f._M_mon); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __is._M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { __is._M_setstate(ios_base::badbit); } 23376: if (__err) 23376: __is.setstate(__err); 23376: } 23376: return __is; 23376: } 23376: 23376: 23376: template 23376: struct _Put_money { const _MoneyT& _M_mon; bool _M_intl; }; 23376: # 304 "/usr/include/c++/8/iomanip" 3 23376: template 23376: inline _Put_money<_MoneyT> 23376: put_money(const _MoneyT& __mon, bool __intl = false) 23376: { return { __mon, __intl }; } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_money<_MoneyT> __f) 23376: { 23376: typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: typedef ostreambuf_iterator<_CharT, _Traits> _Iter; 23376: typedef money_put<_CharT, _Iter> _MoneyPut; 23376: 23376: const _MoneyPut& __mp = use_facet<_MoneyPut>(__os.getloc()); 23376: if (__mp.put(_Iter(__os.rdbuf()), __f._M_intl, __os, 23376: __os.fill(), __f._M_mon).failed()) 23376: __err |= ios_base::badbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __os._M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { __os._M_setstate(ios_base::badbit); } 23376: if (__err) 23376: __os.setstate(__err); 23376: } 23376: return __os; 23376: } 23376: 23376: template 23376: struct _Put_time 23376: { 23376: const std::tm* _M_tmb; 23376: const _CharT* _M_fmt; 23376: }; 23376: # 356 "/usr/include/c++/8/iomanip" 3 23376: template 23376: inline _Put_time<_CharT> 23376: put_time(const std::tm* __tmb, const _CharT* __fmt) 23376: { return { __tmb, __fmt }; } 23376: 23376: template 23376: basic_ostream<_CharT, _Traits>& 23376: operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_time<_CharT> __f) 23376: { 23376: typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: typedef ostreambuf_iterator<_CharT, _Traits> _Iter; 23376: typedef time_put<_CharT, _Iter> _TimePut; 23376: 23376: const _CharT* const __fmt_end = __f._M_fmt + 23376: _Traits::length(__f._M_fmt); 23376: 23376: const _TimePut& __mp = use_facet<_TimePut>(__os.getloc()); 23376: if (__mp.put(_Iter(__os.rdbuf()), __os, __os.fill(), 23376: __f._M_tmb, __f._M_fmt, __fmt_end).failed()) 23376: __err |= ios_base::badbit; 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __os._M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { __os._M_setstate(ios_base::badbit); } 23376: if (__err) 23376: __os.setstate(__err); 23376: } 23376: return __os; 23376: } 23376: 23376: template 23376: struct _Get_time 23376: { 23376: std::tm* _M_tmb; 23376: const _CharT* _M_fmt; 23376: }; 23376: # 411 "/usr/include/c++/8/iomanip" 3 23376: template 23376: inline _Get_time<_CharT> 23376: get_time(std::tm* __tmb, const _CharT* __fmt) 23376: { return { __tmb, __fmt }; } 23376: 23376: template 23376: basic_istream<_CharT, _Traits>& 23376: operator>>(basic_istream<_CharT, _Traits>& __is, _Get_time<_CharT> __f) 23376: { 23376: typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, false); 23376: if (__cerb) 23376: { 23376: ios_base::iostate __err = ios_base::goodbit; 23376: try 23376: { 23376: typedef istreambuf_iterator<_CharT, _Traits> _Iter; 23376: typedef time_get<_CharT, _Iter> _TimeGet; 23376: 23376: const _CharT* const __fmt_end = __f._M_fmt + 23376: _Traits::length(__f._M_fmt); 23376: 23376: const _TimeGet& __mg = use_facet<_TimeGet>(__is.getloc()); 23376: __mg.get(_Iter(__is.rdbuf()), _Iter(), __is, 23376: __err, __f._M_tmb, __f._M_fmt, __fmt_end); 23376: } 23376: catch(__cxxabiv1::__forced_unwind&) 23376: { 23376: __is._M_setstate(ios_base::badbit); 23376: throw; 23376: } 23376: catch(...) 23376: { __is._M_setstate(ios_base::badbit); } 23376: if (__err) 23376: __is.setstate(__err); 23376: } 23376: return __is; 23376: } 23376: # 459 "/usr/include/c++/8/iomanip" 3 23376: template 23376: inline auto 23376: quoted(const _CharT* __string, 23376: _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) 23376: { 23376: return __detail::_Quoted_string(__string, __delim, 23376: __escape); 23376: } 23376: 23376: template 23376: inline auto 23376: quoted(const basic_string<_CharT, _Traits, _Alloc>& __string, 23376: _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) 23376: { 23376: return __detail::_Quoted_string< 23376: const basic_string<_CharT, _Traits, _Alloc>&, _CharT>( 23376: __string, __delim, __escape); 23376: } 23376: 23376: template 23376: inline auto 23376: quoted(basic_string<_CharT, _Traits, _Alloc>& __string, 23376: _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) 23376: { 23376: return __detail::_Quoted_string< 23376: basic_string<_CharT, _Traits, _Alloc>&, _CharT>( 23376: __string, __delim, __escape); 23376: } 23376: # 508 "/usr/include/c++/8/iomanip" 3 23376: extern template ostream& operator<<(ostream&, _Setfill); 23376: extern template ostream& operator<<(ostream&, _Setiosflags); 23376: extern template ostream& operator<<(ostream&, _Resetiosflags); 23376: extern template ostream& operator<<(ostream&, _Setbase); 23376: extern template ostream& operator<<(ostream&, _Setprecision); 23376: extern template ostream& operator<<(ostream&, _Setw); 23376: extern template istream& operator>>(istream&, _Setfill); 23376: extern template istream& operator>>(istream&, _Setiosflags); 23376: extern template istream& operator>>(istream&, _Resetiosflags); 23376: extern template istream& operator>>(istream&, _Setbase); 23376: extern template istream& operator>>(istream&, _Setprecision); 23376: extern template istream& operator>>(istream&, _Setw); 23376: 23376: 23376: extern template wostream& operator<<(wostream&, _Setfill); 23376: extern template wostream& operator<<(wostream&, _Setiosflags); 23376: extern template wostream& operator<<(wostream&, _Resetiosflags); 23376: extern template wostream& operator<<(wostream&, _Setbase); 23376: extern template wostream& operator<<(wostream&, _Setprecision); 23376: extern template wostream& operator<<(wostream&, _Setw); 23376: extern template wistream& operator>>(wistream&, _Setfill); 23376: extern template wistream& operator>>(wistream&, _Setiosflags); 23376: extern template wistream& operator>>(wistream&, _Resetiosflags); 23376: extern template wistream& operator>>(wistream&, _Setbase); 23376: extern template wistream& operator>>(wistream&, _Setprecision); 23376: extern template wistream& operator>>(wistream&, _Setw); 23376: 23376: 23376: 23376: 23376: } 23376: # 29 "../../src/Checked_Number_templates.hh" 2 23376: 23376: 23376: 23376: # 31 "../../src/Checked_Number_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: typename Enable_If::value, void>::type 23376: ascii_dump(std::ostream& s, const T& t) { 23376: if (std::numeric_limits::is_exact) { 23376: 23376: s << t; 23376: } 23376: else { 23376: 23376: 23376: const std::ios::fmtflags old_flags = s.setf(std::ios::hex, 23376: std::ios::basefield); 23376: const unsigned char* p = reinterpret_cast(&t); 23376: for (unsigned i = 0; i < sizeof(T); ++i) { 23376: s << std::setw(2) << std::setfill('0') << static_cast(p[i]); 23376: } 23376: s.flags(old_flags); 23376: 23376: s << " (" << t << ")"; 23376: } 23376: } 23376: 23376: template 23376: typename Enable_If::value, bool>::type 23376: ascii_load(std::istream& s, T& t) { 23376: if (std::numeric_limits::is_exact) { 23376: 23376: s >> t; 23376: return !s.fail(); 23376: } 23376: else { 23376: 23376: 23376: std::string str; 23376: if (!(s >> str) || str.size() != 2*sizeof(T)) { 23376: return false; 23376: } 23376: unsigned char* p = reinterpret_cast(&t); 23376: 23376: for (unsigned i = 0; i < sizeof(T); ++i) { 23376: unsigned byte_value = 0; 23376: for (unsigned j = 0; j < 2; ++j) { 23376: byte_value <<= 4; 23376: unsigned half_byte_value; 23376: 23376: switch (str[2*i + j]) { 23376: case '0': 23376: half_byte_value = 0; 23376: break; 23376: case '1': 23376: half_byte_value = 1; 23376: break; 23376: case '2': 23376: half_byte_value = 2; 23376: break; 23376: case '3': 23376: half_byte_value = 3; 23376: break; 23376: case '4': 23376: half_byte_value = 4; 23376: break; 23376: case '5': 23376: half_byte_value = 5; 23376: break; 23376: case '6': 23376: half_byte_value = 6; 23376: break; 23376: case '7': 23376: half_byte_value = 7; 23376: break; 23376: case '8': 23376: half_byte_value = 8; 23376: break; 23376: case '9': 23376: half_byte_value = 9; 23376: break; 23376: case 'A': 23376: case 'a': 23376: half_byte_value = 10; 23376: break; 23376: case 'B': 23376: case 'b': 23376: half_byte_value = 11; 23376: break; 23376: case 'C': 23376: case 'c': 23376: half_byte_value = 12; 23376: break; 23376: case 'D': 23376: case 'd': 23376: half_byte_value = 13; 23376: break; 23376: case 'E': 23376: case 'e': 23376: half_byte_value = 14; 23376: break; 23376: case 'F': 23376: case 'f': 23376: half_byte_value = 15; 23376: break; 23376: default: 23376: return false; 23376: } 23376: byte_value += half_byte_value; 23376: } 23376: ((void) 0); 23376: p[i] = static_cast(byte_value); 23376: } 23376: 23376: if (!(s >> str)) { 23376: return false; 23376: } 23376: const std::string::size_type sz = str.size(); 23376: return sz > 2 && str[0] == '(' && str[sz-1] == ')'; 23376: } 23376: } 23376: 23376: } 23376: # 1069 "../../src/Checked_Number_defs.hh" 2 23376: # 28 "../../src/checked_numeric_limits.hh" 2 23376: 23376: 23376: 23376: namespace std { 23376: 23376: using namespace Parma_Polyhedra_Library; 23376: # 74 "../../src/checked_numeric_limits.hh" 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: template class numeric_limits > : public numeric_limits { private: typedef Checked_Number Type; public: static const bool has_infinity = Policy::has_infinity; static const bool has_quiet_NaN = Policy::has_nan; static Type min() { Type v; v.raw_value() = Checked::Extended_Int::min; return v; } static Type max() { Type v; v.raw_value() = Checked::Extended_Int::max; return v; } static Type infinity() { Type v; Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, ROUND_IGNORE); return v; } static Type quiet_NaN() { Type v; Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); return v; } }; 23376: # 112 "../../src/checked_numeric_limits.hh" 23376: template 23376: class 23376: numeric_limits > 23376: : public numeric_limits { 23376: private: 23376: typedef Checked_Number Type; 23376: 23376: public: 23376: static const bool has_infinity = Policy::has_infinity; 23376: static const bool has_quiet_NaN = Policy::has_nan; 23376: 23376: static Type infinity() { 23376: Type v; 23376: Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, 23376: ROUND_IGNORE); 23376: return v; 23376: } 23376: 23376: static Type quiet_NaN() { 23376: Type v; 23376: Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); 23376: return v; 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class 23376: numeric_limits > 23376: : public numeric_limits { 23376: private: 23376: typedef Checked_Number Type; 23376: 23376: public: 23376: static const bool has_infinity = Policy::has_infinity; 23376: static const bool has_quiet_NaN = Policy::has_nan; 23376: 23376: static Type infinity() { 23376: Type v; 23376: Checked::assign_special(v.raw_value(), VC_PLUS_INFINITY, 23376: ROUND_IGNORE); 23376: return v; 23376: } 23376: 23376: static Type quiet_NaN() { 23376: Type v; 23376: Checked::assign_special(v.raw_value(), VC_NAN, ROUND_IGNORE); 23376: return v; 23376: } 23376: }; 23376: 23376: } 23376: # 4 "../../src/ppl_include_files.hh" 2 23376: # 1 "../../src/stdiobuf_defs.hh" 1 23376: # 27 "../../src/stdiobuf_defs.hh" 23376: # 1 "../../src/stdiobuf_types.hh" 1 23376: # 16 "../../src/stdiobuf_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class stdiobuf; 23376: 23376: } 23376: # 28 "../../src/stdiobuf_defs.hh" 2 23376: # 1 "/usr/include/c++/8/cstdio" 1 3 23376: # 39 "/usr/include/c++/8/cstdio" 3 23376: 23376: # 40 "/usr/include/c++/8/cstdio" 3 23376: # 29 "../../src/stdiobuf_defs.hh" 2 23376: 23376: 23376: class Parma_Polyhedra_Library::stdiobuf 23376: : public std::basic_streambuf > { 23376: public: 23376: 23376: stdiobuf(FILE* file); 23376: 23376: protected: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int_type underflow(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int_type uflow(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual std::streamsize xsgetn(char_type* s, std::streamsize n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int_type pbackfail(int_type c = traits_type::eof()); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual std::streamsize xsputn(const char_type* s, std::streamsize n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int_type overflow(int_type c); 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int sync(); 23376: 23376: private: 23376: 23376: typedef char char_type; 23376: 23376: 23376: typedef std::char_traits traits_type; 23376: 23376: 23376: typedef traits_type::int_type int_type; 23376: 23376: 23376: FILE* fp; 23376: 23376: 23376: int_type unget_char_buf; 23376: }; 23376: 23376: # 1 "../../src/stdiobuf_inlines.hh" 1 23376: # 27 "../../src/stdiobuf_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: stdiobuf::stdiobuf(FILE* file) 23376: : fp(file), unget_char_buf(traits_type::eof()) { 23376: } 23376: 23376: } 23376: # 110 "../../src/stdiobuf_defs.hh" 2 23376: # 5 "../../src/ppl_include_files.hh" 2 23376: # 1 "../../src/c_streambuf_defs.hh" 1 23376: # 27 "../../src/c_streambuf_defs.hh" 23376: # 1 "../../src/c_streambuf_types.hh" 1 23376: # 16 "../../src/c_streambuf_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class c_streambuf; 23376: 23376: } 23376: # 28 "../../src/c_streambuf_defs.hh" 2 23376: 23376: 23376: 23376: class Parma_Polyhedra_Library::c_streambuf 23376: : public std::basic_streambuf > { 23376: public: 23376: 23376: c_streambuf(); 23376: 23376: 23376: virtual ~c_streambuf(); 23376: 23376: protected: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int_type underflow(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int_type uflow(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual std::streamsize xsgetn(char_type* s, std::streamsize n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int_type pbackfail(int_type c = traits_type::eof()); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual std::streamsize xsputn(const char_type* s, std::streamsize n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int_type overflow(int_type c); 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int sync(); 23376: 23376: private: 23376: 23376: typedef char char_type; 23376: 23376: 23376: typedef std::char_traits traits_type; 23376: 23376: 23376: typedef traits_type::int_type int_type; 23376: 23376: 23376: int_type unget_char_buf; 23376: 23376: 23376: int_type next_char_buf; 23376: 23376: virtual size_t cb_read(char *, size_t) { 23376: return 0; 23376: } 23376: virtual size_t cb_write(const char *, size_t) { 23376: return 0; 23376: } 23376: virtual int cb_sync() { 23376: return 0; 23376: } 23376: virtual int cb_flush() { 23376: return 0; 23376: } 23376: }; 23376: 23376: # 1 "../../src/c_streambuf_inlines.hh" 1 23376: # 27 "../../src/c_streambuf_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: c_streambuf::c_streambuf() 23376: : unget_char_buf(traits_type::eof()), next_char_buf(traits_type::eof()) { 23376: } 23376: 23376: } 23376: # 126 "../../src/c_streambuf_defs.hh" 2 23376: # 6 "../../src/ppl_include_files.hh" 2 23376: # 1 "../../src/Integer_Interval.hh" 1 23376: # 27 "../../src/Integer_Interval.hh" 23376: # 1 "../../src/Interval_defs.hh" 1 23376: # 27 "../../src/Interval_defs.hh" 23376: # 1 "../../src/Interval_types.hh" 1 23376: # 16 "../../src/Interval_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Interval; 23376: 23376: } 23376: # 28 "../../src/Interval_defs.hh" 2 23376: 23376: 23376: # 1 "../../src/assign_or_swap.hh" 1 23376: # 28 "../../src/assign_or_swap.hh" 23376: # 1 "../../src/Has_Assign_Or_Swap.hh" 1 23376: # 29 "../../src/Has_Assign_Or_Swap.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct Has_Assign_Or_Swap : public False { 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct Has_Assign_Or_Swap::type> 23376: : public True { 23376: }; 23376: 23376: } 23376: # 29 "../../src/assign_or_swap.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline typename Enable_If::value, void>::type 23376: assign_or_swap(T& to, T& from) { 23376: to.assign_or_swap(from); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && !Slow_Copy::value, void>::type 23376: assign_or_swap(T& to, T& from) { 23376: to = from; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline typename Enable_If::value 23376: && Slow_Copy::value, void>::type 23376: assign_or_swap(T& to, T& from) { 23376: using std::swap; 23376: swap(to, from); 23376: } 23376: 23376: } 23376: # 31 "../../src/Interval_defs.hh" 2 23376: # 1 "../../src/intervals_defs.hh" 1 23376: # 29 "../../src/intervals_defs.hh" 23376: # 1 "/usr/include/c++/8/cstdlib" 1 3 23376: # 39 "/usr/include/c++/8/cstdlib" 3 23376: 23376: # 40 "/usr/include/c++/8/cstdlib" 3 23376: # 30 "../../src/intervals_defs.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: enum I_Result { 23376: 23376: 23376: 23376: I_EMPTY = 1U, 23376: 23376: 23376: 23376: I_SINGLETON = 2U, 23376: 23376: 23376: 23376: 23376: 23376: I_SOME = 4U, 23376: 23376: 23376: 23376: I_UNIVERSE = 8U, 23376: 23376: 23376: 23376: I_NOT_EMPTY = I_SINGLETON | I_SOME | I_UNIVERSE, 23376: 23376: 23376: 23376: I_ANY = I_EMPTY | I_NOT_EMPTY, 23376: 23376: 23376: 23376: I_NOT_UNIVERSE = I_EMPTY | I_SINGLETON | I_SOME, 23376: 23376: 23376: 23376: I_NOT_DEGENERATE = I_SINGLETON | I_SOME, 23376: 23376: 23376: 23376: I_EXACT = 16, 23376: 23376: 23376: 23376: I_INEXACT = 32, 23376: 23376: 23376: 23376: I_CHANGED = 64, 23376: 23376: 23376: 23376: I_UNCHANGED = 128, 23376: 23376: 23376: 23376: I_SINGULARITIES = 256 23376: }; 23376: 23376: inline I_Result 23376: operator|(I_Result a, I_Result b) { 23376: return static_cast(static_cast(a) 23376: | static_cast(b)); 23376: } 23376: 23376: inline I_Result 23376: operator&(I_Result a, I_Result b) { 23376: return static_cast(static_cast(a) 23376: & static_cast(b)); 23376: } 23376: 23376: inline I_Result 23376: operator-(I_Result a, I_Result b) { 23376: return static_cast(static_cast(a) 23376: & ~static_cast(b)); 23376: } 23376: 23376: template 23376: struct Use_By_Ref; 23376: 23376: struct Use_Slow_Copy; 23376: template 23376: struct Use_By_Ref 23376: : public Bool::value> { 23376: }; 23376: 23376: struct By_Value; 23376: template 23376: struct Use_By_Ref 23376: : public False { 23376: }; 23376: 23376: struct By_Ref; 23376: template 23376: struct Use_By_Ref 23376: : public True { 23376: }; 23376: 23376: template 23376: class Val_Or_Ref; 23376: 23376: template 23376: class Val_Or_Ref::value>::type> { 23376: T value; 23376: public: 23376: typedef T Arg_Type; 23376: typedef T Return_Type; 23376: Val_Or_Ref() 23376: : value() { 23376: } 23376: explicit Val_Or_Ref(Arg_Type v, bool = false) 23376: : value(v) { 23376: } 23376: Val_Or_Ref& operator=(Arg_Type v) { 23376: value = v; 23376: return *this; 23376: } 23376: void set(Arg_Type v, bool = false) { 23376: value = v; 23376: } 23376: Return_Type get() const { 23376: return value; 23376: } 23376: operator Return_Type() const { 23376: return get(); 23376: } 23376: }; 23376: 23376: template 23376: class Val_Or_Ref::value>::type> { 23376: const T* ptr; 23376: public: 23376: typedef T& Arg_Type; 23376: typedef const T& Return_Type; 23376: Val_Or_Ref() 23376: : ptr(0) { 23376: } 23376: explicit Val_Or_Ref(Arg_Type v) 23376: : ptr(&v) { 23376: } 23376: Val_Or_Ref(const T& v, bool) 23376: : ptr(&v) { 23376: } 23376: Val_Or_Ref& operator=(Arg_Type v) { 23376: ptr = &v; 23376: return *this; 23376: } 23376: void set(Arg_Type v) { 23376: ptr = &v; 23376: } 23376: void set(const T& v, bool) { 23376: ptr = &v; 23376: } 23376: Return_Type get() const { 23376: return *ptr; 23376: } 23376: operator Return_Type() const { 23376: return get(); 23376: } 23376: }; 23376: 23376: class I_Constraint_Base { 23376: }; 23376: 23376: template 23376: class I_Constraint_Common : public I_Constraint_Base { 23376: public: 23376: template 23376: Result convert_real(T& to) const { 23376: const Derived& c = static_cast(*this); 23376: Result r = c.rel(); 23376: switch (r) { 23376: case V_EMPTY: 23376: case V_LGE: 23376: return r; 23376: case V_LE: 23376: r = assign_r(to, c.value(), (ROUND_UP | ROUND_STRICT_RELATION)); 23376: r = result_relation_class(r); 23376: if (r == V_EQ) { 23376: return V_LE; 23376: } 23376: goto lt; 23376: case V_LT: 23376: r = assign_r(to, c.value(), ROUND_UP); 23376: r = result_relation_class(r); 23376: lt: 23376: switch (r) { 23376: case V_EMPTY: 23376: case V_LT_PLUS_INFINITY: 23376: case V_EQ_MINUS_INFINITY: 23376: return r; 23376: case V_LT: 23376: case V_LE: 23376: case V_EQ: 23376: return V_LT; 23376: default: 23376: break; 23376: } 23376: break; 23376: case V_GE: 23376: r = assign_r(to, c.value(), (ROUND_DOWN | ROUND_STRICT_RELATION)); 23376: r = result_relation_class(r); 23376: if (r == V_EQ) { 23376: return V_GE; 23376: } 23376: goto gt; 23376: case V_GT: 23376: r = assign_r(to, c.value(), ROUND_DOWN); 23376: r = result_relation_class(r); 23376: gt: 23376: switch (r) { 23376: case V_EMPTY: 23376: case V_GT_MINUS_INFINITY: 23376: case V_EQ_PLUS_INFINITY: 23376: return r; 23376: case V_LT: 23376: case V_LE: 23376: case V_EQ: 23376: return V_GT; 23376: default: 23376: break; 23376: } 23376: break; 23376: case V_EQ: 23376: r = assign_r(to, c.value(), ROUND_CHECK); 23376: r = result_relation_class(r); 23376: ((void) 0); 23376: if (r == V_EQ) { 23376: return V_EQ; 23376: } 23376: else { 23376: return V_EMPTY; 23376: } 23376: case V_NE: 23376: r = assign_r(to, c.value(), ROUND_CHECK); 23376: r = result_relation_class(r); 23376: if (r == V_EQ) { 23376: return V_NE; 23376: } 23376: else { 23376: return V_LGE; 23376: } 23376: default: 23376: break; 23376: } 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_EMPTY; 23376: } 23376: template 23376: Result convert_real(T& to1, Result& rel2, T& to2) const { 23376: const Derived& c = static_cast(*this); 23376: Result rel1; 23376: if (c.rel() != V_EQ) { 23376: rel2 = convert(to2); 23376: return V_LGE; 23376: } 23376: rel2 = assign_r(to2, c.value(), ROUND_UP); 23376: rel2 = result_relation_class(rel2); 23376: switch (rel2) { 23376: case V_EMPTY: 23376: case V_EQ_MINUS_INFINITY: 23376: case V_EQ: 23376: return V_LGE; 23376: default: 23376: break; 23376: } 23376: rel1 = assign_r(to1, c.value(), ROUND_DOWN); 23376: rel1 = result_relation_class(rel1); 23376: switch (rel1) { 23376: case V_EQ: 23376: ((void) 0); 23376: goto eq; 23376: case V_EQ_PLUS_INFINITY: 23376: case V_EMPTY: 23376: rel2 = rel1; 23376: return V_LGE; 23376: case V_GE: 23376: if (rel2 == V_LE && to1 == to2) { 23376: eq: 23376: rel2 = V_EQ; 23376: return V_LGE; 23376: } 23376: 23376: case V_GT: 23376: case V_GT_MINUS_INFINITY: 23376: return rel1; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_EMPTY; 23376: } 23376: switch (rel2) { 23376: case V_LE: 23376: case V_LT: 23376: case V_LT_PLUS_INFINITY: 23376: return rel1; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_EMPTY; 23376: } 23376: } 23376: template 23376: Result convert_integer(T& to) const { 23376: Result rel = convert_real(to); 23376: switch (rel) { 23376: case V_LT: 23376: if (is_integer(to)) { 23376: rel = sub_assign_r(to, to, T(1), (ROUND_UP | ROUND_STRICT_RELATION)); 23376: rel = result_relation_class(rel); 23376: return (rel == V_EQ) ? V_LE : rel; 23376: } 23376: 23376: case V_LE: 23376: rel = floor_assign_r(to, to, ROUND_UP); 23376: rel = result_relation_class(rel); 23376: ((void) 0); 23376: return V_LE; 23376: case V_GT: 23376: if (is_integer(to)) { 23376: rel = add_assign_r(to, to, T(1), (ROUND_DOWN | ROUND_STRICT_RELATION)); 23376: rel = result_relation_class(rel); 23376: return (rel == V_EQ) ? V_GE : rel; 23376: } 23376: 23376: case V_GE: 23376: rel = ceil_assign_r(to, to, ROUND_DOWN); 23376: rel = result_relation_class(rel); 23376: ((void) 0); 23376: return V_GE; 23376: case V_EQ: 23376: if (is_integer(to)) { 23376: return V_EQ; 23376: } 23376: return V_EMPTY; 23376: case V_NE: 23376: if (is_integer(to)) { 23376: return V_NE; 23376: } 23376: return V_LGE; 23376: default: 23376: return rel; 23376: } 23376: } 23376: }; 23376: 23376: struct I_Constraint_Rel { 23376: Result rel; 23376: I_Constraint_Rel(Result r) 23376: : rel(r) { 23376: ((void) 0); 23376: } 23376: I_Constraint_Rel(Relation_Symbol r) 23376: : rel(static_cast(r)) { 23376: } 23376: operator Result() const { 23376: return rel; 23376: } 23376: }; 23376: 23376: template 23376: class I_Constraint 23376: : public I_Constraint_Common > { 23376: typedef Val_Or_Ref Val_Ref; 23376: typedef typename Val_Ref::Arg_Type Arg_Type; 23376: typedef typename Val_Ref::Return_Type Return_Type; 23376: Result rel_; 23376: Val_Ref value_; 23376: public: 23376: typedef T value_type; 23376: explicit I_Constraint() 23376: : rel_(V_LGE) { 23376: } 23376: I_Constraint(I_Constraint_Rel r, Arg_Type v) 23376: : rel_(r), value_(v) { 23376: } 23376: I_Constraint(I_Constraint_Rel r, const T& v, bool force) 23376: : rel_(r), value_(v, force) { 23376: } 23376: template 23376: I_Constraint(I_Constraint_Rel r, const U& v) 23376: : rel_(r), value_(v) { 23376: } 23376: void set(I_Constraint_Rel r, Arg_Type v) { 23376: rel_ = r; 23376: value_.set(v); 23376: } 23376: void set(I_Constraint_Rel r, const T& v, bool force) { 23376: rel_ = r; 23376: value_.set(v, force); 23376: } 23376: template 23376: void set(I_Constraint_Rel r, const U& v) { 23376: rel_ = r; 23376: value_.set(v); 23376: } 23376: Return_Type value() const { 23376: return value_; 23376: } 23376: Result rel() const { 23376: return rel_; 23376: } 23376: }; 23376: 23376: template 23376: inline I_Constraint 23376: i_constraint(I_Constraint_Rel rel, const T& v) { 23376: return I_Constraint(rel, v); 23376: } 23376: 23376: template 23376: inline I_Constraint 23376: i_constraint(I_Constraint_Rel rel, const T& v, bool force) { 23376: return I_Constraint(rel, v, force); 23376: } 23376: 23376: template 23376: inline I_Constraint 23376: i_constraint(I_Constraint_Rel rel, T& v) { 23376: return I_Constraint(rel, v); 23376: } 23376: 23376: template 23376: inline I_Constraint 23376: i_constraint(I_Constraint_Rel rel, const T& v, const Val_Or_Ref_Criteria&) { 23376: return I_Constraint(rel, v); 23376: } 23376: 23376: template 23376: inline I_Constraint 23376: i_constraint(I_Constraint_Rel rel, const T& v, bool force, 23376: const Val_Or_Ref_Criteria&) { 23376: return I_Constraint(rel, v, force); 23376: } 23376: 23376: template 23376: inline I_Constraint 23376: i_constraint(I_Constraint_Rel rel, T& v, const Val_Or_Ref_Criteria&) { 23376: return I_Constraint(rel, v); 23376: } 23376: 23376: } 23376: # 32 "../../src/Interval_defs.hh" 2 23376: # 1 "../../src/Interval_Info_defs.hh" 1 23376: # 27 "../../src/Interval_Info_defs.hh" 23376: # 1 "../../src/Boundary_defs.hh" 1 23376: # 29 "../../src/Boundary_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Boundary_NS { 23376: 23376: struct Property { 23376: enum Type { 23376: SPECIAL_, 23376: OPEN_ 23376: }; 23376: typedef bool Value; 23376: static const Value default_value = true; 23376: static const Value unsupported_value = false; 23376: Property(Type t) 23376: : type(t) { 23376: } 23376: Type type; 23376: }; 23376: 23376: static const Property SPECIAL(Property::SPECIAL_); 23376: static const Property OPEN(Property::OPEN_); 23376: 23376: enum Boundary_Type { 23376: LOWER = ROUND_DOWN, 23376: UPPER = ROUND_UP 23376: }; 23376: 23376: inline Rounding_Dir 23376: round_dir_check(Boundary_Type t, bool check = false) { 23376: if (check) { 23376: return static_cast(t) | ROUND_STRICT_RELATION; 23376: } 23376: else { 23376: return static_cast(t); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: special_set_boundary_infinity(Boundary_Type type, T&, Info& info) { 23376: ((void) 0); 23376: info.set_boundary_property(type, SPECIAL); 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline bool 23376: special_is_open(Boundary_Type, const T&, const Info&) { 23376: return !Info::may_contain_infinity; 23376: } 23376: 23376: template 23376: inline bool 23376: normal_is_open(Boundary_Type type, const T& x, const Info& info) { 23376: if (Info::store_open) { 23376: return info.get_boundary_property(type, OPEN); 23376: } 23376: else { 23376: return !Info::store_special && !Info::may_contain_infinity 23376: && normal_is_boundary_infinity(type, x, info); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: is_open(Boundary_Type type, const T& x, const Info& info) { 23376: if (Info::store_open) { 23376: return info.get_boundary_property(type, OPEN); 23376: } 23376: else { 23376: return !Info::may_contain_infinity 23376: && is_boundary_infinity(type, x, info); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: set_unbounded(Boundary_Type type, T& x, Info& info) { 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_109 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(Info::store_special || std::numeric_limits::is_bounded || std::numeric_limits::has_infinity)>) } 23376: 23376: 23376: ; 23376: Result r; 23376: if (Info::store_special) { 23376: r = special_set_boundary_infinity(type, x, info); 23376: } 23376: else if (type == LOWER) { 23376: r = assign_r(x, MINUS_INFINITY, ROUND_UP); 23376: } 23376: else { 23376: r = assign_r(x, PLUS_INFINITY, ROUND_DOWN); 23376: } 23376: if (result_relation(r) == VR_EQ && !Info::may_contain_infinity) { 23376: info.set_boundary_property(type, OPEN); 23376: } 23376: return r; 23376: } 23376: 23376: template 23376: inline Result 23376: set_minus_infinity(Boundary_Type type, T& x, Info& info, bool open = false) { 23376: if (open) { 23376: ((void) 0); 23376: } 23376: else { 23376: ((void) 0); 23376: } 23376: Result r; 23376: if (Info::store_special) { 23376: ((void) 0); 23376: r = special_set_boundary_infinity(type, x, info); 23376: } 23376: else { 23376: r = assign_r(x, MINUS_INFINITY, round_dir_check(type)); 23376: ((void) 0); 23376: } 23376: if (open || result_relation(r) != VR_EQ) { 23376: info.set_boundary_property(type, OPEN); 23376: } 23376: return r; 23376: } 23376: 23376: template 23376: inline Result 23376: set_plus_infinity(Boundary_Type type, T& x, Info& info, bool open = false) { 23376: if (open) { 23376: ((void) 0); 23376: } 23376: else { 23376: ((void) 0); 23376: } 23376: Result r; 23376: if (Info::store_special) { 23376: ((void) 0); 23376: r = special_set_boundary_infinity(type, x, info); 23376: } 23376: else { 23376: r = assign_r(x, PLUS_INFINITY, round_dir_check(type)); 23376: ((void) 0); 23376: } 23376: if (open || result_relation(r) != VR_EQ) { 23376: info.set_boundary_property(type, OPEN); 23376: } 23376: return r; 23376: } 23376: 23376: template 23376: inline Result 23376: set_boundary_infinity(Boundary_Type type, T& x, Info& info, bool open = false) { 23376: ((void) 0); 23376: Result r; 23376: if (Info::store_special) { 23376: r = special_set_boundary_infinity(type, x, info); 23376: } 23376: else if (type == LOWER) { 23376: r = assign_r(x, MINUS_INFINITY, round_dir_check(type)); 23376: } 23376: else { 23376: r = assign_r(x, PLUS_INFINITY, round_dir_check(type)); 23376: } 23376: ((void) 0); 23376: if (open) { 23376: info.set_boundary_property(type, OPEN); 23376: } 23376: return r; 23376: } 23376: 23376: template 23376: inline bool 23376: is_domain_inf(Boundary_Type type, const T& x, const Info& info) { 23376: if (Info::store_special && type == LOWER) { 23376: return info.get_boundary_property(type, SPECIAL); 23376: } 23376: else if (std::numeric_limits::has_infinity) { 23376: return Parma_Polyhedra_Library::is_minus_infinity(x); 23376: } 23376: else if (std::numeric_limits::is_bounded) { 23376: return x == std::numeric_limits::min(); 23376: } 23376: else { 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: is_domain_sup(Boundary_Type type, const T& x, const Info& info) { 23376: if (Info::store_special && type == UPPER) { 23376: return info.get_boundary_property(type, SPECIAL); 23376: } 23376: else if (std::numeric_limits::has_infinity) { 23376: return Parma_Polyhedra_Library::is_plus_infinity(x); 23376: } 23376: else if (std::numeric_limits::is_bounded) { 23376: return x == std::numeric_limits::max(); 23376: } 23376: else { 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: normal_is_boundary_infinity(Boundary_Type type, const T& x, const Info&) { 23376: if (!std::numeric_limits::has_infinity) { 23376: return false; 23376: } 23376: if (type == LOWER) { 23376: return Parma_Polyhedra_Library::is_minus_infinity(x); 23376: } 23376: else { 23376: return Parma_Polyhedra_Library::is_plus_infinity(x); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: is_boundary_infinity(Boundary_Type type, const T& x, const Info& info) { 23376: if (Info::store_special) { 23376: return info.get_boundary_property(type, SPECIAL); 23376: } 23376: else { 23376: return normal_is_boundary_infinity(type, x, info); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: normal_is_reverse_infinity(Boundary_Type type, const T& x, const Info&) { 23376: if (!Info::may_contain_infinity) { 23376: return false; 23376: } 23376: else if (type == LOWER) { 23376: return Parma_Polyhedra_Library::is_plus_infinity(x); 23376: } 23376: else { 23376: return Parma_Polyhedra_Library::is_minus_infinity(x); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: is_minus_infinity(Boundary_Type type, const T& x, const Info& info) { 23376: if (type == LOWER) { 23376: if (Info::store_special) { 23376: return info.get_boundary_property(type, SPECIAL); 23376: } 23376: else { 23376: return normal_is_boundary_infinity(type, x, info); 23376: } 23376: } 23376: else { 23376: return !Info::store_special && normal_is_reverse_infinity(type, x, info); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: is_plus_infinity(Boundary_Type type, const T& x, const Info& info) { 23376: if (type == UPPER) { 23376: if (Info::store_special) { 23376: return info.get_boundary_property(type, SPECIAL); 23376: } 23376: else { 23376: return normal_is_boundary_infinity(type, x, info); 23376: } 23376: } 23376: else { 23376: return !Info::store_special && normal_is_reverse_infinity(type, x, info); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: is_reverse_infinity(Boundary_Type type, const T& x, const Info& info) { 23376: return normal_is_reverse_infinity(type, x, info); 23376: } 23376: 23376: template 23376: inline int 23376: infinity_sign(Boundary_Type type, const T& x, const Info& info) { 23376: if (is_boundary_infinity(type, x, info)) { 23376: return (type == LOWER) ? -1 : 1; 23376: } 23376: else if (is_reverse_infinity(type, x, info)) { 23376: return (type == UPPER) ? -1 : 1; 23376: } 23376: else { 23376: return 0; 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: is_boundary_infinity_closed(Boundary_Type type, const T& x, const Info& info) { 23376: return Info::may_contain_infinity 23376: && !info.get_boundary_property(type, OPEN) 23376: && is_boundary_infinity(type, x, info); 23376: } 23376: 23376: template 23376: inline bool 23376: boundary_infinity_is_open(Boundary_Type type, const Info& info) { 23376: return !Info::may_contain_infinity 23376: || info.get_boundary_property(type, OPEN); 23376: } 23376: 23376: template 23376: inline int 23376: sgn_b(Boundary_Type type, const T& x, const Info& info) { 23376: if (info.get_boundary_property(type, SPECIAL)) { 23376: return (type == LOWER) ? -1 : 1; 23376: } 23376: else { 23376: 23376: 23376: return Parma_Polyhedra_Library::sgn(x); 23376: } 23376: } 23376: 23376: template 23376: inline int 23376: sgn(Boundary_Type type, const T& x, const Info& info) { 23376: int sign = sgn_b(type, x, info); 23376: if (x == 0 && info.get_boundary_property(type, OPEN)) { 23376: return (type == LOWER) ? -1 : 1; 23376: } 23376: else { 23376: return sign; 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: eq(Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: if (type1 == type2) { 23376: if (is_open(type1, x1, info1) 23376: != is_open(type2, x2, info2)) { 23376: return false; 23376: } 23376: } 23376: else if (is_open(type1, x1, info1) 23376: || is_open(type2, x2, info2)) { 23376: return false; 23376: } 23376: if (is_minus_infinity(type1, x1, info1)) { 23376: return is_minus_infinity(type2, x2, info2); 23376: } 23376: else if (is_plus_infinity(type1, x1, info1)) { 23376: return is_plus_infinity(type2, x2, info2); 23376: } 23376: else if (is_minus_infinity(type2, x2, info2) 23376: || is_plus_infinity(type2, x2, info2)) { 23376: return false; 23376: } 23376: else { 23376: return equal(x1, x2); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: lt(Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: if (is_open(type1, x1, info1)) { 23376: if (type1 == UPPER 23376: && (type2 == LOWER 23376: || !is_open(type2, x2, info2))) { 23376: goto le; 23376: } 23376: } 23376: else if (type2 == LOWER 23376: && is_open(type2, x2, info2)) { 23376: le: 23376: if (is_minus_infinity(type1, x1, info1) 23376: || is_plus_infinity(type2, x2, info2)) { 23376: return true; 23376: } 23376: if (is_plus_infinity(type1, x1, info1) 23376: || is_minus_infinity(type2, x2, info2)) { 23376: return false; 23376: } 23376: else { 23376: return less_or_equal(x1, x2); 23376: } 23376: } 23376: if (is_plus_infinity(type1, x1, info1) 23376: || is_minus_infinity(type2, x2, info2)) { 23376: return false; 23376: } 23376: if (is_minus_infinity(type1, x1, info1) 23376: || is_plus_infinity(type2, x2, info2)) { 23376: return true; 23376: } 23376: else { 23376: return less_than(x1, x2); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: gt(Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: return lt(type2, x2, info2, type1, x1, info1); 23376: } 23376: 23376: template 23376: inline bool 23376: le(Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: return !gt(type1, x1, info1, type2, x2, info2); 23376: } 23376: 23376: template 23376: inline bool 23376: ge(Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: return !lt(type1, x1, info1, type2, x2, info2); 23376: } 23376: 23376: template 23376: inline Result 23376: adjust_boundary(Boundary_Type type, T& x, Info& info, 23376: bool open, Result r) { 23376: r = result_relation_class(r); 23376: if (type == LOWER) { 23376: switch (r) { 23376: case V_GT_MINUS_INFINITY: 23376: open = true; 23376: 23376: case V_EQ_MINUS_INFINITY: 23376: if (!Info::store_special) { 23376: return r; 23376: } 23376: if (open) { 23376: info.set_boundary_property(type, OPEN); 23376: } 23376: return special_set_boundary_infinity(type, x, info); 23376: case V_GT: 23376: open = true; 23376: 23376: case V_GE: 23376: case V_EQ: 23376: if (open) { 23376: info.set_boundary_property(type, OPEN); 23376: } 23376: return r; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_NAN; 23376: } 23376: } 23376: else { 23376: switch (r) { 23376: case V_LT_PLUS_INFINITY: 23376: open = true; 23376: 23376: case V_EQ_PLUS_INFINITY: 23376: if (!Info::store_special) { 23376: return r; 23376: } 23376: if (open) { 23376: info.set_boundary_property(type, OPEN); 23376: } 23376: return special_set_boundary_infinity(type, x, info); 23376: case V_LT: 23376: open = true; 23376: 23376: case V_LE: 23376: case V_EQ: 23376: if (open) { 23376: info.set_boundary_property(type, OPEN); 23376: } 23376: return r; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return V_NAN; 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: complement(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type, const T& x, const Info& info) { 23376: ((void) 0); 23376: bool should_shrink; 23376: if (info.get_boundary_property(type, SPECIAL)) { 23376: should_shrink = !special_is_open(type, x, info); 23376: if (type == LOWER) { 23376: return set_minus_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: else { 23376: return set_plus_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: } 23376: should_shrink = !normal_is_open(type, x, info); 23376: bool check = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: Result r = assign_r(to, x, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: template 23376: inline Result 23376: assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type, const T& x, const Info& info, 23376: bool should_shrink = false) { 23376: ((void) 0); 23376: if (info.get_boundary_property(type, SPECIAL)) { 23376: should_shrink = (should_shrink || special_is_open(type, x, info)); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: should_shrink = (should_shrink || normal_is_open(type, x, info)); 23376: const bool check 23376: = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: const Result r = assign_r(to, x, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: template 23376: inline Result 23376: min_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type, const T& x, const Info& info) { 23376: if (lt(type, x, info, to_type, to, to_info)) { 23376: to_info.clear_boundary_properties(to_type); 23376: return assign(to_type, to, to_info, type, x, info); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: min_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: if (lt(type1, x1, info1, type2, x2, info2)) { 23376: return assign(to_type, to, to_info, type1, x1, info1); 23376: } 23376: else { 23376: return assign(to_type, to, to_info, type2, x2, info2); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: max_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type, const T& x, const Info& info) { 23376: if (gt(type, x, info, to_type, to, to_info)) { 23376: to_info.clear_boundary_properties(to_type); 23376: return assign(to_type, to, to_info, type, x, info); 23376: } 23376: return V_EQ; 23376: } 23376: 23376: template 23376: inline Result 23376: max_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: if (gt(type1, x1, info1, type2, x2, info2)) { 23376: return assign(to_type, to, to_info, type1, x1, info1); 23376: } 23376: else { 23376: return assign(to_type, to, to_info, type2, x2, info2); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: neg_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type, const T& x, const Info& info) { 23376: ((void) 0); 23376: bool should_shrink; 23376: if (info.get_boundary_property(type, SPECIAL)) { 23376: should_shrink = special_is_open(type, x, info); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: should_shrink = normal_is_open(type, x, info); 23376: bool check = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: Result r = neg_assign_r(to, x, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: template 23376: inline Result 23376: add_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: ((void) 0); 23376: bool should_shrink; 23376: if (is_boundary_infinity(type1, x1, info1)) { 23376: should_shrink = (boundary_infinity_is_open(type1, info1) 23376: && !is_boundary_infinity_closed(type2, x2, info2)); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: else if (is_boundary_infinity(type2, x2, info2)) { 23376: should_shrink = (boundary_infinity_is_open(type2, info2) 23376: && !is_boundary_infinity_closed(type1, x1, info1)); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: should_shrink = (normal_is_open(type1, x1, info1) 23376: || normal_is_open(type2, x2, info2)); 23376: bool check = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: 23376: Result r = add_assign_r(to, x1, x2, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: template 23376: inline Result 23376: sub_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: ((void) 0); 23376: bool should_shrink; 23376: if (is_boundary_infinity(type1, x1, info1)) { 23376: should_shrink = (boundary_infinity_is_open(type1, info1) 23376: && !is_boundary_infinity_closed(type2, x2, info2)); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: else if (is_boundary_infinity(type2, x2, info2)) { 23376: should_shrink = (boundary_infinity_is_open(type2, info2) 23376: && !is_boundary_infinity_closed(type1, x1, info1)); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: should_shrink = (normal_is_open(type1, x1, info1) 23376: || normal_is_open(type2, x2, info2)); 23376: bool check = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: 23376: Result r = sub_assign_r(to, x1, x2, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: template 23376: inline Result 23376: mul_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: bool should_shrink; 23376: if (is_boundary_infinity(type1, x1, info1)) { 23376: should_shrink = (boundary_infinity_is_open(type1, info1) 23376: && !is_boundary_infinity_closed(type2, x2, info2)); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: else if (is_boundary_infinity(type2, x2, info2)) { 23376: should_shrink = (boundary_infinity_is_open(type2, info2) 23376: && !is_boundary_infinity_closed(type1, x1, info1)); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: should_shrink = (normal_is_open(type1, x1, info1) 23376: || normal_is_open(type2, x2, info2)); 23376: bool check = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: ((void) 0); 23376: 23376: Result r = mul_assign_r(to, x1, x2, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: template 23376: inline Result 23376: set_zero(Boundary_Type to_type, To& to, To_Info& to_info, bool should_shrink) { 23376: bool check = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: Result r = assign_r(to, Constant<0>::value, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: template 23376: inline Result 23376: mul_assign_z(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type1, const T1& x1, const Info1& info1, int x1s, 23376: Boundary_Type type2, const T2& x2, const Info2& info2, int x2s) { 23376: bool should_shrink; 23376: if (x1s != 0) { 23376: if (x2s != 0) { 23376: return mul_assign(to_type, to, to_info, 23376: type1, x1, info1, 23376: type2, x2, info2); 23376: } 23376: else { 23376: should_shrink = info2.get_boundary_property(type2, OPEN); 23376: } 23376: } 23376: else { 23376: should_shrink = (info1.get_boundary_property(type1, OPEN) 23376: && (x2s != 0 || info2.get_boundary_property(type2, OPEN))); 23376: } 23376: return set_zero(to_type, to, to_info, should_shrink); 23376: } 23376: 23376: template 23376: inline Result 23376: div_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type1, const T1& x1, const Info1& info1, 23376: Boundary_Type type2, const T2& x2, const Info2& info2) { 23376: bool should_shrink; 23376: if (is_boundary_infinity(type1, x1, info1)) { 23376: should_shrink = boundary_infinity_is_open(type1, info1); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: else if (is_boundary_infinity(type2, x2, info2)) { 23376: should_shrink = boundary_infinity_is_open(type2, info2); 23376: return set_zero(to_type, to, to_info, should_shrink); 23376: } 23376: should_shrink = (normal_is_open(type1, x1, info1) 23376: || normal_is_open(type2, x2, info2)); 23376: bool check = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: ((void) 0); 23376: 23376: Result r = div_assign_r(to, x1, x2, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: 23376: template 23376: inline Result 23376: div_assign_z(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type1, const T1& x1, const Info1& info1, int x1s, 23376: Boundary_Type type2, const T2& x2, const Info2& info2, int x2s) { 23376: if (x1s != 0) { 23376: if (x2s != 0) { 23376: return div_assign(to_type, to, to_info, 23376: type1, x1, info1, 23376: type2, x2, info2); 23376: } 23376: else { 23376: return set_boundary_infinity(to_type, to, to_info, true); 23376: } 23376: } 23376: else { 23376: bool should_shrink = info1.get_boundary_property(type1, OPEN) 23376: && !is_boundary_infinity_closed(type2, x2, info2); 23376: return set_zero(to_type, to, to_info, should_shrink); 23376: } 23376: } 23376: 23376: template 23376: inline Result 23376: umod_2exp_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type, const T& x, const Info& info, 23376: unsigned int exp) { 23376: ((void) 0); 23376: bool should_shrink; 23376: if (is_boundary_infinity(type, x, info)) { 23376: should_shrink = boundary_infinity_is_open(type, info); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: should_shrink = normal_is_open(type, x, info); 23376: bool check = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: Result r = umod_2exp_assign_r(to, x, exp, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: template 23376: inline Result 23376: smod_2exp_assign(Boundary_Type to_type, To& to, To_Info& to_info, 23376: Boundary_Type type, const T& x, const Info& info, 23376: unsigned int exp) { 23376: ((void) 0); 23376: bool should_shrink; 23376: if (is_boundary_infinity(type, x, info)) { 23376: should_shrink = boundary_infinity_is_open(type, info); 23376: return set_boundary_infinity(to_type, to, to_info, should_shrink); 23376: } 23376: should_shrink = normal_is_open(type, x, info); 23376: bool check = (To_Info::check_inexact || (!should_shrink && To_Info::store_open)); 23376: Result r = smod_2exp_assign_r(to, x, exp, round_dir_check(to_type, check)); 23376: return adjust_boundary(to_type, to, to_info, should_shrink, r); 23376: } 23376: 23376: } 23376: 23376: } 23376: # 28 "../../src/Interval_Info_defs.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Interval_NS { 23376: 23376: struct Property { 23376: enum Type { 23376: CARDINALITY_0_, 23376: CARDINALITY_1_, 23376: CARDINALITY_IS_ 23376: }; 23376: typedef bool Value; 23376: static const Value default_value = true; 23376: static const Value unsupported_value = false; 23376: Property(Type t) 23376: : type(t) { 23376: } 23376: Type type; 23376: }; 23376: 23376: const Property CARDINALITY_0(Property::CARDINALITY_0_); 23376: const Property CARDINALITY_1(Property::CARDINALITY_1_); 23376: const Property CARDINALITY_IS(Property::CARDINALITY_IS_); 23376: 23376: template 23376: inline void 23376: reset_bits(T& bits) { 23376: bits = 0; 23376: } 23376: 23376: template 23376: inline void 23376: reset_bit(T& bits, unsigned int bit) { 23376: bits &= ~(static_cast(1) << bit); 23376: } 23376: 23376: template 23376: inline void 23376: set_bit(T& bits, unsigned int bit, bool value) { 23376: if (value) { 23376: bits |= static_cast(1) << bit; 23376: } 23376: else { 23376: reset_bit(bits, bit); 23376: } 23376: } 23376: 23376: template 23376: inline bool 23376: get_bit(const T& bits, unsigned int bit) { 23376: return (bits & (static_cast(1) << bit)) != 0; 23376: } 23376: 23376: template 23376: inline void 23376: set_bits(T& bits, unsigned int start, unsigned int len, T value) { 23376: bits &= ~(((static_cast(1) << len) - 1) << start); 23376: bits |= value << start; 23376: } 23376: 23376: template 23376: inline T 23376: get_bits(T& bits, unsigned int start, unsigned int len) { 23376: return (bits >> start) & ((static_cast(1) << len) - 1); 23376: } 23376: 23376: } 23376: 23376: using namespace Interval_NS; 23376: using namespace Boundary_NS; 23376: 23376: 23376: template 23376: class Interval_Info_Null { 23376: public: 23376: enum const_bool_value_may_be_empty { may_be_empty = (Policy::may_be_empty) }; 23376: enum const_bool_value_may_contain_infinity { may_contain_infinity = (Policy::may_contain_infinity) }; 23376: enum const_bool_value_check_inexact { check_inexact = (Policy::check_inexact) }; 23376: enum const_bool_value_store_special { store_special = (false) }; 23376: enum const_bool_value_store_open { store_open = (false) }; 23376: enum const_bool_value_cache_empty { cache_empty = (false) }; 23376: enum const_bool_value_cache_singleton { cache_singleton = (false) }; 23376: Interval_Info_Null() { 23376: } 23376: void clear() { 23376: } 23376: void clear_boundary_properties(Boundary_Type) { 23376: } 23376: 23376: template 23376: void set_boundary_property(Boundary_Type, const Property&, typename Property::Value = Property::default_value) { 23376: } 23376: template 23376: typename Property::Value get_boundary_property(Boundary_Type, const Property&) const { 23376: return Property::unsupported_value; 23376: } 23376: template 23376: void set_interval_property(const Property&, typename Property::Value = Property::default_value) { 23376: } 23376: template 23376: typename Property::Value get_interval_property(const Property&) const { 23376: return Property::unsupported_value; 23376: } 23376: 23376: 23376: void m_swap(Interval_Info_Null& y); 23376: 23376: void ascii_dump(std::ostream& s) const; 23376: bool ascii_load(std::istream& s); 23376: }; 23376: 23376: template 23376: class Interval_Info_Null_Open : public Interval_Info_Null { 23376: public: 23376: enum const_bool_value_store_open { store_open = (true) }; 23376: Interval_Info_Null_Open(bool o) 23376: : open(o) { 23376: } 23376: bool get_boundary_property(Boundary_Type, 23376: const Boundary_NS::Property& p) const { 23376: if (p.type == Boundary_NS::Property::OPEN_) { 23376: return open; 23376: } 23376: else { 23376: return Boundary_NS::Property::unsupported_value; 23376: } 23376: } 23376: 23376: void ascii_dump(std::ostream& s) const; 23376: bool ascii_load(std::istream& s); 23376: 23376: private: 23376: bool open; 23376: }; 23376: 23376: 23376: template 23376: class Interval_Info_Bitset { 23376: public: 23376: enum const_bool_value_may_be_empty { may_be_empty = (Policy::may_be_empty) }; 23376: enum const_bool_value_may_contain_infinity { may_contain_infinity = (Policy::may_contain_infinity) }; 23376: enum const_bool_value_check_inexact { check_inexact = (Policy::check_inexact) }; 23376: enum const_bool_value_store_special { store_special = (Policy::store_special) }; 23376: enum const_bool_value_store_open { store_open = (Policy::store_open) }; 23376: enum const_bool_value_cache_empty { cache_empty = (Policy::cache_empty) }; 23376: enum const_bool_value_cache_singleton { cache_singleton = (Policy::cache_singleton) }; 23376: enum anonymous_enum_lower_special_bit { lower_special_bit = (Policy::next_bit) }; 23376: enum anonymous_enum_lower_open_bit { lower_open_bit = (lower_special_bit + (store_special ? 1 : 0)) }; 23376: enum anonymous_enum_upper_special_bit { upper_special_bit = (lower_open_bit + (store_open ? 1 : 0)) }; 23376: enum anonymous_enum_upper_open_bit { upper_open_bit = (upper_special_bit + (store_special ? 1 : 0)) }; 23376: enum anonymous_enum_cardinality_is_bit { cardinality_is_bit = (upper_open_bit + (store_open ? 1 : 0)) }; 23376: enum anonymous_enum_cardinality_0_bit { cardinality_0_bit = (cardinality_is_bit + ((cache_empty || cache_singleton) ? 1 : 0)) } 23376: ; 23376: enum anonymous_enum_cardinality_1_bit { cardinality_1_bit = (cardinality_0_bit + (cache_empty ? 1 : 0)) }; 23376: enum anonymous_enum_next_bit { next_bit = (cardinality_1_bit + (cache_singleton ? 1 : 0)) }; 23376: 23376: Interval_Info_Bitset() { 23376: 23376: 23376: clear(); 23376: } 23376: 23376: void clear() { 23376: reset_bits(bitset); 23376: } 23376: void clear_boundary_properties(Boundary_Type t) { 23376: set_boundary_property(t, SPECIAL, false); 23376: set_boundary_property(t, OPEN, false); 23376: } 23376: void set_boundary_property(Boundary_Type t, 23376: const Boundary_NS::Property& p, 23376: bool value = true) { 23376: switch (p.type) { 23376: case Boundary_NS::Property::SPECIAL_: 23376: if (store_special) { 23376: if (t == LOWER) { 23376: set_bit(bitset, lower_special_bit, value); 23376: } 23376: else { 23376: set_bit(bitset, upper_special_bit, value); 23376: } 23376: } 23376: break; 23376: case Boundary_NS::Property::OPEN_: 23376: if (store_open) { 23376: if (t == LOWER) { 23376: set_bit(bitset, lower_open_bit, value); 23376: } 23376: else { 23376: set_bit(bitset, upper_open_bit, value); 23376: } 23376: } 23376: break; 23376: default: 23376: break; 23376: } 23376: } 23376: bool get_boundary_property(Boundary_Type t, const Boundary_NS::Property& p) const { 23376: switch (p.type) { 23376: case Boundary_NS::Property::SPECIAL_: 23376: if (!store_special) { 23376: return false; 23376: } 23376: if (t == LOWER) { 23376: return get_bit(bitset, lower_special_bit); 23376: } 23376: else { 23376: return get_bit(bitset, upper_special_bit); 23376: } 23376: case Boundary_NS::Property::OPEN_: 23376: if (!store_open) { 23376: return false; 23376: } 23376: else if (t == LOWER) { 23376: return get_bit(bitset, lower_open_bit); 23376: } 23376: else { 23376: return get_bit(bitset, upper_open_bit); 23376: } 23376: default: 23376: return false; 23376: } 23376: } 23376: void set_interval_property(const Interval_NS::Property& p, bool value = true) { 23376: switch (p.type) { 23376: case Interval_NS::Property::CARDINALITY_0_: 23376: if (cache_empty) { 23376: set_bit(bitset, cardinality_0_bit, value); 23376: } 23376: break; 23376: case Interval_NS::Property::CARDINALITY_1_: 23376: if (cache_singleton) { 23376: set_bit(bitset, cardinality_1_bit, value); 23376: } 23376: break; 23376: case Interval_NS::Property::CARDINALITY_IS_: 23376: if (cache_empty || cache_singleton) { 23376: set_bit(bitset, cardinality_is_bit, value); 23376: } 23376: break; 23376: default: 23376: break; 23376: } 23376: } 23376: bool get_interval_property(Interval_NS::Property p) const { 23376: switch (p.type) { 23376: case Interval_NS::Property::CARDINALITY_0_: 23376: return cache_empty && get_bit(bitset, cardinality_0_bit); 23376: case Interval_NS::Property::CARDINALITY_1_: 23376: return cache_singleton && get_bit(bitset, cardinality_1_bit); 23376: case Interval_NS::Property::CARDINALITY_IS_: 23376: return (cache_empty || cache_singleton) 23376: && get_bit(bitset, cardinality_is_bit); 23376: default: 23376: return false; 23376: } 23376: } 23376: 23376: 23376: void m_swap(Interval_Info_Bitset& y); 23376: 23376: void ascii_dump(std::ostream& s) const; 23376: bool ascii_load(std::istream& s); 23376: 23376: protected: 23376: T bitset; 23376: }; 23376: 23376: } 23376: 23376: # 1 "../../src/Interval_Info_inlines.hh" 1 23376: # 29 "../../src/Interval_Info_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline void 23376: Interval_Info_Null::m_swap(Interval_Info_Null&) { 23376: } 23376: 23376: template 23376: inline void 23376: Interval_Info_Null::ascii_dump(std::ostream&) const { 23376: } 23376: 23376: template 23376: inline bool 23376: Interval_Info_Null::ascii_load(std::istream&) { 23376: return true; 23376: } 23376: 23376: template 23376: inline void 23376: Interval_Info_Null_Open::ascii_dump(std::ostream& s) const { 23376: s << (open ? "open" : "closed"); 23376: } 23376: 23376: template 23376: inline bool 23376: Interval_Info_Null_Open::ascii_load(std::istream& s) { 23376: std::string str; 23376: if (!(s >> str)) { 23376: return false; 23376: } 23376: if (str == "open") { 23376: open = true; 23376: return true; 23376: } 23376: if (str == "closed") { 23376: open = false; 23376: return true; 23376: } 23376: return false; 23376: } 23376: 23376: template 23376: inline void 23376: Interval_Info_Bitset::m_swap(Interval_Info_Bitset& y) { 23376: using std::swap; 23376: swap(bitset, y.bitset); 23376: } 23376: 23376: template 23376: inline void 23376: Interval_Info_Bitset::ascii_dump(std::ostream& s) const { 23376: const std::ios::fmtflags old_flags = s.setf(std::ios::hex, 23376: std::ios::basefield); 23376: s << bitset; 23376: s.flags(old_flags); 23376: } 23376: 23376: template 23376: inline bool 23376: Interval_Info_Bitset::ascii_load(std::istream& s) { 23376: const std::ios::fmtflags old_flags = s.setf(std::ios::hex, 23376: std::ios::basefield); 23376: s >> bitset; 23376: s.flags(old_flags); 23376: return !s.fail(); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: swap(Interval_Info_Null& x, Interval_Info_Null& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: swap(Interval_Info_Bitset& x, Interval_Info_Bitset& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 300 "../../src/Interval_Info_defs.hh" 2 23376: # 33 "../../src/Interval_defs.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: enum Ternary { T_YES, T_NO, T_MAYBE }; 23376: 23376: inline I_Result 23376: combine(Result l, Result u) { 23376: const unsigned res 23376: = static_cast(l) | (static_cast(u) << 6); 23376: return static_cast(res); 23376: } 23376: 23376: struct Interval_Base { 23376: }; 23376: 23376: using namespace Boundary_NS; 23376: using namespace Interval_NS; 23376: 23376: template 23376: struct Is_Singleton : public Is_Native_Or_Checked {}; 23376: 23376: template 23376: struct Is_Interval : public Is_Same_Or_Derived {}; 23376: # 80 "../../src/Interval_defs.hh" 23376: template 23376: class Interval : public Interval_Base, private Info { 23376: private: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_86 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!Info::store_special || !std::numeric_limits::has_infinity)>) } 23376: 23376: 23376: ; 23376: Info& w_info() const { 23376: return const_cast(*this); 23376: } 23376: 23376: public: 23376: typedef Boundary boundary_type; 23376: typedef Info info_type; 23376: 23376: typedef Interval_NS::Property Property; 23376: 23376: template 23376: typename Enable_If::value || Is_Interval::value, Interval&>::type 23376: operator=(const T& x) { 23376: assign(x); 23376: return *this; 23376: } 23376: 23376: template 23376: typename Enable_If::value || Is_Interval::value, Interval&>::type 23376: operator+=(const T& x) { 23376: add_assign(*this, x); 23376: return *this; 23376: } 23376: template 23376: typename Enable_If::value || Is_Interval::value, Interval&>::type 23376: operator-=(const T& x) { 23376: sub_assign(*this, x); 23376: return *this; 23376: } 23376: template 23376: typename Enable_If::value || Is_Interval::value, Interval&>::type 23376: operator*=(const T& x) { 23376: mul_assign(*this, x); 23376: return *this; 23376: } 23376: template 23376: typename Enable_If::value || Is_Interval::value, Interval&>::type 23376: operator/=(const T& x) { 23376: div_assign(*this, x); 23376: return *this; 23376: } 23376: 23376: 23376: void m_swap(Interval& y); 23376: 23376: Info& info() { 23376: return *this; 23376: } 23376: 23376: const Info& info() const { 23376: return *this; 23376: } 23376: 23376: Boundary& lower() { 23376: return lower_; 23376: } 23376: 23376: const Boundary& lower() const { 23376: return lower_; 23376: } 23376: 23376: Boundary& upper() { 23376: return upper_; 23376: } 23376: 23376: const Boundary& upper() const { 23376: return upper_; 23376: } 23376: 23376: I_Constraint lower_constraint() const { 23376: ((void) 0); 23376: if (info().get_boundary_property(LOWER, SPECIAL)) { 23376: return I_Constraint(); 23376: } 23376: return i_constraint(lower_is_open() ? GREATER_THAN : GREATER_OR_EQUAL, 23376: lower(), true); 23376: } 23376: I_Constraint upper_constraint() const { 23376: ((void) 0); 23376: if (info().get_boundary_property(UPPER, SPECIAL)) { 23376: return I_Constraint(); 23376: } 23376: return i_constraint(upper_is_open() ? LESS_THAN : LESS_OR_EQUAL, 23376: upper(), true); 23376: } 23376: 23376: bool is_empty() const { 23376: return lt(UPPER, upper(), info(), LOWER, lower(), info()); 23376: } 23376: 23376: bool check_empty(I_Result r) const { 23376: return (r & I_ANY) == I_EMPTY 23376: || ((r & I_ANY) != I_NOT_EMPTY && is_empty()); 23376: } 23376: 23376: bool is_singleton() const { 23376: return eq(LOWER, lower(), info(), UPPER, upper(), info()); 23376: } 23376: 23376: bool lower_is_open() const { 23376: ((void) 0); 23376: return is_open(LOWER, lower(), info()); 23376: } 23376: 23376: bool upper_is_open() const { 23376: ((void) 0); 23376: return is_open(UPPER, upper(), info()); 23376: } 23376: 23376: bool lower_is_boundary_infinity() const { 23376: ((void) 0); 23376: return Boundary_NS::is_boundary_infinity(LOWER, lower(), info()); 23376: } 23376: 23376: bool upper_is_boundary_infinity() const { 23376: ((void) 0); 23376: return Boundary_NS::is_boundary_infinity(UPPER, upper(), info()); 23376: } 23376: 23376: bool lower_is_domain_inf() const { 23376: ((void) 0); 23376: return Boundary_NS::is_domain_inf(LOWER, lower(), info()); 23376: } 23376: 23376: bool upper_is_domain_sup() const { 23376: ((void) 0); 23376: return Boundary_NS::is_domain_sup(UPPER, upper(), info()); 23376: } 23376: 23376: bool is_bounded() const { 23376: ((void) 0); 23376: return !lower_is_boundary_infinity() && !upper_is_boundary_infinity(); 23376: } 23376: 23376: bool is_universe() const { 23376: ((void) 0); 23376: return lower_is_domain_inf() && upper_is_domain_sup(); 23376: } 23376: 23376: I_Result lower_extend() { 23376: info().clear_boundary_properties(LOWER); 23376: set_unbounded(LOWER, lower(), info()); 23376: return I_ANY; 23376: } 23376: 23376: template 23376: typename Enable_If::value, I_Result>::type 23376: lower_extend(const C& c); 23376: 23376: I_Result upper_extend() { 23376: info().clear_boundary_properties(UPPER); 23376: set_unbounded(UPPER, upper(), info()); 23376: return I_ANY; 23376: } 23376: 23376: template 23376: typename Enable_If::value, I_Result>::type 23376: upper_extend(const C& c); 23376: 23376: I_Result build() { 23376: return assign(UNIVERSE); 23376: } 23376: 23376: template 23376: typename Enable_If::value, I_Result>::type 23376: build(const C& c) { 23376: Relation_Symbol rs; 23376: switch (c.rel()) { 23376: case V_LGE: 23376: case V_GT_MINUS_INFINITY: 23376: case V_LT_PLUS_INFINITY: 23376: return assign(UNIVERSE); 23376: default: 23376: return assign(EMPTY); 23376: case V_LT: 23376: case V_LE: 23376: case V_GT: 23376: case V_GE: 23376: case V_EQ: 23376: case V_NE: 23376: assign(UNIVERSE); 23376: rs = static_cast(c.rel()); 23376: return refine_existential(rs, c.value()); 23376: } 23376: } 23376: 23376: template 23376: typename Enable_If::value 23376: && 23376: Is_Same_Or_Derived::value, 23376: I_Result>::type 23376: build(const C1& c1, const C2& c2) { 23376: switch (c1.rel()) { 23376: case V_LGE: 23376: return build(c2); 23376: case V_NAN: 23376: return assign(EMPTY); 23376: default: 23376: break; 23376: } 23376: switch (c2.rel()) { 23376: case V_LGE: 23376: return build(c1); 23376: case V_NAN: 23376: return assign(EMPTY); 23376: default: 23376: break; 23376: } 23376: build(c1); 23376: const I_Result r = add_constraint(c2); 23376: return r - (I_CHANGED | I_UNCHANGED); 23376: } 23376: 23376: template 23376: typename Enable_If::value, I_Result>::type 23376: add_constraint(const C& c) { 23376: Interval x; 23376: x.build(c); 23376: return intersect_assign(x); 23376: } 23376: 23376: I_Result assign(Degenerate_Element e) { 23376: I_Result r; 23376: info().clear(); 23376: switch (e) { 23376: case EMPTY: 23376: lower_ = 1; 23376: upper_ = 0; 23376: r = I_EMPTY | I_EXACT; 23376: break; 23376: case UNIVERSE: 23376: set_unbounded(LOWER, lower(), info()); 23376: set_unbounded(UPPER, upper(), info()); 23376: r = I_UNIVERSE | I_EXACT; 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: r = I_EMPTY; 23376: break; 23376: } 23376: ((void) 0); 23376: return r; 23376: } 23376: 23376: template 23376: typename Enable_If::value, I_Result>::type 23376: assign(const From&) { 23376: info().clear(); 23376: Result rl; 23376: Result ru; 23376: switch (From::vclass) { 23376: case VC_MINUS_INFINITY: 23376: rl = Boundary_NS::set_minus_infinity(LOWER, lower(), info()); 23376: ru = Boundary_NS::set_minus_infinity(UPPER, upper(), info()); 23376: break; 23376: case VC_PLUS_INFINITY: 23376: rl = Boundary_NS::set_plus_infinity(LOWER, lower(), info()); 23376: ru = Boundary_NS::set_plus_infinity(UPPER, upper(), info()); 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: rl = V_NAN; 23376: ru = V_NAN; 23376: break; 23376: } 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: I_Result set_infinities() { 23376: info().clear(); 23376: Result rl = Boundary_NS::set_minus_infinity(LOWER, lower(), info()); 23376: Result ru = Boundary_NS::set_plus_infinity(UPPER, upper(), info()); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: static bool is_always_topologically_closed() { 23376: return !Info::store_open; 23376: } 23376: 23376: bool is_topologically_closed() const { 23376: ((void) 0); 23376: return is_always_topologically_closed() 23376: || is_empty() 23376: || ((lower_is_boundary_infinity() || !lower_is_open()) 23376: && (upper_is_boundary_infinity() || !upper_is_open())); 23376: } 23376: 23376: 23376: void topological_closure_assign() { 23376: if (!Info::store_open || is_empty()) { 23376: return; 23376: } 23376: if (lower_is_open() && !lower_is_boundary_infinity()) { 23376: info().set_boundary_property(LOWER, OPEN, false); 23376: } 23376: if (upper_is_open() && !upper_is_boundary_infinity()) { 23376: info().set_boundary_property(UPPER, OPEN, false); 23376: } 23376: } 23376: 23376: void remove_inf() { 23376: ((void) 0); 23376: if (!Info::store_open) { 23376: return; 23376: } 23376: info().set_boundary_property(LOWER, OPEN, true); 23376: } 23376: 23376: void remove_sup() { 23376: ((void) 0); 23376: if (!Info::store_open) { 23376: return; 23376: } 23376: info().set_boundary_property(UPPER, OPEN, true); 23376: } 23376: 23376: int infinity_sign() const { 23376: ((void) 0); 23376: if (is_reverse_infinity(LOWER, lower(), info())) { 23376: return 1; 23376: } 23376: else if (is_reverse_infinity(UPPER, upper(), info())) { 23376: return -1; 23376: } 23376: else { 23376: return 0; 23376: } 23376: } 23376: 23376: bool contains_integer_point() const { 23376: ((void) 0); 23376: if (is_empty()) { 23376: return false; 23376: } 23376: if (!is_bounded()) { 23376: return true; 23376: } 23376: Boundary l; 23376: if (lower_is_open()) { 23376: add_assign_r(l, lower(), Boundary(1), ROUND_DOWN); 23376: floor_assign_r(l, l, ROUND_DOWN); 23376: } 23376: else { 23376: ceil_assign_r(l, lower(), ROUND_DOWN); 23376: } 23376: Boundary u; 23376: if (upper_is_open()) { 23376: sub_assign_r(u, upper(), Boundary(1), ROUND_UP); 23376: ceil_assign_r(u, u, ROUND_UP); 23376: } 23376: else { 23376: floor_assign_r(u, upper(), ROUND_UP); 23376: } 23376: return u >= l; 23376: } 23376: 23376: void drop_some_non_integer_points() { 23376: if (is_empty()) { 23376: return; 23376: } 23376: if (lower_is_open() && !lower_is_boundary_infinity()) { 23376: add_assign_r(lower(), lower(), Boundary(1), ROUND_DOWN); 23376: floor_assign_r(lower(), lower(), ROUND_DOWN); 23376: info().set_boundary_property(LOWER, OPEN, false); 23376: } 23376: else { 23376: ceil_assign_r(lower(), lower(), ROUND_DOWN); 23376: } 23376: if (upper_is_open() && !upper_is_boundary_infinity()) { 23376: sub_assign_r(upper(), upper(), Boundary(1), ROUND_UP); 23376: ceil_assign_r(upper(), upper(), ROUND_UP); 23376: info().set_boundary_property(UPPER, OPEN, false); 23376: } 23376: else { 23376: floor_assign_r(upper(), upper(), ROUND_UP); 23376: } 23376: } 23376: 23376: template 23376: typename Enable_If::value || Is_Interval::value, I_Result>::type 23376: wrap_assign(Bounded_Integer_Type_Width w, 23376: Bounded_Integer_Type_Representation r, 23376: const From& refinement) { 23376: if (is_empty()) { 23376: return I_EMPTY; 23376: } 23376: if (lower_is_boundary_infinity() || upper_is_boundary_infinity()) { 23376: return assign(refinement); 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_u; Boundary& u = holder_u.item(); 23376: Result result = sub_2exp_assign_r(u, upper(), w, ROUND_UP); 23376: if (result_overflow(result) == 0 && u > lower()) { 23376: return assign(refinement); 23376: } 23376: info().clear(); 23376: switch (r) { 23376: case UNSIGNED: 23376: umod_2exp_assign(LOWER, lower(), info(), 23376: LOWER, lower(), info(), w); 23376: umod_2exp_assign(UPPER, upper(), info(), 23376: UPPER, upper(), info(), w); 23376: break; 23376: case SIGNED_2_COMPLEMENT: 23376: smod_2exp_assign(LOWER, lower(), info(), 23376: LOWER, lower(), info(), w); 23376: smod_2exp_assign(UPPER, upper(), info(), 23376: UPPER, upper(), info(), w); 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: if (le(LOWER, lower(), info(), UPPER, upper(), info())) { 23376: return intersect_assign(refinement); 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; Interval& tmp = holder_tmp.item(); 23376: tmp.info().clear(); 23376: Boundary_NS::assign(LOWER, tmp.lower(), tmp.info(), 23376: LOWER, lower(), info()); 23376: set_unbounded(UPPER, tmp.upper(), tmp.info()); 23376: tmp.intersect_assign(refinement); 23376: lower_extend(); 23376: intersect_assign(refinement); 23376: return join_assign(tmp); 23376: } 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: void ascii_dump(std::ostream& s) const; 23376: bool ascii_load(std::istream& s); 23376: 23376: bool OK() const { 23376: if (!Info::may_be_empty && is_empty()) { 23376: 23376: 23376: 23376: return false; 23376: } 23376: 23376: if (is_open(LOWER, lower(), info())) { 23376: if (is_plus_infinity(LOWER, lower(), info())) { 23376: 23376: 23376: 23376: } 23376: } 23376: else if (!Info::may_contain_infinity 23376: && (is_minus_infinity(LOWER, lower(), info()) 23376: || is_plus_infinity(LOWER, lower(), info()))) { 23376: 23376: 23376: 23376: return false; 23376: } 23376: if (!info().get_boundary_property(LOWER, SPECIAL)) { 23376: if (is_not_a_number(lower())) { 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: if (is_open(UPPER, upper(), info())) { 23376: if (is_minus_infinity(UPPER, upper(), info())) { 23376: 23376: 23376: 23376: } 23376: } 23376: else if (!Info::may_contain_infinity 23376: && (is_minus_infinity(UPPER, upper(), info()) 23376: || is_plus_infinity(UPPER, upper(), info()))) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: if (!info().get_boundary_property(UPPER, SPECIAL)) { 23376: if (is_not_a_number(upper())) { 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: Interval() { 23376: } 23376: 23376: template 23376: explicit Interval(const T& x) { 23376: assign(x); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: explicit Interval(const char* s); 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: contains(const T& y) const; 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: strictly_contains(const T& y) const; 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: is_disjoint_from(const T& y) const; 23376: 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: assign(const From& x); 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: can_be_exactly_joined_to(const Type& x) const; 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: join_assign(const From& x); 23376: 23376: template 23376: typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: join_assign(const From1& x, const From2& y); 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: intersect_assign(const From& x); 23376: 23376: template 23376: typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: intersect_assign(const From1& x, const From2& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: difference_assign(const From& x); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: difference_assign(const From1& x, const From2& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: lower_approximation_difference_assign(const From& x); 23376: # 685 "../../src/Interval_defs.hh" 23376: template 23376: typename Enable_If::value, bool>::type 23376: simplify_using_context_assign(const From& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value, void>::type 23376: empty_intersection_assign(const From& y); 23376: # 712 "../../src/Interval_defs.hh" 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: refine_existential(Relation_Symbol rel, const From& x); 23376: # 732 "../../src/Interval_defs.hh" 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: refine_universal(Relation_Symbol rel, const From& x); 23376: 23376: template 23376: typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: neg_assign(const From& x); 23376: 23376: template 23376: typename Enable_If<((Is_Singleton::value || Is_Interval::value) 23376: && (Is_Singleton::value || Is_Interval::value)), I_Result>::type 23376: add_assign(const From1& x, const From2& y); 23376: 23376: template 23376: typename Enable_If<((Is_Singleton::value || Is_Interval::value) 23376: && (Is_Singleton::value || Is_Interval::value)), I_Result>::type 23376: sub_assign(const From1& x, const From2& y); 23376: 23376: template 23376: typename Enable_If<((Is_Singleton::value || Is_Interval::value) 23376: && (Is_Singleton::value || Is_Interval::value)), I_Result>::type 23376: mul_assign(const From1& x, const From2& y); 23376: 23376: template 23376: typename Enable_If<((Is_Singleton::value || Is_Interval::value) 23376: && (Is_Singleton::value || Is_Interval::value)), I_Result>::type 23376: div_assign(const From1& x, const From2& y); 23376: 23376: template 23376: typename Enable_If::value, void>::type 23376: CC76_widening_assign(const From& y, Iterator first, Iterator last); 23376: 23376: private: 23376: Boundary lower_; 23376: Boundary upper_; 23376: }; 23376: 23376: 23376: 23376: template 23376: void swap(Interval& x, Interval& y); 23376: 23376: } 23376: 23376: # 1 "../../src/Interval_inlines.hh" 1 23376: # 27 "../../src/Interval_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline memory_size_type 23376: Interval::external_memory_in_bytes() const { 23376: return Parma_Polyhedra_Library::external_memory_in_bytes(lower()) 23376: + Parma_Polyhedra_Library::external_memory_in_bytes(upper()); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Interval::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline void 23376: Interval::m_swap(Interval& y) { 23376: using std::swap; 23376: swap(lower(), y.lower()); 23376: swap(upper(), y.upper()); 23376: swap(info(), y.info()); 23376: } 23376: 23376: template 23376: inline bool 23376: f_is_empty(const Interval& x) { 23376: return x.is_empty(); 23376: } 23376: template 23376: inline bool 23376: f_is_singleton(const Interval& x) { 23376: return x.is_singleton(); 23376: } 23376: template 23376: inline int 23376: infinity_sign(const Interval& x) { 23376: return x.infinity_sign(); 23376: } 23376: 23376: namespace Interval_NS { 23376: 23376: template 23376: inline const Boundary& 23376: f_lower(const Interval& x) { 23376: return x.lower(); 23376: } 23376: template 23376: inline const Boundary& 23376: f_upper(const Interval& x) { 23376: return x.upper(); 23376: } 23376: template 23376: inline const Info& 23376: f_info(const Interval& x) { 23376: return x.info(); 23376: } 23376: 23376: struct Scalar_As_Interval_Policy { 23376: enum const_bool_value_may_be_empty { may_be_empty = (true) }; 23376: enum const_bool_value_may_contain_infinity { may_contain_infinity = (true) }; 23376: enum const_bool_value_check_inexact { check_inexact = (false) }; 23376: }; 23376: 23376: typedef Interval_Info_Null 23376: Scalar_As_Interval_Info; 23376: 23376: const Scalar_As_Interval_Info SCALAR_INFO; 23376: 23376: typedef Interval_Info_Null_Open 23376: Scalar_As_Interval_Info_Open; 23376: 23376: template 23376: inline typename Enable_If::value, const T&>::type 23376: f_lower(const T& x) { 23376: return x; 23376: } 23376: template 23376: inline typename Enable_If::value, const T&>::type 23376: f_upper(const T& x) { 23376: return x; 23376: } 23376: template 23376: inline typename Enable_If::value, 23376: const Scalar_As_Interval_Info&>::type 23376: f_info(const T&) { 23376: return SCALAR_INFO; 23376: } 23376: template 23376: inline typename Enable_If::value, 23376: Scalar_As_Interval_Info_Open>::type 23376: f_info(const T&, bool open) { 23376: return Scalar_As_Interval_Info_Open(open); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, bool>::type 23376: f_is_empty(const T& x) { 23376: return is_not_a_number(x); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, bool>::type 23376: f_is_singleton(const T& x) { 23376: return !f_is_empty(x); 23376: } 23376: 23376: } 23376: 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: is_singleton_integer(const T& x) { 23376: return is_singleton(x) && is_integer(f_lower(x)); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: check_empty_arg(const T& x) { 23376: if (f_info(x).may_be_empty) { 23376: return f_is_empty(x); 23376: } 23376: else { 23376: ((void) 0); 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: inline typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Interval::value 23376: || Is_Interval::value)), 23376: bool>::type 23376: operator==(const T1& x, const T2& y) { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(x)) { 23376: return check_empty_arg(y); 23376: } 23376: else if (check_empty_arg(y)) { 23376: return false; 23376: } 23376: return eq(LOWER, f_lower(x), f_info(x), LOWER, f_lower(y), f_info(y)) 23376: && eq(UPPER, f_upper(x), f_info(x), UPPER, f_upper(y), f_info(y)); 23376: } 23376: 23376: template 23376: inline typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Interval::value 23376: || Is_Interval::value)), 23376: bool>::type 23376: operator!=(const T1& x, const T2& y) { 23376: return !(x == y); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: Interval::contains(const T& y) const { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(y)) { 23376: return true; 23376: } 23376: if (check_empty_arg(*this)) { 23376: return false; 23376: } 23376: return le(LOWER, lower(), info(), LOWER, f_lower(y), f_info(y)) 23376: && ge(UPPER, upper(), info(), UPPER, f_upper(y), f_info(y)); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: Interval::strictly_contains(const T& y) const { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(y)) { 23376: return !check_empty_arg(*this); 23376: } 23376: if (check_empty_arg(*this)) { 23376: return false; 23376: } 23376: return (lt(LOWER, lower(), info(), LOWER, f_lower(y), f_info(y)) 23376: && ge(UPPER, upper(), info(), UPPER, f_upper(y), f_info(y))) 23376: || (le(LOWER, lower(), info(), LOWER, f_lower(y), f_info(y)) 23376: && gt(UPPER, upper(), info(), UPPER, f_upper(y), f_info(y))); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: Interval::is_disjoint_from(const T& y) const { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(*this) || check_empty_arg(y)) { 23376: return true; 23376: } 23376: return gt(LOWER, lower(), info(), UPPER, f_upper(y), f_info(y)) 23376: || lt(UPPER, upper(), info(), LOWER, f_lower(y), f_info(y)); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: Interval::assign(const From& x) { 23376: ((void) 0); 23376: if (check_empty_arg(x)) { 23376: return assign(EMPTY); 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_info; To_Info& to_info = holder_to_info.item(); 23376: to_info.clear(); 23376: const Result rl = Boundary_NS::assign(LOWER, lower(), to_info, 23376: LOWER, f_lower(x), f_info(x)); 23376: const Result ru = Boundary_NS::assign(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x)); 23376: assign_or_swap(info(), to_info); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: Interval::join_assign(const From& x) { 23376: ((void) 0); 23376: if (check_empty_arg(*this)) { 23376: return assign(x); 23376: } 23376: if (check_empty_arg(x)) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: Result rl; 23376: Result ru; 23376: rl = min_assign(LOWER, lower(), info(), LOWER, f_lower(x), f_info(x)); 23376: ru = max_assign(UPPER, upper(), info(), UPPER, f_upper(x), f_info(x)); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: Interval::join_assign(const From1& x, const From2& y) { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(x)) { 23376: return assign(y); 23376: } 23376: if (check_empty_arg(y)) { 23376: return assign(x); 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_info; To_Info& to_info = holder_to_info.item(); 23376: to_info.clear(); 23376: Result rl; 23376: Result ru; 23376: rl = min_assign(LOWER, lower(), to_info, 23376: LOWER, f_lower(x), f_info(x), 23376: LOWER, f_lower(y), f_info(y)); 23376: ru = max_assign(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), 23376: UPPER, f_upper(y), f_info(y)); 23376: assign_or_swap(info(), to_info); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, bool>::type 23376: Interval::can_be_exactly_joined_to(const Type& x) const { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b; Boundary& b = holder_b.item(); 23376: if (gt(LOWER, lower(), info(), UPPER, f_upper(x), f_info(x))) { 23376: b = lower(); 23376: return eq(LOWER, b, info(), UPPER, f_upper(x), f_info(x)); 23376: } 23376: else if (lt(UPPER, upper(), info(), LOWER, f_lower(x), f_info(x))) { 23376: b = upper(); 23376: return eq(UPPER, b, info(), LOWER, f_lower(x), f_info(x)); 23376: } 23376: return true; 23376: } 23376: 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: Interval::intersect_assign(const From& x) { 23376: ((void) 0); 23376: max_assign(LOWER, lower(), info(), LOWER, f_lower(x), f_info(x)); 23376: min_assign(UPPER, upper(), info(), UPPER, f_upper(x), f_info(x)); 23376: ((void) 0); 23376: return I_ANY; 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: Interval::intersect_assign(const From1& x, 23376: const From2& y) { 23376: ((void) 0); 23376: ((void) 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_info; To_Info& to_info = holder_to_info.item(); 23376: to_info.clear(); 23376: max_assign(LOWER, lower(), to_info, 23376: LOWER, f_lower(x), f_info(x), 23376: LOWER, f_lower(y), f_info(y)); 23376: min_assign(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), 23376: UPPER, f_upper(y), f_info(y)); 23376: assign_or_swap(info(), to_info); 23376: ((void) 0); 23376: return I_NOT_EMPTY; 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: Interval::difference_assign(const From& x) { 23376: ((void) 0); 23376: if (lt(UPPER, upper(), info(), LOWER, f_lower(x), f_info(x)) 23376: || gt(LOWER, lower(), info(), UPPER, f_upper(x), f_info(x))) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: bool nl = ge(LOWER, lower(), info(), LOWER, f_lower(x), f_info(x)); 23376: bool nu = le(UPPER, upper(), info(), UPPER, f_upper(x), f_info(x)); 23376: Result rl = V_EQ; 23376: Result ru = V_EQ; 23376: if (nl) { 23376: if (nu) { 23376: return assign(EMPTY); 23376: } 23376: else { 23376: info().clear_boundary_properties(LOWER); 23376: rl = complement(LOWER, lower(), info(), UPPER, f_upper(x), f_info(x)); 23376: } 23376: } 23376: else if (nu) { 23376: info().clear_boundary_properties(UPPER); 23376: ru = complement(UPPER, upper(), info(), LOWER, f_lower(x), f_info(x)); 23376: } 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: Interval::difference_assign(const From1& x, 23376: const From2& y) { 23376: ((void) 0); 23376: ((void) 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_info; To_Info& to_info = holder_to_info.item(); 23376: to_info.clear(); 23376: if (lt(UPPER, f_upper(x), f_info(x), LOWER, f_lower(y), f_info(y)) 23376: || gt(LOWER, f_lower(x), f_info(x), UPPER, f_upper(y), f_info(y))) { 23376: return assign(x); 23376: } 23376: bool nl = ge(LOWER, f_lower(x), f_info(x), LOWER, f_lower(y), f_info(y)); 23376: bool nu = le(UPPER, f_upper(x), f_info(x), UPPER, f_upper(y), f_info(y)); 23376: Result rl = V_EQ; 23376: Result ru = V_EQ; 23376: if (nl) { 23376: if (nu) { 23376: return assign(EMPTY); 23376: } 23376: else { 23376: rl = complement(LOWER, lower(), info(), UPPER, f_upper(y), f_info(y)); 23376: ru = Boundary_NS::assign(UPPER, upper(), info(), UPPER, f_upper(x), f_info(x)); 23376: } 23376: } 23376: else if (nu) { 23376: ru = complement(UPPER, upper(), info(), LOWER, f_lower(y), f_info(y)); 23376: rl = Boundary_NS::assign(LOWER, lower(), info(), 23376: LOWER, f_lower(x), f_info(x)); 23376: } 23376: assign_or_swap(info(), to_info); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: Interval 23376: ::refine_existential(Relation_Symbol rel, const From& x) { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(x)) { 23376: return assign(EMPTY); 23376: } 23376: switch (rel) { 23376: case LESS_THAN: 23376: { 23376: if (lt(UPPER, upper(), info(), UPPER, f_upper(x), f_info(x))) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: info().clear_boundary_properties(UPPER); 23376: Boundary_NS::assign(UPPER, upper(), info(), 23376: UPPER, f_upper(x), f_info(x), true); 23376: return I_ANY; 23376: } 23376: case LESS_OR_EQUAL: 23376: { 23376: if (le(UPPER, upper(), info(), UPPER, f_upper(x), f_info(x))) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: info().clear_boundary_properties(UPPER); 23376: Boundary_NS::assign(UPPER, upper(), info(), 23376: UPPER, f_upper(x), f_info(x)); 23376: return I_ANY; 23376: } 23376: case GREATER_THAN: 23376: { 23376: if (gt(LOWER, lower(), info(), LOWER, f_lower(x), f_info(x))) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: info().clear_boundary_properties(LOWER); 23376: Boundary_NS::assign(LOWER, lower(), info(), 23376: LOWER, f_lower(x), f_info(x), true); 23376: return I_ANY; 23376: } 23376: case GREATER_OR_EQUAL: 23376: { 23376: if (ge(LOWER, lower(), info(), LOWER, f_lower(x), f_info(x))) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: info().clear_boundary_properties(LOWER); 23376: Boundary_NS::assign(LOWER, lower(), info(), 23376: LOWER, f_lower(x), f_info(x)); 23376: return I_ANY; 23376: } 23376: case EQUAL: 23376: return intersect_assign(x); 23376: case NOT_EQUAL: 23376: { 23376: if (!f_is_singleton(x)) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: if (check_empty_arg(*this)) { 23376: return I_EMPTY; 23376: } 23376: if (eq(LOWER, lower(), info(), LOWER, f_lower(x), f_info(x))) { 23376: remove_inf(); 23376: } 23376: if (eq(UPPER, upper(), info(), UPPER, f_upper(x), f_info(x))) { 23376: remove_sup(); 23376: } 23376: return I_ANY; 23376: } 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return I_EMPTY; 23376: } 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: Interval::refine_universal(Relation_Symbol rel, 23376: const From& x) { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(x)) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: switch (rel) { 23376: case LESS_THAN: 23376: { 23376: if (lt(UPPER, upper(), info(), LOWER, f_lower(x), f_info(x))) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: info().clear_boundary_properties(UPPER); 23376: Result ru = Boundary_NS::assign(UPPER, upper(), info(), 23376: LOWER, f_lower(x), SCALAR_INFO, 23376: !is_open(LOWER, f_lower(x), f_info(x))); 23376: (void)(ru); 23376: return I_ANY; 23376: } 23376: case LESS_OR_EQUAL: 23376: { 23376: if (le(UPPER, upper(), info(), LOWER, f_lower(x), f_info(x))) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: info().clear_boundary_properties(UPPER); 23376: Result ru = Boundary_NS::assign(UPPER, upper(), info(), 23376: LOWER, f_lower(x), SCALAR_INFO); 23376: (void)(ru); 23376: return I_ANY; 23376: } 23376: case GREATER_THAN: 23376: { 23376: if (gt(LOWER, lower(), info(), UPPER, f_upper(x), f_info(x))) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: info().clear_boundary_properties(LOWER); 23376: Result rl = Boundary_NS::assign(LOWER, lower(), info(), 23376: UPPER, f_upper(x), SCALAR_INFO, 23376: !is_open(UPPER, f_upper(x), f_info(x))); 23376: (void)(rl); 23376: return I_ANY; 23376: } 23376: case GREATER_OR_EQUAL: 23376: { 23376: if (ge(LOWER, lower(), info(), UPPER, f_upper(x), f_info(x))) { 23376: return combine(V_EQ, V_EQ); 23376: } 23376: info().clear_boundary_properties(LOWER); 23376: Result rl = Boundary_NS::assign(LOWER, lower(), info(), 23376: UPPER, f_upper(x), SCALAR_INFO); 23376: (void)(rl); 23376: return I_ANY; 23376: } 23376: case EQUAL: 23376: if (!f_is_singleton(x)) { 23376: return assign(EMPTY); 23376: } 23376: return intersect_assign(x); 23376: case NOT_EQUAL: 23376: { 23376: if (check_empty_arg(*this)) { 23376: return I_EMPTY; 23376: } 23376: if (eq(LOWER, lower(), info(), LOWER, f_lower(x), f_info(x))) { 23376: remove_inf(); 23376: } 23376: if (eq(UPPER, upper(), info(), UPPER, f_upper(x), f_info(x))) { 23376: remove_sup(); 23376: } 23376: return I_ANY; 23376: } 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return I_EMPTY; 23376: } 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If::value 23376: || Is_Interval::value, I_Result>::type 23376: Interval::neg_assign(const From& x) { 23376: ((void) 0); 23376: if (check_empty_arg(x)) { 23376: return assign(EMPTY); 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_info; To_Info& to_info = holder_to_info.item(); 23376: to_info.clear(); 23376: Result rl; 23376: Result ru; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_lower; To_Boundary& to_lower = holder_to_lower.item(); 23376: rl = Boundary_NS::neg_assign(LOWER, to_lower, to_info, UPPER, f_upper(x), f_info(x)); 23376: ru = Boundary_NS::neg_assign(UPPER, upper(), to_info, LOWER, f_lower(x), f_info(x)); 23376: assign_or_swap(lower(), to_lower); 23376: assign_or_swap(info(), to_info); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: Interval::add_assign(const From1& x, const From2& y) { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(x) || check_empty_arg(y)) { 23376: return assign(EMPTY); 23376: } 23376: int inf_sign = Parma_Polyhedra_Library::infinity_sign(x); 23376: if (inf_sign != 0) { 23376: if (Parma_Polyhedra_Library::infinity_sign(y) == -inf_sign) { 23376: return assign(EMPTY); 23376: } 23376: } 23376: else { 23376: inf_sign = Parma_Polyhedra_Library::infinity_sign(y); 23376: } 23376: if (inf_sign < 0) { 23376: return assign(MINUS_INFINITY); 23376: } 23376: else if (inf_sign > 0) { 23376: return assign(PLUS_INFINITY); 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_info; To_Info& to_info = holder_to_info.item(); 23376: to_info.clear(); 23376: Result rl = Boundary_NS::add_assign(LOWER, lower(), to_info, 23376: LOWER, f_lower(x), f_info(x), 23376: LOWER, f_lower(y), f_info(y)); 23376: Result ru = Boundary_NS::add_assign(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), 23376: UPPER, f_upper(y), f_info(y)); 23376: assign_or_swap(info(), to_info); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: template 23376: template 23376: inline typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: Interval::sub_assign(const From1& x, const From2& y) { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(x) || check_empty_arg(y)) { 23376: return assign(EMPTY); 23376: } 23376: int inf_sign = Parma_Polyhedra_Library::infinity_sign(x); 23376: if (inf_sign != 0) { 23376: if (Parma_Polyhedra_Library::infinity_sign(y) == inf_sign) { 23376: return assign(EMPTY); 23376: } 23376: } 23376: else { 23376: inf_sign = -Parma_Polyhedra_Library::infinity_sign(y); 23376: } 23376: if (inf_sign < 0) { 23376: return assign(MINUS_INFINITY); 23376: } 23376: else if (inf_sign > 0) { 23376: return assign(PLUS_INFINITY); 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_info; To_Info& to_info = holder_to_info.item(); 23376: to_info.clear(); 23376: Result rl; 23376: Result ru; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_lower; To_Boundary& to_lower = holder_to_lower.item(); 23376: rl = Boundary_NS::sub_assign(LOWER, to_lower, to_info, 23376: LOWER, f_lower(x), f_info(x), 23376: UPPER, f_upper(y), f_info(y)); 23376: ru = Boundary_NS::sub_assign(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), 23376: LOWER, f_lower(y), f_info(y)); 23376: assign_or_swap(lower(), to_lower); 23376: assign_or_swap(info(), to_info); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: # 708 "../../src/Interval_inlines.hh" 23376: template 23376: template 23376: inline typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: Interval::mul_assign(const From1& x, const From2& y) { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(x) || check_empty_arg(y)) { 23376: return assign(EMPTY); 23376: } 23376: int xls = sgn_b(LOWER, f_lower(x), f_info(x)); 23376: int xus = (xls > 0) ? 1 : sgn_b(UPPER, f_upper(x), f_info(x)); 23376: int yls = sgn_b(LOWER, f_lower(y), f_info(y)); 23376: int yus = (yls > 0) ? 1 : sgn_b(UPPER, f_upper(y), f_info(y)); 23376: int inf_sign = Parma_Polyhedra_Library::infinity_sign(x); 23376: int ls; 23376: int us; 23376: if (inf_sign != 0) { 23376: ls = yls; 23376: us = yus; 23376: goto inf; 23376: } 23376: else { 23376: inf_sign = Parma_Polyhedra_Library::infinity_sign(y); 23376: if (inf_sign != 0) { 23376: ls = xls; 23376: us = xus; 23376: inf: 23376: if (ls == 0 && us == 0) { 23376: return assign(EMPTY); 23376: } 23376: if (ls == -us) { 23376: return set_infinities(); 23376: } 23376: if (ls < 0 || us < 0) { 23376: inf_sign = -inf_sign; 23376: } 23376: if (inf_sign < 0) { 23376: return assign(MINUS_INFINITY); 23376: } 23376: else { 23376: return assign(PLUS_INFINITY); 23376: } 23376: } 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_info; To_Info& to_info = holder_to_info.item(); 23376: to_info.clear(); 23376: Result rl; 23376: Result ru; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_lower; To_Boundary& to_lower = holder_to_lower.item(); 23376: 23376: if (xls >= 0) { 23376: if (yls >= 0) { 23376: 23376: rl = mul_assign_z(LOWER, to_lower, to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: ru = mul_assign_z(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: } 23376: else if (yus <= 0) { 23376: 23376: rl = mul_assign_z(LOWER, to_lower, to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: ru = mul_assign_z(UPPER, upper(), to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: } 23376: else { 23376: 23376: rl = mul_assign_z(LOWER, to_lower, to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: ru = mul_assign_z(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: } 23376: } 23376: else if (xus <= 0) { 23376: if (yls >= 0) { 23376: 23376: rl = mul_assign_z(LOWER, to_lower, to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: ru = mul_assign_z(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: } 23376: else if (yus <= 0) { 23376: 23376: rl = mul_assign_z(LOWER, to_lower, to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: ru = mul_assign_z(UPPER, upper(), to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: } 23376: else { 23376: 23376: rl = mul_assign_z(LOWER, to_lower, to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: ru = mul_assign_z(UPPER, upper(), to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: } 23376: } 23376: else if (yls >= 0) { 23376: 23376: rl = mul_assign_z(LOWER, to_lower, to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: ru = mul_assign_z(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: } 23376: else if (yus <= 0) { 23376: 23376: rl = mul_assign_z(LOWER, to_lower, to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: ru = mul_assign_z(UPPER, upper(), to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; To_Boundary& tmp = holder_tmp.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp_info; To_Info& tmp_info = holder_tmp_info.item(); 23376: tmp_info.clear(); 23376: Result tmp_r; 23376: tmp_r = Boundary_NS::mul_assign(LOWER, tmp, tmp_info, 23376: UPPER, f_upper(x), f_info(x), 23376: LOWER, f_lower(y), f_info(y)); 23376: rl = Boundary_NS::mul_assign(LOWER, to_lower, to_info, 23376: LOWER, f_lower(x), f_info(x), 23376: UPPER, f_upper(y), f_info(y)); 23376: if (gt(LOWER, to_lower, to_info, LOWER, tmp, tmp_info)) { 23376: to_lower = tmp; 23376: rl = tmp_r; 23376: } 23376: tmp_info.clear(); 23376: tmp_r = Boundary_NS::mul_assign(UPPER, tmp, tmp_info, 23376: UPPER, f_upper(x), f_info(x), 23376: UPPER, f_upper(y), f_info(y)); 23376: ru = Boundary_NS::mul_assign(UPPER, upper(), to_info, 23376: LOWER, f_lower(x), f_info(x), 23376: LOWER, f_lower(y), f_info(y)); 23376: if (lt(UPPER, upper(), to_info, UPPER, tmp, tmp_info)) { 23376: upper() = tmp; 23376: ru = tmp_r; 23376: } 23376: } 23376: assign_or_swap(lower(), to_lower); 23376: assign_or_swap(info(), to_info); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: # 883 "../../src/Interval_inlines.hh" 23376: template 23376: template 23376: inline typename Enable_If<((Is_Singleton::value 23376: || Is_Interval::value) 23376: && (Is_Singleton::value 23376: || Is_Interval::value)), I_Result>::type 23376: Interval::div_assign(const From1& x, const From2& y) { 23376: ((void) 0); 23376: ((void) 0); 23376: if (check_empty_arg(x) || check_empty_arg(y)) { 23376: return assign(EMPTY); 23376: } 23376: int yls = sgn_b(LOWER, f_lower(y), f_info(y)); 23376: int yus = (yls > 0) ? 1 : sgn_b(UPPER, f_upper(y), f_info(y)); 23376: if (yls == 0 && yus == 0) { 23376: return assign(EMPTY); 23376: } 23376: int inf_sign = Parma_Polyhedra_Library::infinity_sign(x); 23376: if (inf_sign != 0) { 23376: if (Parma_Polyhedra_Library::infinity_sign(y) != 0) { 23376: return assign(EMPTY); 23376: } 23376: if (yls == -yus) { 23376: return set_infinities(); 23376: } 23376: if (yls < 0 || yus < 0) { 23376: inf_sign = -inf_sign; 23376: } 23376: if (inf_sign < 0) { 23376: return assign(MINUS_INFINITY); 23376: } 23376: else { 23376: return assign(PLUS_INFINITY); 23376: } 23376: } 23376: int xls = sgn_b(LOWER, f_lower(x), f_info(x)); 23376: int xus = (xls > 0) ? 1 : sgn_b(UPPER, f_upper(x), f_info(x)); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_info; To_Info& to_info = holder_to_info.item(); 23376: to_info.clear(); 23376: Result rl; 23376: Result ru; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_to_lower; To_Boundary& to_lower = holder_to_lower.item(); 23376: if (yls >= 0) { 23376: if (xls >= 0) { 23376: rl = div_assign_z(LOWER, to_lower, to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: ru = div_assign_z(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: } 23376: else if (xus <= 0) { 23376: rl = div_assign_z(LOWER, to_lower, to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: ru = div_assign_z(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: } 23376: else { 23376: rl = div_assign_z(LOWER, to_lower, to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: ru = div_assign_z(UPPER, upper(), to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: } 23376: } 23376: else if (yus <= 0) { 23376: if (xls >= 0) { 23376: rl = div_assign_z(LOWER, to_lower, to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: ru = div_assign_z(UPPER, upper(), to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: } 23376: else if (xus <= 0) { 23376: rl = div_assign_z(LOWER, to_lower, to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: LOWER, f_lower(y), f_info(y), yls); 23376: ru = div_assign_z(UPPER, upper(), to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: } 23376: else { 23376: rl = div_assign_z(LOWER, to_lower, to_info, 23376: UPPER, f_upper(x), f_info(x), xus, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: ru = div_assign_z(UPPER, upper(), to_info, 23376: LOWER, f_lower(x), f_info(x), xls, 23376: UPPER, f_upper(y), f_info(y), yus); 23376: } 23376: } 23376: else { 23376: return static_cast(assign(UNIVERSE) | I_SINGULARITIES); 23376: } 23376: assign_or_swap(lower(), to_lower); 23376: assign_or_swap(info(), to_info); 23376: ((void) 0); 23376: return combine(rl, ru); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, Interval >::type 23376: operator+(const Interval& x, const T& y) { 23376: Interval z; 23376: z.add_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, Interval >::type 23376: operator+(const T& x, const Interval& y) { 23376: Interval z; 23376: z.add_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline Interval 23376: operator+(const Interval& x, const Interval& y) { 23376: Interval z; 23376: z.add_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, Interval >::type 23376: operator-(const Interval& x, const T& y) { 23376: Interval z; 23376: z.sub_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, Interval >::type 23376: operator-(const T& x, const Interval& y) { 23376: Interval z; 23376: z.sub_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline Interval 23376: operator-(const Interval& x, const Interval& y) { 23376: Interval z; 23376: z.sub_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, Interval >::type 23376: operator*(const Interval& x, const T& y) { 23376: Interval z; 23376: z.mul_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, Interval >::type 23376: operator*(const T& x, const Interval& y) { 23376: Interval z; 23376: z.mul_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline Interval 23376: operator*(const Interval& x, const Interval& y) { 23376: Interval z; 23376: z.mul_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, Interval >::type 23376: operator/(const Interval& x, const T& y) { 23376: Interval z; 23376: z.div_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, Interval >::type 23376: operator/(const T& x, const Interval& y) { 23376: Interval z; 23376: z.div_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline Interval 23376: operator/(const Interval& x, const Interval& y) { 23376: Interval z; 23376: z.div_assign(x, y); 23376: return z; 23376: } 23376: 23376: template 23376: inline std::ostream& 23376: operator<<(std::ostream& os, const Interval& x) { 23376: if (check_empty_arg(x)) { 23376: return os << "[]"; 23376: } 23376: if (x.is_singleton()) { 23376: output(os, x.lower(), Numeric_Format(), ROUND_NOT_NEEDED); 23376: return os; 23376: } 23376: os << (x.lower_is_open() ? "(" : "["); 23376: if (x.info().get_boundary_property(LOWER, SPECIAL)) { 23376: os << "-inf"; 23376: } 23376: else { 23376: output(os, x.lower(), Numeric_Format(), ROUND_NOT_NEEDED); 23376: } 23376: os << ", "; 23376: if (x.info().get_boundary_property(UPPER, SPECIAL)) { 23376: os << "+inf"; 23376: } 23376: else { 23376: output(os, x.upper(), Numeric_Format(), ROUND_NOT_NEEDED); 23376: } 23376: os << (x.upper_is_open() ? ")" : "]"); 23376: return os; 23376: } 23376: 23376: template 23376: inline void 23376: Interval::ascii_dump(std::ostream& s) const { 23376: using Parma_Polyhedra_Library::ascii_dump; 23376: s << "info "; 23376: info().ascii_dump(s); 23376: s << " lower "; 23376: ascii_dump(s, lower()); 23376: s << " upper "; 23376: ascii_dump(s, upper()); 23376: s << '\n'; 23376: } 23376: 23376: template 23376: inline bool 23376: Interval::ascii_load(std::istream& s) { 23376: using Parma_Polyhedra_Library::ascii_load; 23376: std::string str; 23376: if (!(s >> str) || str != "info") { 23376: return false; 23376: } 23376: if (!info().ascii_load(s)) { 23376: return false; 23376: } 23376: if (!(s >> str) || str != "lower") { 23376: return false; 23376: } 23376: if (!ascii_load(s, lower())) { 23376: return false; 23376: } 23376: if (!(s >> str) || str != "upper") { 23376: return false; 23376: } 23376: if (!ascii_load(s, upper())) { 23376: return false; 23376: } 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template struct Select_Temp_Boundary_Type; 23376: 23376: template 23376: struct Select_Temp_Boundary_Type { 23376: typedef Interval_Boundary_Type type; 23376: }; 23376: # 1170 "../../src/Interval_inlines.hh" 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: template <> 23376: struct Select_Temp_Boundary_Type { 23376: typedef signed long long type; 23376: }; 23376: 23376: 23376: template 23376: inline void 23376: swap(Interval& x, Interval& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 779 "../../src/Interval_defs.hh" 2 23376: # 1 "../../src/Interval_templates.hh" 1 23376: # 29 "../../src/Interval_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: template 23376: typename Enable_If::value, I_Result>::type 23376: Interval::lower_extend(const C& c) { 23376: ((void) 0); 23376: bool open; 23376: switch (c.rel()) { 23376: case V_LGE: 23376: return lower_extend(); 23376: case V_NAN: 23376: return I_NOT_EMPTY | I_EXACT | I_UNCHANGED; 23376: case V_GT: 23376: open = true; 23376: break; 23376: case V_GE: 23376: case V_EQ: 23376: open = false; 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return I_NOT_EMPTY | I_EXACT | I_UNCHANGED; 23376: } 23376: min_assign(LOWER, lower(), info(), LOWER, c.value(), f_info(c.value(), open)); 23376: ((void) 0); 23376: return I_ANY; 23376: } 23376: 23376: template 23376: template 23376: typename Enable_If::value, I_Result>::type 23376: Interval::upper_extend(const C& c) { 23376: ((void) 0); 23376: bool open; 23376: switch (c.rel()) { 23376: case V_LGE: 23376: return lower_extend(); 23376: case V_NAN: 23376: return I_NOT_EMPTY | I_EXACT | I_UNCHANGED; 23376: case V_LT: 23376: open = true; 23376: break; 23376: case V_LE: 23376: case V_EQ: 23376: open = false; 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return I_NOT_EMPTY | I_EXACT | I_UNCHANGED; 23376: } 23376: max_assign(UPPER, upper(), info(), UPPER, c.value(), f_info(c.value(), open)); 23376: ((void) 0); 23376: return I_ANY; 23376: } 23376: 23376: template 23376: template 23376: typename Enable_If::value, void>::type 23376: Interval::CC76_widening_assign(const From& y, 23376: Iterator first, 23376: Iterator last) { 23376: 23376: ((void) 0); 23376: Interval& x = *this; 23376: 23376: 23376: if (!x.upper_is_boundary_infinity()) { 23376: Boundary& x_ub = x.upper(); 23376: const Boundary& y_ub = y.upper(); 23376: ((void) 0); 23376: if (y_ub < x_ub) { 23376: Iterator k = std::lower_bound(first, last, x_ub); 23376: if (k != last) { 23376: if (x_ub < *k) { 23376: x_ub = *k; 23376: } 23376: } 23376: else { 23376: x.upper_extend(); 23376: } 23376: } 23376: } 23376: 23376: 23376: if (!x.lower_is_boundary_infinity()) { 23376: Boundary& x_lb = x.lower(); 23376: const Boundary& y_lb = y.lower(); 23376: ((void) 0); 23376: if (y_lb > x_lb) { 23376: Iterator k = std::lower_bound(first, last, x_lb); 23376: if (k != last) { 23376: if (x_lb < *k) { 23376: if (k != first) { 23376: x_lb = *--k; 23376: } 23376: else { 23376: x.lower_extend(); 23376: } 23376: } 23376: } 23376: else { 23376: if (k != first) { 23376: x_lb = *--k; 23376: } 23376: else { 23376: x.lower_extend(); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: Interval::Interval(const char* s) { 23376: 23376: Boundary lower_bound; 23376: Result lower_r = assign_r(lower_bound, s, ROUND_DOWN); 23376: if (lower_r == V_CVT_STR_UNK || lower_r == V_NAN) { 23376: throw std::invalid_argument("PPL::Interval(const char* s)" 23376: " with s invalid"); 23376: } 23376: lower_r = result_relation_class(lower_r); 23376: 23376: 23376: Boundary upper_bound; 23376: Result upper_r = assign_r(upper_bound, s, ROUND_UP); 23376: ((void) 0); 23376: upper_r = result_relation_class(upper_r); 23376: 23376: 23376: bool lower_open = false; 23376: bool upper_open = false; 23376: bool lower_boundary_infinity = false; 23376: bool upper_boundary_infinity = false; 23376: switch (lower_r) { 23376: case V_EQ: 23376: case V_GE: 23376: break; 23376: case V_GT: 23376: lower_open = true; 23376: break; 23376: case V_GT_MINUS_INFINITY: 23376: lower_open = true; 23376: 23376: case V_EQ_MINUS_INFINITY: 23376: lower_boundary_infinity = true; 23376: break; 23376: case V_EQ_PLUS_INFINITY: 23376: case V_LT_PLUS_INFINITY: 23376: if (upper_r == V_EQ_PLUS_INFINITY || upper_r == V_LT_PLUS_INFINITY) { 23376: assign(UNIVERSE); 23376: } 23376: else { 23376: assign(EMPTY); 23376: } 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: switch (upper_r) { 23376: case V_EQ: 23376: case V_LE: 23376: break; 23376: case V_LT: 23376: upper_open = true; 23376: break; 23376: case V_EQ_MINUS_INFINITY: 23376: case V_GT_MINUS_INFINITY: 23376: if (lower_r == V_EQ_MINUS_INFINITY || lower_r == V_GT_MINUS_INFINITY) { 23376: assign(UNIVERSE); 23376: } 23376: else { 23376: assign(EMPTY); 23376: } 23376: break; 23376: case V_LT_PLUS_INFINITY: 23376: upper_open = true; 23376: 23376: case V_EQ_PLUS_INFINITY: 23376: upper_boundary_infinity = true; 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: if (!lower_boundary_infinity 23376: && !upper_boundary_infinity 23376: && (lower_bound > upper_bound 23376: || (lower_open && lower_bound == upper_bound))) { 23376: assign(EMPTY); 23376: } 23376: else { 23376: if (lower_boundary_infinity) { 23376: set_minus_infinity(LOWER, lower(), info(), lower_open); 23376: } 23376: else { 23376: Boundary_NS::assign(LOWER, lower(), info(), 23376: LOWER, lower_bound, SCALAR_INFO, lower_open); 23376: } 23376: if (upper_boundary_infinity) { 23376: set_plus_infinity(UPPER, upper(), info(), upper_open); 23376: } 23376: else { 23376: Boundary_NS::assign(UPPER, upper(), info(), 23376: UPPER, upper_bound, SCALAR_INFO, upper_open); 23376: } 23376: } 23376: } 23376: 23376: 23376: template 23376: inline std::istream& 23376: operator>>(std::istream& is, Interval& x) { 23376: Boundary lower_bound; 23376: Boundary upper_bound; 23376: bool lower_boundary_infinity = false; 23376: bool upper_boundary_infinity = false; 23376: bool lower_open = false; 23376: bool upper_open = false; 23376: Result lower_r; 23376: Result upper_r; 23376: 23376: 23376: char c; 23376: do { 23376: if (!is.get(c)) { 23376: goto fail; 23376: } 23376: } while (is_space(c)); 23376: 23376: 23376: if (c == '(') { 23376: lower_open = true; 23376: } 23376: else if (c == '[') { 23376: if (!is.get(c)) { 23376: goto fail; 23376: } 23376: if (c == ']') { 23376: 23376: x.assign(EMPTY); 23376: return is; 23376: } 23376: else { 23376: is.unget(); 23376: } 23376: } 23376: else { 23376: goto unexpected_char; 23376: } 23376: 23376: 23376: lower_r = input(lower_bound, is, ROUND_DOWN); 23376: if (lower_r == V_CVT_STR_UNK || lower_r == V_NAN) { 23376: goto fail; 23376: } 23376: lower_r = result_relation_class(lower_r); 23376: 23376: 23376: do { 23376: if (!is.get(c)) { 23376: goto fail; 23376: } 23376: } while (is_space(c)); 23376: if (c != ',') { 23376: goto unexpected_char; 23376: } 23376: 23376: 23376: upper_r = input(upper_bound, is, ROUND_UP); 23376: if (upper_r == V_CVT_STR_UNK || upper_r == V_NAN) { 23376: goto fail; 23376: } 23376: upper_r = result_relation_class(upper_r); 23376: 23376: 23376: do { 23376: if (!is.get(c)) { 23376: goto fail; 23376: } 23376: } while (is_space(c)); 23376: if (c == ')') { 23376: upper_open = true; 23376: } 23376: else if (c != ']') { 23376: unexpected_char: 23376: is.unget(); 23376: fail: 23376: is.setstate(std::ios::failbit); 23376: return is; 23376: } 23376: 23376: 23376: switch (lower_r) { 23376: case V_EQ: 23376: case V_GE: 23376: break; 23376: case V_GT: 23376: lower_open = true; 23376: break; 23376: case V_GT_MINUS_INFINITY: 23376: lower_open = true; 23376: 23376: case V_EQ_MINUS_INFINITY: 23376: lower_boundary_infinity = true; 23376: break; 23376: case V_EQ_PLUS_INFINITY: 23376: case V_LT_PLUS_INFINITY: 23376: if (upper_r == V_EQ_PLUS_INFINITY || upper_r == V_LT_PLUS_INFINITY) { 23376: x.assign(UNIVERSE); 23376: } 23376: else { 23376: x.assign(EMPTY); 23376: } 23376: return is; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: switch (upper_r) { 23376: case V_EQ: 23376: case V_LE: 23376: break; 23376: case V_LT: 23376: upper_open = true; 23376: break; 23376: case V_GT_MINUS_INFINITY: 23376: upper_open = true; 23376: 23376: case V_EQ_MINUS_INFINITY: 23376: if (lower_r == V_EQ_MINUS_INFINITY || lower_r == V_GT_MINUS_INFINITY) { 23376: x.assign(UNIVERSE); 23376: } 23376: else { 23376: x.assign(EMPTY); 23376: } 23376: return is; 23376: case V_EQ_PLUS_INFINITY: 23376: case V_LT_PLUS_INFINITY: 23376: upper_boundary_infinity = true; 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: if (!lower_boundary_infinity 23376: && !upper_boundary_infinity 23376: && (lower_bound > upper_bound 23376: || (lower_open && lower_bound == upper_bound))) { 23376: x.assign(EMPTY); 23376: } 23376: else { 23376: if (lower_boundary_infinity) { 23376: set_minus_infinity(LOWER, x.lower(), x.info(), lower_open); 23376: } 23376: else { 23376: assign(LOWER, x.lower(), x.info(), 23376: LOWER, lower_bound, SCALAR_INFO, lower_open); 23376: } 23376: if (upper_boundary_infinity) { 23376: set_plus_infinity(UPPER, x.upper(), x.info(), upper_open); 23376: } 23376: else { 23376: assign(UPPER, x.upper(), x.info(), 23376: UPPER, upper_bound, SCALAR_INFO, upper_open); 23376: } 23376: } 23376: return is; 23376: } 23376: 23376: template 23376: template 23376: typename Enable_If::value, bool>::type 23376: Interval::simplify_using_context_assign(const From& y) { 23376: 23376: if (lt(UPPER, upper(), info(), LOWER, f_lower(y), f_info(y))) { 23376: lower_extend(); 23376: return false; 23376: } 23376: if (gt(LOWER, lower(), info(), UPPER, f_upper(y), f_info(y))) { 23376: upper_extend(); 23376: return false; 23376: } 23376: 23376: if (!upper_is_boundary_infinity() && !y.upper_is_boundary_infinity() 23376: && y.upper() <= upper()) { 23376: upper_extend(); 23376: } 23376: 23376: if (!lower_is_boundary_infinity() && !y.lower_is_boundary_infinity() 23376: && y.lower() >= lower()) { 23376: lower_extend(); 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: template 23376: typename Enable_If::value, void>::type 23376: Interval::empty_intersection_assign(const From&) { 23376: 23376: assign(EMPTY); 23376: } 23376: 23376: } 23376: # 780 "../../src/Interval_defs.hh" 2 23376: # 28 "../../src/Integer_Interval.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: struct Integer_Interval_Info_Policy { 23376: enum const_bool_value_store_special { store_special = (true) }; 23376: enum const_bool_value_store_open { store_open = (false) }; 23376: enum const_bool_value_cache_empty { cache_empty = (true) }; 23376: enum const_bool_value_cache_singleton { cache_singleton = (true) }; 23376: enum anonymous_enum_next_bit { next_bit = (0) }; 23376: enum const_bool_value_may_be_empty { may_be_empty = (true) }; 23376: enum const_bool_value_may_contain_infinity { may_contain_infinity = (false) }; 23376: enum const_bool_value_check_empty_result { check_empty_result = (false) }; 23376: enum const_bool_value_check_inexact { check_inexact = (false) }; 23376: }; 23376: 23376: typedef Interval_Info_Bitset Integer_Interval_Info; 23376: 23376: 23376: 23376: 23376: typedef Interval Integer_Interval; 23376: 23376: } 23376: # 7 "../../src/ppl_include_files.hh" 2 23376: # 1 "../../src/initializer.hh" 1 23376: # 27 "../../src/initializer.hh" 23376: # 1 "../../src/Init_defs.hh" 1 23376: # 30 "../../src/Init_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 40 "../../src/Init_defs.hh" 23376: void set_rounding_for_PPL(); 23376: # 55 "../../src/Init_defs.hh" 23376: void restore_pre_PPL_rounding(); 23376: 23376: } 23376: # 72 "../../src/Init_defs.hh" 23376: class Parma_Polyhedra_Library::Init { 23376: public: 23376: 23376: Init(); 23376: 23376: 23376: ~Init(); 23376: 23376: private: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const unsigned DEFAULT_IRRATIONAL_PRECISION = 128U; 23376: 23376: 23376: static unsigned int count; 23376: static fpu_rounding_direction_type old_rounding_direction; 23376: 23376: friend void set_rounding_for_PPL(); 23376: friend void restore_pre_PPL_rounding(); 23376: }; 23376: 23376: # 1 "../../src/Init_inlines.hh" 1 23376: # 30 "../../src/Init_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline void 23376: set_rounding_for_PPL() { 23376: 23376: 23376: 23376: } 23376: 23376: inline void 23376: restore_pre_PPL_rounding() { 23376: 23376: 23376: 23376: } 23376: 23376: } 23376: # 98 "../../src/Init_defs.hh" 2 23376: # 28 "../../src/initializer.hh" 2 23376: 23376: 23376: 23376: static Parma_Polyhedra_Library::Init Parma_Polyhedra_Library_initializer; 23376: # 48 "../../src/initializer.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: inline void 23376: initialize() { 23376: 23376: 23376: 23376: } 23376: 23376: 23376: inline void 23376: finalize() { 23376: 23376: 23376: 23376: } 23376: 23376: } 23376: # 8 "../../src/ppl_include_files.hh" 2 23376: # 1 "../../src/Linear_Expression_Impl_defs.hh" 1 23376: # 27 "../../src/Linear_Expression_Impl_defs.hh" 23376: # 1 "../../src/Linear_Expression_Impl_types.hh" 1 23376: # 16 "../../src/Linear_Expression_Impl_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Linear_Expression_Impl; 23376: 23376: } 23376: # 28 "../../src/Linear_Expression_Impl_defs.hh" 2 23376: # 1 "../../src/Linear_Expression_Interface_defs.hh" 1 23376: # 27 "../../src/Linear_Expression_Interface_defs.hh" 23376: # 1 "../../src/Linear_Expression_Interface_types.hh" 1 23376: # 16 "../../src/Linear_Expression_Interface_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Linear_Expression_Interface; 23376: 23376: } 23376: # 28 "../../src/Linear_Expression_Interface_defs.hh" 2 23376: # 1 "../../src/Coefficient_defs.hh" 1 23376: # 27 "../../src/Coefficient_defs.hh" 23376: # 1 "../../src/Coefficient_types.hh" 1 23376: # 19 "../../src/Coefficient_types.hh" 23376: # 1 "../../src/GMP_Integer_types.hh" 1 23376: # 20 "../../src/GMP_Integer_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 31 "../../src/GMP_Integer_types.hh" 23376: typedef mpz_class GMP_Integer; 23376: 23376: 23376: 23376: 23376: 23376: template <> 23376: struct Coefficient_traits_template { 23376: 23376: typedef const GMP_Integer& const_reference; 23376: }; 23376: 23376: } 23376: # 20 "../../src/Coefficient_types.hh" 2 23376: # 152 "../../src/Coefficient_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 172 "../../src/Coefficient_types.hh" 23376: typedef mpz_class Coefficient; 23376: 23376: 23376: 23376: 23376: 23376: typedef Coefficient_traits_template Coefficient_traits; 23376: 23376: } 23376: # 28 "../../src/Coefficient_defs.hh" 2 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "../../src/GMP_Integer_defs.hh" 1 23376: # 31 "../../src/GMP_Integer_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: 23376: const mpz_class& raw_value(const GMP_Integer& x); 23376: 23376: 23376: 23376: mpz_class& raw_value(GMP_Integer& x); 23376: # 51 "../../src/GMP_Integer_defs.hh" 23376: void neg_assign(GMP_Integer& x); 23376: 23376: 23376: 23376: void neg_assign(GMP_Integer& x, const GMP_Integer& y); 23376: 23376: 23376: 23376: void abs_assign(GMP_Integer& x); 23376: 23376: 23376: 23376: void abs_assign(GMP_Integer& x, const GMP_Integer& y); 23376: 23376: 23376: 23376: void rem_assign(GMP_Integer& x, 23376: const GMP_Integer& y, const GMP_Integer& z); 23376: 23376: 23376: 23376: void gcd_assign(GMP_Integer& x, 23376: const GMP_Integer& y, const GMP_Integer& z); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void gcdext_assign(GMP_Integer& x, GMP_Integer& s, GMP_Integer& t, 23376: const GMP_Integer& y, const GMP_Integer& z); 23376: 23376: 23376: 23376: void lcm_assign(GMP_Integer& x, 23376: const GMP_Integer& y, const GMP_Integer& z); 23376: 23376: 23376: 23376: void add_mul_assign(GMP_Integer& x, 23376: const GMP_Integer& y, const GMP_Integer& z); 23376: 23376: 23376: 23376: void sub_mul_assign(GMP_Integer& x, 23376: const GMP_Integer& y, const GMP_Integer& z); 23376: 23376: 23376: 23376: void mul_2exp_assign(GMP_Integer& x, const GMP_Integer& y, unsigned int exp); 23376: 23376: 23376: 23376: void div_2exp_assign(GMP_Integer& x, const GMP_Integer& y, unsigned int exp); 23376: # 113 "../../src/GMP_Integer_defs.hh" 23376: void exact_div_assign(GMP_Integer& x, 23376: const GMP_Integer& y, const GMP_Integer& z); 23376: 23376: 23376: 23376: void sqrt_assign(GMP_Integer& x, const GMP_Integer& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: int cmp(const GMP_Integer& x, const GMP_Integer& y); 23376: 23376: 23376: 23376: } 23376: 23376: # 1 "../../src/GMP_Integer_inlines.hh" 1 23376: # 29 "../../src/GMP_Integer_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline void 23376: neg_assign(GMP_Integer& x) { 23376: 23376: # 33 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_neg 23376: # 33 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), x.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: neg_assign(GMP_Integer& x, const GMP_Integer& y) { 23376: 23376: # 38 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_neg 23376: # 38 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: abs_assign(GMP_Integer& x) { 23376: 23376: # 43 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_abs 23376: # 43 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), x.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: abs_assign(GMP_Integer& x, const GMP_Integer& y) { 23376: 23376: # 48 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_abs 23376: # 48 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: gcd_assign(GMP_Integer& x, const GMP_Integer& y, const GMP_Integer& z) { 23376: 23376: # 53 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_gcd 23376: # 53 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: rem_assign(GMP_Integer& x, const GMP_Integer& y, const GMP_Integer& z) { 23376: 23376: # 58 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_tdiv_r 23376: # 58 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: gcdext_assign(GMP_Integer& x, GMP_Integer& s, GMP_Integer& t, 23376: const GMP_Integer& y, const GMP_Integer& z) { 23376: 23376: # 64 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_gcdext 23376: # 64 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), 23376: s.get_mpz_t(), t.get_mpz_t(), 23376: y.get_mpz_t(), z.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: lcm_assign(GMP_Integer& x, const GMP_Integer& y, const GMP_Integer& z) { 23376: 23376: # 71 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_lcm 23376: # 71 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: add_mul_assign(GMP_Integer& x, const GMP_Integer& y, const GMP_Integer& z) { 23376: 23376: # 76 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_addmul 23376: # 76 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: sub_mul_assign(GMP_Integer& x, const GMP_Integer& y, const GMP_Integer& z) { 23376: 23376: # 81 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_submul 23376: # 81 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: mul_2exp_assign(GMP_Integer& x, const GMP_Integer& y, unsigned int exp) { 23376: 23376: # 86 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_mul_2exp 23376: # 86 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t(), exp); 23376: } 23376: 23376: inline void 23376: div_2exp_assign(GMP_Integer& x, const GMP_Integer& y, unsigned int exp) { 23376: 23376: # 91 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_tdiv_q_2exp 23376: # 91 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t(), exp); 23376: } 23376: 23376: inline void 23376: exact_div_assign(GMP_Integer& x, const GMP_Integer& y, const GMP_Integer& z) { 23376: ((void) 0); 23376: 23376: # 97 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_divexact 23376: # 97 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t()); 23376: } 23376: 23376: inline void 23376: sqrt_assign(GMP_Integer& x, const GMP_Integer& y) { 23376: 23376: # 102 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_sqrt 23376: # 102 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t()); 23376: } 23376: 23376: inline int 23376: cmp(const GMP_Integer& x, const GMP_Integer& y) { 23376: return 23376: # 107 "../../src/GMP_Integer_inlines.hh" 3 4 23376: __gmpz_cmp 23376: # 107 "../../src/GMP_Integer_inlines.hh" 23376: (x.get_mpz_t(), y.get_mpz_t()); 23376: } 23376: 23376: inline const mpz_class& 23376: raw_value(const GMP_Integer& x) { 23376: return x; 23376: } 23376: 23376: inline mpz_class& 23376: raw_value(GMP_Integer& x) { 23376: return x; 23376: } 23376: 23376: } 23376: # 133 "../../src/GMP_Integer_defs.hh" 2 23376: # 36 "../../src/Coefficient_defs.hh" 2 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: void Coefficient_constants_initialize(); 23376: 23376: 23376: 23376: 23376: void Coefficient_constants_finalize(); 23376: 23376: 23376: Coefficient_traits::const_reference Coefficient_zero(); 23376: 23376: 23376: Coefficient_traits::const_reference Coefficient_one(); 23376: 23376: } 23376: 23376: # 1 "../../src/Coefficient_inlines.hh" 1 23376: # 27 "../../src/Coefficient_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 57 "../../src/Coefficient_inlines.hh" 23376: inline Coefficient_traits::const_reference 23376: Coefficient_zero() { 23376: extern const Coefficient* Coefficient_zero_p; 23376: return *Coefficient_zero_p; 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Coefficient_one() { 23376: extern const Coefficient* Coefficient_one_p; 23376: ((void) 0); 23376: return *Coefficient_one_p; 23376: } 23376: 23376: 23376: } 23376: # 61 "../../src/Coefficient_defs.hh" 2 23376: # 29 "../../src/Linear_Expression_Interface_defs.hh" 2 23376: 23376: # 1 "../../src/Variables_Set_types.hh" 1 23376: # 16 "../../src/Variables_Set_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Variables_Set; 23376: 23376: } 23376: # 31 "../../src/Linear_Expression_Interface_defs.hh" 2 23376: # 1 "../../src/Dense_Row_types.hh" 1 23376: # 16 "../../src/Dense_Row_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Dense_Row; 23376: 23376: } 23376: # 32 "../../src/Linear_Expression_Interface_defs.hh" 2 23376: # 1 "../../src/Sparse_Row_types.hh" 1 23376: # 16 "../../src/Sparse_Row_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Sparse_Row; 23376: 23376: } 23376: # 33 "../../src/Linear_Expression_Interface_defs.hh" 2 23376: # 51 "../../src/Linear_Expression_Interface_defs.hh" 23376: class Parma_Polyhedra_Library::Linear_Expression_Interface { 23376: public: 23376: virtual ~Linear_Expression_Interface(); 23376: 23376: virtual bool OK() const = 0; 23376: 23376: 23376: virtual Representation representation() const = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: class const_iterator_interface { 23376: public: 23376: typedef std::bidirectional_iterator_tag iterator_category; 23376: typedef const Coefficient value_type; 23376: typedef std::ptrdiff_t difference_type; 23376: typedef value_type* pointer; 23376: typedef Coefficient_traits::const_reference reference; 23376: 23376: 23376: 23376: 23376: virtual const_iterator_interface* clone() const = 0; 23376: 23376: virtual ~const_iterator_interface(); 23376: 23376: 23376: 23376: 23376: virtual void operator++() = 0; 23376: 23376: 23376: 23376: 23376: virtual void operator--() = 0; 23376: 23376: 23376: virtual reference operator*() const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual Variable variable() const = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual bool operator==(const const_iterator_interface& x) const = 0; 23376: }; 23376: 23376: 23376: 23376: virtual const_iterator_interface* begin() const = 0; 23376: 23376: 23376: 23376: virtual const_iterator_interface* end() const = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual const_iterator_interface* lower_bound(Variable v) const = 0; 23376: 23376: 23376: virtual dimension_type space_dimension() const = 0; 23376: 23376: 23376: virtual void set_space_dimension(dimension_type n) = 0; 23376: 23376: 23376: virtual Coefficient_traits::const_reference 23376: coefficient(Variable v) const = 0; 23376: 23376: 23376: virtual void 23376: set_coefficient(Variable v, Coefficient_traits::const_reference n) = 0; 23376: 23376: 23376: virtual Coefficient_traits::const_reference inhomogeneous_term() const = 0; 23376: 23376: 23376: virtual void 23376: set_inhomogeneous_term(Coefficient_traits::const_reference n) = 0; 23376: # 158 "../../src/Linear_Expression_Interface_defs.hh" 23376: virtual void 23376: linear_combine(const Linear_Expression_Interface& y, Variable v) = 0; 23376: 23376: 23376: 23376: virtual void linear_combine(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2) = 0; 23376: 23376: 23376: 23376: virtual void linear_combine_lax(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2) = 0; 23376: 23376: 23376: virtual void swap_space_dimensions(Variable v1, Variable v2) = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual void remove_space_dimensions(const Variables_Set& vars) = 0; 23376: 23376: 23376: 23376: virtual void shift_space_dimensions(Variable v, dimension_type n) = 0; 23376: # 200 "../../src/Linear_Expression_Interface_defs.hh" 23376: virtual void 23376: permute_space_dimensions(const std::vector& cycle) = 0; 23376: 23376: 23376: virtual bool is_zero() const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual bool all_homogeneous_terms_are_zero() const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual memory_size_type total_memory_in_bytes() const = 0; 23376: 23376: 23376: virtual memory_size_type external_memory_in_bytes() const = 0; 23376: 23376: 23376: virtual void ascii_dump(std::ostream& s) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual bool ascii_load(std::istream& s) = 0; 23376: 23376: 23376: 23376: virtual bool is_equal_to(const Linear_Expression_Interface& x) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual void normalize() = 0; 23376: 23376: 23376: 23376: virtual void sign_normalize() = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual void negate(dimension_type first, dimension_type last) = 0; 23376: 23376: virtual Linear_Expression_Interface& 23376: operator+=(Coefficient_traits::const_reference n) = 0; 23376: virtual Linear_Expression_Interface& 23376: operator-=(Coefficient_traits::const_reference n) = 0; 23376: # 269 "../../src/Linear_Expression_Interface_defs.hh" 23376: virtual int compare(const Linear_Expression_Interface& y) const = 0; 23376: 23376: virtual Linear_Expression_Interface& 23376: operator+=(const Linear_Expression_Interface& e2) = 0; 23376: virtual Linear_Expression_Interface& 23376: operator+=(const Variable v) = 0; 23376: virtual Linear_Expression_Interface& 23376: operator-=(const Linear_Expression_Interface& e2) = 0; 23376: virtual Linear_Expression_Interface& 23376: operator-=(const Variable v) = 0; 23376: virtual Linear_Expression_Interface& 23376: operator*=(Coefficient_traits::const_reference n) = 0; 23376: virtual Linear_Expression_Interface& 23376: operator/=(Coefficient_traits::const_reference n) = 0; 23376: 23376: virtual void negate() = 0; 23376: 23376: virtual Linear_Expression_Interface& 23376: add_mul_assign(Coefficient_traits::const_reference n, const Variable v) = 0; 23376: 23376: virtual Linear_Expression_Interface& 23376: sub_mul_assign(Coefficient_traits::const_reference n, const Variable v) = 0; 23376: 23376: virtual void add_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Interface& e2) = 0; 23376: 23376: virtual void sub_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Interface& e2) = 0; 23376: 23376: virtual void print(std::ostream& s) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual bool all_zeroes(const Variables_Set& vars) const = 0; 23376: 23376: 23376: 23376: virtual bool have_a_common_variable(const Linear_Expression_Interface& x, 23376: Variable first, Variable last) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual Coefficient_traits::const_reference get(dimension_type i) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual void set(dimension_type i, Coefficient_traits::const_reference n) = 0; 23376: # 330 "../../src/Linear_Expression_Interface_defs.hh" 23376: virtual bool all_zeroes(dimension_type start, dimension_type end) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual dimension_type 23376: num_zeroes(dimension_type start, dimension_type end) const = 0; 23376: # 348 "../../src/Linear_Expression_Interface_defs.hh" 23376: virtual Coefficient gcd(dimension_type start, dimension_type end) const = 0; 23376: 23376: 23376: 23376: 23376: virtual void exact_div_assign(Coefficient_traits::const_reference c, 23376: dimension_type start, dimension_type end) = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual void mul_assign(Coefficient_traits::const_reference n, 23376: dimension_type start, dimension_type end) = 0; 23376: # 381 "../../src/Linear_Expression_Interface_defs.hh" 23376: virtual void 23376: linear_combine(const Linear_Expression_Interface& y, dimension_type i) = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual void linear_combine(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual void linear_combine_lax(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual dimension_type last_nonzero() const = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual dimension_type 23376: last_nonzero(dimension_type first, dimension_type last) const = 0; 23376: 23376: 23376: 23376: virtual dimension_type 23376: first_nonzero(dimension_type first, dimension_type last) const = 0; 23376: # 431 "../../src/Linear_Expression_Interface_defs.hh" 23376: virtual bool 23376: all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual void 23376: scalar_product_assign(Coefficient& result, 23376: const Linear_Expression_Interface& y, 23376: dimension_type start, dimension_type end) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual int 23376: scalar_product_sign(const Linear_Expression_Interface& y, 23376: dimension_type start, dimension_type end) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual void 23376: has_a_free_dimension_helper(std::set& x) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual bool is_equal_to(const Linear_Expression_Interface& x, 23376: dimension_type start, dimension_type end) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual bool is_equal_to(const Linear_Expression_Interface& x, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual void get_row(Dense_Row& r) const = 0; 23376: 23376: 23376: 23376: 23376: 23376: virtual void get_row(Sparse_Row& r) const = 0; 23376: }; 23376: # 29 "../../src/Linear_Expression_Impl_defs.hh" 2 23376: 23376: 23376: # 1 "../../src/Variables_Set_defs.hh" 1 23376: # 33 "../../src/Variables_Set_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& 23376: operator<<(std::ostream& s, const Variables_Set& vs); 23376: 23376: } 23376: 23376: } 23376: 23376: 23376: class Parma_Polyhedra_Library::Variables_Set 23376: : public std::set { 23376: private: 23376: typedef std::set Base; 23376: 23376: public: 23376: 23376: Variables_Set(); 23376: 23376: 23376: explicit Variables_Set(const Variable v); 23376: # 68 "../../src/Variables_Set_defs.hh" 23376: Variables_Set(const Variable v, const Variable w); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: void insert(Variable v); 23376: 23376: 23376: 23376: using Base::insert; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: }; 23376: 23376: # 1 "../../src/Variables_Set_inlines.hh" 1 23376: # 30 "../../src/Variables_Set_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Variables_Set::Variables_Set() 23376: : Base() { 23376: } 23376: 23376: inline void 23376: Variables_Set::insert(const Variable v) { 23376: insert(v.id()); 23376: } 23376: 23376: inline 23376: Variables_Set::Variables_Set(const Variable v) 23376: : Base() { 23376: insert(v); 23376: } 23376: 23376: inline dimension_type 23376: Variables_Set::max_space_dimension() { 23376: return Variable::max_space_dimension(); 23376: } 23376: 23376: inline dimension_type 23376: Variables_Set::space_dimension() const { 23376: reverse_iterator i = rbegin(); 23376: return (i == rend()) ? 0 : (*i + 1); 23376: } 23376: 23376: inline memory_size_type 23376: Variables_Set::external_memory_in_bytes() const { 23376: 23376: 23376: 23376: enum color { red, black }; 23376: return size() * (sizeof(color) + 3*sizeof(void*) + sizeof(dimension_type)); 23376: } 23376: 23376: inline memory_size_type 23376: Variables_Set::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: } 23376: # 106 "../../src/Variables_Set_defs.hh" 2 23376: # 32 "../../src/Linear_Expression_Impl_defs.hh" 2 23376: # 1 "../../src/Dense_Row_defs.hh" 1 23376: # 33 "../../src/Dense_Row_defs.hh" 23376: # 1 "/usr/include/c++/8/memory" 1 3 23376: # 46 "/usr/include/c++/8/memory" 3 23376: 23376: # 47 "/usr/include/c++/8/memory" 3 23376: # 67 "/usr/include/c++/8/memory" 3 23376: # 1 "/usr/include/c++/8/bits/stl_raw_storage_iter.h" 1 3 23376: # 59 "/usr/include/c++/8/bits/stl_raw_storage_iter.h" 3 23376: 23376: # 59 "/usr/include/c++/8/bits/stl_raw_storage_iter.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: class raw_storage_iterator 23376: : public iterator 23376: { 23376: protected: 23376: _OutputIterator _M_iter; 23376: 23376: public: 23376: explicit 23376: raw_storage_iterator(_OutputIterator __x) 23376: : _M_iter(__x) {} 23376: 23376: raw_storage_iterator& 23376: operator*() { return *this; } 23376: 23376: raw_storage_iterator& 23376: operator=(const _Tp& __element) 23376: { 23376: std::_Construct(std::__addressof(*_M_iter), __element); 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: raw_storage_iterator& 23376: operator=(_Tp&& __element) 23376: { 23376: std::_Construct(std::__addressof(*_M_iter), std::move(__element)); 23376: return *this; 23376: } 23376: 23376: 23376: raw_storage_iterator& 23376: operator++() 23376: { 23376: ++_M_iter; 23376: return *this; 23376: } 23376: 23376: raw_storage_iterator 23376: operator++(int) 23376: { 23376: raw_storage_iterator __tmp = *this; 23376: ++_M_iter; 23376: return __tmp; 23376: } 23376: 23376: 23376: 23376: _OutputIterator base() const { return _M_iter; } 23376: }; 23376: 23376: 23376: } 23376: # 68 "/usr/include/c++/8/memory" 2 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/ext/concurrence.h" 1 3 23376: # 32 "/usr/include/c++/8/ext/concurrence.h" 3 23376: 23376: # 33 "/usr/include/c++/8/ext/concurrence.h" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: enum _Lock_policy { _S_single, _S_mutex, _S_atomic }; 23376: 23376: 23376: 23376: static const _Lock_policy __default_lock_policy = 23376: 23376: 23376: 23376: _S_atomic; 23376: # 67 "/usr/include/c++/8/ext/concurrence.h" 3 23376: class __concurrence_lock_error : public std::exception 23376: { 23376: public: 23376: virtual char const* 23376: what() const throw() 23376: { return "__gnu_cxx::__concurrence_lock_error"; } 23376: }; 23376: 23376: class __concurrence_unlock_error : public std::exception 23376: { 23376: public: 23376: virtual char const* 23376: what() const throw() 23376: { return "__gnu_cxx::__concurrence_unlock_error"; } 23376: }; 23376: 23376: class __concurrence_broadcast_error : public std::exception 23376: { 23376: public: 23376: virtual char const* 23376: what() const throw() 23376: { return "__gnu_cxx::__concurrence_broadcast_error"; } 23376: }; 23376: 23376: class __concurrence_wait_error : public std::exception 23376: { 23376: public: 23376: virtual char const* 23376: what() const throw() 23376: { return "__gnu_cxx::__concurrence_wait_error"; } 23376: }; 23376: 23376: 23376: inline void 23376: __throw_concurrence_lock_error() 23376: { (throw (__concurrence_lock_error())); } 23376: 23376: inline void 23376: __throw_concurrence_unlock_error() 23376: { (throw (__concurrence_unlock_error())); } 23376: 23376: 23376: inline void 23376: __throw_concurrence_broadcast_error() 23376: { (throw (__concurrence_broadcast_error())); } 23376: 23376: inline void 23376: __throw_concurrence_wait_error() 23376: { (throw (__concurrence_wait_error())); } 23376: 23376: 23376: class __mutex 23376: { 23376: private: 23376: 23376: __gthread_mutex_t _M_mutex = { { 0, 0, 0, 0, 0, { 0 } } }; 23376: 23376: 23376: 23376: 23376: __mutex(const __mutex&); 23376: __mutex& operator=(const __mutex&); 23376: 23376: public: 23376: __mutex() 23376: { 23376: 23376: 23376: 23376: 23376: } 23376: # 147 "/usr/include/c++/8/ext/concurrence.h" 3 23376: void lock() 23376: { 23376: 23376: if (__gthread_active_p()) 23376: { 23376: if (__gthread_mutex_lock(&_M_mutex) != 0) 23376: __throw_concurrence_lock_error(); 23376: } 23376: 23376: } 23376: 23376: void unlock() 23376: { 23376: 23376: if (__gthread_active_p()) 23376: { 23376: if (__gthread_mutex_unlock(&_M_mutex) != 0) 23376: __throw_concurrence_unlock_error(); 23376: } 23376: 23376: } 23376: 23376: __gthread_mutex_t* gthread_mutex(void) 23376: { return &_M_mutex; } 23376: }; 23376: 23376: class __recursive_mutex 23376: { 23376: private: 23376: 23376: __gthread_recursive_mutex_t _M_mutex = { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0 } } }; 23376: 23376: 23376: 23376: 23376: __recursive_mutex(const __recursive_mutex&); 23376: __recursive_mutex& operator=(const __recursive_mutex&); 23376: 23376: public: 23376: __recursive_mutex() 23376: { 23376: 23376: 23376: 23376: 23376: } 23376: # 202 "/usr/include/c++/8/ext/concurrence.h" 3 23376: void lock() 23376: { 23376: 23376: if (__gthread_active_p()) 23376: { 23376: if (__gthread_recursive_mutex_lock(&_M_mutex) != 0) 23376: __throw_concurrence_lock_error(); 23376: } 23376: 23376: } 23376: 23376: void unlock() 23376: { 23376: 23376: if (__gthread_active_p()) 23376: { 23376: if (__gthread_recursive_mutex_unlock(&_M_mutex) != 0) 23376: __throw_concurrence_unlock_error(); 23376: } 23376: 23376: } 23376: 23376: __gthread_recursive_mutex_t* gthread_recursive_mutex(void) 23376: { return &_M_mutex; } 23376: }; 23376: 23376: 23376: 23376: 23376: class __scoped_lock 23376: { 23376: public: 23376: typedef __mutex __mutex_type; 23376: 23376: private: 23376: __mutex_type& _M_device; 23376: 23376: __scoped_lock(const __scoped_lock&); 23376: __scoped_lock& operator=(const __scoped_lock&); 23376: 23376: public: 23376: explicit __scoped_lock(__mutex_type& __name) : _M_device(__name) 23376: { _M_device.lock(); } 23376: 23376: ~__scoped_lock() throw() 23376: { _M_device.unlock(); } 23376: }; 23376: 23376: 23376: class __cond 23376: { 23376: private: 23376: 23376: __gthread_cond_t _M_cond = { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }; 23376: 23376: 23376: 23376: 23376: __cond(const __cond&); 23376: __cond& operator=(const __cond&); 23376: 23376: public: 23376: __cond() 23376: { 23376: 23376: 23376: 23376: 23376: } 23376: # 280 "/usr/include/c++/8/ext/concurrence.h" 3 23376: void broadcast() 23376: { 23376: 23376: if (__gthread_active_p()) 23376: { 23376: if (__gthread_cond_broadcast(&_M_cond) != 0) 23376: __throw_concurrence_broadcast_error(); 23376: } 23376: 23376: } 23376: 23376: void wait(__mutex *mutex) 23376: { 23376: 23376: { 23376: if (__gthread_cond_wait(&_M_cond, mutex->gthread_mutex()) != 0) 23376: __throw_concurrence_wait_error(); 23376: } 23376: 23376: } 23376: 23376: void wait_recursive(__recursive_mutex *mutex) 23376: { 23376: 23376: { 23376: if (__gthread_cond_wait_recursive(&_M_cond, 23376: mutex->gthread_recursive_mutex()) 23376: != 0) 23376: __throw_concurrence_wait_error(); 23376: } 23376: 23376: } 23376: }; 23376: 23376: 23376: 23376: } 23376: # 75 "/usr/include/c++/8/memory" 2 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/shared_ptr.h" 1 3 23376: # 52 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: # 1 "/usr/include/c++/8/bits/shared_ptr_base.h" 1 3 23376: # 53 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 23376: # 1 "/usr/include/c++/8/bits/allocated_ptr.h" 1 3 23376: # 40 "/usr/include/c++/8/bits/allocated_ptr.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: template 23376: struct __allocated_ptr 23376: { 23376: using pointer = typename allocator_traits<_Alloc>::pointer; 23376: using value_type = typename allocator_traits<_Alloc>::value_type; 23376: 23376: 23376: __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept 23376: : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) 23376: { } 23376: 23376: 23376: template>> 23376: __allocated_ptr(_Alloc& __a, _Ptr __ptr) 23376: : _M_alloc(std::__addressof(__a)), 23376: _M_ptr(pointer_traits::pointer_to(*__ptr)) 23376: { } 23376: 23376: 23376: __allocated_ptr(__allocated_ptr&& __gd) noexcept 23376: : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) 23376: { __gd._M_ptr = nullptr; } 23376: 23376: 23376: ~__allocated_ptr() 23376: { 23376: if (_M_ptr != nullptr) 23376: std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); 23376: } 23376: 23376: 23376: __allocated_ptr& 23376: operator=(std::nullptr_t) noexcept 23376: { 23376: _M_ptr = nullptr; 23376: return *this; 23376: } 23376: 23376: 23376: value_type* get() { return std::__to_address(_M_ptr); } 23376: 23376: private: 23376: _Alloc* _M_alloc; 23376: pointer _M_ptr; 23376: }; 23376: 23376: 23376: template 23376: __allocated_ptr<_Alloc> 23376: __allocate_guarded(_Alloc& __a) 23376: { 23376: return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; 23376: } 23376: 23376: 23376: } 23376: # 54 "/usr/include/c++/8/bits/shared_ptr_base.h" 2 3 23376: # 1 "/usr/include/c++/8/bits/refwrap.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/refwrap.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/refwrap.h" 3 23376: # 43 "/usr/include/c++/8/bits/refwrap.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct _Maybe_unary_or_binary_function { }; 23376: 23376: 23376: template 23376: struct _Maybe_unary_or_binary_function<_Res, _T1> 23376: : std::unary_function<_T1, _Res> { }; 23376: 23376: 23376: template 23376: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 23376: : std::binary_function<_T1, _T2, _Res> { }; 23376: 23376: template 23376: struct _Mem_fn_traits; 23376: 23376: template 23376: struct _Mem_fn_traits_base 23376: { 23376: using __result_type = _Res; 23376: using __maybe_type 23376: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 23376: using __arity = integral_constant; 23376: }; 23376: # 97 "/usr/include/c++/8/bits/refwrap.h" 3 23376: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 23376: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 23376: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 23376: # 111 "/usr/include/c++/8/bits/refwrap.h" 3 23376: template> 23376: struct _Maybe_get_result_type 23376: { }; 23376: 23376: template 23376: struct _Maybe_get_result_type<_Functor, 23376: __void_t> 23376: { typedef typename _Functor::result_type result_type; }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct _Weak_result_type_impl 23376: : _Maybe_get_result_type<_Functor> 23376: { }; 23376: 23376: 23376: template 23376: struct _Weak_result_type_impl<_Res(_ArgTypes...) > 23376: { typedef _Res result_type; }; 23376: 23376: 23376: template 23376: struct _Weak_result_type_impl<_Res(_ArgTypes......) > 23376: { typedef _Res result_type; }; 23376: 23376: 23376: template 23376: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) > 23376: { typedef _Res result_type; }; 23376: 23376: 23376: template 23376: struct 23376: _Weak_result_type_impl<_Res(*)(_ArgTypes......) > 23376: { typedef _Res result_type; }; 23376: 23376: 23376: template::value> 23376: struct _Weak_result_type_memfun 23376: : _Weak_result_type_impl<_Functor> 23376: { }; 23376: 23376: 23376: template 23376: struct _Weak_result_type_memfun<_MemFunPtr, true> 23376: { 23376: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 23376: }; 23376: 23376: 23376: template 23376: struct _Weak_result_type_memfun<_Func _Class::*, false> 23376: { }; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct _Weak_result_type 23376: : _Weak_result_type_memfun::type> 23376: { }; 23376: 23376: 23376: template> 23376: struct _Refwrap_base_arg1 23376: { }; 23376: 23376: 23376: template 23376: struct _Refwrap_base_arg1<_Tp, 23376: __void_t> 23376: { 23376: typedef typename _Tp::argument_type argument_type; 23376: }; 23376: 23376: 23376: template> 23376: struct _Refwrap_base_arg2 23376: { }; 23376: 23376: 23376: template 23376: struct _Refwrap_base_arg2<_Tp, 23376: __void_t> 23376: { 23376: typedef typename _Tp::first_argument_type first_argument_type; 23376: typedef typename _Tp::second_argument_type second_argument_type; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct _Reference_wrapper_base 23376: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 23376: { }; 23376: 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(_T1) > 23376: : unary_function<_T1, _Res> 23376: { }; 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(_T1) const> 23376: : unary_function<_T1, _Res> 23376: { }; 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(_T1) volatile> 23376: : unary_function<_T1, _Res> 23376: { }; 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(_T1) const volatile> 23376: : unary_function<_T1, _Res> 23376: { }; 23376: 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(_T1, _T2) > 23376: : binary_function<_T1, _T2, _Res> 23376: { }; 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 23376: : binary_function<_T1, _T2, _Res> 23376: { }; 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 23376: : binary_function<_T1, _T2, _Res> 23376: { }; 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 23376: : binary_function<_T1, _T2, _Res> 23376: { }; 23376: 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(*)(_T1) > 23376: : unary_function<_T1, _Res> 23376: { }; 23376: 23376: 23376: template 23376: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) > 23376: : binary_function<_T1, _T2, _Res> 23376: { }; 23376: 23376: template::value> 23376: struct _Reference_wrapper_base_memfun 23376: : _Reference_wrapper_base<_Tp> 23376: { }; 23376: 23376: template 23376: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 23376: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 23376: { 23376: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: class reference_wrapper 23376: : public _Reference_wrapper_base_memfun::type> 23376: { 23376: _Tp* _M_data; 23376: 23376: public: 23376: typedef _Tp type; 23376: 23376: reference_wrapper(_Tp& __indata) noexcept 23376: : _M_data(std::__addressof(__indata)) 23376: { } 23376: 23376: reference_wrapper(_Tp&&) = delete; 23376: 23376: reference_wrapper(const reference_wrapper&) = default; 23376: 23376: reference_wrapper& 23376: operator=(const reference_wrapper&) = default; 23376: 23376: operator _Tp&() const noexcept 23376: { return this->get(); } 23376: 23376: _Tp& 23376: get() const noexcept 23376: { return *_M_data; } 23376: 23376: template 23376: typename result_of<_Tp&(_Args&&...)>::type 23376: operator()(_Args&&... __args) const 23376: { 23376: return std::__invoke(get(), std::forward<_Args>(__args)...); 23376: } 23376: }; 23376: 23376: 23376: 23376: template 23376: inline reference_wrapper<_Tp> 23376: ref(_Tp& __t) noexcept 23376: { return reference_wrapper<_Tp>(__t); } 23376: 23376: 23376: template 23376: inline reference_wrapper 23376: cref(const _Tp& __t) noexcept 23376: { return reference_wrapper(__t); } 23376: 23376: template 23376: void ref(const _Tp&&) = delete; 23376: 23376: template 23376: void cref(const _Tp&&) = delete; 23376: 23376: 23376: template 23376: inline reference_wrapper<_Tp> 23376: ref(reference_wrapper<_Tp> __t) noexcept 23376: { return __t; } 23376: 23376: 23376: template 23376: inline reference_wrapper 23376: cref(reference_wrapper<_Tp> __t) noexcept 23376: { return { __t.get() }; } 23376: 23376: 23376: 23376: 23376: } 23376: # 55 "/usr/include/c++/8/bits/shared_ptr_base.h" 2 3 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: template class auto_ptr; 23376: #pragma GCC diagnostic pop 23376: 23376: 23376: 23376: 23376: 23376: 23376: class bad_weak_ptr : public std::exception 23376: { 23376: public: 23376: virtual char const* what() const noexcept; 23376: 23376: virtual ~bad_weak_ptr() noexcept; 23376: }; 23376: 23376: 23376: inline void 23376: __throw_bad_weak_ptr() 23376: { (throw (bad_weak_ptr())); } 23376: 23376: using __gnu_cxx::_Lock_policy; 23376: using __gnu_cxx::__default_lock_policy; 23376: using __gnu_cxx::_S_single; 23376: using __gnu_cxx::_S_mutex; 23376: using __gnu_cxx::_S_atomic; 23376: 23376: 23376: template<_Lock_policy _Lp> 23376: class _Mutex_base 23376: { 23376: protected: 23376: 23376: enum { _S_need_barriers = 0 }; 23376: }; 23376: 23376: template<> 23376: class _Mutex_base<_S_mutex> 23376: : public __gnu_cxx::__mutex 23376: { 23376: protected: 23376: 23376: 23376: 23376: enum { _S_need_barriers = 1 }; 23376: }; 23376: 23376: template<_Lock_policy _Lp = __default_lock_policy> 23376: class _Sp_counted_base 23376: : public _Mutex_base<_Lp> 23376: { 23376: public: 23376: _Sp_counted_base() noexcept 23376: : _M_use_count(1), _M_weak_count(1) { } 23376: 23376: virtual 23376: ~_Sp_counted_base() noexcept 23376: { } 23376: 23376: 23376: 23376: virtual void 23376: _M_dispose() noexcept = 0; 23376: 23376: 23376: virtual void 23376: _M_destroy() noexcept 23376: { delete this; } 23376: 23376: virtual void* 23376: _M_get_deleter(const std::type_info&) noexcept = 0; 23376: 23376: void 23376: _M_add_ref_copy() 23376: { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); } 23376: 23376: void 23376: _M_add_ref_lock(); 23376: 23376: bool 23376: _M_add_ref_lock_nothrow(); 23376: 23376: void 23376: _M_release() noexcept 23376: { 23376: 23376: ; 23376: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 23376: { 23376: ; 23376: _M_dispose(); 23376: 23376: 23376: 23376: 23376: if (_Mutex_base<_Lp>::_S_need_barriers) 23376: { 23376: __atomic_thread_fence (4); 23376: } 23376: 23376: 23376: ; 23376: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, 23376: -1) == 1) 23376: { 23376: ; 23376: _M_destroy(); 23376: } 23376: } 23376: } 23376: 23376: void 23376: _M_weak_add_ref() noexcept 23376: { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); } 23376: 23376: void 23376: _M_weak_release() noexcept 23376: { 23376: 23376: ; 23376: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) 23376: { 23376: ; 23376: if (_Mutex_base<_Lp>::_S_need_barriers) 23376: { 23376: 23376: 23376: __atomic_thread_fence (4); 23376: } 23376: _M_destroy(); 23376: } 23376: } 23376: 23376: long 23376: _M_get_use_count() const noexcept 23376: { 23376: 23376: 23376: return __atomic_load_n(&_M_use_count, 0); 23376: } 23376: 23376: private: 23376: _Sp_counted_base(_Sp_counted_base const&) = delete; 23376: _Sp_counted_base& operator=(_Sp_counted_base const&) = delete; 23376: 23376: _Atomic_word _M_use_count; 23376: _Atomic_word _M_weak_count; 23376: }; 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_base<_S_single>:: 23376: _M_add_ref_lock() 23376: { 23376: if (_M_use_count == 0) 23376: __throw_bad_weak_ptr(); 23376: ++_M_use_count; 23376: } 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_base<_S_mutex>:: 23376: _M_add_ref_lock() 23376: { 23376: __gnu_cxx::__scoped_lock sentry(*this); 23376: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 23376: { 23376: _M_use_count = 0; 23376: __throw_bad_weak_ptr(); 23376: } 23376: } 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_base<_S_atomic>:: 23376: _M_add_ref_lock() 23376: { 23376: 23376: _Atomic_word __count = _M_get_use_count(); 23376: do 23376: { 23376: if (__count == 0) 23376: __throw_bad_weak_ptr(); 23376: 23376: 23376: } 23376: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 23376: true, 4, 23376: 0)); 23376: } 23376: 23376: template<> 23376: inline bool 23376: _Sp_counted_base<_S_single>:: 23376: _M_add_ref_lock_nothrow() 23376: { 23376: if (_M_use_count == 0) 23376: return false; 23376: ++_M_use_count; 23376: return true; 23376: } 23376: 23376: template<> 23376: inline bool 23376: _Sp_counted_base<_S_mutex>:: 23376: _M_add_ref_lock_nothrow() 23376: { 23376: __gnu_cxx::__scoped_lock sentry(*this); 23376: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 23376: { 23376: _M_use_count = 0; 23376: return false; 23376: } 23376: return true; 23376: } 23376: 23376: template<> 23376: inline bool 23376: _Sp_counted_base<_S_atomic>:: 23376: _M_add_ref_lock_nothrow() 23376: { 23376: 23376: _Atomic_word __count = _M_get_use_count(); 23376: do 23376: { 23376: if (__count == 0) 23376: return false; 23376: 23376: 23376: } 23376: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 23376: true, 4, 23376: 0)); 23376: return true; 23376: } 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_base<_S_single>::_M_add_ref_copy() 23376: { ++_M_use_count; } 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_base<_S_single>::_M_release() noexcept 23376: { 23376: if (--_M_use_count == 0) 23376: { 23376: _M_dispose(); 23376: if (--_M_weak_count == 0) 23376: _M_destroy(); 23376: } 23376: } 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_base<_S_single>::_M_weak_add_ref() noexcept 23376: { ++_M_weak_count; } 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_base<_S_single>::_M_weak_release() noexcept 23376: { 23376: if (--_M_weak_count == 0) 23376: _M_destroy(); 23376: } 23376: 23376: template<> 23376: inline long 23376: _Sp_counted_base<_S_single>::_M_get_use_count() const noexcept 23376: { return _M_use_count; } 23376: 23376: 23376: 23376: template 23376: class __shared_ptr; 23376: 23376: template 23376: class __weak_ptr; 23376: 23376: template 23376: class __enable_shared_from_this; 23376: 23376: template 23376: class shared_ptr; 23376: 23376: template 23376: class weak_ptr; 23376: 23376: template 23376: struct owner_less; 23376: 23376: template 23376: class enable_shared_from_this; 23376: 23376: template<_Lock_policy _Lp = __default_lock_policy> 23376: class __weak_count; 23376: 23376: template<_Lock_policy _Lp = __default_lock_policy> 23376: class __shared_count; 23376: 23376: 23376: 23376: template 23376: class _Sp_counted_ptr final : public _Sp_counted_base<_Lp> 23376: { 23376: public: 23376: explicit 23376: _Sp_counted_ptr(_Ptr __p) noexcept 23376: : _M_ptr(__p) { } 23376: 23376: virtual void 23376: _M_dispose() noexcept 23376: { delete _M_ptr; } 23376: 23376: virtual void 23376: _M_destroy() noexcept 23376: { delete this; } 23376: 23376: virtual void* 23376: _M_get_deleter(const std::type_info&) noexcept 23376: { return nullptr; } 23376: 23376: _Sp_counted_ptr(const _Sp_counted_ptr&) = delete; 23376: _Sp_counted_ptr& operator=(const _Sp_counted_ptr&) = delete; 23376: 23376: private: 23376: _Ptr _M_ptr; 23376: }; 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_ptr::_M_dispose() noexcept { } 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_ptr::_M_dispose() noexcept { } 23376: 23376: template<> 23376: inline void 23376: _Sp_counted_ptr::_M_dispose() noexcept { } 23376: 23376: template 23376: struct _Sp_ebo_helper; 23376: 23376: 23376: template 23376: struct _Sp_ebo_helper<_Nm, _Tp, true> : private _Tp 23376: { 23376: explicit _Sp_ebo_helper(const _Tp& __tp) : _Tp(__tp) { } 23376: explicit _Sp_ebo_helper(_Tp&& __tp) : _Tp(std::move(__tp)) { } 23376: 23376: static _Tp& 23376: _S_get(_Sp_ebo_helper& __eboh) { return static_cast<_Tp&>(__eboh); } 23376: }; 23376: 23376: 23376: template 23376: struct _Sp_ebo_helper<_Nm, _Tp, false> 23376: { 23376: explicit _Sp_ebo_helper(const _Tp& __tp) : _M_tp(__tp) { } 23376: explicit _Sp_ebo_helper(_Tp&& __tp) : _M_tp(std::move(__tp)) { } 23376: 23376: static _Tp& 23376: _S_get(_Sp_ebo_helper& __eboh) 23376: { return __eboh._M_tp; } 23376: 23376: private: 23376: _Tp _M_tp; 23376: }; 23376: 23376: 23376: template 23376: class _Sp_counted_deleter final : public _Sp_counted_base<_Lp> 23376: { 23376: class _Impl : _Sp_ebo_helper<0, _Deleter>, _Sp_ebo_helper<1, _Alloc> 23376: { 23376: typedef _Sp_ebo_helper<0, _Deleter> _Del_base; 23376: typedef _Sp_ebo_helper<1, _Alloc> _Alloc_base; 23376: 23376: public: 23376: _Impl(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 23376: : _M_ptr(__p), _Del_base(std::move(__d)), _Alloc_base(__a) 23376: { } 23376: 23376: _Deleter& _M_del() noexcept { return _Del_base::_S_get(*this); } 23376: _Alloc& _M_alloc() noexcept { return _Alloc_base::_S_get(*this); } 23376: 23376: _Ptr _M_ptr; 23376: }; 23376: 23376: public: 23376: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_deleter>; 23376: 23376: 23376: _Sp_counted_deleter(_Ptr __p, _Deleter __d) noexcept 23376: : _M_impl(__p, std::move(__d), _Alloc()) { } 23376: 23376: 23376: _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 23376: : _M_impl(__p, std::move(__d), __a) { } 23376: 23376: ~_Sp_counted_deleter() noexcept { } 23376: 23376: virtual void 23376: _M_dispose() noexcept 23376: { _M_impl._M_del()(_M_impl._M_ptr); } 23376: 23376: virtual void 23376: _M_destroy() noexcept 23376: { 23376: __allocator_type __a(_M_impl._M_alloc()); 23376: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 23376: this->~_Sp_counted_deleter(); 23376: } 23376: 23376: virtual void* 23376: _M_get_deleter(const std::type_info& __ti) noexcept 23376: { 23376: 23376: 23376: 23376: return __ti == typeid(_Deleter) 23376: ? std::__addressof(_M_impl._M_del()) 23376: : nullptr; 23376: 23376: 23376: 23376: } 23376: 23376: private: 23376: _Impl _M_impl; 23376: }; 23376: 23376: 23376: 23376: struct _Sp_make_shared_tag 23376: { 23376: private: 23376: template 23376: friend class _Sp_counted_ptr_inplace; 23376: 23376: static const type_info& 23376: _S_ti() noexcept __attribute__ ((__visibility__ ("default"))) 23376: { 23376: alignas(type_info) static constexpr char __tag[sizeof(type_info)] = { }; 23376: return reinterpret_cast(__tag); 23376: } 23376: }; 23376: 23376: template 23376: struct _Sp_alloc_shared_tag 23376: { 23376: const _Alloc& _M_a; 23376: }; 23376: 23376: template 23376: class _Sp_counted_ptr_inplace final : public _Sp_counted_base<_Lp> 23376: { 23376: class _Impl : _Sp_ebo_helper<0, _Alloc> 23376: { 23376: typedef _Sp_ebo_helper<0, _Alloc> _A_base; 23376: 23376: public: 23376: explicit _Impl(_Alloc __a) noexcept : _A_base(__a) { } 23376: 23376: _Alloc& _M_alloc() noexcept { return _A_base::_S_get(*this); } 23376: 23376: __gnu_cxx::__aligned_buffer<_Tp> _M_storage; 23376: }; 23376: 23376: public: 23376: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_ptr_inplace>; 23376: 23376: template 23376: _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args) 23376: : _M_impl(__a) 23376: { 23376: 23376: 23376: allocator_traits<_Alloc>::construct(__a, _M_ptr(), 23376: std::forward<_Args>(__args)...); 23376: } 23376: 23376: ~_Sp_counted_ptr_inplace() noexcept { } 23376: 23376: virtual void 23376: _M_dispose() noexcept 23376: { 23376: allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr()); 23376: } 23376: 23376: 23376: virtual void 23376: _M_destroy() noexcept 23376: { 23376: __allocator_type __a(_M_impl._M_alloc()); 23376: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 23376: this->~_Sp_counted_ptr_inplace(); 23376: } 23376: 23376: private: 23376: friend class __shared_count<_Lp>; 23376: 23376: 23376: 23376: virtual void* 23376: _M_get_deleter(const std::type_info& __ti) noexcept override 23376: { 23376: 23376: 23376: if (&__ti == &_Sp_make_shared_tag::_S_ti()) 23376: return const_cast::type*>(_M_ptr()); 23376: 23376: 23376: 23376: else if (__ti == typeid(_Sp_make_shared_tag)) 23376: return const_cast::type*>(_M_ptr()); 23376: 23376: 23376: 23376: 23376: 23376: 23376: return nullptr; 23376: } 23376: 23376: _Tp* _M_ptr() noexcept { return _M_impl._M_storage._M_ptr(); } 23376: 23376: _Impl _M_impl; 23376: }; 23376: 23376: 23376: struct __sp_array_delete 23376: { 23376: template 23376: void operator()(_Yp* __p) const { delete[] __p; } 23376: }; 23376: 23376: template<_Lock_policy _Lp> 23376: class __shared_count 23376: { 23376: template 23376: struct __not_alloc_shared_tag { using type = void; }; 23376: 23376: template 23376: struct __not_alloc_shared_tag<_Sp_alloc_shared_tag<_Tp>> { }; 23376: 23376: public: 23376: constexpr __shared_count() noexcept : _M_pi(0) 23376: { } 23376: 23376: template 23376: explicit 23376: __shared_count(_Ptr __p) : _M_pi(0) 23376: { 23376: try 23376: { 23376: _M_pi = new _Sp_counted_ptr<_Ptr, _Lp>(__p); 23376: } 23376: catch(...) 23376: { 23376: delete __p; 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: __shared_count(_Ptr __p, false_type) 23376: : __shared_count(__p) 23376: { } 23376: 23376: template 23376: __shared_count(_Ptr __p, true_type) 23376: : __shared_count(__p, __sp_array_delete{}, allocator()) 23376: { } 23376: 23376: template::type> 23376: __shared_count(_Ptr __p, _Deleter __d) 23376: : __shared_count(__p, std::move(__d), allocator()) 23376: { } 23376: 23376: template::type> 23376: __shared_count(_Ptr __p, _Deleter __d, _Alloc __a) : _M_pi(0) 23376: { 23376: typedef _Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp> _Sp_cd_type; 23376: try 23376: { 23376: typename _Sp_cd_type::__allocator_type __a2(__a); 23376: auto __guard = std::__allocate_guarded(__a2); 23376: _Sp_cd_type* __mem = __guard.get(); 23376: ::new (__mem) _Sp_cd_type(__p, std::move(__d), std::move(__a)); 23376: _M_pi = __mem; 23376: __guard = nullptr; 23376: } 23376: catch(...) 23376: { 23376: __d(__p); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: __shared_count(_Tp*& __p, _Sp_alloc_shared_tag<_Alloc> __a, 23376: _Args&&... __args) 23376: { 23376: typedef _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> _Sp_cp_type; 23376: typename _Sp_cp_type::__allocator_type __a2(__a._M_a); 23376: auto __guard = std::__allocate_guarded(__a2); 23376: _Sp_cp_type* __mem = __guard.get(); 23376: auto __pi = ::new (__mem) 23376: _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...); 23376: __guard = nullptr; 23376: _M_pi = __pi; 23376: __p = __pi->_M_ptr(); 23376: } 23376: 23376: 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: 23376: template 23376: explicit 23376: __shared_count(std::auto_ptr<_Tp>&& __r); 23376: #pragma GCC diagnostic pop 23376: 23376: 23376: 23376: template 23376: explicit 23376: __shared_count(std::unique_ptr<_Tp, _Del>&& __r) : _M_pi(0) 23376: { 23376: 23376: 23376: if (__r.get() == nullptr) 23376: return; 23376: 23376: using _Ptr = typename unique_ptr<_Tp, _Del>::pointer; 23376: using _Del2 = typename conditional::value, 23376: reference_wrapper::type>, 23376: _Del>::type; 23376: using _Sp_cd_type 23376: = _Sp_counted_deleter<_Ptr, _Del2, allocator, _Lp>; 23376: using _Alloc = allocator<_Sp_cd_type>; 23376: using _Alloc_traits = allocator_traits<_Alloc>; 23376: _Alloc __a; 23376: _Sp_cd_type* __mem = _Alloc_traits::allocate(__a, 1); 23376: _Alloc_traits::construct(__a, __mem, __r.release(), 23376: __r.get_deleter()); 23376: _M_pi = __mem; 23376: } 23376: 23376: 23376: explicit __shared_count(const __weak_count<_Lp>& __r); 23376: 23376: 23376: explicit __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t); 23376: 23376: ~__shared_count() noexcept 23376: { 23376: if (_M_pi != nullptr) 23376: _M_pi->_M_release(); 23376: } 23376: 23376: __shared_count(const __shared_count& __r) noexcept 23376: : _M_pi(__r._M_pi) 23376: { 23376: if (_M_pi != 0) 23376: _M_pi->_M_add_ref_copy(); 23376: } 23376: 23376: __shared_count& 23376: operator=(const __shared_count& __r) noexcept 23376: { 23376: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 23376: if (__tmp != _M_pi) 23376: { 23376: if (__tmp != 0) 23376: __tmp->_M_add_ref_copy(); 23376: if (_M_pi != 0) 23376: _M_pi->_M_release(); 23376: _M_pi = __tmp; 23376: } 23376: return *this; 23376: } 23376: 23376: void 23376: _M_swap(__shared_count& __r) noexcept 23376: { 23376: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 23376: __r._M_pi = _M_pi; 23376: _M_pi = __tmp; 23376: } 23376: 23376: long 23376: _M_get_use_count() const noexcept 23376: { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } 23376: 23376: bool 23376: _M_unique() const noexcept 23376: { return this->_M_get_use_count() == 1; } 23376: 23376: void* 23376: _M_get_deleter(const std::type_info& __ti) const noexcept 23376: { return _M_pi ? _M_pi->_M_get_deleter(__ti) : nullptr; } 23376: 23376: bool 23376: _M_less(const __shared_count& __rhs) const noexcept 23376: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 23376: 23376: bool 23376: _M_less(const __weak_count<_Lp>& __rhs) const noexcept 23376: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 23376: 23376: 23376: friend inline bool 23376: operator==(const __shared_count& __a, const __shared_count& __b) noexcept 23376: { return __a._M_pi == __b._M_pi; } 23376: 23376: private: 23376: friend class __weak_count<_Lp>; 23376: 23376: _Sp_counted_base<_Lp>* _M_pi; 23376: }; 23376: 23376: 23376: template<_Lock_policy _Lp> 23376: class __weak_count 23376: { 23376: public: 23376: constexpr __weak_count() noexcept : _M_pi(nullptr) 23376: { } 23376: 23376: __weak_count(const __shared_count<_Lp>& __r) noexcept 23376: : _M_pi(__r._M_pi) 23376: { 23376: if (_M_pi != nullptr) 23376: _M_pi->_M_weak_add_ref(); 23376: } 23376: 23376: __weak_count(const __weak_count& __r) noexcept 23376: : _M_pi(__r._M_pi) 23376: { 23376: if (_M_pi != nullptr) 23376: _M_pi->_M_weak_add_ref(); 23376: } 23376: 23376: __weak_count(__weak_count&& __r) noexcept 23376: : _M_pi(__r._M_pi) 23376: { __r._M_pi = nullptr; } 23376: 23376: ~__weak_count() noexcept 23376: { 23376: if (_M_pi != nullptr) 23376: _M_pi->_M_weak_release(); 23376: } 23376: 23376: __weak_count& 23376: operator=(const __shared_count<_Lp>& __r) noexcept 23376: { 23376: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 23376: if (__tmp != nullptr) 23376: __tmp->_M_weak_add_ref(); 23376: if (_M_pi != nullptr) 23376: _M_pi->_M_weak_release(); 23376: _M_pi = __tmp; 23376: return *this; 23376: } 23376: 23376: __weak_count& 23376: operator=(const __weak_count& __r) noexcept 23376: { 23376: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 23376: if (__tmp != nullptr) 23376: __tmp->_M_weak_add_ref(); 23376: if (_M_pi != nullptr) 23376: _M_pi->_M_weak_release(); 23376: _M_pi = __tmp; 23376: return *this; 23376: } 23376: 23376: __weak_count& 23376: operator=(__weak_count&& __r) noexcept 23376: { 23376: if (_M_pi != nullptr) 23376: _M_pi->_M_weak_release(); 23376: _M_pi = __r._M_pi; 23376: __r._M_pi = nullptr; 23376: return *this; 23376: } 23376: 23376: void 23376: _M_swap(__weak_count& __r) noexcept 23376: { 23376: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 23376: __r._M_pi = _M_pi; 23376: _M_pi = __tmp; 23376: } 23376: 23376: long 23376: _M_get_use_count() const noexcept 23376: { return _M_pi != nullptr ? _M_pi->_M_get_use_count() : 0; } 23376: 23376: bool 23376: _M_less(const __weak_count& __rhs) const noexcept 23376: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 23376: 23376: bool 23376: _M_less(const __shared_count<_Lp>& __rhs) const noexcept 23376: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 23376: 23376: 23376: friend inline bool 23376: operator==(const __weak_count& __a, const __weak_count& __b) noexcept 23376: { return __a._M_pi == __b._M_pi; } 23376: 23376: private: 23376: friend class __shared_count<_Lp>; 23376: 23376: _Sp_counted_base<_Lp>* _M_pi; 23376: }; 23376: 23376: 23376: template<_Lock_policy _Lp> 23376: inline 23376: __shared_count<_Lp>::__shared_count(const __weak_count<_Lp>& __r) 23376: : _M_pi(__r._M_pi) 23376: { 23376: if (_M_pi != nullptr) 23376: _M_pi->_M_add_ref_lock(); 23376: else 23376: __throw_bad_weak_ptr(); 23376: } 23376: 23376: 23376: template<_Lock_policy _Lp> 23376: inline 23376: __shared_count<_Lp>:: 23376: __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t) 23376: : _M_pi(__r._M_pi) 23376: { 23376: if (_M_pi != nullptr) 23376: if (!_M_pi->_M_add_ref_lock_nothrow()) 23376: _M_pi = nullptr; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: struct __sp_compatible_with 23376: : false_type 23376: { }; 23376: 23376: template 23376: struct __sp_compatible_with<_Yp*, _Tp*> 23376: : is_convertible<_Yp*, _Tp*>::type 23376: { }; 23376: 23376: template 23376: struct __sp_compatible_with<_Up(*)[_Nm], _Up(*)[]> 23376: : true_type 23376: { }; 23376: 23376: template 23376: struct __sp_compatible_with<_Up(*)[_Nm], const _Up(*)[]> 23376: : true_type 23376: { }; 23376: 23376: template 23376: struct __sp_compatible_with<_Up(*)[_Nm], volatile _Up(*)[]> 23376: : true_type 23376: { }; 23376: 23376: template 23376: struct __sp_compatible_with<_Up(*)[_Nm], const volatile _Up(*)[]> 23376: : true_type 23376: { }; 23376: 23376: 23376: template 23376: struct __sp_is_constructible_arrN 23376: : false_type 23376: { }; 23376: 23376: template 23376: struct __sp_is_constructible_arrN<_Up, _Nm, _Yp, __void_t<_Yp[_Nm]>> 23376: : is_convertible<_Yp(*)[_Nm], _Up(*)[_Nm]>::type 23376: { }; 23376: 23376: 23376: template 23376: struct __sp_is_constructible_arr 23376: : false_type 23376: { }; 23376: 23376: template 23376: struct __sp_is_constructible_arr<_Up, _Yp, __void_t<_Yp[]>> 23376: : is_convertible<_Yp(*)[], _Up(*)[]>::type 23376: { }; 23376: 23376: 23376: template 23376: struct __sp_is_constructible; 23376: 23376: 23376: template 23376: struct __sp_is_constructible<_Up[_Nm], _Yp> 23376: : __sp_is_constructible_arrN<_Up, _Nm, _Yp>::type 23376: { }; 23376: 23376: 23376: template 23376: struct __sp_is_constructible<_Up[], _Yp> 23376: : __sp_is_constructible_arr<_Up, _Yp>::type 23376: { }; 23376: 23376: 23376: template 23376: struct __sp_is_constructible 23376: : is_convertible<_Yp*, _Tp*>::type 23376: { }; 23376: 23376: 23376: 23376: template::value, bool = is_void<_Tp>::value> 23376: class __shared_ptr_access 23376: { 23376: public: 23376: using element_type = _Tp; 23376: 23376: element_type& 23376: operator*() const noexcept 23376: { 23376: ; 23376: return *_M_get(); 23376: } 23376: 23376: element_type* 23376: operator->() const noexcept 23376: { 23376: ; 23376: return _M_get(); 23376: } 23376: 23376: private: 23376: element_type* 23376: _M_get() const noexcept 23376: { return static_cast*>(this)->get(); } 23376: }; 23376: 23376: 23376: template 23376: class __shared_ptr_access<_Tp, _Lp, false, true> 23376: { 23376: public: 23376: using element_type = _Tp; 23376: 23376: element_type* 23376: operator->() const noexcept 23376: { 23376: auto __ptr = static_cast*>(this)->get(); 23376: ; 23376: return __ptr; 23376: } 23376: }; 23376: 23376: 23376: template 23376: class __shared_ptr_access<_Tp, _Lp, true, false> 23376: { 23376: public: 23376: using element_type = typename remove_extent<_Tp>::type; 23376: 23376: 23376: [[__deprecated__("shared_ptr::operator* is absent from C++17")]] 23376: element_type& 23376: operator*() const noexcept 23376: { 23376: ; 23376: return *_M_get(); 23376: } 23376: 23376: [[__deprecated__("shared_ptr::operator-> is absent from C++17")]] 23376: element_type* 23376: operator->() const noexcept 23376: { 23376: ; 23376: return _M_get(); 23376: } 23376: 23376: 23376: element_type& 23376: operator[](ptrdiff_t __i) const 23376: { 23376: ; 23376: ; 23376: return _M_get()[__i]; 23376: } 23376: 23376: private: 23376: element_type* 23376: _M_get() const noexcept 23376: { return static_cast*>(this)->get(); } 23376: }; 23376: 23376: template 23376: class __shared_ptr 23376: : public __shared_ptr_access<_Tp, _Lp> 23376: { 23376: public: 23376: using element_type = typename remove_extent<_Tp>::type; 23376: 23376: private: 23376: 23376: template 23376: using _SafeConv 23376: = typename enable_if<__sp_is_constructible<_Tp, _Yp>::value>::type; 23376: 23376: 23376: template 23376: using _Compatible = typename 23376: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 23376: 23376: 23376: template 23376: using _Assignable = _Compatible<_Yp, __shared_ptr&>; 23376: 23376: 23376: template::pointer> 23376: using _UniqCompatible = typename enable_if<__and_< 23376: __sp_compatible_with<_Yp*, _Tp*>, is_convertible<_Ptr, element_type*> 23376: >::value, _Res>::type; 23376: 23376: 23376: template 23376: using _UniqAssignable = _UniqCompatible<_Yp, _Del, __shared_ptr&>; 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: constexpr __shared_ptr() noexcept 23376: : _M_ptr(0), _M_refcount() 23376: { } 23376: 23376: template> 23376: explicit 23376: __shared_ptr(_Yp* __p) 23376: : _M_ptr(__p), _M_refcount(__p, typename is_array<_Tp>::type()) 23376: { 23376: static_assert( !is_void<_Yp>::value, "incomplete type" ); 23376: static_assert( sizeof(_Yp) > 0, "incomplete type" ); 23376: _M_enable_shared_from_this_with(__p); 23376: } 23376: 23376: template> 23376: __shared_ptr(_Yp* __p, _Deleter __d) 23376: : _M_ptr(__p), _M_refcount(__p, std::move(__d)) 23376: { 23376: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 23376: "deleter expression d(p) is well-formed"); 23376: _M_enable_shared_from_this_with(__p); 23376: } 23376: 23376: template> 23376: __shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 23376: : _M_ptr(__p), _M_refcount(__p, std::move(__d), std::move(__a)) 23376: { 23376: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 23376: "deleter expression d(p) is well-formed"); 23376: _M_enable_shared_from_this_with(__p); 23376: } 23376: 23376: template 23376: __shared_ptr(nullptr_t __p, _Deleter __d) 23376: : _M_ptr(0), _M_refcount(__p, std::move(__d)) 23376: { } 23376: 23376: template 23376: __shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 23376: : _M_ptr(0), _M_refcount(__p, std::move(__d), std::move(__a)) 23376: { } 23376: 23376: template 23376: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r, 23376: element_type* __p) noexcept 23376: : _M_ptr(__p), _M_refcount(__r._M_refcount) 23376: { } 23376: 23376: __shared_ptr(const __shared_ptr&) noexcept = default; 23376: __shared_ptr& operator=(const __shared_ptr&) noexcept = default; 23376: ~__shared_ptr() = default; 23376: 23376: template> 23376: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 23376: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 23376: { } 23376: 23376: __shared_ptr(__shared_ptr&& __r) noexcept 23376: : _M_ptr(__r._M_ptr), _M_refcount() 23376: { 23376: _M_refcount._M_swap(__r._M_refcount); 23376: __r._M_ptr = 0; 23376: } 23376: 23376: template> 23376: __shared_ptr(__shared_ptr<_Yp, _Lp>&& __r) noexcept 23376: : _M_ptr(__r._M_ptr), _M_refcount() 23376: { 23376: _M_refcount._M_swap(__r._M_refcount); 23376: __r._M_ptr = 0; 23376: } 23376: 23376: template> 23376: explicit __shared_ptr(const __weak_ptr<_Yp, _Lp>& __r) 23376: : _M_refcount(__r._M_refcount) 23376: { 23376: 23376: 23376: _M_ptr = __r._M_ptr; 23376: } 23376: 23376: 23376: template> 23376: __shared_ptr(unique_ptr<_Yp, _Del>&& __r) 23376: : _M_ptr(__r.get()), _M_refcount() 23376: { 23376: auto __raw = __to_address(__r.get()); 23376: _M_refcount = __shared_count<_Lp>(std::move(__r)); 23376: _M_enable_shared_from_this_with(__raw); 23376: } 23376: 23376: 23376: protected: 23376: 23376: template>, is_array<_Tp1>, 23376: is_convertible::pointer, _Tp*> 23376: >::value, bool>::type = true> 23376: __shared_ptr(unique_ptr<_Tp1, _Del>&& __r, __sp_array_delete) 23376: : _M_ptr(__r.get()), _M_refcount() 23376: { 23376: auto __raw = __to_address(__r.get()); 23376: _M_refcount = __shared_count<_Lp>(std::move(__r)); 23376: _M_enable_shared_from_this_with(__raw); 23376: } 23376: public: 23376: 23376: 23376: 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: 23376: template> 23376: __shared_ptr(auto_ptr<_Yp>&& __r); 23376: #pragma GCC diagnostic pop 23376: 23376: 23376: constexpr __shared_ptr(nullptr_t) noexcept : __shared_ptr() { } 23376: 23376: template 23376: _Assignable<_Yp> 23376: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 23376: { 23376: _M_ptr = __r._M_ptr; 23376: _M_refcount = __r._M_refcount; 23376: return *this; 23376: } 23376: 23376: 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: template 23376: _Assignable<_Yp> 23376: operator=(auto_ptr<_Yp>&& __r) 23376: { 23376: __shared_ptr(std::move(__r)).swap(*this); 23376: return *this; 23376: } 23376: #pragma GCC diagnostic pop 23376: 23376: 23376: __shared_ptr& 23376: operator=(__shared_ptr&& __r) noexcept 23376: { 23376: __shared_ptr(std::move(__r)).swap(*this); 23376: return *this; 23376: } 23376: 23376: template 23376: _Assignable<_Yp> 23376: operator=(__shared_ptr<_Yp, _Lp>&& __r) noexcept 23376: { 23376: __shared_ptr(std::move(__r)).swap(*this); 23376: return *this; 23376: } 23376: 23376: template 23376: _UniqAssignable<_Yp, _Del> 23376: operator=(unique_ptr<_Yp, _Del>&& __r) 23376: { 23376: __shared_ptr(std::move(__r)).swap(*this); 23376: return *this; 23376: } 23376: 23376: void 23376: reset() noexcept 23376: { __shared_ptr().swap(*this); } 23376: 23376: template 23376: _SafeConv<_Yp> 23376: reset(_Yp* __p) 23376: { 23376: 23376: ; 23376: __shared_ptr(__p).swap(*this); 23376: } 23376: 23376: template 23376: _SafeConv<_Yp> 23376: reset(_Yp* __p, _Deleter __d) 23376: { __shared_ptr(__p, std::move(__d)).swap(*this); } 23376: 23376: template 23376: _SafeConv<_Yp> 23376: reset(_Yp* __p, _Deleter __d, _Alloc __a) 23376: { __shared_ptr(__p, std::move(__d), std::move(__a)).swap(*this); } 23376: 23376: element_type* 23376: get() const noexcept 23376: { return _M_ptr; } 23376: 23376: explicit operator bool() const 23376: { return _M_ptr == 0 ? false : true; } 23376: 23376: bool 23376: unique() const noexcept 23376: { return _M_refcount._M_unique(); } 23376: 23376: long 23376: use_count() const noexcept 23376: { return _M_refcount._M_get_use_count(); } 23376: 23376: void 23376: swap(__shared_ptr<_Tp, _Lp>& __other) noexcept 23376: { 23376: std::swap(_M_ptr, __other._M_ptr); 23376: _M_refcount._M_swap(__other._M_refcount); 23376: } 23376: 23376: template 23376: bool 23376: owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const noexcept 23376: { return _M_refcount._M_less(__rhs._M_refcount); } 23376: 23376: template 23376: bool 23376: owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const noexcept 23376: { return _M_refcount._M_less(__rhs._M_refcount); } 23376: 23376: protected: 23376: 23376: template 23376: __shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args) 23376: : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...) 23376: { _M_enable_shared_from_this_with(_M_ptr); } 23376: 23376: template 23376: friend __shared_ptr<_Tp1, _Lp1> 23376: __allocate_shared(const _Alloc& __a, _Args&&... __args); 23376: 23376: 23376: 23376: __shared_ptr(const __weak_ptr<_Tp, _Lp>& __r, std::nothrow_t) 23376: : _M_refcount(__r._M_refcount, std::nothrow) 23376: { 23376: _M_ptr = _M_refcount._M_get_use_count() ? __r._M_ptr : nullptr; 23376: } 23376: 23376: friend class __weak_ptr<_Tp, _Lp>; 23376: 23376: private: 23376: 23376: template 23376: using __esft_base_t = decltype(__enable_shared_from_this_base( 23376: std::declval&>(), 23376: std::declval<_Yp*>())); 23376: 23376: 23376: template 23376: struct __has_esft_base 23376: : false_type { }; 23376: 23376: template 23376: struct __has_esft_base<_Yp, __void_t<__esft_base_t<_Yp>>> 23376: : __not_> { }; 23376: 23376: template::type> 23376: typename enable_if<__has_esft_base<_Yp2>::value>::type 23376: _M_enable_shared_from_this_with(_Yp* __p) noexcept 23376: { 23376: if (auto __base = __enable_shared_from_this_base(_M_refcount, __p)) 23376: __base->_M_weak_assign(const_cast<_Yp2*>(__p), _M_refcount); 23376: } 23376: 23376: template::type> 23376: typename enable_if::value>::type 23376: _M_enable_shared_from_this_with(_Yp*) noexcept 23376: { } 23376: 23376: void* 23376: _M_get_deleter(const std::type_info& __ti) const noexcept 23376: { return _M_refcount._M_get_deleter(__ti); } 23376: 23376: template friend class __shared_ptr; 23376: template friend class __weak_ptr; 23376: 23376: template 23376: friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&) noexcept; 23376: 23376: template 23376: friend _Del* get_deleter(const shared_ptr<_Tp1>&) noexcept; 23376: 23376: element_type* _M_ptr; 23376: __shared_count<_Lp> _M_refcount; 23376: }; 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const __shared_ptr<_Tp1, _Lp>& __a, 23376: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 23376: { return __a.get() == __b.get(); } 23376: 23376: template 23376: inline bool 23376: operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 23376: { return !__a; } 23376: 23376: template 23376: inline bool 23376: operator==(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 23376: { return !__a; } 23376: 23376: template 23376: inline bool 23376: operator!=(const __shared_ptr<_Tp1, _Lp>& __a, 23376: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 23376: { return __a.get() != __b.get(); } 23376: 23376: template 23376: inline bool 23376: operator!=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 23376: { return (bool)__a; } 23376: 23376: template 23376: inline bool 23376: operator!=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 23376: { return (bool)__a; } 23376: 23376: template 23376: inline bool 23376: operator<(const __shared_ptr<_Tp, _Lp>& __a, 23376: const __shared_ptr<_Up, _Lp>& __b) noexcept 23376: { 23376: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 23376: using _Up_elt = typename __shared_ptr<_Up, _Lp>::element_type; 23376: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 23376: return less<_Vp>()(__a.get(), __b.get()); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 23376: { 23376: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 23376: return less<_Tp_elt*>()(__a.get(), nullptr); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 23376: { 23376: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 23376: return less<_Tp_elt*>()(nullptr, __a.get()); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<=(const __shared_ptr<_Tp1, _Lp>& __a, 23376: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 23376: { return !(__b < __a); } 23376: 23376: template 23376: inline bool 23376: operator<=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 23376: { return !(nullptr < __a); } 23376: 23376: template 23376: inline bool 23376: operator<=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 23376: { return !(__a < nullptr); } 23376: 23376: template 23376: inline bool 23376: operator>(const __shared_ptr<_Tp1, _Lp>& __a, 23376: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 23376: { return (__b < __a); } 23376: 23376: template 23376: inline bool 23376: operator>(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 23376: { return nullptr < __a; } 23376: 23376: template 23376: inline bool 23376: operator>(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 23376: { return __a < nullptr; } 23376: 23376: template 23376: inline bool 23376: operator>=(const __shared_ptr<_Tp1, _Lp>& __a, 23376: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 23376: { return !(__a < __b); } 23376: 23376: template 23376: inline bool 23376: operator>=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 23376: { return !(__a < nullptr); } 23376: 23376: template 23376: inline bool 23376: operator>=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 23376: { return !(nullptr < __a); } 23376: 23376: template 23376: struct _Sp_less : public binary_function<_Sp, _Sp, bool> 23376: { 23376: bool 23376: operator()(const _Sp& __lhs, const _Sp& __rhs) const noexcept 23376: { 23376: typedef typename _Sp::element_type element_type; 23376: return std::less()(__lhs.get(), __rhs.get()); 23376: } 23376: }; 23376: 23376: template 23376: struct less<__shared_ptr<_Tp, _Lp>> 23376: : public _Sp_less<__shared_ptr<_Tp, _Lp>> 23376: { }; 23376: 23376: 23376: template 23376: inline void 23376: swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) noexcept 23376: { __a.swap(__b); } 23376: # 1544 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 23376: template 23376: inline __shared_ptr<_Tp, _Lp> 23376: static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 23376: { 23376: using _Sp = __shared_ptr<_Tp, _Lp>; 23376: return _Sp(__r, static_cast(__r.get())); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline __shared_ptr<_Tp, _Lp> 23376: const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 23376: { 23376: using _Sp = __shared_ptr<_Tp, _Lp>; 23376: return _Sp(__r, const_cast(__r.get())); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline __shared_ptr<_Tp, _Lp> 23376: dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 23376: { 23376: using _Sp = __shared_ptr<_Tp, _Lp>; 23376: if (auto* __p = dynamic_cast(__r.get())) 23376: return _Sp(__r, __p); 23376: return _Sp(); 23376: } 23376: # 1590 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 23376: template 23376: class __weak_ptr 23376: { 23376: template 23376: using _Compatible = typename 23376: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 23376: 23376: 23376: template 23376: using _Assignable = _Compatible<_Yp, __weak_ptr&>; 23376: 23376: public: 23376: using element_type = typename remove_extent<_Tp>::type; 23376: 23376: constexpr __weak_ptr() noexcept 23376: : _M_ptr(nullptr), _M_refcount() 23376: { } 23376: 23376: __weak_ptr(const __weak_ptr&) noexcept = default; 23376: 23376: ~__weak_ptr() = default; 23376: # 1626 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 23376: template> 23376: __weak_ptr(const __weak_ptr<_Yp, _Lp>& __r) noexcept 23376: : _M_refcount(__r._M_refcount) 23376: { _M_ptr = __r.lock().get(); } 23376: 23376: template> 23376: __weak_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 23376: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 23376: { } 23376: 23376: __weak_ptr(__weak_ptr&& __r) noexcept 23376: : _M_ptr(__r._M_ptr), _M_refcount(std::move(__r._M_refcount)) 23376: { __r._M_ptr = nullptr; } 23376: 23376: template> 23376: __weak_ptr(__weak_ptr<_Yp, _Lp>&& __r) noexcept 23376: : _M_ptr(__r.lock().get()), _M_refcount(std::move(__r._M_refcount)) 23376: { __r._M_ptr = nullptr; } 23376: 23376: __weak_ptr& 23376: operator=(const __weak_ptr& __r) noexcept = default; 23376: 23376: template 23376: _Assignable<_Yp> 23376: operator=(const __weak_ptr<_Yp, _Lp>& __r) noexcept 23376: { 23376: _M_ptr = __r.lock().get(); 23376: _M_refcount = __r._M_refcount; 23376: return *this; 23376: } 23376: 23376: template 23376: _Assignable<_Yp> 23376: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 23376: { 23376: _M_ptr = __r._M_ptr; 23376: _M_refcount = __r._M_refcount; 23376: return *this; 23376: } 23376: 23376: __weak_ptr& 23376: operator=(__weak_ptr&& __r) noexcept 23376: { 23376: _M_ptr = __r._M_ptr; 23376: _M_refcount = std::move(__r._M_refcount); 23376: __r._M_ptr = nullptr; 23376: return *this; 23376: } 23376: 23376: template 23376: _Assignable<_Yp> 23376: operator=(__weak_ptr<_Yp, _Lp>&& __r) noexcept 23376: { 23376: _M_ptr = __r.lock().get(); 23376: _M_refcount = std::move(__r._M_refcount); 23376: __r._M_ptr = nullptr; 23376: return *this; 23376: } 23376: 23376: __shared_ptr<_Tp, _Lp> 23376: lock() const noexcept 23376: { return __shared_ptr(*this, std::nothrow); } 23376: 23376: long 23376: use_count() const noexcept 23376: { return _M_refcount._M_get_use_count(); } 23376: 23376: bool 23376: expired() const noexcept 23376: { return _M_refcount._M_get_use_count() == 0; } 23376: 23376: template 23376: bool 23376: owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const noexcept 23376: { return _M_refcount._M_less(__rhs._M_refcount); } 23376: 23376: template 23376: bool 23376: owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const noexcept 23376: { return _M_refcount._M_less(__rhs._M_refcount); } 23376: 23376: void 23376: reset() noexcept 23376: { __weak_ptr().swap(*this); } 23376: 23376: void 23376: swap(__weak_ptr& __s) noexcept 23376: { 23376: std::swap(_M_ptr, __s._M_ptr); 23376: _M_refcount._M_swap(__s._M_refcount); 23376: } 23376: 23376: private: 23376: 23376: void 23376: _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) noexcept 23376: { 23376: if (use_count() == 0) 23376: { 23376: _M_ptr = __ptr; 23376: _M_refcount = __refcount; 23376: } 23376: } 23376: 23376: template friend class __shared_ptr; 23376: template friend class __weak_ptr; 23376: friend class __enable_shared_from_this<_Tp, _Lp>; 23376: friend class enable_shared_from_this<_Tp>; 23376: 23376: element_type* _M_ptr; 23376: __weak_count<_Lp> _M_refcount; 23376: }; 23376: 23376: 23376: template 23376: inline void 23376: swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) noexcept 23376: { __a.swap(__b); } 23376: 23376: template 23376: struct _Sp_owner_less : public binary_function<_Tp, _Tp, bool> 23376: { 23376: bool 23376: operator()(const _Tp& __lhs, const _Tp& __rhs) const noexcept 23376: { return __lhs.owner_before(__rhs); } 23376: 23376: bool 23376: operator()(const _Tp& __lhs, const _Tp1& __rhs) const noexcept 23376: { return __lhs.owner_before(__rhs); } 23376: 23376: bool 23376: operator()(const _Tp1& __lhs, const _Tp& __rhs) const noexcept 23376: { return __lhs.owner_before(__rhs); } 23376: }; 23376: 23376: template<> 23376: struct _Sp_owner_less 23376: { 23376: template 23376: auto 23376: operator()(const _Tp& __lhs, const _Up& __rhs) const noexcept 23376: -> decltype(__lhs.owner_before(__rhs)) 23376: { return __lhs.owner_before(__rhs); } 23376: 23376: using is_transparent = void; 23376: }; 23376: 23376: template 23376: struct owner_less<__shared_ptr<_Tp, _Lp>> 23376: : public _Sp_owner_less<__shared_ptr<_Tp, _Lp>, __weak_ptr<_Tp, _Lp>> 23376: { }; 23376: 23376: template 23376: struct owner_less<__weak_ptr<_Tp, _Lp>> 23376: : public _Sp_owner_less<__weak_ptr<_Tp, _Lp>, __shared_ptr<_Tp, _Lp>> 23376: { }; 23376: 23376: 23376: template 23376: class __enable_shared_from_this 23376: { 23376: protected: 23376: constexpr __enable_shared_from_this() noexcept { } 23376: 23376: __enable_shared_from_this(const __enable_shared_from_this&) noexcept { } 23376: 23376: __enable_shared_from_this& 23376: operator=(const __enable_shared_from_this&) noexcept 23376: { return *this; } 23376: 23376: ~__enable_shared_from_this() { } 23376: 23376: public: 23376: __shared_ptr<_Tp, _Lp> 23376: shared_from_this() 23376: { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); } 23376: 23376: __shared_ptr 23376: shared_from_this() const 23376: { return __shared_ptr(this->_M_weak_this); } 23376: 23376: 23376: __weak_ptr<_Tp, _Lp> 23376: weak_from_this() noexcept 23376: { return this->_M_weak_this; } 23376: 23376: __weak_ptr 23376: weak_from_this() const noexcept 23376: { return this->_M_weak_this; } 23376: 23376: 23376: private: 23376: template 23376: void 23376: _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const noexcept 23376: { _M_weak_this._M_assign(__p, __n); } 23376: 23376: friend const __enable_shared_from_this* 23376: __enable_shared_from_this_base(const __shared_count<_Lp>&, 23376: const __enable_shared_from_this* __p) 23376: { return __p; } 23376: 23376: template 23376: friend class __shared_ptr; 23376: 23376: mutable __weak_ptr<_Tp, _Lp> _M_weak_this; 23376: }; 23376: 23376: template 23376: inline __shared_ptr<_Tp, _Lp> 23376: __allocate_shared(const _Alloc& __a, _Args&&... __args) 23376: { 23376: return __shared_ptr<_Tp, _Lp>(_Sp_alloc_shared_tag<_Alloc>{__a}, 23376: std::forward<_Args>(__args)...); 23376: } 23376: 23376: template 23376: inline __shared_ptr<_Tp, _Lp> 23376: __make_shared(_Args&&... __args) 23376: { 23376: typedef typename std::remove_const<_Tp>::type _Tp_nc; 23376: return std::__allocate_shared<_Tp, _Lp>(std::allocator<_Tp_nc>(), 23376: std::forward<_Args>(__args)...); 23376: } 23376: 23376: 23376: template 23376: struct hash<__shared_ptr<_Tp, _Lp>> 23376: : public __hash_base> 23376: { 23376: size_t 23376: operator()(const __shared_ptr<_Tp, _Lp>& __s) const noexcept 23376: { 23376: return hash::element_type*>()( 23376: __s.get()); 23376: } 23376: }; 23376: 23376: 23376: } 23376: # 53 "/usr/include/c++/8/bits/shared_ptr.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline std::basic_ostream<_Ch, _Tr>& 23376: operator<<(std::basic_ostream<_Ch, _Tr>& __os, 23376: const __shared_ptr<_Tp, _Lp>& __p) 23376: { 23376: __os << __p.get(); 23376: return __os; 23376: } 23376: 23376: template 23376: inline _Del* 23376: get_deleter(const __shared_ptr<_Tp, _Lp>& __p) noexcept 23376: { 23376: 23376: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: template 23376: inline _Del* 23376: get_deleter(const shared_ptr<_Tp>& __p) noexcept 23376: { 23376: 23376: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: class shared_ptr : public __shared_ptr<_Tp> 23376: { 23376: template 23376: using _Constructible = typename enable_if< 23376: is_constructible<__shared_ptr<_Tp>, _Args...>::value 23376: >::type; 23376: 23376: template 23376: using _Assignable = typename enable_if< 23376: is_assignable<__shared_ptr<_Tp>&, _Arg>::value, shared_ptr& 23376: >::type; 23376: 23376: public: 23376: 23376: using element_type = typename __shared_ptr<_Tp>::element_type; 23376: # 127 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: constexpr shared_ptr() noexcept : __shared_ptr<_Tp>() { } 23376: 23376: shared_ptr(const shared_ptr&) noexcept = default; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template> 23376: explicit 23376: shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { } 23376: # 154 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template> 23376: shared_ptr(_Yp* __p, _Deleter __d) 23376: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 23376: # 172 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template 23376: shared_ptr(nullptr_t __p, _Deleter __d) 23376: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 23376: # 191 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template> 23376: shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 23376: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 23376: # 211 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template 23376: shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 23376: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 23376: # 233 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template 23376: shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) noexcept 23376: : __shared_ptr<_Tp>(__r, __p) { } 23376: # 244 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template&>> 23376: shared_ptr(const shared_ptr<_Yp>& __r) noexcept 23376: : __shared_ptr<_Tp>(__r) { } 23376: 23376: 23376: 23376: 23376: 23376: 23376: shared_ptr(shared_ptr&& __r) noexcept 23376: : __shared_ptr<_Tp>(std::move(__r)) { } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template>> 23376: shared_ptr(shared_ptr<_Yp>&& __r) noexcept 23376: : __shared_ptr<_Tp>(std::move(__r)) { } 23376: # 274 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template&>> 23376: explicit shared_ptr(const weak_ptr<_Yp>& __r) 23376: : __shared_ptr<_Tp>(__r) { } 23376: 23376: 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: template>> 23376: shared_ptr(auto_ptr<_Yp>&& __r); 23376: #pragma GCC diagnostic pop 23376: 23376: 23376: 23376: 23376: template>> 23376: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 23376: : __shared_ptr<_Tp>(std::move(__r)) { } 23376: 23376: 23376: 23376: 23376: 23376: template, __sp_array_delete>* = 0> 23376: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 23376: : __shared_ptr<_Tp>(std::move(__r), __sp_array_delete()) { } 23376: 23376: 23376: 23376: 23376: 23376: 23376: constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { } 23376: 23376: shared_ptr& operator=(const shared_ptr&) noexcept = default; 23376: 23376: template 23376: _Assignable&> 23376: operator=(const shared_ptr<_Yp>& __r) noexcept 23376: { 23376: this->__shared_ptr<_Tp>::operator=(__r); 23376: return *this; 23376: } 23376: 23376: 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: template 23376: _Assignable> 23376: operator=(auto_ptr<_Yp>&& __r) 23376: { 23376: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 23376: return *this; 23376: } 23376: #pragma GCC diagnostic pop 23376: 23376: 23376: shared_ptr& 23376: operator=(shared_ptr&& __r) noexcept 23376: { 23376: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 23376: return *this; 23376: } 23376: 23376: template 23376: _Assignable> 23376: operator=(shared_ptr<_Yp>&& __r) noexcept 23376: { 23376: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 23376: return *this; 23376: } 23376: 23376: template 23376: _Assignable> 23376: operator=(unique_ptr<_Yp, _Del>&& __r) 23376: { 23376: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 23376: return *this; 23376: } 23376: 23376: private: 23376: 23376: template 23376: shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args) 23376: : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...) 23376: { } 23376: 23376: template 23376: friend shared_ptr<_Yp> 23376: allocate_shared(const _Alloc& __a, _Args&&... __args); 23376: 23376: 23376: shared_ptr(const weak_ptr<_Tp>& __r, std::nothrow_t) 23376: : __shared_ptr<_Tp>(__r, std::nothrow) { } 23376: 23376: friend class weak_ptr<_Tp>; 23376: }; 23376: # 381 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template 23376: inline bool 23376: operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 23376: { return __a.get() == __b.get(); } 23376: 23376: template 23376: inline bool 23376: operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 23376: { return !__a; } 23376: 23376: template 23376: inline bool 23376: operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 23376: { return !__a; } 23376: 23376: template 23376: inline bool 23376: operator!=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 23376: { return __a.get() != __b.get(); } 23376: 23376: template 23376: inline bool 23376: operator!=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 23376: { return (bool)__a; } 23376: 23376: template 23376: inline bool 23376: operator!=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 23376: { return (bool)__a; } 23376: 23376: template 23376: inline bool 23376: operator<(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 23376: { 23376: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 23376: using _Up_elt = typename shared_ptr<_Up>::element_type; 23376: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 23376: return less<_Vp>()(__a.get(), __b.get()); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 23376: { 23376: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 23376: return less<_Tp_elt*>()(__a.get(), nullptr); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 23376: { 23376: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 23376: return less<_Tp_elt*>()(nullptr, __a.get()); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 23376: { return !(__b < __a); } 23376: 23376: template 23376: inline bool 23376: operator<=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 23376: { return !(nullptr < __a); } 23376: 23376: template 23376: inline bool 23376: operator<=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 23376: { return !(__a < nullptr); } 23376: 23376: template 23376: inline bool 23376: operator>(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 23376: { return (__b < __a); } 23376: 23376: template 23376: inline bool 23376: operator>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 23376: { return nullptr < __a; } 23376: 23376: template 23376: inline bool 23376: operator>(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 23376: { return __a < nullptr; } 23376: 23376: template 23376: inline bool 23376: operator>=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 23376: { return !(__a < __b); } 23376: 23376: template 23376: inline bool 23376: operator>=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 23376: { return !(__a < nullptr); } 23376: 23376: template 23376: inline bool 23376: operator>=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 23376: { return !(nullptr < __a); } 23376: 23376: template 23376: struct less> : public _Sp_less> 23376: { }; 23376: 23376: 23376: template 23376: inline void 23376: swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) noexcept 23376: { __a.swap(__b); } 23376: 23376: 23376: template 23376: inline shared_ptr<_Tp> 23376: static_pointer_cast(const shared_ptr<_Up>& __r) noexcept 23376: { 23376: using _Sp = shared_ptr<_Tp>; 23376: return _Sp(__r, static_cast(__r.get())); 23376: } 23376: 23376: template 23376: inline shared_ptr<_Tp> 23376: const_pointer_cast(const shared_ptr<_Up>& __r) noexcept 23376: { 23376: using _Sp = shared_ptr<_Tp>; 23376: return _Sp(__r, const_cast(__r.get())); 23376: } 23376: 23376: template 23376: inline shared_ptr<_Tp> 23376: dynamic_pointer_cast(const shared_ptr<_Up>& __r) noexcept 23376: { 23376: using _Sp = shared_ptr<_Tp>; 23376: if (auto* __p = dynamic_cast(__r.get())) 23376: return _Sp(__r, __p); 23376: return _Sp(); 23376: } 23376: # 534 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template 23376: class weak_ptr : public __weak_ptr<_Tp> 23376: { 23376: template 23376: using _Constructible = typename enable_if< 23376: is_constructible<__weak_ptr<_Tp>, _Arg>::value 23376: >::type; 23376: 23376: template 23376: using _Assignable = typename enable_if< 23376: is_assignable<__weak_ptr<_Tp>&, _Arg>::value, weak_ptr& 23376: >::type; 23376: 23376: public: 23376: constexpr weak_ptr() noexcept = default; 23376: 23376: template&>> 23376: weak_ptr(const shared_ptr<_Yp>& __r) noexcept 23376: : __weak_ptr<_Tp>(__r) { } 23376: 23376: weak_ptr(const weak_ptr&) noexcept = default; 23376: 23376: template&>> 23376: weak_ptr(const weak_ptr<_Yp>& __r) noexcept 23376: : __weak_ptr<_Tp>(__r) { } 23376: 23376: weak_ptr(weak_ptr&&) noexcept = default; 23376: 23376: template>> 23376: weak_ptr(weak_ptr<_Yp>&& __r) noexcept 23376: : __weak_ptr<_Tp>(std::move(__r)) { } 23376: 23376: weak_ptr& 23376: operator=(const weak_ptr& __r) noexcept = default; 23376: 23376: template 23376: _Assignable&> 23376: operator=(const weak_ptr<_Yp>& __r) noexcept 23376: { 23376: this->__weak_ptr<_Tp>::operator=(__r); 23376: return *this; 23376: } 23376: 23376: template 23376: _Assignable&> 23376: operator=(const shared_ptr<_Yp>& __r) noexcept 23376: { 23376: this->__weak_ptr<_Tp>::operator=(__r); 23376: return *this; 23376: } 23376: 23376: weak_ptr& 23376: operator=(weak_ptr&& __r) noexcept = default; 23376: 23376: template 23376: _Assignable> 23376: operator=(weak_ptr<_Yp>&& __r) noexcept 23376: { 23376: this->__weak_ptr<_Tp>::operator=(std::move(__r)); 23376: return *this; 23376: } 23376: 23376: shared_ptr<_Tp> 23376: lock() const noexcept 23376: { return shared_ptr<_Tp>(*this, std::nothrow); } 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) noexcept 23376: { __a.swap(__b); } 23376: 23376: 23376: 23376: template 23376: struct owner_less; 23376: 23376: 23376: template<> 23376: struct owner_less : _Sp_owner_less 23376: { }; 23376: 23376: 23376: template 23376: struct owner_less> 23376: : public _Sp_owner_less, weak_ptr<_Tp>> 23376: { }; 23376: 23376: 23376: template 23376: struct owner_less> 23376: : public _Sp_owner_less, shared_ptr<_Tp>> 23376: { }; 23376: 23376: 23376: 23376: 23376: template 23376: class enable_shared_from_this 23376: { 23376: protected: 23376: constexpr enable_shared_from_this() noexcept { } 23376: 23376: enable_shared_from_this(const enable_shared_from_this&) noexcept { } 23376: 23376: enable_shared_from_this& 23376: operator=(const enable_shared_from_this&) noexcept 23376: { return *this; } 23376: 23376: ~enable_shared_from_this() { } 23376: 23376: public: 23376: shared_ptr<_Tp> 23376: shared_from_this() 23376: { return shared_ptr<_Tp>(this->_M_weak_this); } 23376: 23376: shared_ptr 23376: shared_from_this() const 23376: { return shared_ptr(this->_M_weak_this); } 23376: 23376: 23376: 23376: weak_ptr<_Tp> 23376: weak_from_this() noexcept 23376: { return this->_M_weak_this; } 23376: 23376: weak_ptr 23376: weak_from_this() const noexcept 23376: { return this->_M_weak_this; } 23376: 23376: 23376: private: 23376: template 23376: void 23376: _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const noexcept 23376: { _M_weak_this._M_assign(__p, __n); } 23376: 23376: 23376: friend const enable_shared_from_this* 23376: __enable_shared_from_this_base(const __shared_count<>&, 23376: const enable_shared_from_this* __p) 23376: { return __p; } 23376: 23376: template 23376: friend class __shared_ptr; 23376: 23376: mutable weak_ptr<_Tp> _M_weak_this; 23376: }; 23376: # 701 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template 23376: inline shared_ptr<_Tp> 23376: allocate_shared(const _Alloc& __a, _Args&&... __args) 23376: { 23376: return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a}, 23376: std::forward<_Args>(__args)...); 23376: } 23376: # 716 "/usr/include/c++/8/bits/shared_ptr.h" 3 23376: template 23376: inline shared_ptr<_Tp> 23376: make_shared(_Args&&... __args) 23376: { 23376: typedef typename std::remove_cv<_Tp>::type _Tp_nc; 23376: return std::allocate_shared<_Tp>(std::allocator<_Tp_nc>(), 23376: std::forward<_Args>(__args)...); 23376: } 23376: 23376: 23376: template 23376: struct hash> 23376: : public __hash_base> 23376: { 23376: size_t 23376: operator()(const shared_ptr<_Tp>& __s) const noexcept 23376: { 23376: return std::hash::element_type*>()(__s.get()); 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: } 23376: # 82 "/usr/include/c++/8/memory" 2 3 23376: # 1 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 23376: # 1 "/usr/include/c++/8/bits/atomic_base.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/atomic_base.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/atomic_base.h" 3 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 23376: # 38 "/usr/include/c++/8/bits/atomic_base.h" 2 3 23376: 23376: 23376: 23376: 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 55 "/usr/include/c++/8/bits/atomic_base.h" 3 23376: typedef enum memory_order 23376: { 23376: memory_order_relaxed, 23376: memory_order_consume, 23376: memory_order_acquire, 23376: memory_order_release, 23376: memory_order_acq_rel, 23376: memory_order_seq_cst 23376: } memory_order; 23376: 23376: enum __memory_order_modifier 23376: { 23376: __memory_order_mask = 0x0ffff, 23376: __memory_order_modifier_mask = 0xffff0000, 23376: __memory_order_hle_acquire = 0x10000, 23376: __memory_order_hle_release = 0x20000 23376: }; 23376: 23376: constexpr memory_order 23376: operator|(memory_order __m, __memory_order_modifier __mod) 23376: { 23376: return memory_order(__m | int(__mod)); 23376: } 23376: 23376: constexpr memory_order 23376: operator&(memory_order __m, __memory_order_modifier __mod) 23376: { 23376: return memory_order(__m & int(__mod)); 23376: } 23376: 23376: 23376: constexpr memory_order 23376: __cmpexch_failure_order2(memory_order __m) noexcept 23376: { 23376: return __m == memory_order_acq_rel ? memory_order_acquire 23376: : __m == memory_order_release ? memory_order_relaxed : __m; 23376: } 23376: 23376: constexpr memory_order 23376: __cmpexch_failure_order(memory_order __m) noexcept 23376: { 23376: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 23376: | (__m & __memory_order_modifier_mask)); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) void 23376: atomic_thread_fence(memory_order __m) noexcept 23376: { __atomic_thread_fence(__m); } 23376: 23376: inline __attribute__((__always_inline__)) void 23376: atomic_signal_fence(memory_order __m) noexcept 23376: { __atomic_signal_fence(__m); } 23376: 23376: 23376: template 23376: inline _Tp 23376: kill_dependency(_Tp __y) noexcept 23376: { 23376: _Tp __ret(__y); 23376: return __ret; 23376: } 23376: 23376: 23376: 23376: template 23376: struct __atomic_base; 23376: 23376: 23376: 23376: 23376: template 23376: struct atomic; 23376: 23376: template 23376: struct atomic<_Tp*>; 23376: 23376: 23376: 23376: typedef bool __atomic_flag_data_type; 23376: # 148 "/usr/include/c++/8/bits/atomic_base.h" 3 23376: extern "C" { 23376: 23376: struct __atomic_flag_base 23376: { 23376: __atomic_flag_data_type _M_i; 23376: }; 23376: 23376: } 23376: 23376: 23376: 23376: 23376: struct atomic_flag : public __atomic_flag_base 23376: { 23376: atomic_flag() noexcept = default; 23376: ~atomic_flag() noexcept = default; 23376: atomic_flag(const atomic_flag&) = delete; 23376: atomic_flag& operator=(const atomic_flag&) = delete; 23376: atomic_flag& operator=(const atomic_flag&) volatile = delete; 23376: 23376: 23376: constexpr atomic_flag(bool __i) noexcept 23376: : __atomic_flag_base{ _S_init(__i) } 23376: { } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 23376: { 23376: return __atomic_test_and_set (&_M_i, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { 23376: return __atomic_test_and_set (&_M_i, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) void 23376: clear(memory_order __m = memory_order_seq_cst) noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: ; 23376: ; 23376: ; 23376: 23376: __atomic_clear (&_M_i, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) void 23376: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: ; 23376: ; 23376: ; 23376: 23376: __atomic_clear (&_M_i, __m); 23376: } 23376: 23376: private: 23376: static constexpr __atomic_flag_data_type 23376: _S_init(bool __i) 23376: { return __i ? 1 : 0; } 23376: }; 23376: # 237 "/usr/include/c++/8/bits/atomic_base.h" 3 23376: template 23376: struct __atomic_base 23376: { 23376: private: 23376: typedef _ITp __int_type; 23376: 23376: static constexpr int _S_alignment = 23376: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 23376: 23376: alignas(_S_alignment) __int_type _M_i; 23376: 23376: public: 23376: __atomic_base() noexcept = default; 23376: ~__atomic_base() noexcept = default; 23376: __atomic_base(const __atomic_base&) = delete; 23376: __atomic_base& operator=(const __atomic_base&) = delete; 23376: __atomic_base& operator=(const __atomic_base&) volatile = delete; 23376: 23376: 23376: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 23376: 23376: operator __int_type() const noexcept 23376: { return load(); } 23376: 23376: operator __int_type() const volatile noexcept 23376: { return load(); } 23376: 23376: __int_type 23376: operator=(__int_type __i) noexcept 23376: { 23376: store(__i); 23376: return __i; 23376: } 23376: 23376: __int_type 23376: operator=(__int_type __i) volatile noexcept 23376: { 23376: store(__i); 23376: return __i; 23376: } 23376: 23376: __int_type 23376: operator++(int) noexcept 23376: { return fetch_add(1); } 23376: 23376: __int_type 23376: operator++(int) volatile noexcept 23376: { return fetch_add(1); } 23376: 23376: __int_type 23376: operator--(int) noexcept 23376: { return fetch_sub(1); } 23376: 23376: __int_type 23376: operator--(int) volatile noexcept 23376: { return fetch_sub(1); } 23376: 23376: __int_type 23376: operator++() noexcept 23376: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator++() volatile noexcept 23376: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator--() noexcept 23376: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator--() volatile noexcept 23376: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator+=(__int_type __i) noexcept 23376: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator+=(__int_type __i) volatile noexcept 23376: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator-=(__int_type __i) noexcept 23376: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator-=(__int_type __i) volatile noexcept 23376: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator&=(__int_type __i) noexcept 23376: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator&=(__int_type __i) volatile noexcept 23376: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator|=(__int_type __i) noexcept 23376: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator|=(__int_type __i) volatile noexcept 23376: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator^=(__int_type __i) noexcept 23376: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: __int_type 23376: operator^=(__int_type __i) volatile noexcept 23376: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 23376: 23376: bool 23376: is_lock_free() const noexcept 23376: { 23376: 23376: return __atomic_is_lock_free(sizeof(_M_i), 23376: reinterpret_cast(-__alignof(_M_i))); 23376: } 23376: 23376: bool 23376: is_lock_free() const volatile noexcept 23376: { 23376: 23376: return __atomic_is_lock_free(sizeof(_M_i), 23376: reinterpret_cast(-__alignof(_M_i))); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) void 23376: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: ; 23376: ; 23376: ; 23376: 23376: __atomic_store_n(&_M_i, __i, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) void 23376: store(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: ; 23376: ; 23376: ; 23376: 23376: __atomic_store_n(&_M_i, __i, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: load(memory_order __m = memory_order_seq_cst) const noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: ; 23376: ; 23376: 23376: return __atomic_load_n(&_M_i, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: ; 23376: ; 23376: 23376: return __atomic_load_n(&_M_i, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: exchange(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { 23376: return __atomic_exchange_n(&_M_i, __i, __m); 23376: } 23376: 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: exchange(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { 23376: return __atomic_exchange_n(&_M_i, __i, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_weak(__int_type& __i1, __int_type __i2, 23376: memory_order __m1, memory_order __m2) noexcept 23376: { 23376: memory_order __b2 = __m2 & __memory_order_mask; 23376: memory_order __b1 = __m1 & __memory_order_mask; 23376: ; 23376: ; 23376: ; 23376: 23376: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_weak(__int_type& __i1, __int_type __i2, 23376: memory_order __m1, 23376: memory_order __m2) volatile noexcept 23376: { 23376: memory_order __b2 = __m2 & __memory_order_mask; 23376: memory_order __b1 = __m1 & __memory_order_mask; 23376: ; 23376: ; 23376: ; 23376: 23376: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_weak(__int_type& __i1, __int_type __i2, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { 23376: return compare_exchange_weak(__i1, __i2, __m, 23376: __cmpexch_failure_order(__m)); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_weak(__int_type& __i1, __int_type __i2, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { 23376: return compare_exchange_weak(__i1, __i2, __m, 23376: __cmpexch_failure_order(__m)); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_strong(__int_type& __i1, __int_type __i2, 23376: memory_order __m1, memory_order __m2) noexcept 23376: { 23376: memory_order __b2 = __m2 & __memory_order_mask; 23376: memory_order __b1 = __m1 & __memory_order_mask; 23376: ; 23376: ; 23376: ; 23376: 23376: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_strong(__int_type& __i1, __int_type __i2, 23376: memory_order __m1, 23376: memory_order __m2) volatile noexcept 23376: { 23376: memory_order __b2 = __m2 & __memory_order_mask; 23376: memory_order __b1 = __m1 & __memory_order_mask; 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_strong(__int_type& __i1, __int_type __i2, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { 23376: return compare_exchange_strong(__i1, __i2, __m, 23376: __cmpexch_failure_order(__m)); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_strong(__int_type& __i1, __int_type __i2, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { 23376: return compare_exchange_strong(__i1, __i2, __m, 23376: __cmpexch_failure_order(__m)); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_add(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { return __atomic_fetch_add(&_M_i, __i, __m); } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_add(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { return __atomic_fetch_add(&_M_i, __i, __m); } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_sub(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { return __atomic_fetch_sub(&_M_i, __i, __m); } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_sub(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { return __atomic_fetch_sub(&_M_i, __i, __m); } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_and(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { return __atomic_fetch_and(&_M_i, __i, __m); } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_and(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { return __atomic_fetch_and(&_M_i, __i, __m); } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_or(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { return __atomic_fetch_or(&_M_i, __i, __m); } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_or(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { return __atomic_fetch_or(&_M_i, __i, __m); } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_xor(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { return __atomic_fetch_xor(&_M_i, __i, __m); } 23376: 23376: inline __attribute__((__always_inline__)) __int_type 23376: fetch_xor(__int_type __i, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { return __atomic_fetch_xor(&_M_i, __i, __m); } 23376: }; 23376: 23376: 23376: 23376: template 23376: struct __atomic_base<_PTp*> 23376: { 23376: private: 23376: typedef _PTp* __pointer_type; 23376: 23376: __pointer_type _M_p; 23376: 23376: 23376: constexpr ptrdiff_t 23376: _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); } 23376: 23376: constexpr ptrdiff_t 23376: _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); } 23376: 23376: public: 23376: __atomic_base() noexcept = default; 23376: ~__atomic_base() noexcept = default; 23376: __atomic_base(const __atomic_base&) = delete; 23376: __atomic_base& operator=(const __atomic_base&) = delete; 23376: __atomic_base& operator=(const __atomic_base&) volatile = delete; 23376: 23376: 23376: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 23376: 23376: operator __pointer_type() const noexcept 23376: { return load(); } 23376: 23376: operator __pointer_type() const volatile noexcept 23376: { return load(); } 23376: 23376: __pointer_type 23376: operator=(__pointer_type __p) noexcept 23376: { 23376: store(__p); 23376: return __p; 23376: } 23376: 23376: __pointer_type 23376: operator=(__pointer_type __p) volatile noexcept 23376: { 23376: store(__p); 23376: return __p; 23376: } 23376: 23376: __pointer_type 23376: operator++(int) noexcept 23376: { return fetch_add(1); } 23376: 23376: __pointer_type 23376: operator++(int) volatile noexcept 23376: { return fetch_add(1); } 23376: 23376: __pointer_type 23376: operator--(int) noexcept 23376: { return fetch_sub(1); } 23376: 23376: __pointer_type 23376: operator--(int) volatile noexcept 23376: { return fetch_sub(1); } 23376: 23376: __pointer_type 23376: operator++() noexcept 23376: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 23376: memory_order_seq_cst); } 23376: 23376: __pointer_type 23376: operator++() volatile noexcept 23376: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 23376: memory_order_seq_cst); } 23376: 23376: __pointer_type 23376: operator--() noexcept 23376: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 23376: memory_order_seq_cst); } 23376: 23376: __pointer_type 23376: operator--() volatile noexcept 23376: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 23376: memory_order_seq_cst); } 23376: 23376: __pointer_type 23376: operator+=(ptrdiff_t __d) noexcept 23376: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 23376: memory_order_seq_cst); } 23376: 23376: __pointer_type 23376: operator+=(ptrdiff_t __d) volatile noexcept 23376: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 23376: memory_order_seq_cst); } 23376: 23376: __pointer_type 23376: operator-=(ptrdiff_t __d) noexcept 23376: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 23376: memory_order_seq_cst); } 23376: 23376: __pointer_type 23376: operator-=(ptrdiff_t __d) volatile noexcept 23376: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 23376: memory_order_seq_cst); } 23376: 23376: bool 23376: is_lock_free() const noexcept 23376: { 23376: 23376: return __atomic_is_lock_free(sizeof(_M_p), 23376: reinterpret_cast(-__alignof(_M_p))); 23376: } 23376: 23376: bool 23376: is_lock_free() const volatile noexcept 23376: { 23376: 23376: return __atomic_is_lock_free(sizeof(_M_p), 23376: reinterpret_cast(-__alignof(_M_p))); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) void 23376: store(__pointer_type __p, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: __atomic_store_n(&_M_p, __p, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) void 23376: store(__pointer_type __p, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: ; 23376: ; 23376: ; 23376: 23376: __atomic_store_n(&_M_p, __p, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) __pointer_type 23376: load(memory_order __m = memory_order_seq_cst) const noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: ; 23376: ; 23376: 23376: return __atomic_load_n(&_M_p, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) __pointer_type 23376: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 23376: { 23376: memory_order __b = __m & __memory_order_mask; 23376: ; 23376: ; 23376: 23376: return __atomic_load_n(&_M_p, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) __pointer_type 23376: exchange(__pointer_type __p, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { 23376: return __atomic_exchange_n(&_M_p, __p, __m); 23376: } 23376: 23376: 23376: inline __attribute__((__always_inline__)) __pointer_type 23376: exchange(__pointer_type __p, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { 23376: return __atomic_exchange_n(&_M_p, __p, __m); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 23376: memory_order __m1, 23376: memory_order __m2) noexcept 23376: { 23376: memory_order __b2 = __m2 & __memory_order_mask; 23376: memory_order __b1 = __m1 & __memory_order_mask; 23376: ; 23376: ; 23376: ; 23376: 23376: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) bool 23376: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 23376: memory_order __m1, 23376: memory_order __m2) volatile noexcept 23376: { 23376: memory_order __b2 = __m2 & __memory_order_mask; 23376: memory_order __b1 = __m1 & __memory_order_mask; 23376: 23376: ; 23376: ; 23376: ; 23376: 23376: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 23376: } 23376: 23376: inline __attribute__((__always_inline__)) __pointer_type 23376: fetch_add(ptrdiff_t __d, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 23376: 23376: inline __attribute__((__always_inline__)) __pointer_type 23376: fetch_add(ptrdiff_t __d, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 23376: 23376: inline __attribute__((__always_inline__)) __pointer_type 23376: fetch_sub(ptrdiff_t __d, 23376: memory_order __m = memory_order_seq_cst) noexcept 23376: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 23376: 23376: inline __attribute__((__always_inline__)) __pointer_type 23376: fetch_sub(ptrdiff_t __d, 23376: memory_order __m = memory_order_seq_cst) volatile noexcept 23376: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 23376: }; 23376: 23376: 23376: 23376: 23376: } 23376: # 34 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 2 3 23376: 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct _Sp_locker 23376: { 23376: _Sp_locker(const _Sp_locker&) = delete; 23376: _Sp_locker& operator=(const _Sp_locker&) = delete; 23376: 23376: 23376: explicit 23376: _Sp_locker(const void*) noexcept; 23376: _Sp_locker(const void*, const void*) noexcept; 23376: ~_Sp_locker(); 23376: 23376: private: 23376: unsigned char _M_key1; 23376: unsigned char _M_key2; 23376: 23376: 23376: 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: atomic_is_lock_free(const __shared_ptr<_Tp, _Lp>* __p) 23376: { 23376: 23376: return __gthread_active_p() == 0; 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: inline bool 23376: atomic_is_lock_free(const shared_ptr<_Tp>* __p) 23376: { return std::atomic_is_lock_free<_Tp, __default_lock_policy>(__p); } 23376: # 96 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 23376: template 23376: inline shared_ptr<_Tp> 23376: atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order) 23376: { 23376: _Sp_locker __lock{__p}; 23376: return *__p; 23376: } 23376: 23376: template 23376: inline shared_ptr<_Tp> 23376: atomic_load(const shared_ptr<_Tp>* __p) 23376: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 23376: 23376: template 23376: inline __shared_ptr<_Tp, _Lp> 23376: atomic_load_explicit(const __shared_ptr<_Tp, _Lp>* __p, memory_order) 23376: { 23376: _Sp_locker __lock{__p}; 23376: return *__p; 23376: } 23376: 23376: template 23376: inline __shared_ptr<_Tp, _Lp> 23376: atomic_load(const __shared_ptr<_Tp, _Lp>* __p) 23376: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 23376: # 132 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 23376: template 23376: inline void 23376: atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 23376: memory_order) 23376: { 23376: _Sp_locker __lock{__p}; 23376: __p->swap(__r); 23376: } 23376: 23376: template 23376: inline void 23376: atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 23376: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 23376: 23376: template 23376: inline void 23376: atomic_store_explicit(__shared_ptr<_Tp, _Lp>* __p, 23376: __shared_ptr<_Tp, _Lp> __r, 23376: memory_order) 23376: { 23376: _Sp_locker __lock{__p}; 23376: __p->swap(__r); 23376: } 23376: 23376: template 23376: inline void 23376: atomic_store(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 23376: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 23376: # 169 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 23376: template 23376: inline shared_ptr<_Tp> 23376: atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 23376: memory_order) 23376: { 23376: _Sp_locker __lock{__p}; 23376: __p->swap(__r); 23376: return __r; 23376: } 23376: 23376: template 23376: inline shared_ptr<_Tp> 23376: atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 23376: { 23376: return std::atomic_exchange_explicit(__p, std::move(__r), 23376: memory_order_seq_cst); 23376: } 23376: 23376: template 23376: inline __shared_ptr<_Tp, _Lp> 23376: atomic_exchange_explicit(__shared_ptr<_Tp, _Lp>* __p, 23376: __shared_ptr<_Tp, _Lp> __r, 23376: memory_order) 23376: { 23376: _Sp_locker __lock{__p}; 23376: __p->swap(__r); 23376: return __r; 23376: } 23376: 23376: template 23376: inline __shared_ptr<_Tp, _Lp> 23376: atomic_exchange(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 23376: { 23376: return std::atomic_exchange_explicit(__p, std::move(__r), 23376: memory_order_seq_cst); 23376: } 23376: # 218 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 23376: template 23376: bool 23376: atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, 23376: shared_ptr<_Tp>* __v, 23376: shared_ptr<_Tp> __w, 23376: memory_order, 23376: memory_order) 23376: { 23376: shared_ptr<_Tp> __x; 23376: _Sp_locker __lock{__p, __v}; 23376: owner_less> __less; 23376: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 23376: { 23376: __x = std::move(*__p); 23376: *__p = std::move(__w); 23376: return true; 23376: } 23376: __x = std::move(*__v); 23376: *__v = *__p; 23376: return false; 23376: } 23376: 23376: template 23376: inline bool 23376: atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 23376: shared_ptr<_Tp> __w) 23376: { 23376: return std::atomic_compare_exchange_strong_explicit(__p, __v, 23376: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 23376: } 23376: 23376: template 23376: inline bool 23376: atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, 23376: shared_ptr<_Tp>* __v, 23376: shared_ptr<_Tp> __w, 23376: memory_order __success, 23376: memory_order __failure) 23376: { 23376: return std::atomic_compare_exchange_strong_explicit(__p, __v, 23376: std::move(__w), __success, __failure); 23376: } 23376: 23376: template 23376: inline bool 23376: atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 23376: shared_ptr<_Tp> __w) 23376: { 23376: return std::atomic_compare_exchange_weak_explicit(__p, __v, 23376: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 23376: } 23376: 23376: template 23376: bool 23376: atomic_compare_exchange_strong_explicit(__shared_ptr<_Tp, _Lp>* __p, 23376: __shared_ptr<_Tp, _Lp>* __v, 23376: __shared_ptr<_Tp, _Lp> __w, 23376: memory_order, 23376: memory_order) 23376: { 23376: __shared_ptr<_Tp, _Lp> __x; 23376: _Sp_locker __lock{__p, __v}; 23376: owner_less<__shared_ptr<_Tp, _Lp>> __less; 23376: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 23376: { 23376: __x = std::move(*__p); 23376: *__p = std::move(__w); 23376: return true; 23376: } 23376: __x = std::move(*__v); 23376: *__v = *__p; 23376: return false; 23376: } 23376: 23376: template 23376: inline bool 23376: atomic_compare_exchange_strong(__shared_ptr<_Tp, _Lp>* __p, 23376: __shared_ptr<_Tp, _Lp>* __v, 23376: __shared_ptr<_Tp, _Lp> __w) 23376: { 23376: return std::atomic_compare_exchange_strong_explicit(__p, __v, 23376: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 23376: } 23376: 23376: template 23376: inline bool 23376: atomic_compare_exchange_weak_explicit(__shared_ptr<_Tp, _Lp>* __p, 23376: __shared_ptr<_Tp, _Lp>* __v, 23376: __shared_ptr<_Tp, _Lp> __w, 23376: memory_order __success, 23376: memory_order __failure) 23376: { 23376: return std::atomic_compare_exchange_strong_explicit(__p, __v, 23376: std::move(__w), __success, __failure); 23376: } 23376: 23376: template 23376: inline bool 23376: atomic_compare_exchange_weak(__shared_ptr<_Tp, _Lp>* __p, 23376: __shared_ptr<_Tp, _Lp>* __v, 23376: __shared_ptr<_Tp, _Lp> __w) 23376: { 23376: return std::atomic_compare_exchange_weak_explicit(__p, __v, 23376: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 83 "/usr/include/c++/8/memory" 2 3 23376: 23376: # 1 "/usr/include/c++/8/backward/auto_ptr.h" 1 3 23376: # 36 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 47 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: template 23376: struct auto_ptr_ref 23376: { 23376: _Tp1* _M_ptr; 23376: 23376: explicit 23376: auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } 23376: } __attribute__ ((__deprecated__)); 23376: 23376: #pragma GCC diagnostic push 23376: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 23376: # 88 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: template 23376: class auto_ptr 23376: { 23376: private: 23376: _Tp* _M_ptr; 23376: 23376: public: 23376: 23376: typedef _Tp element_type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } 23376: # 114 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } 23376: # 126 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: template 23376: auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } 23376: # 137 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: auto_ptr& 23376: operator=(auto_ptr& __a) throw() 23376: { 23376: reset(__a.release()); 23376: return *this; 23376: } 23376: # 154 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: template 23376: auto_ptr& 23376: operator=(auto_ptr<_Tp1>& __a) throw() 23376: { 23376: reset(__a.release()); 23376: return *this; 23376: } 23376: # 172 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: ~auto_ptr() { delete _M_ptr; } 23376: # 182 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: element_type& 23376: operator*() const throw() 23376: { 23376: ; 23376: return *_M_ptr; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: element_type* 23376: operator->() const throw() 23376: { 23376: ; 23376: return _M_ptr; 23376: } 23376: # 212 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: element_type* 23376: get() const throw() { return _M_ptr; } 23376: # 226 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: element_type* 23376: release() throw() 23376: { 23376: element_type* __tmp = _M_ptr; 23376: _M_ptr = 0; 23376: return __tmp; 23376: } 23376: # 241 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: void 23376: reset(element_type* __p = 0) throw() 23376: { 23376: if (__p != _M_ptr) 23376: { 23376: delete _M_ptr; 23376: _M_ptr = __p; 23376: } 23376: } 23376: # 266 "/usr/include/c++/8/backward/auto_ptr.h" 3 23376: auto_ptr(auto_ptr_ref __ref) throw() 23376: : _M_ptr(__ref._M_ptr) { } 23376: 23376: auto_ptr& 23376: operator=(auto_ptr_ref __ref) throw() 23376: { 23376: if (__ref._M_ptr != this->get()) 23376: { 23376: delete _M_ptr; 23376: _M_ptr = __ref._M_ptr; 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: operator auto_ptr_ref<_Tp1>() throw() 23376: { return auto_ptr_ref<_Tp1>(this->release()); } 23376: 23376: template 23376: operator auto_ptr<_Tp1>() throw() 23376: { return auto_ptr<_Tp1>(this->release()); } 23376: } __attribute__ ((__deprecated__)); 23376: 23376: 23376: 23376: template<> 23376: class auto_ptr 23376: { 23376: public: 23376: typedef void element_type; 23376: } __attribute__ ((__deprecated__)); 23376: 23376: 23376: template<_Lock_policy _Lp> 23376: template 23376: inline 23376: __shared_count<_Lp>::__shared_count(std::auto_ptr<_Tp>&& __r) 23376: : _M_pi(new _Sp_counted_ptr<_Tp*, _Lp>(__r.get())) 23376: { __r.release(); } 23376: 23376: template 23376: template 23376: inline 23376: __shared_ptr<_Tp, _Lp>::__shared_ptr(std::auto_ptr<_Tp1>&& __r) 23376: : _M_ptr(__r.get()), _M_refcount() 23376: { 23376: 23376: static_assert( sizeof(_Tp1) > 0, "incomplete type" ); 23376: _Tp1* __tmp = __r.get(); 23376: _M_refcount = __shared_count<_Lp>(std::move(__r)); 23376: _M_enable_shared_from_this_with(__tmp); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: shared_ptr<_Tp>::shared_ptr(std::auto_ptr<_Tp1>&& __r) 23376: : __shared_ptr<_Tp>(std::move(__r)) { } 23376: 23376: template 23376: template 23376: inline 23376: unique_ptr<_Tp, _Dp>::unique_ptr(auto_ptr<_Up>&& __u) noexcept 23376: : _M_t(__u.release(), deleter_type()) { } 23376: 23376: 23376: #pragma GCC diagnostic pop 23376: 23376: 23376: } 23376: # 85 "/usr/include/c++/8/memory" 2 3 23376: # 93 "/usr/include/c++/8/memory" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: # 113 "/usr/include/c++/8/memory" 3 23376: inline void* 23376: align(size_t __align, size_t __size, void*& __ptr, size_t& __space) noexcept 23376: { 23376: const auto __intptr = reinterpret_cast(__ptr); 23376: const auto __aligned = (__intptr - 1u + __align) & -__align; 23376: const auto __diff = __aligned - __intptr; 23376: if ((__size + __diff) > __space) 23376: return nullptr; 23376: else 23376: { 23376: __space -= __diff; 23376: return __ptr = reinterpret_cast(__aligned); 23376: } 23376: } 23376: 23376: 23376: 23376: enum class pointer_safety { relaxed, preferred, strict }; 23376: 23376: inline void 23376: declare_reachable(void*) { } 23376: 23376: template 23376: inline _Tp* 23376: undeclare_reachable(_Tp* __p) { return __p; } 23376: 23376: inline void 23376: declare_no_pointers(char*, size_t) { } 23376: 23376: inline void 23376: undeclare_no_pointers(char*, size_t) { } 23376: 23376: inline pointer_safety 23376: get_pointer_safety() noexcept { return pointer_safety::relaxed; } 23376: 23376: 23376: } 23376: # 34 "../../src/Dense_Row_defs.hh" 2 23376: # 42 "../../src/Dense_Row_defs.hh" 23376: 23376: # 42 "../../src/Dense_Row_defs.hh" 23376: class Parma_Polyhedra_Library::Dense_Row { 23376: public: 23376: class iterator; 23376: class const_iterator; 23376: 23376: 23376: Dense_Row(); 23376: 23376: explicit Dense_Row(const Sparse_Row& row); 23376: 23376: 23376: 23376: 23376: 23376: Dense_Row(dimension_type sz); 23376: # 69 "../../src/Dense_Row_defs.hh" 23376: Dense_Row(dimension_type sz, dimension_type capacity); 23376: 23376: 23376: Dense_Row(const Dense_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: Dense_Row(const Dense_Row& y, dimension_type capacity); 23376: 23376: 23376: 23376: 23376: 23376: Dense_Row(const Dense_Row& y, dimension_type sz, dimension_type capacity); 23376: 23376: 23376: 23376: 23376: 23376: Dense_Row(const Sparse_Row& y, dimension_type sz, dimension_type capacity); 23376: 23376: 23376: ~Dense_Row(); 23376: 23376: 23376: Dense_Row& operator=(const Dense_Row& y); 23376: 23376: 23376: Dense_Row& operator=(const Sparse_Row& y); 23376: 23376: 23376: void m_swap(Dense_Row& y); 23376: 23376: 23376: void resize(dimension_type sz); 23376: 23376: 23376: void resize(dimension_type sz, dimension_type capacity); 23376: 23376: 23376: void clear(); 23376: # 127 "../../src/Dense_Row_defs.hh" 23376: void add_zeroes_and_shift(dimension_type n, dimension_type i); 23376: # 136 "../../src/Dense_Row_defs.hh" 23376: void expand_within_capacity(dimension_type new_size); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void shrink(dimension_type new_size); 23376: 23376: 23376: static dimension_type max_size(); 23376: 23376: 23376: dimension_type size() const; 23376: 23376: 23376: 23376: 23376: Coefficient& operator[](dimension_type k); 23376: 23376: 23376: Coefficient_traits::const_reference operator[](dimension_type k) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void normalize(); 23376: 23376: 23376: 23376: void swap_coefficients(dimension_type i, dimension_type j); 23376: 23376: 23376: 23376: void swap_coefficients(iterator i, iterator j); 23376: 23376: iterator begin(); 23376: const_iterator begin() const; 23376: 23376: iterator end(); 23376: const_iterator end() const; 23376: 23376: 23376: 23376: void reset(dimension_type i); 23376: 23376: 23376: 23376: void reset(dimension_type first, dimension_type last); 23376: 23376: 23376: 23376: iterator reset(iterator itr); 23376: 23376: 23376: 23376: Coefficient_traits::const_reference get(dimension_type i) const; 23376: 23376: 23376: iterator find(dimension_type i); 23376: 23376: 23376: const_iterator find(dimension_type i) const; 23376: 23376: 23376: iterator find(iterator itr, dimension_type i); 23376: 23376: 23376: const_iterator find(const_iterator itr, dimension_type i) const; 23376: 23376: 23376: iterator lower_bound(dimension_type i); 23376: 23376: 23376: const_iterator lower_bound(dimension_type i) const; 23376: 23376: 23376: iterator lower_bound(iterator itr, dimension_type i); 23376: 23376: 23376: const_iterator lower_bound(const_iterator itr, dimension_type i) const; 23376: 23376: 23376: iterator insert(dimension_type i, Coefficient_traits::const_reference x); 23376: 23376: 23376: iterator insert(dimension_type i); 23376: 23376: 23376: iterator insert(iterator itr, dimension_type i, 23376: Coefficient_traits::const_reference x); 23376: 23376: 23376: iterator insert(iterator itr, dimension_type i); 23376: # 258 "../../src/Dense_Row_defs.hh" 23376: template 23376: void combine_needs_first(const Dense_Row& y, 23376: const Func1& f, const Func2& g); 23376: # 286 "../../src/Dense_Row_defs.hh" 23376: template 23376: void combine_needs_second(const Dense_Row& y, 23376: const Func1& g, const Func2& h); 23376: # 318 "../../src/Dense_Row_defs.hh" 23376: template 23376: void combine(const Dense_Row& y, 23376: const Func1& f, const Func2& g, const Func3& h); 23376: # 342 "../../src/Dense_Row_defs.hh" 23376: void linear_combine(const Dense_Row& y, 23376: Coefficient_traits::const_reference coeff1, 23376: Coefficient_traits::const_reference coeff2); 23376: # 354 "../../src/Dense_Row_defs.hh" 23376: void linear_combine(const Dense_Row& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes(dimension_type capacity) const; 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type external_memory_in_bytes(dimension_type capacity) const; 23376: 23376: 23376: bool OK() const; 23376: 23376: 23376: 23376: 23376: 23376: bool OK(dimension_type row_size) const; 23376: 23376: private: 23376: void init(const Sparse_Row& row); 23376: 23376: void destroy(); 23376: 23376: struct Impl { 23376: 23376: Impl(); 23376: 23376: ~Impl(); 23376: 23376: 23376: dimension_type size; 23376: 23376: 23376: dimension_type capacity; 23376: 23376: 23376: std::allocator coeff_allocator; 23376: 23376: 23376: 23376: Coefficient* vec; 23376: }; 23376: 23376: Impl impl; 23376: 23376: 23376: dimension_type capacity() const; 23376: }; 23376: 23376: class Parma_Polyhedra_Library::Dense_Row::iterator { 23376: public: 23376: 23376: typedef std::bidirectional_iterator_tag iterator_category; 23376: typedef Coefficient value_type; 23376: typedef std::ptrdiff_t difference_type; 23376: typedef value_type* pointer; 23376: typedef value_type& reference; 23376: 23376: iterator(); 23376: iterator(Dense_Row& r, dimension_type i); 23376: 23376: Coefficient& operator*(); 23376: Coefficient_traits::const_reference operator*() const; 23376: # 454 "../../src/Dense_Row_defs.hh" 23376: dimension_type index() const; 23376: 23376: iterator& operator++(); 23376: iterator operator++(int); 23376: 23376: iterator& operator--(); 23376: iterator operator--(int); 23376: 23376: bool operator==(const iterator& x) const; 23376: bool operator!=(const iterator& x) const; 23376: 23376: operator const_iterator() const; 23376: 23376: bool OK() const; 23376: 23376: private: 23376: Dense_Row* row; 23376: dimension_type idx; 23376: }; 23376: 23376: class Parma_Polyhedra_Library::Dense_Row::const_iterator { 23376: public: 23376: 23376: typedef const Coefficient value_type; 23376: typedef std::ptrdiff_t difference_type; 23376: typedef value_type* pointer; 23376: typedef Coefficient_traits::const_reference reference; 23376: 23376: const_iterator(); 23376: const_iterator(const Dense_Row& r, dimension_type i); 23376: 23376: Coefficient_traits::const_reference operator*() const; 23376: # 494 "../../src/Dense_Row_defs.hh" 23376: dimension_type index() const; 23376: 23376: const_iterator& operator++(); 23376: const_iterator operator++(int); 23376: 23376: const_iterator& operator--(); 23376: const_iterator operator--(int); 23376: 23376: bool operator==(const const_iterator& x) const; 23376: bool operator!=(const const_iterator& x) const; 23376: 23376: bool OK() const; 23376: 23376: private: 23376: const Dense_Row* row; 23376: dimension_type idx; 23376: }; 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: void swap(Dense_Row& x, Dense_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: void iter_swap(std::vector::iterator x, 23376: std::vector::iterator y); 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Dense_Row& x, const Dense_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const Dense_Row& x, const Dense_Row& y); 23376: 23376: 23376: 23376: 23376: void linear_combine(Dense_Row& x, const Dense_Row& y, 23376: Coefficient_traits::const_reference coeff1, 23376: Coefficient_traits::const_reference coeff2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void linear_combine(Dense_Row& x, const Dense_Row& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: } 23376: 23376: # 1 "../../src/Dense_Row_inlines.hh" 1 23376: # 32 "../../src/Dense_Row_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Dense_Row::Impl::Impl() 23376: : size(0), capacity(0), coeff_allocator(), vec(0) { 23376: } 23376: 23376: inline 23376: Dense_Row::Impl::~Impl() { 23376: while (size != 0) { 23376: --size; 23376: vec[size].~Coefficient(); 23376: } 23376: coeff_allocator.deallocate(vec, capacity); 23376: } 23376: 23376: inline dimension_type 23376: Dense_Row::max_size() { 23376: return std::numeric_limits::max() / sizeof(Coefficient); 23376: } 23376: 23376: inline dimension_type 23376: Dense_Row::size() const { 23376: return impl.size; 23376: } 23376: 23376: inline dimension_type 23376: Dense_Row::capacity() const { 23376: return impl.capacity; 23376: } 23376: 23376: inline 23376: Dense_Row::Dense_Row() 23376: : impl() { 23376: 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Dense_Row::Dense_Row(const dimension_type sz, 23376: const dimension_type capacity) 23376: : impl() { 23376: 23376: resize(sz, capacity); 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Dense_Row::Dense_Row(const dimension_type sz) 23376: : impl() { 23376: 23376: resize(sz); 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Dense_Row::Dense_Row(const Dense_Row& y) 23376: : impl() { 23376: impl.coeff_allocator = y.impl.coeff_allocator; 23376: if (y.impl.vec != 0) { 23376: impl.capacity = y.capacity(); 23376: impl.vec = impl.coeff_allocator.allocate(impl.capacity); 23376: while (impl.size != y.size()) { 23376: new(&impl.vec[impl.size]) Coefficient(y[impl.size]); 23376: ++impl.size; 23376: } 23376: } 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Dense_Row::Dense_Row(const Dense_Row& y, 23376: const dimension_type capacity) 23376: : impl() { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: impl.capacity = capacity; 23376: impl.coeff_allocator = y.impl.coeff_allocator; 23376: impl.vec = impl.coeff_allocator.allocate(impl.capacity); 23376: 23376: if (y.impl.vec != 0) { 23376: while (impl.size != y.size()) { 23376: new(&impl.vec[impl.size]) Coefficient(y[impl.size]); 23376: ++impl.size; 23376: } 23376: } 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Dense_Row::Dense_Row(const Dense_Row& y, 23376: const dimension_type sz, 23376: const dimension_type capacity) 23376: : impl() { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: impl.capacity = capacity; 23376: impl.coeff_allocator = y.impl.coeff_allocator; 23376: impl.vec = impl.coeff_allocator.allocate(impl.capacity); 23376: 23376: const dimension_type n = std::min(sz, y.size()); 23376: while (impl.size != n) { 23376: new(&impl.vec[impl.size]) Coefficient(y[impl.size]); 23376: ++impl.size; 23376: } 23376: while (impl.size != sz) { 23376: new(&impl.vec[impl.size]) Coefficient(); 23376: ++impl.size; 23376: } 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Dense_Row::~Dense_Row() { 23376: 23376: } 23376: 23376: inline void 23376: Dense_Row::destroy() { 23376: resize(0); 23376: impl.coeff_allocator.deallocate(impl.vec, impl.capacity); 23376: } 23376: 23376: inline void 23376: Dense_Row::m_swap(Dense_Row& y) { 23376: using std::swap; 23376: swap(impl.size, y.impl.size); 23376: swap(impl.capacity, y.impl.capacity); 23376: swap(impl.coeff_allocator, y.impl.coeff_allocator); 23376: swap(impl.vec, y.impl.vec); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline Dense_Row& 23376: Dense_Row::operator=(const Dense_Row& y) { 23376: 23376: if (this != &y && size() == y.size()) { 23376: 23376: 23376: for (dimension_type i = size(); i-- > 0; ) { 23376: (*this)[i] = y[i]; 23376: } 23376: 23376: return *this; 23376: } 23376: 23376: Dense_Row x(y); 23376: swap(*this, x); 23376: 23376: return *this; 23376: } 23376: 23376: inline Coefficient& 23376: Dense_Row::operator[](const dimension_type k) { 23376: ((void) 0); 23376: ((void) 0); 23376: return impl.vec[k]; 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Dense_Row::operator[](const dimension_type k) const { 23376: ((void) 0); 23376: ((void) 0); 23376: return impl.vec[k]; 23376: } 23376: 23376: inline void 23376: Dense_Row::swap_coefficients(dimension_type i, dimension_type j) { 23376: std::swap((*this)[i], (*this)[j]); 23376: } 23376: 23376: inline void 23376: Dense_Row::swap_coefficients(iterator i, iterator j) { 23376: std::swap(*i, *j); 23376: } 23376: 23376: inline void 23376: Dense_Row::reset(dimension_type i) { 23376: (*this)[i] = 0; 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::reset(iterator itr) { 23376: *itr = 0; 23376: ++itr; 23376: return itr; 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::begin() { 23376: return iterator(*this, 0); 23376: } 23376: 23376: inline Dense_Row::const_iterator 23376: Dense_Row::begin() const { 23376: return const_iterator(*this, 0); 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::end() { 23376: return iterator(*this, size()); 23376: } 23376: 23376: inline Dense_Row::const_iterator 23376: Dense_Row::end() const { 23376: return const_iterator(*this, size()); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Dense_Row::get(dimension_type i) const { 23376: return (*this)[i]; 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::find(dimension_type i) { 23376: return iterator(*this, i); 23376: } 23376: 23376: inline Dense_Row::const_iterator 23376: Dense_Row::find(dimension_type i) const { 23376: return const_iterator(*this, i); 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::find(iterator itr, dimension_type i) { 23376: (void)itr; 23376: return iterator(*this, i); 23376: } 23376: 23376: inline Dense_Row::const_iterator 23376: Dense_Row::find(const_iterator itr, dimension_type i) const { 23376: (void)itr; 23376: return const_iterator(*this, i); 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::lower_bound(dimension_type i) { 23376: return find(i); 23376: } 23376: 23376: inline Dense_Row::const_iterator 23376: Dense_Row::lower_bound(dimension_type i) const { 23376: return find(i); 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::lower_bound(iterator itr, dimension_type i) { 23376: return find(itr, i); 23376: } 23376: 23376: inline Dense_Row::const_iterator 23376: Dense_Row::lower_bound(const_iterator itr, dimension_type i) const { 23376: return find(itr, i); 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::insert(dimension_type i, 23376: Coefficient_traits::const_reference x) { 23376: (*this)[i] = x; 23376: return find(i); 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::insert(dimension_type i) { 23376: return find(i); 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::insert(iterator itr, dimension_type i, 23376: Coefficient_traits::const_reference x) { 23376: (void)itr; 23376: (*this)[i] = x; 23376: return find(i); 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::insert(iterator itr, dimension_type i) { 23376: (void)itr; 23376: return find(i); 23376: } 23376: 23376: inline memory_size_type 23376: Dense_Row::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Dense_Row::total_memory_in_bytes(dimension_type capacity) const { 23376: return sizeof(*this) + external_memory_in_bytes(capacity); 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Dense_Row& x, const Dense_Row& y) { 23376: return !(x == y); 23376: } 23376: 23376: 23376: inline 23376: Dense_Row::iterator::iterator() 23376: : row( 23376: # 349 "../../src/Dense_Row_inlines.hh" 3 4 23376: __null 23376: # 349 "../../src/Dense_Row_inlines.hh" 23376: ), idx(0) { 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Dense_Row::iterator::iterator(Dense_Row& r, dimension_type i) 23376: : row(&r), idx(i) { 23376: ((void) 0); 23376: } 23376: 23376: inline Coefficient& 23376: Dense_Row::iterator::operator*() { 23376: ((void) 0); 23376: return (*row)[idx]; 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Dense_Row::iterator::operator*() const { 23376: ((void) 0); 23376: return (*row)[idx]; 23376: } 23376: 23376: inline dimension_type 23376: Dense_Row::iterator::index() const { 23376: return idx; 23376: } 23376: 23376: inline Dense_Row::iterator& 23376: Dense_Row::iterator::operator++() { 23376: ((void) 0); 23376: ++idx; 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::iterator::operator++(int) { 23376: iterator tmp(*this); 23376: ++(*this); 23376: return tmp; 23376: } 23376: 23376: inline Dense_Row::iterator& 23376: Dense_Row::iterator::operator--() { 23376: ((void) 0); 23376: --idx; 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline Dense_Row::iterator 23376: Dense_Row::iterator::operator--(int) { 23376: iterator tmp(*this); 23376: --(*this); 23376: return tmp; 23376: } 23376: 23376: inline bool 23376: Dense_Row::iterator::operator==(const iterator& x) const { 23376: return (row == x.row) && (idx == x.idx); 23376: } 23376: 23376: inline bool 23376: Dense_Row::iterator::operator!=(const iterator& x) const { 23376: return !(*this == x); 23376: } 23376: 23376: inline 23376: Dense_Row::iterator::operator const_iterator() const { 23376: return const_iterator(*row, idx); 23376: } 23376: 23376: inline bool 23376: Dense_Row::iterator::OK() const { 23376: if (row == 23376: # 423 "../../src/Dense_Row_inlines.hh" 3 4 23376: __null 23376: # 423 "../../src/Dense_Row_inlines.hh" 23376: ) { 23376: return true; 23376: } 23376: 23376: return (idx <= row->size()); 23376: } 23376: 23376: 23376: inline 23376: Dense_Row::const_iterator::const_iterator() 23376: : row( 23376: # 433 "../../src/Dense_Row_inlines.hh" 3 4 23376: __null 23376: # 433 "../../src/Dense_Row_inlines.hh" 23376: ), idx(0) { 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Dense_Row::const_iterator::const_iterator(const Dense_Row& r, 23376: dimension_type i) 23376: : row(&r), idx(i) { 23376: ((void) 0); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Dense_Row::const_iterator::operator*() const { 23376: ((void) 0); 23376: return (*row)[idx]; 23376: } 23376: 23376: inline dimension_type 23376: Dense_Row::const_iterator::index() const { 23376: return idx; 23376: } 23376: 23376: inline Dense_Row::const_iterator& 23376: Dense_Row::const_iterator::operator++() { 23376: ((void) 0); 23376: ++idx; 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline Dense_Row::const_iterator 23376: Dense_Row::const_iterator::operator++(int) { 23376: const_iterator tmp(*this); 23376: ++(*this); 23376: return tmp; 23376: } 23376: 23376: inline Dense_Row::const_iterator& 23376: Dense_Row::const_iterator::operator--() { 23376: ((void) 0); 23376: --idx; 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline Dense_Row::const_iterator 23376: Dense_Row::const_iterator::operator--(int) { 23376: const_iterator tmp(*this); 23376: --(*this); 23376: return tmp; 23376: } 23376: 23376: inline bool 23376: Dense_Row::const_iterator::operator==(const const_iterator& x) const { 23376: return (row == x.row) && (idx == x.idx); 23376: } 23376: 23376: inline bool 23376: Dense_Row::const_iterator::operator!=(const const_iterator& x) const { 23376: return !(*this == x); 23376: } 23376: 23376: inline bool 23376: Dense_Row::const_iterator::OK() const { 23376: if (row == 23376: # 497 "../../src/Dense_Row_inlines.hh" 3 4 23376: __null 23376: # 497 "../../src/Dense_Row_inlines.hh" 23376: ) { 23376: return true; 23376: } 23376: 23376: return (idx <= row->size()); 23376: } 23376: 23376: inline void 23376: linear_combine(Dense_Row& x, const Dense_Row& y, 23376: Coefficient_traits::const_reference coeff1, 23376: Coefficient_traits::const_reference coeff2) { 23376: x.linear_combine(y, coeff1, coeff2); 23376: } 23376: 23376: inline void 23376: linear_combine(Dense_Row& x, const Dense_Row& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) { 23376: x.linear_combine(y, c1, c2, start, end); 23376: } 23376: 23376: 23376: inline void 23376: swap(Dense_Row& x, Dense_Row& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: 23376: inline void 23376: iter_swap(std::vector::iterator x, 23376: std::vector::iterator y) { 23376: swap(*x, *y); 23376: } 23376: 23376: } 23376: # 560 "../../src/Dense_Row_defs.hh" 2 23376: # 1 "../../src/Dense_Row_templates.hh" 1 23376: # 27 "../../src/Dense_Row_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: template 23376: void 23376: Dense_Row::combine_needs_first(const Dense_Row& y, const Func1& , 23376: const Func2& g) { 23376: for (dimension_type i = size(); i-- > 0; ) { 23376: g((*this)[i], y[i]); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Dense_Row::combine_needs_second(const Dense_Row& y, const Func1& g, 23376: const Func2& ) { 23376: for (dimension_type i = size(); i-- > 0; ) { 23376: g((*this)[i], y[i]); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Dense_Row::combine(const Dense_Row& y, const Func1& , const Func2& g, 23376: const Func3& ) { 23376: for (dimension_type i = size(); i-- > 0; ) { 23376: g((*this)[i], y[i]); 23376: } 23376: } 23376: 23376: } 23376: # 561 "../../src/Dense_Row_defs.hh" 2 23376: # 33 "../../src/Linear_Expression_Impl_defs.hh" 2 23376: # 1 "../../src/Sparse_Row_defs.hh" 1 23376: # 29 "../../src/Sparse_Row_defs.hh" 23376: # 1 "../../src/CO_Tree_defs.hh" 1 23376: # 27 "../../src/CO_Tree_defs.hh" 23376: # 1 "../../src/CO_Tree_types.hh" 1 23376: # 16 "../../src/CO_Tree_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class CO_Tree; 23376: 23376: } 23376: # 28 "../../src/CO_Tree_defs.hh" 2 23376: # 53 "../../src/CO_Tree_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 103 "../../src/CO_Tree_defs.hh" 23376: class CO_Tree { 23376: 23376: public: 23376: class const_iterator; 23376: class iterator; 23376: 23376: private: 23376: 23376: typedef unsigned height_t; 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_115 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(C_Integer::max >= ((sizeof(dimension_type)) * static_cast(8)))>) } 23376: 23376: ; 23376: 23376: class tree_iterator; 23376: # 128 "../../src/CO_Tree_defs.hh" 23376: dimension_type dfs_index(const_iterator itr) const; 23376: # 139 "../../src/CO_Tree_defs.hh" 23376: dimension_type dfs_index(iterator itr) const; 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef Coefficient data_type; 23376: typedef Coefficient_traits::const_reference data_type_const_reference; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: class const_iterator { 23376: private: 23376: public: 23376: 23376: typedef std::bidirectional_iterator_tag iterator_category; 23376: typedef const data_type value_type; 23376: typedef std::ptrdiff_t difference_type; 23376: typedef value_type* pointer; 23376: typedef data_type_const_reference reference; 23376: 23376: 23376: 23376: 23376: 23376: explicit const_iterator(); 23376: # 180 "../../src/CO_Tree_defs.hh" 23376: explicit const_iterator(const CO_Tree& tree); 23376: # 195 "../../src/CO_Tree_defs.hh" 23376: const_iterator(const CO_Tree& tree, dimension_type i); 23376: # 204 "../../src/CO_Tree_defs.hh" 23376: const_iterator(const const_iterator& itr); 23376: # 213 "../../src/CO_Tree_defs.hh" 23376: const_iterator(const iterator& itr); 23376: # 222 "../../src/CO_Tree_defs.hh" 23376: void m_swap(const_iterator& itr); 23376: # 231 "../../src/CO_Tree_defs.hh" 23376: const_iterator& operator=(const const_iterator& itr); 23376: # 240 "../../src/CO_Tree_defs.hh" 23376: const_iterator& operator=(const iterator& itr); 23376: 23376: 23376: 23376: 23376: 23376: const_iterator& operator++(); 23376: 23376: 23376: 23376: 23376: 23376: const_iterator& operator--(); 23376: 23376: 23376: 23376: 23376: 23376: const_iterator operator++(int); 23376: 23376: 23376: 23376: 23376: 23376: const_iterator operator--(int); 23376: 23376: 23376: data_type_const_reference operator*() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type index() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const const_iterator& x) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const const_iterator& x) const; 23376: 23376: private: 23376: 23376: bool OK() const; 23376: 23376: 23376: const dimension_type* current_index; 23376: 23376: 23376: const data_type* current_data; 23376: 23376: 23376: 23376: 23376: 23376: 23376: friend dimension_type CO_Tree::dfs_index(const_iterator itr) const; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: class iterator { 23376: public: 23376: 23376: typedef std::bidirectional_iterator_tag iterator_category; 23376: typedef data_type value_type; 23376: typedef std::ptrdiff_t difference_type; 23376: typedef value_type* pointer; 23376: typedef value_type& reference; 23376: 23376: 23376: 23376: 23376: 23376: iterator(); 23376: # 335 "../../src/CO_Tree_defs.hh" 23376: explicit iterator(CO_Tree& tree); 23376: # 350 "../../src/CO_Tree_defs.hh" 23376: iterator(CO_Tree& tree, dimension_type i); 23376: # 362 "../../src/CO_Tree_defs.hh" 23376: explicit iterator(const tree_iterator& itr); 23376: # 371 "../../src/CO_Tree_defs.hh" 23376: iterator(const iterator& itr); 23376: # 380 "../../src/CO_Tree_defs.hh" 23376: void m_swap(iterator& itr); 23376: # 389 "../../src/CO_Tree_defs.hh" 23376: iterator& operator=(const iterator& itr); 23376: # 398 "../../src/CO_Tree_defs.hh" 23376: iterator& operator=(const tree_iterator& itr); 23376: 23376: 23376: 23376: 23376: 23376: iterator& operator++(); 23376: 23376: 23376: 23376: 23376: 23376: iterator& operator--(); 23376: 23376: 23376: 23376: 23376: 23376: iterator operator++(int); 23376: 23376: 23376: 23376: 23376: 23376: iterator operator--(int); 23376: 23376: 23376: data_type& operator*(); 23376: 23376: 23376: data_type_const_reference operator*() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type index() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const iterator& x) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const iterator& x) const; 23376: 23376: private: 23376: 23376: bool OK() const; 23376: 23376: 23376: const dimension_type* current_index; 23376: 23376: 23376: data_type* current_data; 23376: 23376: 23376: 23376: 23376: 23376: 23376: friend const_iterator& const_iterator::operator=(const iterator&); 23376: friend dimension_type CO_Tree::dfs_index(iterator itr) const; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: CO_Tree(); 23376: # 482 "../../src/CO_Tree_defs.hh" 23376: CO_Tree(const CO_Tree& y); 23376: # 501 "../../src/CO_Tree_defs.hh" 23376: template 23376: CO_Tree(Iterator i, dimension_type n); 23376: # 511 "../../src/CO_Tree_defs.hh" 23376: CO_Tree& operator=(const CO_Tree& y); 23376: 23376: 23376: 23376: 23376: 23376: void clear(); 23376: 23376: 23376: 23376: 23376: 23376: ~CO_Tree(); 23376: 23376: 23376: 23376: 23376: 23376: bool empty() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type size() const; 23376: 23376: 23376: static dimension_type max_size(); 23376: 23376: 23376: void dump_tree() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type external_memory_in_bytes() const; 23376: # 566 "../../src/CO_Tree_defs.hh" 23376: iterator insert(dimension_type key); 23376: # 587 "../../src/CO_Tree_defs.hh" 23376: iterator insert(dimension_type key, data_type_const_reference data); 23376: # 615 "../../src/CO_Tree_defs.hh" 23376: iterator insert(iterator itr, dimension_type key); 23376: # 645 "../../src/CO_Tree_defs.hh" 23376: iterator insert(iterator itr, dimension_type key, 23376: data_type_const_reference data); 23376: # 661 "../../src/CO_Tree_defs.hh" 23376: iterator erase(dimension_type key); 23376: # 676 "../../src/CO_Tree_defs.hh" 23376: iterator erase(iterator itr); 23376: # 690 "../../src/CO_Tree_defs.hh" 23376: void erase_element_and_shift_left(dimension_type key); 23376: # 703 "../../src/CO_Tree_defs.hh" 23376: void increase_keys_from(dimension_type key, dimension_type n); 23376: # 712 "../../src/CO_Tree_defs.hh" 23376: void fast_shift(dimension_type i, iterator itr); 23376: # 723 "../../src/CO_Tree_defs.hh" 23376: void m_swap(CO_Tree& x); 23376: 23376: 23376: 23376: 23376: 23376: iterator begin(); 23376: # 740 "../../src/CO_Tree_defs.hh" 23376: const iterator& end(); 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: const const_iterator& end() const; 23376: 23376: 23376: 23376: 23376: 23376: const_iterator cbegin() const; 23376: # 763 "../../src/CO_Tree_defs.hh" 23376: const const_iterator& cend() const; 23376: # 777 "../../src/CO_Tree_defs.hh" 23376: iterator bisect(dimension_type key); 23376: # 791 "../../src/CO_Tree_defs.hh" 23376: const_iterator bisect(dimension_type key) const; 23376: # 815 "../../src/CO_Tree_defs.hh" 23376: iterator bisect_in(iterator first, iterator last, dimension_type key); 23376: # 839 "../../src/CO_Tree_defs.hh" 23376: const_iterator bisect_in(const_iterator first, const_iterator last, 23376: dimension_type key) const; 23376: # 860 "../../src/CO_Tree_defs.hh" 23376: iterator bisect_near(iterator hint, dimension_type key); 23376: # 880 "../../src/CO_Tree_defs.hh" 23376: const_iterator bisect_near(const_iterator hint, dimension_type key) const; 23376: 23376: private: 23376: # 905 "../../src/CO_Tree_defs.hh" 23376: dimension_type bisect_in(dimension_type first, dimension_type last, 23376: dimension_type key) const; 23376: # 929 "../../src/CO_Tree_defs.hh" 23376: dimension_type bisect_near(dimension_type hint, dimension_type key) const; 23376: # 954 "../../src/CO_Tree_defs.hh" 23376: tree_iterator insert_precise(dimension_type key, 23376: data_type_const_reference data, 23376: tree_iterator itr); 23376: # 965 "../../src/CO_Tree_defs.hh" 23376: tree_iterator insert_precise_aux(dimension_type key, 23376: data_type_const_reference data, 23376: tree_iterator itr); 23376: # 984 "../../src/CO_Tree_defs.hh" 23376: void insert_in_empty_tree(dimension_type key, 23376: data_type_const_reference data); 23376: # 1000 "../../src/CO_Tree_defs.hh" 23376: iterator erase(tree_iterator itr); 23376: # 1009 "../../src/CO_Tree_defs.hh" 23376: void init(dimension_type n); 23376: # 1018 "../../src/CO_Tree_defs.hh" 23376: void destroy(); 23376: 23376: 23376: bool structure_OK() const; 23376: 23376: 23376: bool OK() const; 23376: # 1033 "../../src/CO_Tree_defs.hh" 23376: static unsigned integer_log2(dimension_type n); 23376: # 1051 "../../src/CO_Tree_defs.hh" 23376: static bool is_less_than_ratio(dimension_type numer, dimension_type denom, 23376: dimension_type ratio); 23376: # 1071 "../../src/CO_Tree_defs.hh" 23376: static bool is_greater_than_ratio(dimension_type numer, dimension_type denom, 23376: dimension_type ratio); 23376: 23376: 23376: 23376: 23376: 23376: 23376: static void dump_subtree(tree_iterator itr); 23376: # 1088 "../../src/CO_Tree_defs.hh" 23376: void rebuild_bigger_tree(); 23376: # 1100 "../../src/CO_Tree_defs.hh" 23376: void rebuild_smaller_tree(); 23376: # 1109 "../../src/CO_Tree_defs.hh" 23376: void refresh_cached_iterators(); 23376: # 1133 "../../src/CO_Tree_defs.hh" 23376: tree_iterator rebalance(tree_iterator itr, dimension_type key, 23376: data_type_const_reference value); 23376: # 1160 "../../src/CO_Tree_defs.hh" 23376: dimension_type compact_elements_in_the_rightmost_end( 23376: dimension_type last_in_subtree, dimension_type subtree_size, 23376: dimension_type key, data_type_const_reference value, 23376: bool add_element); 23376: # 1191 "../../src/CO_Tree_defs.hh" 23376: void redistribute_elements_in_subtree(dimension_type root_index, 23376: dimension_type subtree_size, 23376: dimension_type last_used, 23376: dimension_type key, 23376: data_type_const_reference value, 23376: bool add_element); 23376: # 1208 "../../src/CO_Tree_defs.hh" 23376: void move_data_from(CO_Tree& tree); 23376: # 1221 "../../src/CO_Tree_defs.hh" 23376: void copy_data_from(const CO_Tree& tree); 23376: # 1231 "../../src/CO_Tree_defs.hh" 23376: static dimension_type count_used_in_subtree(tree_iterator itr); 23376: # 1249 "../../src/CO_Tree_defs.hh" 23376: static void move_data_element(data_type& to, data_type& from); 23376: 23376: 23376: 23376: 23376: 23376: static const dimension_type max_density_percent = 91; 23376: 23376: 23376: 23376: 23376: 23376: static const dimension_type min_density_percent = 38; 23376: # 1271 "../../src/CO_Tree_defs.hh" 23376: static const dimension_type min_leaf_density_percent = 1; 23376: 23376: 23376: 23376: 23376: 23376: static const dimension_type unused_index = C_Integer::max; 23376: 23376: 23376: 23376: 23376: 23376: iterator cached_end; 23376: 23376: 23376: 23376: 23376: 23376: const_iterator cached_const_end; 23376: 23376: 23376: height_t max_depth; 23376: # 1302 "../../src/CO_Tree_defs.hh" 23376: dimension_type* indexes; 23376: 23376: 23376: std::allocator data_allocator; 23376: # 1316 "../../src/CO_Tree_defs.hh" 23376: data_type* data; 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type reserved_size; 23376: 23376: 23376: dimension_type size_; 23376: }; 23376: 23376: class CO_Tree::tree_iterator { 23376: 23376: public: 23376: # 1341 "../../src/CO_Tree_defs.hh" 23376: explicit tree_iterator(CO_Tree& tree); 23376: # 1353 "../../src/CO_Tree_defs.hh" 23376: tree_iterator(CO_Tree& tree, dimension_type i); 23376: # 1365 "../../src/CO_Tree_defs.hh" 23376: tree_iterator(const iterator& itr, CO_Tree& tree); 23376: 23376: 23376: 23376: 23376: 23376: 23376: tree_iterator& operator=(const tree_iterator& itr); 23376: 23376: 23376: 23376: 23376: 23376: 23376: tree_iterator& operator=(const iterator& itr); 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const tree_iterator& itr) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const tree_iterator& itr) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void get_root(); 23376: 23376: 23376: 23376: 23376: 23376: void get_left_child(); 23376: 23376: 23376: 23376: 23376: 23376: void get_right_child(); 23376: 23376: 23376: 23376: 23376: 23376: void get_parent(); 23376: # 1433 "../../src/CO_Tree_defs.hh" 23376: void go_down_searching_key(dimension_type key); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void follow_left_children_with_value(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void follow_right_children_with_value(); 23376: 23376: 23376: 23376: 23376: 23376: bool is_root() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_right_child() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_leaf() const; 23376: 23376: 23376: data_type& operator*(); 23376: 23376: 23376: Coefficient_traits::const_reference operator*() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type& index(); 23376: 23376: 23376: 23376: 23376: 23376: dimension_type index() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type key() const; 23376: 23376: 23376: CO_Tree& tree; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type dfs_index() const; 23376: # 1512 "../../src/CO_Tree_defs.hh" 23376: dimension_type get_offset() const; 23376: 23376: 23376: 23376: 23376: 23376: height_t depth() const; 23376: 23376: private: 23376: 23376: bool OK() const; 23376: 23376: 23376: dimension_type i; 23376: # 1534 "../../src/CO_Tree_defs.hh" 23376: dimension_type offset; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: void swap(CO_Tree& x, CO_Tree& y); 23376: 23376: 23376: 23376: 23376: 23376: void swap(CO_Tree::const_iterator& x, CO_Tree::const_iterator& y); 23376: 23376: 23376: 23376: 23376: 23376: void swap(CO_Tree::iterator& x, CO_Tree::iterator& y); 23376: 23376: } 23376: 23376: # 1 "../../src/CO_Tree_inlines.hh" 1 23376: # 29 "../../src/CO_Tree_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline dimension_type 23376: CO_Tree::dfs_index(const_iterator itr) const { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: const std::ptrdiff_t index = itr.current_index - indexes; 23376: return static_cast(index); 23376: } 23376: 23376: inline dimension_type 23376: CO_Tree::dfs_index(iterator itr) const { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: const std::ptrdiff_t index = itr.current_index - indexes; 23376: return static_cast(index); 23376: } 23376: 23376: inline 23376: CO_Tree::CO_Tree() { 23376: init(0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::CO_Tree(const CO_Tree& y) { 23376: ((void) 0); 23376: data_allocator = y.data_allocator; 23376: init(y.reserved_size); 23376: copy_data_from(y); 23376: } 23376: 23376: inline CO_Tree& 23376: CO_Tree::operator=(const CO_Tree& y) { 23376: if (this != &y) { 23376: destroy(); 23376: data_allocator = y.data_allocator; 23376: init(y.reserved_size); 23376: copy_data_from(y); 23376: } 23376: return *this; 23376: } 23376: 23376: inline void 23376: CO_Tree::clear() { 23376: *this = CO_Tree(); 23376: } 23376: 23376: inline 23376: CO_Tree::~CO_Tree() { 23376: 23376: destroy(); 23376: } 23376: 23376: inline bool 23376: CO_Tree::empty() const { 23376: return size_ == 0; 23376: } 23376: 23376: inline dimension_type 23376: CO_Tree::size() const { 23376: return size_; 23376: } 23376: 23376: inline dimension_type 23376: CO_Tree::max_size() { 23376: return C_Integer::max/100; 23376: } 23376: 23376: inline void 23376: CO_Tree::dump_tree() const { 23376: if (empty()) { 23376: std::cout << "(empty tree)" << std::endl; 23376: } 23376: else { 23376: dump_subtree(tree_iterator(*const_cast(this))); 23376: } 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::insert(const dimension_type key) { 23376: if (empty()) { 23376: return insert(key, Coefficient_zero()); 23376: } 23376: else { 23376: tree_iterator itr(*this); 23376: itr.go_down_searching_key(key); 23376: if (itr.index() == key) { 23376: return iterator(itr); 23376: } 23376: else { 23376: return iterator(insert_precise(key, Coefficient_zero(), itr)); 23376: } 23376: } 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::insert(dimension_type key, data_type_const_reference data1) { 23376: if (empty()) { 23376: insert_in_empty_tree(key, data1); 23376: tree_iterator itr(*this); 23376: ((void) 0); 23376: return iterator(itr); 23376: } 23376: else { 23376: tree_iterator itr(*this); 23376: itr.go_down_searching_key(key); 23376: return iterator(insert_precise(key, data1, itr)); 23376: } 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::erase(dimension_type key) { 23376: ((void) 0); 23376: 23376: if (empty()) { 23376: return end(); 23376: } 23376: 23376: tree_iterator itr(*this); 23376: itr.go_down_searching_key(key); 23376: 23376: if (itr.index() == key) { 23376: return erase(itr); 23376: } 23376: 23376: iterator result(itr); 23376: if (result.index() < key) { 23376: ++result; 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: 23376: 23376: return result; 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::erase(iterator itr) { 23376: ((void) 0); 23376: return erase(tree_iterator(itr, *this)); 23376: } 23376: 23376: inline void 23376: CO_Tree::m_swap(CO_Tree& x) { 23376: using std::swap; 23376: swap(max_depth, x.max_depth); 23376: swap(indexes, x.indexes); 23376: swap(data_allocator, x.data_allocator); 23376: swap(data, x.data); 23376: swap(reserved_size, x.reserved_size); 23376: swap(size_, x.size_); 23376: 23376: 23376: refresh_cached_iterators(); 23376: x.refresh_cached_iterators(); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::begin() { 23376: return iterator(*this); 23376: } 23376: 23376: inline const CO_Tree::iterator& 23376: CO_Tree::end() { 23376: return cached_end; 23376: } 23376: 23376: inline CO_Tree::const_iterator 23376: CO_Tree::begin() const { 23376: return const_iterator(*this); 23376: } 23376: 23376: inline const CO_Tree::const_iterator& 23376: CO_Tree::end() const { 23376: return cached_const_end; 23376: } 23376: 23376: inline CO_Tree::const_iterator 23376: CO_Tree::cbegin() const { 23376: return const_iterator(*this); 23376: } 23376: 23376: inline const CO_Tree::const_iterator& 23376: CO_Tree::cend() const { 23376: return cached_const_end; 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::bisect(dimension_type key) { 23376: if (empty()) { 23376: return end(); 23376: } 23376: iterator last = end(); 23376: --last; 23376: return bisect_in(begin(), last, key); 23376: } 23376: 23376: inline CO_Tree::const_iterator 23376: CO_Tree::bisect(dimension_type key) const { 23376: if (empty()) { 23376: return end(); 23376: } 23376: const_iterator last = end(); 23376: --last; 23376: return bisect_in(begin(), last, key); 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::bisect_in(iterator first, iterator last, dimension_type key) { 23376: ((void) 0); 23376: ((void) 0); 23376: const dimension_type index 23376: = bisect_in(dfs_index(first), dfs_index(last), key); 23376: return iterator(*this, index); 23376: } 23376: 23376: inline CO_Tree::const_iterator 23376: CO_Tree::bisect_in(const_iterator first, const_iterator last, 23376: dimension_type key) const { 23376: ((void) 0); 23376: ((void) 0); 23376: const dimension_type index 23376: = bisect_in(dfs_index(first), dfs_index(last), key); 23376: return const_iterator(*this, index); 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::bisect_near(iterator hint, dimension_type key) { 23376: if (hint == end()) { 23376: return bisect(key); 23376: } 23376: const dimension_type index 23376: = bisect_near(dfs_index(hint), key); 23376: return iterator(*this, index); 23376: } 23376: 23376: inline CO_Tree::const_iterator 23376: CO_Tree::bisect_near(const_iterator hint, dimension_type key) const { 23376: if (hint == end()) { 23376: return bisect(key); 23376: } 23376: const dimension_type index = bisect_near(dfs_index(hint), key); 23376: return const_iterator(*this, index); 23376: } 23376: 23376: inline void 23376: CO_Tree::fast_shift(dimension_type i, iterator itr) { 23376: ((void) 0); 23376: ((void) 0); 23376: indexes[dfs_index(itr)] = i; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: CO_Tree::insert_in_empty_tree(dimension_type key, 23376: data_type_const_reference data1) { 23376: ((void) 0); 23376: rebuild_bigger_tree(); 23376: tree_iterator itr(*this); 23376: ((void) 0); 23376: new(&(*itr)) data_type(data1); 23376: 23376: 23376: itr.index() = key; 23376: ++size_; 23376: 23376: ((void) 0); 23376: } 23376: 23376: inline bool 23376: CO_Tree::is_less_than_ratio(dimension_type numer, dimension_type denom, 23376: dimension_type ratio) { 23376: ((void) 0); 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: return 100*numer < ratio*denom; 23376: } 23376: 23376: inline bool 23376: CO_Tree::is_greater_than_ratio(dimension_type numer, dimension_type denom, 23376: dimension_type ratio) { 23376: ((void) 0); 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: return 100*numer > ratio*denom; 23376: } 23376: 23376: inline void 23376: CO_Tree::rebuild_smaller_tree() { 23376: ((void) 0); 23376: CO_Tree new_tree; 23376: new_tree.init(reserved_size / 2); 23376: new_tree.move_data_from(*this); 23376: m_swap(new_tree); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: CO_Tree::refresh_cached_iterators() { 23376: cached_end = iterator(*this, reserved_size + 1); 23376: cached_const_end = const_iterator(*this, reserved_size + 1); 23376: } 23376: 23376: inline void 23376: CO_Tree::move_data_element(data_type& to, data_type& from) { 23376: # 354 "../../src/CO_Tree_inlines.hh" 23376: std::memcpy(&to, &from, sizeof(data_type)); 23376: } 23376: 23376: 23376: inline 23376: CO_Tree::const_iterator::const_iterator() 23376: : current_index(0), current_data(0) { 23376: 23376: 23376: 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::const_iterator::const_iterator(const CO_Tree& tree1) 23376: : current_index(&(tree1.indexes[1])), current_data(&(tree1.data[1])) { 23376: 23376: 23376: 23376: if (!tree1.empty()) { 23376: while (*current_index == unused_index) { 23376: ++current_index; 23376: ++current_data; 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::const_iterator::const_iterator(const CO_Tree& tree1, 23376: dimension_type i) 23376: : current_index(&(tree1.indexes[i])), current_data(&(tree1.data[i])) { 23376: 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::const_iterator::const_iterator(const const_iterator& itr2) { 23376: (*this) = itr2; 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::const_iterator::const_iterator(const iterator& itr2) { 23376: (*this) = itr2; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: CO_Tree::const_iterator::m_swap(const_iterator& itr) { 23376: using std::swap; 23376: swap(current_data, itr.current_data); 23376: swap(current_index, itr.current_index); 23376: 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline CO_Tree::const_iterator& 23376: CO_Tree::const_iterator::operator=(const const_iterator& itr2) { 23376: current_index = itr2.current_index; 23376: current_data = itr2.current_data; 23376: 23376: 23376: 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline CO_Tree::const_iterator& 23376: CO_Tree::const_iterator::operator=(const iterator& itr2) { 23376: current_index = itr2.current_index; 23376: current_data = itr2.current_data; 23376: 23376: 23376: 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline CO_Tree::const_iterator& 23376: CO_Tree::const_iterator::operator++() { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: ++current_index; 23376: ++current_data; 23376: while (*current_index == unused_index) { 23376: ++current_index; 23376: ++current_data; 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline CO_Tree::const_iterator& 23376: CO_Tree::const_iterator::operator--() { 23376: ((void) 0); 23376: ((void) 0); 23376: --current_index; 23376: --current_data; 23376: while (*current_index == unused_index) { 23376: --current_index; 23376: --current_data; 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline CO_Tree::const_iterator 23376: CO_Tree::const_iterator::operator++(int) { 23376: const_iterator itr(*this); 23376: ++(*this); 23376: return itr; 23376: } 23376: 23376: inline CO_Tree::const_iterator 23376: CO_Tree::const_iterator::operator--(int) { 23376: const_iterator itr(*this); 23376: --(*this); 23376: return itr; 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: CO_Tree::const_iterator::operator*() const { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: return *current_data; 23376: } 23376: 23376: inline dimension_type 23376: CO_Tree::const_iterator::index() const { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: return *current_index; 23376: } 23376: 23376: inline bool 23376: CO_Tree::const_iterator::operator==(const const_iterator& x) const { 23376: ((void) 0) 23376: ; 23376: ((void) 0); 23376: return (current_index == x.current_index); 23376: } 23376: 23376: inline bool 23376: CO_Tree::const_iterator::operator!=(const const_iterator& x) const { 23376: return !(*this == x); 23376: } 23376: 23376: 23376: inline 23376: CO_Tree::iterator::iterator() 23376: : current_index(0), current_data(0) { 23376: 23376: 23376: 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::iterator::iterator(CO_Tree& tree1) 23376: : current_index(&(tree1.indexes[1])), current_data(&(tree1.data[1])) { 23376: 23376: 23376: 23376: if (!tree1.empty()) { 23376: while (*current_index == unused_index) { 23376: ++current_index; 23376: ++current_data; 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::iterator::iterator(CO_Tree& tree1, dimension_type i) 23376: : current_index(&(tree1.indexes[i])), current_data(&(tree1.data[i])) { 23376: 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::iterator::iterator(const tree_iterator& itr) { 23376: *this = itr; 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::iterator::iterator(const iterator& itr2) { 23376: (*this) = itr2; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: CO_Tree::iterator::m_swap(iterator& itr) { 23376: using std::swap; 23376: swap(current_data, itr.current_data); 23376: swap(current_index, itr.current_index); 23376: 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline CO_Tree::iterator& 23376: CO_Tree::iterator::operator=(const tree_iterator& itr) { 23376: current_index = &(itr.tree.indexes[itr.dfs_index()]); 23376: current_data = &(itr.tree.data[itr.dfs_index()]); 23376: 23376: 23376: 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline CO_Tree::iterator& 23376: CO_Tree::iterator::operator=(const iterator& itr2) { 23376: current_index = itr2.current_index; 23376: current_data = itr2.current_data; 23376: 23376: 23376: 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline CO_Tree::iterator& 23376: CO_Tree::iterator::operator++() { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: ++current_index; 23376: ++current_data; 23376: while (*current_index == unused_index) { 23376: ++current_index; 23376: ++current_data; 23376: } 23376: 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline CO_Tree::iterator& 23376: CO_Tree::iterator::operator--() { 23376: ((void) 0); 23376: ((void) 0); 23376: --current_index; 23376: --current_data; 23376: while (*current_index == unused_index) { 23376: --current_index; 23376: --current_data; 23376: } 23376: 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::iterator::operator++(int) { 23376: iterator itr(*this); 23376: ++(*this); 23376: return itr; 23376: } 23376: 23376: inline CO_Tree::iterator 23376: CO_Tree::iterator::operator--(int) { 23376: iterator itr(*this); 23376: --(*this); 23376: return itr; 23376: } 23376: 23376: inline CO_Tree::data_type& 23376: CO_Tree::iterator::operator*() { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: return *current_data; 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: CO_Tree::iterator::operator*() const { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: return *current_data; 23376: } 23376: 23376: inline dimension_type 23376: CO_Tree::iterator::index() const { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: return *current_index; 23376: } 23376: 23376: inline bool 23376: CO_Tree::iterator::operator==(const iterator& x) const { 23376: ((void) 0) 23376: ; 23376: ((void) 0); 23376: return (current_index == x.current_index); 23376: } 23376: 23376: inline bool 23376: CO_Tree::iterator::operator!=(const iterator& x) const { 23376: return !(*this == x); 23376: } 23376: 23376: 23376: inline 23376: CO_Tree::tree_iterator::tree_iterator(CO_Tree& tree1) 23376: : tree(tree1) { 23376: ((void) 0); 23376: get_root(); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::tree_iterator::tree_iterator(CO_Tree& tree1, dimension_type i1) 23376: : tree(tree1) { 23376: ((void) 0); 23376: ((void) 0); 23376: i = i1; 23376: offset = least_significant_one_mask(i); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: CO_Tree::tree_iterator::tree_iterator(const iterator& itr, CO_Tree& tree1) 23376: : tree(tree1) { 23376: ((void) 0); 23376: *this = itr; 23376: ((void) 0); 23376: } 23376: 23376: inline CO_Tree::tree_iterator& 23376: CO_Tree::tree_iterator::operator=(const tree_iterator& itr) { 23376: ((void) 0); 23376: i = itr.i; 23376: offset = itr.offset; 23376: return *this; 23376: } 23376: 23376: inline CO_Tree::tree_iterator& 23376: CO_Tree::tree_iterator::operator=(const iterator& itr) { 23376: ((void) 0); 23376: i = tree.dfs_index(itr); 23376: offset = least_significant_one_mask(i); 23376: return *this; 23376: } 23376: 23376: inline bool 23376: CO_Tree::tree_iterator::operator==(const tree_iterator& itr) const { 23376: return i == itr.i; 23376: } 23376: 23376: inline bool 23376: CO_Tree::tree_iterator::operator!=(const tree_iterator& itr) const { 23376: return !(*this == itr); 23376: } 23376: 23376: inline void 23376: CO_Tree::tree_iterator::get_root() { 23376: i = tree.reserved_size / 2 + 1; 23376: offset = i; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: CO_Tree::tree_iterator::get_left_child() { 23376: ((void) 0); 23376: ((void) 0); 23376: offset /= 2; 23376: i -= offset; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: CO_Tree::tree_iterator::get_right_child() { 23376: ((void) 0); 23376: ((void) 0); 23376: offset /= 2; 23376: i += offset; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: CO_Tree::tree_iterator::get_parent() { 23376: ((void) 0); 23376: ((void) 0); 23376: i &= ~offset; 23376: offset *= 2; 23376: i |= offset; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: CO_Tree::tree_iterator::follow_left_children_with_value() { 23376: ((void) 0); 23376: const dimension_type* p = tree.indexes; 23376: p += i; 23376: p -= (offset - 1); 23376: while (*p == unused_index) { 23376: ++p; 23376: } 23376: const std::ptrdiff_t distance = p - tree.indexes; 23376: ((void) 0); 23376: i = static_cast(distance); 23376: offset = least_significant_one_mask(i); 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: CO_Tree::tree_iterator::follow_right_children_with_value() { 23376: ((void) 0); 23376: const dimension_type* p = tree.indexes; 23376: p += i; 23376: p += (offset - 1); 23376: while (*p == unused_index) { 23376: --p; 23376: } 23376: const std::ptrdiff_t distance = p - tree.indexes; 23376: ((void) 0); 23376: i = static_cast(distance); 23376: offset = least_significant_one_mask(i); 23376: ((void) 0); 23376: } 23376: 23376: inline bool 23376: CO_Tree::tree_iterator::is_root() const { 23376: 23376: ((void) 0); 23376: return offset == (tree.reserved_size / 2 + 1); 23376: } 23376: 23376: inline bool 23376: CO_Tree::tree_iterator::is_right_child() const { 23376: if (is_root()) { 23376: return false; 23376: } 23376: return (i & (2*offset)) != 0; 23376: } 23376: 23376: inline bool 23376: CO_Tree::tree_iterator::is_leaf() const { 23376: return offset == 1; 23376: } 23376: 23376: inline CO_Tree::data_type& 23376: CO_Tree::tree_iterator::operator*() { 23376: return tree.data[i]; 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: CO_Tree::tree_iterator::operator*() const { 23376: return tree.data[i]; 23376: } 23376: 23376: inline dimension_type& 23376: CO_Tree::tree_iterator::index() { 23376: return tree.indexes[i]; 23376: } 23376: 23376: inline dimension_type 23376: CO_Tree::tree_iterator::index() const { 23376: return tree.indexes[i]; 23376: } 23376: 23376: inline dimension_type 23376: CO_Tree::tree_iterator::dfs_index() const { 23376: return i; 23376: } 23376: 23376: inline dimension_type 23376: CO_Tree::tree_iterator::get_offset() const { 23376: return offset; 23376: } 23376: 23376: inline CO_Tree::height_t 23376: CO_Tree::tree_iterator::depth() const { 23376: return integer_log2((tree.reserved_size + 1) / offset); 23376: } 23376: 23376: inline void 23376: swap(CO_Tree& x, CO_Tree& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: inline void 23376: swap(CO_Tree::const_iterator& x, CO_Tree::const_iterator& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: inline void 23376: swap(CO_Tree::iterator& x, CO_Tree::iterator& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 1558 "../../src/CO_Tree_defs.hh" 2 23376: # 1 "../../src/CO_Tree_templates.hh" 1 23376: # 27 "../../src/CO_Tree_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: CO_Tree::CO_Tree(Iterator i, dimension_type n) { 23376: 23376: if (n == 0) { 23376: init(0); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: const dimension_type new_max_depth = integer_log2(n) + 1; 23376: reserved_size = (static_cast(1) << new_max_depth) - 1; 23376: 23376: if (is_greater_than_ratio(n, reserved_size, max_density_percent) 23376: && reserved_size != 3) { 23376: reserved_size = reserved_size*2 + 1; 23376: } 23376: 23376: init(reserved_size); 23376: 23376: tree_iterator root(*this); 23376: # 57 "../../src/CO_Tree_templates.hh" 23376: static std::pair 23376: stack[4U * ((sizeof(dimension_type)) * static_cast(8)) + 1U]; 23376: 23376: dimension_type stack_first_empty = 0; 23376: # 71 "../../src/CO_Tree_templates.hh" 23376: stack[0].first = n; 23376: stack[0].second = 3; 23376: ++stack_first_empty; 23376: 23376: while (stack_first_empty != 0) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: const dimension_type top_n = stack[stack_first_empty - 1].first; 23376: const signed char top_operation = stack[stack_first_empty - 1].second; 23376: 23376: switch (top_operation) { 23376: 23376: case 0: 23376: root.get_parent(); 23376: --stack_first_empty; 23376: continue; 23376: 23376: case 1: 23376: root.get_left_child(); 23376: break; 23376: 23376: case 2: 23376: root.get_right_child(); 23376: break; 23376: # 108 "../../src/CO_Tree_templates.hh" 23376: } 23376: 23376: 23376: 23376: if (top_n == 0) { 23376: --stack_first_empty; 23376: } 23376: else { 23376: if (top_n == 1) { 23376: ((void) 0); 23376: root.index() = i.index(); 23376: new(&(*root)) data_type(*i); 23376: ++i; 23376: --stack_first_empty; 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: const dimension_type half = (top_n + 1) / 2; 23376: stack[stack_first_empty - 1].second = 0; 23376: stack[stack_first_empty ] = std::make_pair(top_n - half, 2); 23376: stack[stack_first_empty + 1] = std::make_pair(1, 3); 23376: stack[stack_first_empty + 2].second = 0; 23376: stack[stack_first_empty + 3] = std::make_pair(half - 1, 1); 23376: stack_first_empty += 4; 23376: } 23376: } 23376: } 23376: size_ = n; 23376: ((void) 0); 23376: } 23376: 23376: } 23376: # 1559 "../../src/CO_Tree_defs.hh" 2 23376: # 30 "../../src/Sparse_Row_defs.hh" 2 23376: # 58 "../../src/Sparse_Row_defs.hh" 23376: class Parma_Polyhedra_Library::Sparse_Row { 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef CO_Tree::iterator iterator; 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef CO_Tree::const_iterator const_iterator; 23376: # 85 "../../src/Sparse_Row_defs.hh" 23376: explicit Sparse_Row(dimension_type n = 0); 23376: # 99 "../../src/Sparse_Row_defs.hh" 23376: Sparse_Row(dimension_type n, dimension_type capacity); 23376: 23376: 23376: 23376: 23376: 23376: 23376: Sparse_Row(const Sparse_Row& y, dimension_type capacity); 23376: 23376: 23376: 23376: 23376: 23376: Sparse_Row(const Sparse_Row& y, dimension_type sz, dimension_type capacity); 23376: # 122 "../../src/Sparse_Row_defs.hh" 23376: explicit Sparse_Row(const Dense_Row& row); 23376: 23376: 23376: 23376: 23376: 23376: Sparse_Row(const Dense_Row& y, dimension_type sz, dimension_type capacity); 23376: 23376: Sparse_Row& operator=(const Dense_Row& row); 23376: # 139 "../../src/Sparse_Row_defs.hh" 23376: void m_swap(Sparse_Row& x); 23376: 23376: 23376: 23376: 23376: 23376: dimension_type size() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type num_stored_elements() const; 23376: # 164 "../../src/Sparse_Row_defs.hh" 23376: void resize(dimension_type n); 23376: # 176 "../../src/Sparse_Row_defs.hh" 23376: void expand_within_capacity(dimension_type n); 23376: # 189 "../../src/Sparse_Row_defs.hh" 23376: void shrink(dimension_type n); 23376: # 205 "../../src/Sparse_Row_defs.hh" 23376: void delete_element_and_shift(dimension_type i); 23376: # 226 "../../src/Sparse_Row_defs.hh" 23376: void add_zeroes_and_shift(dimension_type n, dimension_type i); 23376: 23376: 23376: 23376: 23376: 23376: iterator begin(); 23376: # 243 "../../src/Sparse_Row_defs.hh" 23376: const iterator& end(); 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: const const_iterator& end() const; 23376: 23376: 23376: 23376: 23376: 23376: const_iterator cbegin() const; 23376: # 266 "../../src/Sparse_Row_defs.hh" 23376: const const_iterator& cend() const; 23376: 23376: 23376: static dimension_type max_size(); 23376: 23376: 23376: 23376: 23376: 23376: void clear(); 23376: # 293 "../../src/Sparse_Row_defs.hh" 23376: Coefficient& operator[](dimension_type i); 23376: 23376: 23376: 23376: 23376: 23376: Coefficient_traits::const_reference operator[](dimension_type i) const; 23376: # 311 "../../src/Sparse_Row_defs.hh" 23376: Coefficient_traits::const_reference get(dimension_type i) const; 23376: # 323 "../../src/Sparse_Row_defs.hh" 23376: iterator find(dimension_type i); 23376: # 341 "../../src/Sparse_Row_defs.hh" 23376: iterator find(iterator itr, dimension_type i); 23376: # 353 "../../src/Sparse_Row_defs.hh" 23376: const_iterator find(dimension_type i) const; 23376: # 371 "../../src/Sparse_Row_defs.hh" 23376: const_iterator find(const_iterator itr, dimension_type i) const; 23376: # 387 "../../src/Sparse_Row_defs.hh" 23376: iterator lower_bound(dimension_type i); 23376: # 409 "../../src/Sparse_Row_defs.hh" 23376: iterator lower_bound(iterator itr, dimension_type i); 23376: # 426 "../../src/Sparse_Row_defs.hh" 23376: const_iterator lower_bound(dimension_type i) const; 23376: # 448 "../../src/Sparse_Row_defs.hh" 23376: const_iterator lower_bound(const_iterator itr, dimension_type i) const; 23376: # 465 "../../src/Sparse_Row_defs.hh" 23376: iterator insert(dimension_type i, Coefficient_traits::const_reference x); 23376: # 488 "../../src/Sparse_Row_defs.hh" 23376: iterator insert(iterator itr, dimension_type i, 23376: Coefficient_traits::const_reference x); 23376: # 503 "../../src/Sparse_Row_defs.hh" 23376: iterator insert(dimension_type i); 23376: # 523 "../../src/Sparse_Row_defs.hh" 23376: iterator insert(iterator itr, dimension_type i); 23376: # 537 "../../src/Sparse_Row_defs.hh" 23376: void swap_coefficients(dimension_type i, dimension_type j); 23376: # 547 "../../src/Sparse_Row_defs.hh" 23376: void fast_swap(dimension_type i, iterator itr); 23376: # 559 "../../src/Sparse_Row_defs.hh" 23376: void swap_coefficients(iterator i, iterator j); 23376: # 574 "../../src/Sparse_Row_defs.hh" 23376: iterator reset(iterator i); 23376: # 592 "../../src/Sparse_Row_defs.hh" 23376: iterator reset(iterator first, iterator last); 23376: # 606 "../../src/Sparse_Row_defs.hh" 23376: void reset(dimension_type i); 23376: # 621 "../../src/Sparse_Row_defs.hh" 23376: void reset_after(dimension_type i); 23376: # 630 "../../src/Sparse_Row_defs.hh" 23376: void normalize(); 23376: # 655 "../../src/Sparse_Row_defs.hh" 23376: template 23376: void combine_needs_first(const Sparse_Row& y, 23376: const Func1& f, const Func2& g); 23376: # 683 "../../src/Sparse_Row_defs.hh" 23376: template 23376: void combine_needs_second(const Sparse_Row& y, 23376: const Func1& g, const Func2& h); 23376: # 715 "../../src/Sparse_Row_defs.hh" 23376: template 23376: void combine(const Sparse_Row& y, 23376: const Func1& f, const Func2& g, const Func3& h); 23376: # 744 "../../src/Sparse_Row_defs.hh" 23376: void linear_combine(const Sparse_Row& y, 23376: Coefficient_traits::const_reference coeff1, 23376: Coefficient_traits::const_reference coeff2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void linear_combine(const Sparse_Row& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: # 783 "../../src/Sparse_Row_defs.hh" 23376: memory_size_type external_memory_in_bytes(dimension_type capacity) const; 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: # 800 "../../src/Sparse_Row_defs.hh" 23376: memory_size_type total_memory_in_bytes(dimension_type capacity) const; 23376: 23376: 23376: bool OK() const; 23376: # 812 "../../src/Sparse_Row_defs.hh" 23376: bool OK(dimension_type capacity) const; 23376: 23376: private: 23376: 23376: CO_Tree tree; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type size_; 23376: }; 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: void swap(Parma_Polyhedra_Library::Sparse_Row& x, 23376: Parma_Polyhedra_Library::Sparse_Row& y); 23376: 23376: void swap(Parma_Polyhedra_Library::Sparse_Row& x, 23376: Parma_Polyhedra_Library::Dense_Row& y); 23376: 23376: void swap(Parma_Polyhedra_Library::Dense_Row& x, 23376: Parma_Polyhedra_Library::Sparse_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Sparse_Row& x, const Sparse_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const Sparse_Row& x, const Sparse_Row& y); 23376: 23376: bool operator==(const Dense_Row& x, const Sparse_Row& y); 23376: bool operator!=(const Dense_Row& x, const Sparse_Row& y); 23376: 23376: bool operator==(const Sparse_Row& x, const Dense_Row& y); 23376: bool operator!=(const Sparse_Row& x, const Dense_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void linear_combine(Sparse_Row& x, const Dense_Row& y, 23376: Coefficient_traits::const_reference coeff1, 23376: Coefficient_traits::const_reference coeff2); 23376: # 876 "../../src/Sparse_Row_defs.hh" 23376: void linear_combine(Sparse_Row& x, const Dense_Row& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void linear_combine(Dense_Row& x, const Sparse_Row& y, 23376: Coefficient_traits::const_reference coeff1, 23376: Coefficient_traits::const_reference coeff2); 23376: # 898 "../../src/Sparse_Row_defs.hh" 23376: void linear_combine(Dense_Row& x, const Sparse_Row& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void linear_combine(Sparse_Row& x, const Sparse_Row& y, 23376: Coefficient_traits::const_reference coeff1, 23376: Coefficient_traits::const_reference coeff2); 23376: # 920 "../../src/Sparse_Row_defs.hh" 23376: void linear_combine(Sparse_Row& x, const Sparse_Row& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: } 23376: 23376: # 1 "../../src/Sparse_Row_inlines.hh" 1 23376: # 29 "../../src/Sparse_Row_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Sparse_Row::Sparse_Row(dimension_type n) 23376: : size_(n) { 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Sparse_Row::Sparse_Row(dimension_type n, dimension_type) 23376: : size_(n) { 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Sparse_Row::Sparse_Row(const Sparse_Row& y, dimension_type) 23376: : tree(y.tree), size_(y.size_) { 23376: } 23376: 23376: inline 23376: Sparse_Row::Sparse_Row(const Sparse_Row& y, dimension_type sz, dimension_type) 23376: : tree(y.begin(), 23376: std::distance(y.begin(), y.lower_bound(std::min(y.size(), sz)))), 23376: size_(sz) { 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Sparse_Row::m_swap(Sparse_Row& x) { 23376: using std::swap; 23376: swap(tree, x.tree); 23376: swap(size_, x.size_); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline dimension_type 23376: Sparse_Row::size() const { 23376: return size_; 23376: } 23376: 23376: inline dimension_type 23376: Sparse_Row::num_stored_elements() const { 23376: return tree.size(); 23376: } 23376: 23376: inline void 23376: Sparse_Row::resize(dimension_type n) { 23376: if (n < size_) { 23376: reset_after(n); 23376: } 23376: size_ = n; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Sparse_Row::shrink(dimension_type n) { 23376: ((void) 0); 23376: resize(n); 23376: } 23376: 23376: inline void 23376: Sparse_Row::expand_within_capacity(dimension_type n) { 23376: ((void) 0); 23376: resize(n); 23376: } 23376: 23376: inline void 23376: Sparse_Row::delete_element_and_shift(dimension_type i) { 23376: ((void) 0); 23376: tree.erase_element_and_shift_left(i); 23376: --size_; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Sparse_Row::add_zeroes_and_shift(dimension_type n, dimension_type i) { 23376: ((void) 0); 23376: tree.increase_keys_from(i, n); 23376: size_ += n; 23376: ((void) 0); 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::begin() { 23376: return tree.begin(); 23376: } 23376: 23376: inline const Sparse_Row::iterator& 23376: Sparse_Row::end() { 23376: return tree.end(); 23376: } 23376: 23376: inline Sparse_Row::const_iterator 23376: Sparse_Row::begin() const { 23376: return tree.cbegin(); 23376: } 23376: 23376: inline const Sparse_Row::const_iterator& 23376: Sparse_Row::end() const { 23376: return tree.cend(); 23376: } 23376: 23376: inline Sparse_Row::const_iterator 23376: Sparse_Row::cbegin() const { 23376: return tree.cbegin(); 23376: } 23376: 23376: inline const Sparse_Row::const_iterator& 23376: Sparse_Row::cend() const { 23376: return tree.cend(); 23376: } 23376: 23376: inline dimension_type 23376: Sparse_Row::max_size() { 23376: return CO_Tree::max_size(); 23376: } 23376: 23376: inline void 23376: Sparse_Row::clear() { 23376: tree.clear(); 23376: } 23376: 23376: inline Coefficient& 23376: Sparse_Row::operator[](dimension_type i) { 23376: ((void) 0); 23376: iterator itr = insert(i); 23376: return *itr; 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Sparse_Row::operator[](dimension_type i) const { 23376: return get(i); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Sparse_Row::get(dimension_type i) const { 23376: ((void) 0); 23376: if (tree.empty()) { 23376: return Coefficient_zero(); 23376: } 23376: const_iterator itr = find(i); 23376: if (itr != end()) { 23376: return *itr; 23376: } 23376: else { 23376: return Coefficient_zero(); 23376: } 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::find(dimension_type i) { 23376: ((void) 0); 23376: 23376: iterator itr = tree.bisect(i); 23376: 23376: if (itr != end() && itr.index() == i) { 23376: return itr; 23376: } 23376: return end(); 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::find(iterator hint, dimension_type i) { 23376: ((void) 0); 23376: 23376: iterator itr = tree.bisect_near(hint, i); 23376: 23376: if (itr != end() && itr.index() == i) { 23376: return itr; 23376: } 23376: return end(); 23376: } 23376: 23376: inline Sparse_Row::const_iterator 23376: Sparse_Row::find(dimension_type i) const { 23376: ((void) 0); 23376: 23376: const_iterator itr = tree.bisect(i); 23376: 23376: if (itr != end() && itr.index() == i) { 23376: return itr; 23376: } 23376: 23376: return end(); 23376: } 23376: 23376: inline Sparse_Row::const_iterator 23376: Sparse_Row::find(const_iterator hint, dimension_type i) const { 23376: ((void) 0); 23376: 23376: const_iterator itr = tree.bisect_near(hint, i); 23376: 23376: if (itr != end() && itr.index() == i) { 23376: return itr; 23376: } 23376: return end(); 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::lower_bound(dimension_type i) { 23376: ((void) 0); 23376: 23376: iterator itr = tree.bisect(i); 23376: 23376: if (itr == end()) { 23376: return end(); 23376: } 23376: 23376: if (itr.index() < i) { 23376: ++itr; 23376: } 23376: 23376: ((void) 0); 23376: 23376: return itr; 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::lower_bound(iterator hint, dimension_type i) { 23376: ((void) 0); 23376: 23376: iterator itr = tree.bisect_near(hint, i); 23376: 23376: if (itr == end()) { 23376: return end(); 23376: } 23376: 23376: if (itr.index() < i) { 23376: ++itr; 23376: } 23376: 23376: ((void) 0); 23376: 23376: return itr; 23376: } 23376: 23376: inline Sparse_Row::const_iterator 23376: Sparse_Row::lower_bound(dimension_type i) const { 23376: ((void) 0); 23376: 23376: const_iterator itr = tree.bisect(i); 23376: 23376: if (itr == end()) { 23376: return end(); 23376: } 23376: 23376: if (itr.index() < i) { 23376: ++itr; 23376: } 23376: 23376: ((void) 0); 23376: 23376: return itr; 23376: } 23376: 23376: inline Sparse_Row::const_iterator 23376: Sparse_Row::lower_bound(const_iterator hint, dimension_type i) const { 23376: ((void) 0); 23376: 23376: const_iterator itr = tree.bisect_near(hint, i); 23376: 23376: if (itr == end()) { 23376: return end(); 23376: } 23376: 23376: if (itr.index() < i) { 23376: ++itr; 23376: } 23376: 23376: ((void) 0); 23376: 23376: return itr; 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::insert(dimension_type i, Coefficient_traits::const_reference x) { 23376: ((void) 0); 23376: return tree.insert(i, x); 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::insert(iterator itr, dimension_type i, 23376: Coefficient_traits::const_reference x) { 23376: ((void) 0); 23376: return tree.insert(itr, i, x); 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::insert(dimension_type i) { 23376: ((void) 0); 23376: return tree.insert(i); 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::insert(iterator itr, dimension_type i) { 23376: ((void) 0); 23376: return tree.insert(itr, i); 23376: } 23376: 23376: inline void 23376: Sparse_Row::swap_coefficients(iterator i, iterator j) { 23376: ((void) 0); 23376: ((void) 0); 23376: using std::swap; 23376: swap(*i, *j); 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Sparse_Row::fast_swap(dimension_type i, iterator itr) { 23376: ((void) 0); 23376: ((void) 0); 23376: tree.fast_shift(i, itr); 23376: ((void) 0); 23376: } 23376: 23376: inline Sparse_Row::iterator 23376: Sparse_Row::reset(iterator i) { 23376: iterator res = tree.erase(i); 23376: ((void) 0); 23376: return res; 23376: } 23376: 23376: inline void 23376: Sparse_Row::reset(dimension_type i) { 23376: ((void) 0); 23376: 23376: tree.erase(i); 23376: ((void) 0); 23376: } 23376: 23376: inline memory_size_type 23376: Sparse_Row::external_memory_in_bytes() const { 23376: return tree.external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Sparse_Row::external_memory_in_bytes(dimension_type ) const { 23376: return external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Sparse_Row::total_memory_in_bytes() const { 23376: return external_memory_in_bytes() + sizeof(*this); 23376: } 23376: 23376: inline memory_size_type 23376: Sparse_Row::total_memory_in_bytes(dimension_type ) const { 23376: return total_memory_in_bytes(); 23376: } 23376: 23376: 23376: 23376: 23376: inline void 23376: swap(Sparse_Row& x, Sparse_Row& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 928 "../../src/Sparse_Row_defs.hh" 2 23376: # 1 "../../src/Sparse_Row_templates.hh" 1 23376: # 27 "../../src/Sparse_Row_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: template 23376: void 23376: Sparse_Row::combine_needs_first(const Sparse_Row& y, 23376: const Func1& f, const Func2& g) { 23376: if (this == &y) { 23376: for (iterator i = begin(), i_end = end(); i != i_end; ++i) { 23376: g(*i, *i); 23376: } 23376: } 23376: else { 23376: iterator i = begin(); 23376: 23376: 23376: 23376: const iterator& i_end = end(); 23376: const_iterator j = y.begin(); 23376: const_iterator j_end = y.end(); 23376: while (i != i_end && j != j_end) { 23376: if (i.index() == j.index()) { 23376: g(*i, *j); 23376: if (*i == 0) { 23376: i = reset(i); 23376: } 23376: else { 23376: ++i; 23376: } 23376: ++j; 23376: } 23376: else 23376: if (i.index() < j.index()) { 23376: f(*i); 23376: if (*i == 0) { 23376: i = reset(i); 23376: } 23376: else { 23376: ++i; 23376: } 23376: } 23376: else { 23376: j = y.lower_bound(j, i.index()); 23376: } 23376: } 23376: while (i != i_end) { 23376: f(*i); 23376: if (*i == 0) { 23376: i = reset(i); 23376: } 23376: else { 23376: ++i; 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Sparse_Row::combine_needs_second(const Sparse_Row& y, 23376: const Func1& g, 23376: const Func2& ) { 23376: iterator i = begin(); 23376: for (const_iterator j = y.begin(), j_end = y.end(); j != j_end; ++j) { 23376: i = insert(i, j.index()); 23376: g(*i, *j); 23376: if (*i == 0) { 23376: i = reset(i); 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Sparse_Row::combine(const Sparse_Row& y, const Func1& f, 23376: const Func2& g, const Func3& h) { 23376: if (this == &y) { 23376: for (iterator i = begin(), i_end = end(); i != i_end; ++i) { 23376: g(*i, *i); 23376: } 23376: } 23376: else { 23376: iterator i = begin(); 23376: 23376: 23376: 23376: const iterator& i_end = end(); 23376: const_iterator j = y.begin(); 23376: const_iterator j_end = y.end(); 23376: while (i != i_end && j != j_end) { 23376: if (i.index() == j.index()) { 23376: g(*i, *j); 23376: if (*i == 0) { 23376: i = reset(i); 23376: } 23376: else { 23376: ++i; 23376: } 23376: ++j; 23376: } 23376: else 23376: if (i.index() < j.index()) { 23376: f(*i); 23376: if (*i == 0) { 23376: i = reset(i); 23376: } 23376: else { 23376: ++i; 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: i = insert(i, j.index()); 23376: h(*i, *j); 23376: if (*i == 0) { 23376: i = reset(i); 23376: } 23376: else { 23376: ++i; 23376: } 23376: ++j; 23376: } 23376: } 23376: ((void) 0); 23376: while (i != i_end) { 23376: f(*i); 23376: if (*i == 0) { 23376: i = reset(i); 23376: } 23376: else { 23376: ++i; 23376: } 23376: } 23376: while (j != j_end) { 23376: i = insert(i, j.index()); 23376: h(*i, *j); 23376: if (*i == 0) { 23376: i = reset(i); 23376: } 23376: ++j; 23376: } 23376: } 23376: } 23376: 23376: } 23376: # 929 "../../src/Sparse_Row_defs.hh" 2 23376: # 34 "../../src/Linear_Expression_Impl_defs.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: std::ostream& 23376: operator<<(std::ostream& s, const Linear_Expression_Impl& e); 23376: 23376: } 23376: 23376: } 23376: # 102 "../../src/Linear_Expression_Impl_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::Linear_Expression_Impl 23376: : public Linear_Expression_Interface { 23376: public: 23376: 23376: Linear_Expression_Impl(); 23376: 23376: 23376: Linear_Expression_Impl(const Linear_Expression_Impl& e); 23376: 23376: 23376: template 23376: Linear_Expression_Impl(const Linear_Expression_Impl& e); 23376: 23376: 23376: Linear_Expression_Impl(const Linear_Expression_Interface& e); 23376: 23376: 23376: virtual ~Linear_Expression_Impl(); 23376: 23376: 23376: virtual bool OK() const; 23376: 23376: 23376: 23376: 23376: 23376: explicit Linear_Expression_Impl(Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression_Impl(Variable v); 23376: 23376: 23376: virtual Representation representation() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: class const_iterator: public const_iterator_interface { 23376: public: 23376: explicit const_iterator(const Row& row, dimension_type i); 23376: 23376: 23376: 23376: 23376: virtual const_iterator_interface* clone() const; 23376: 23376: 23376: 23376: 23376: virtual void operator++(); 23376: 23376: 23376: 23376: 23376: virtual void operator--(); 23376: 23376: 23376: virtual reference operator*() const; 23376: 23376: 23376: 23376: 23376: 23376: virtual Variable variable() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual bool operator==(const const_iterator_interface& x) const; 23376: 23376: private: 23376: 23376: void skip_zeroes_forward(); 23376: void skip_zeroes_backward(); 23376: 23376: const Row* row; 23376: typename Row::const_iterator itr; 23376: }; 23376: 23376: 23376: 23376: virtual const_iterator_interface* begin() const; 23376: 23376: 23376: 23376: virtual const_iterator_interface* end() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual const_iterator_interface* lower_bound(Variable v) const; 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: virtual dimension_type space_dimension() const; 23376: 23376: 23376: virtual void set_space_dimension(dimension_type n); 23376: 23376: 23376: virtual Coefficient_traits::const_reference coefficient(Variable v) const; 23376: 23376: 23376: virtual void set_coefficient(Variable v, 23376: Coefficient_traits::const_reference n); 23376: 23376: 23376: virtual Coefficient_traits::const_reference inhomogeneous_term() const; 23376: 23376: 23376: virtual void set_inhomogeneous_term(Coefficient_traits::const_reference n); 23376: # 243 "../../src/Linear_Expression_Impl_defs.hh" 23376: virtual void linear_combine(const Linear_Expression_Interface& y, Variable v); 23376: 23376: 23376: 23376: virtual void linear_combine(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2); 23376: 23376: 23376: 23376: virtual void linear_combine_lax(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2); 23376: 23376: 23376: virtual void swap_space_dimensions(Variable v1, Variable v2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual void remove_space_dimensions(const Variables_Set& vars); 23376: 23376: 23376: 23376: virtual void shift_space_dimensions(Variable v, dimension_type n); 23376: # 284 "../../src/Linear_Expression_Impl_defs.hh" 23376: virtual void permute_space_dimensions(const std::vector& cycle); 23376: 23376: 23376: virtual bool is_zero() const; 23376: 23376: 23376: 23376: 23376: 23376: virtual bool all_homogeneous_terms_are_zero() const; 23376: 23376: 23376: 23376: 23376: 23376: virtual memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: virtual memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: virtual void ascii_dump(std::ostream& s) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual bool ascii_load(std::istream& s); 23376: 23376: 23376: Linear_Expression_Impl(const Linear_Expression_Interface& e, 23376: dimension_type space_dim); 23376: 23376: 23376: 23376: virtual bool is_equal_to(const Linear_Expression_Interface& x) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual void normalize(); 23376: 23376: 23376: 23376: virtual void sign_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: virtual void negate(dimension_type first, dimension_type last); 23376: 23376: virtual Linear_Expression_Impl& 23376: operator+=(Coefficient_traits::const_reference n); 23376: virtual Linear_Expression_Impl& 23376: operator-=(Coefficient_traits::const_reference n); 23376: # 357 "../../src/Linear_Expression_Impl_defs.hh" 23376: virtual int compare(const Linear_Expression_Interface& y) const; 23376: 23376: virtual Linear_Expression_Impl& 23376: operator+=(const Linear_Expression_Interface& e2); 23376: virtual Linear_Expression_Impl& operator+=(const Variable v); 23376: virtual Linear_Expression_Impl& 23376: operator-=(const Linear_Expression_Interface& e2); 23376: virtual Linear_Expression_Impl& operator-=(const Variable v); 23376: virtual Linear_Expression_Impl& 23376: operator*=(Coefficient_traits::const_reference n); 23376: virtual Linear_Expression_Impl& 23376: operator/=(Coefficient_traits::const_reference n); 23376: 23376: virtual void negate(); 23376: 23376: virtual Linear_Expression_Impl& 23376: add_mul_assign(Coefficient_traits::const_reference n, const Variable v); 23376: 23376: virtual Linear_Expression_Impl& 23376: sub_mul_assign(Coefficient_traits::const_reference n, const Variable v); 23376: 23376: virtual void add_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Interface& e2); 23376: 23376: virtual void sub_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Interface& e2); 23376: 23376: virtual void print(std::ostream& s) const; 23376: 23376: 23376: 23376: 23376: 23376: virtual bool all_zeroes(const Variables_Set& vars) const; 23376: 23376: 23376: 23376: virtual bool have_a_common_variable(const Linear_Expression_Interface& x, 23376: Variable first, Variable last) const; 23376: 23376: 23376: 23376: 23376: 23376: virtual Coefficient_traits::const_reference get(dimension_type i) const; 23376: 23376: 23376: 23376: 23376: 23376: virtual void set(dimension_type i, Coefficient_traits::const_reference n); 23376: # 416 "../../src/Linear_Expression_Impl_defs.hh" 23376: virtual bool all_zeroes(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual dimension_type num_zeroes(dimension_type start, dimension_type end) const; 23376: # 433 "../../src/Linear_Expression_Impl_defs.hh" 23376: virtual Coefficient gcd(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: virtual void exact_div_assign(Coefficient_traits::const_reference c, 23376: dimension_type start, dimension_type end); 23376: 23376: 23376: 23376: 23376: 23376: virtual void mul_assign(Coefficient_traits::const_reference n, 23376: dimension_type start, dimension_type end); 23376: # 466 "../../src/Linear_Expression_Impl_defs.hh" 23376: virtual void 23376: linear_combine(const Linear_Expression_Interface& y, dimension_type i); 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual void linear_combine(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual void linear_combine_lax(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual dimension_type last_nonzero() const; 23376: # 503 "../../src/Linear_Expression_Impl_defs.hh" 23376: virtual bool 23376: all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: virtual void 23376: scalar_product_assign(Coefficient& result, 23376: const Linear_Expression_Interface& y, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: virtual int 23376: scalar_product_sign(const Linear_Expression_Interface& y, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual dimension_type 23376: first_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual dimension_type 23376: last_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: 23376: 23376: virtual void has_a_free_dimension_helper(std::set& x) const; 23376: 23376: 23376: 23376: 23376: 23376: virtual bool is_equal_to(const Linear_Expression_Interface& x, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: virtual bool is_equal_to(const Linear_Expression_Interface& x, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: virtual void get_row(Dense_Row& r) const; 23376: 23376: 23376: 23376: 23376: 23376: virtual void get_row(Sparse_Row& r) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression_Impl(dimension_type space_dim, bool); 23376: # 597 "../../src/Linear_Expression_Impl_defs.hh" 23376: template 23376: void linear_combine(const Linear_Expression_Impl& y, Variable v); 23376: 23376: 23376: 23376: template 23376: void linear_combine(const Linear_Expression_Impl& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2); 23376: 23376: 23376: 23376: template 23376: void linear_combine_lax(const Linear_Expression_Impl& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2); 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Linear_Expression_Impl& x) const; 23376: 23376: template 23376: Linear_Expression_Impl& operator+=(const Linear_Expression_Impl& e2); 23376: template 23376: Linear_Expression_Impl& operator-=(const Linear_Expression_Impl& e2); 23376: 23376: template 23376: Linear_Expression_Impl& 23376: sub_mul_assign(Coefficient_traits::const_reference n, 23376: const Linear_Expression_Impl& y, 23376: dimension_type start, dimension_type end); 23376: 23376: template 23376: void add_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Impl& e2); 23376: 23376: template 23376: void sub_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Impl& e2); 23376: # 653 "../../src/Linear_Expression_Impl_defs.hh" 23376: template 23376: void linear_combine(const Linear_Expression_Impl& y, dimension_type i); 23376: 23376: 23376: 23376: template 23376: void linear_combine(const Linear_Expression_Impl& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: 23376: 23376: template 23376: void linear_combine_lax(const Linear_Expression_Impl& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: # 684 "../../src/Linear_Expression_Impl_defs.hh" 23376: template 23376: int compare(const Linear_Expression_Impl& y) const; 23376: 23376: 23376: template 23376: void 23376: scalar_product_assign(Coefficient& result, 23376: const Linear_Expression_Impl& y, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: template 23376: int scalar_product_sign(const Linear_Expression_Impl& y, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: template 23376: bool is_equal_to(const Linear_Expression_Impl& x, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Linear_Expression_Impl& x, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: template 23376: bool have_a_common_variable(const Linear_Expression_Impl& x, 23376: Variable first, Variable last) const; 23376: 23376: private: 23376: 23376: void construct(const Linear_Expression_Interface& e); 23376: void construct(const Linear_Expression_Interface& e, 23376: dimension_type space_dim); 23376: 23376: template 23376: void construct(const Linear_Expression_Impl& e); 23376: template 23376: void construct(const Linear_Expression_Impl& e, 23376: dimension_type space_dim); 23376: 23376: Row row; 23376: 23376: template 23376: friend class Linear_Expression_Impl; 23376: 23376: }; 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: template <> 23376: bool 23376: Linear_Expression_Impl::OK() const; 23376: template <> 23376: bool 23376: Linear_Expression_Impl::OK() const; 23376: 23376: template <> 23376: bool 23376: Linear_Expression_Impl::all_homogeneous_terms_are_zero() const; 23376: template <> 23376: bool 23376: Linear_Expression_Impl::all_homogeneous_terms_are_zero() const; 23376: 23376: template <> 23376: bool 23376: Linear_Expression_Impl::all_zeroes(dimension_type start, 23376: dimension_type end) const; 23376: template <> 23376: bool 23376: Linear_Expression_Impl::all_zeroes(dimension_type start, 23376: dimension_type end) const; 23376: 23376: template <> 23376: bool 23376: Linear_Expression_Impl 23376: ::all_zeroes(const Variables_Set& vars) const; 23376: template <> 23376: bool 23376: Linear_Expression_Impl 23376: ::all_zeroes(const Variables_Set& vars) const; 23376: 23376: template <> 23376: bool 23376: Linear_Expression_Impl 23376: ::all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const; 23376: template <> 23376: bool 23376: Linear_Expression_Impl 23376: ::all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const; 23376: 23376: template <> 23376: dimension_type 23376: Linear_Expression_Impl 23376: ::first_nonzero(dimension_type first, dimension_type last) const; 23376: template <> 23376: dimension_type 23376: Linear_Expression_Impl 23376: ::first_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: template <> 23376: Coefficient 23376: Linear_Expression_Impl::gcd(dimension_type start, 23376: dimension_type end) const; 23376: template <> 23376: Coefficient 23376: Linear_Expression_Impl::gcd(dimension_type start, 23376: dimension_type end) const; 23376: 23376: template <> 23376: void 23376: Linear_Expression_Impl 23376: ::has_a_free_dimension_helper(std::set& x) const; 23376: template <> 23376: void 23376: Linear_Expression_Impl 23376: ::has_a_free_dimension_helper(std::set& x) const; 23376: 23376: template <> 23376: template <> 23376: bool 23376: Linear_Expression_Impl 23376: ::have_a_common_variable(const Linear_Expression_Impl& y, 23376: Variable first, Variable last) const; 23376: template <> 23376: template <> 23376: bool 23376: Linear_Expression_Impl 23376: ::have_a_common_variable(const Linear_Expression_Impl& y, 23376: Variable first, Variable last) const; 23376: template <> 23376: template <> 23376: bool 23376: Linear_Expression_Impl 23376: ::have_a_common_variable(const Linear_Expression_Impl& y, 23376: Variable first, Variable last) const; 23376: template <> 23376: template <> 23376: bool 23376: Linear_Expression_Impl 23376: ::have_a_common_variable(const Linear_Expression_Impl& y, 23376: Variable first, Variable last) const; 23376: 23376: template <> 23376: bool 23376: Linear_Expression_Impl::is_zero() const; 23376: template <> 23376: bool 23376: Linear_Expression_Impl::is_zero() const; 23376: 23376: template <> 23376: dimension_type 23376: Linear_Expression_Impl::last_nonzero() const; 23376: template <> 23376: dimension_type 23376: Linear_Expression_Impl::last_nonzero() const; 23376: 23376: template <> 23376: dimension_type 23376: Linear_Expression_Impl 23376: ::last_nonzero(dimension_type first, dimension_type last) const; 23376: template <> 23376: dimension_type 23376: Linear_Expression_Impl 23376: ::last_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: template <> 23376: dimension_type 23376: Linear_Expression_Impl::num_zeroes(dimension_type start, 23376: dimension_type end) const; 23376: template <> 23376: dimension_type 23376: Linear_Expression_Impl::num_zeroes(dimension_type start, 23376: dimension_type end) const; 23376: 23376: template <> 23376: void 23376: Linear_Expression_Impl 23376: ::remove_space_dimensions(const Variables_Set& vars); 23376: template <> 23376: void 23376: Linear_Expression_Impl 23376: ::remove_space_dimensions(const Variables_Set& vars); 23376: 23376: template <> 23376: Representation 23376: Linear_Expression_Impl::representation() const; 23376: template <> 23376: Representation 23376: Linear_Expression_Impl::representation() const; 23376: 23376: template <> 23376: void 23376: Linear_Expression_Impl::const_iterator::skip_zeroes_backward(); 23376: template <> 23376: void 23376: Linear_Expression_Impl::const_iterator::skip_zeroes_backward(); 23376: 23376: template <> 23376: void 23376: Linear_Expression_Impl::const_iterator::skip_zeroes_forward(); 23376: template <> 23376: void 23376: Linear_Expression_Impl::const_iterator::skip_zeroes_forward(); 23376: 23376: } 23376: 23376: 23376: # 1 "../../src/Linear_Expression_Impl_inlines.hh" 1 23376: # 27 "../../src/Linear_Expression_Impl_inlines.hh" 23376: # 1 "../../src/math_utilities_defs.hh" 1 23376: # 31 "../../src/math_utilities_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value, void>::type 23376: numer_denom(const T& from, 23376: Coefficient& numer, Coefficient& denom); 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value, void>::type 23376: div_round_up(T& to, 23376: Coefficient_traits::const_reference x, 23376: Coefficient_traits::const_reference y); 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: min_assign(N& x, const N& y); 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: max_assign(N& x, const N& y); 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value, bool>::type 23376: is_even(const T& x); 23376: 23376: 23376: 23376: 23376: template 23376: typename Enable_If::value, bool>::type 23376: is_additive_inverse(const T& x, const T& y); 23376: # 88 "../../src/math_utilities_defs.hh" 23376: void 23376: normalize2(Coefficient_traits::const_reference x, 23376: Coefficient_traits::const_reference y, 23376: Coefficient& n_x, Coefficient& n_y); 23376: 23376: 23376: 23376: 23376: bool 23376: is_canonical(const mpq_class& x); 23376: 23376: 23376: 23376: 23376: template 23376: T 23376: low_bits_mask(unsigned n); 23376: 23376: } 23376: 23376: # 1 "../../src/math_utilities_inlines.hh" 1 23376: # 31 "../../src/math_utilities_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline void 23376: normalize2(Coefficient_traits::const_reference x, 23376: Coefficient_traits::const_reference y, 23376: Coefficient& n_x, Coefficient& n_y) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_gcd; Parma_Polyhedra_Library::Coefficient& gcd = holder_gcd.item(); 23376: gcd_assign(gcd, x, y); 23376: exact_div_assign(n_x, x, gcd); 23376: exact_div_assign(n_y, y, gcd); 23376: } 23376: 23376: template 23376: inline T 23376: low_bits_mask(const unsigned n) { 23376: ((void) 0); 23376: return ~((~static_cast(0)) << n); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, void>::type 23376: numer_denom(const T& from, 23376: Coefficient& numer, Coefficient& denom) { 23376: ((void) 0) 23376: 23376: ; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: assign_r(q, from, ROUND_NOT_NEEDED); 23376: numer = q.get_num(); 23376: denom = q.get_den(); 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, void>::type 23376: div_round_up(T& to, 23376: Coefficient_traits::const_reference x, 23376: Coefficient_traits::const_reference y) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_x; mpq_class& q_x = holder_q_x.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_y; mpq_class& q_y = holder_q_y.item(); 23376: 23376: 23376: assign_r(q_x, x, ROUND_NOT_NEEDED); 23376: assign_r(q_y, y, ROUND_NOT_NEEDED); 23376: div_assign_r(q_x, q_x, q_y, ROUND_NOT_NEEDED); 23376: assign_r(to, q_x, ROUND_UP); 23376: } 23376: 23376: template 23376: inline void 23376: min_assign(N& x, const N& y) { 23376: if (x > y) { 23376: x = y; 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: max_assign(N& x, const N& y) { 23376: if (x < y) { 23376: x = y; 23376: } 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, bool>::type 23376: is_even(const T& x) { 23376: T mod; 23376: return umod_2exp_assign_r(mod, x, 1, ROUND_DIRECT | ROUND_STRICT_RELATION) == V_EQ 23376: && mod == 0; 23376: } 23376: 23376: template 23376: inline typename Enable_If::value, bool>::type 23376: is_additive_inverse(const T& x, const T& y) { 23376: T negated_x; 23376: return neg_assign_r(negated_x, x, ROUND_DIRECT | ROUND_STRICT_RELATION) == V_EQ 23376: && negated_x == y; 23376: } 23376: 23376: inline bool 23376: is_canonical(const mpq_class& x) { 23376: if (x.get_den() <= 0) { 23376: return false; 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp; mpq_class& temp = holder_temp.item(); 23376: temp = x; 23376: temp.canonicalize(); 23376: return temp.get_num() == x.get_num(); 23376: } 23376: 23376: } 23376: # 109 "../../src/math_utilities_defs.hh" 2 23376: # 28 "../../src/Linear_Expression_Impl_inlines.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline dimension_type 23376: Linear_Expression_Impl::max_space_dimension() { 23376: return Row::max_size() - 1; 23376: } 23376: 23376: template 23376: inline 23376: Linear_Expression_Impl::Linear_Expression_Impl() 23376: : row(1) { 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Linear_Expression_Impl 23376: ::Linear_Expression_Impl(dimension_type space_dim, bool) 23376: : row(space_dim + 1) { 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Linear_Expression_Impl::~Linear_Expression_Impl() { 23376: } 23376: 23376: template 23376: inline 23376: Linear_Expression_Impl 23376: ::Linear_Expression_Impl(Coefficient_traits::const_reference n) 23376: : row(1) { 23376: if (n != 0) { 23376: row.insert(0, n); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Linear_Expression_Impl::space_dimension() const { 23376: return row.size() - 1; 23376: } 23376: 23376: template 23376: inline void 23376: Linear_Expression_Impl::set_space_dimension(dimension_type n) { 23376: row.resize(n + 1); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Linear_Expression_Impl::coefficient(Variable v) const { 23376: if (v.space_dimension() > space_dimension()) { 23376: return Coefficient_zero(); 23376: } 23376: return row.get(v.id() + 1); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_Expression_Impl 23376: ::set_coefficient(Variable v, Coefficient_traits::const_reference n) { 23376: ((void) 0); 23376: const dimension_type i = v.space_dimension(); 23376: if (n == 0) { 23376: row.reset(i); 23376: } 23376: else { 23376: row.insert(i, n); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Linear_Expression_Impl::inhomogeneous_term() const { 23376: return row.get(0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_Expression_Impl 23376: ::set_inhomogeneous_term(Coefficient_traits::const_reference n) { 23376: if (n == 0) { 23376: row.reset(0); 23376: } 23376: else { 23376: row.insert(0, n); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_Expression_Impl::swap_space_dimensions(Variable v1, Variable v2) { 23376: row.swap_coefficients(v1.space_dimension(), v2.space_dimension()); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_Expression_Impl::shift_space_dimensions(Variable v, 23376: dimension_type n) { 23376: row.add_zeroes_and_shift(n, v.space_dimension()); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Linear_Expression_Impl::external_memory_in_bytes() const { 23376: return row.external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Linear_Expression_Impl::total_memory_in_bytes() const { 23376: return external_memory_in_bytes() + sizeof(*this); 23376: } 23376: 23376: template 23376: inline Linear_Expression_Impl& 23376: Linear_Expression_Impl::operator+=(Coefficient_traits::const_reference n) { 23376: typename Row::iterator itr = row.insert(0); 23376: (*itr) += n; 23376: if (*itr == 0) { 23376: row.reset(itr); 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: template 23376: inline Linear_Expression_Impl& 23376: Linear_Expression_Impl::operator-=(Coefficient_traits::const_reference n) { 23376: typename Row::iterator itr = row.insert(0); 23376: (*itr) -= n; 23376: if (*itr == 0) { 23376: row.reset(itr); 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: template 23376: inline void 23376: Linear_Expression_Impl::normalize() { 23376: row.normalize(); 23376: ((void) 0); 23376: } 23376: 23376: template <> 23376: inline bool 23376: Linear_Expression_Impl::is_zero() const { 23376: return row.num_stored_elements() == 0; 23376: } 23376: 23376: template <> 23376: inline bool 23376: Linear_Expression_Impl::all_homogeneous_terms_are_zero() const { 23376: return row.lower_bound(1) == row.end(); 23376: } 23376: 23376: template <> 23376: inline bool 23376: Linear_Expression_Impl::all_zeroes(dimension_type start, 23376: dimension_type end) const { 23376: return row.lower_bound(start) == row.lower_bound(end); 23376: } 23376: 23376: template <> 23376: inline dimension_type 23376: Linear_Expression_Impl::num_zeroes(dimension_type start, 23376: dimension_type end) const { 23376: ((void) 0); 23376: return (end - start) 23376: - std::distance(row.lower_bound(start), row.lower_bound(end)); 23376: } 23376: 23376: template <> 23376: inline dimension_type 23376: Linear_Expression_Impl::last_nonzero() const { 23376: if (row.num_stored_elements() == 0) { 23376: return 0; 23376: } 23376: Sparse_Row::const_iterator i = row.end(); 23376: --i; 23376: return i.index(); 23376: } 23376: 23376: template <> 23376: inline dimension_type 23376: Linear_Expression_Impl 23376: ::first_nonzero(dimension_type first, dimension_type last) const { 23376: ((void) 0); 23376: ((void) 0); 23376: Sparse_Row::const_iterator i = row.lower_bound(first); 23376: 23376: if (i != row.end() && i.index() < last) { 23376: return i.index(); 23376: } 23376: else { 23376: return last; 23376: } 23376: } 23376: 23376: template <> 23376: inline dimension_type 23376: Linear_Expression_Impl 23376: ::last_nonzero(dimension_type first, dimension_type last) const { 23376: ((void) 0); 23376: ((void) 0); 23376: Sparse_Row::const_iterator itr1 = row.lower_bound(first); 23376: Sparse_Row::const_iterator itr2 = row.lower_bound(last); 23376: 23376: if (itr1 == itr2) { 23376: return last; 23376: } 23376: 23376: --itr2; 23376: return itr2.index(); 23376: } 23376: 23376: template <> 23376: inline Representation 23376: Linear_Expression_Impl::representation() const { 23376: return DENSE; 23376: } 23376: 23376: template <> 23376: inline Representation 23376: Linear_Expression_Impl::representation() const { 23376: return SPARSE; 23376: } 23376: 23376: template <> 23376: inline void 23376: Linear_Expression_Impl::const_iterator 23376: ::skip_zeroes_forward() { 23376: 23376: } 23376: 23376: template <> 23376: inline void 23376: Linear_Expression_Impl::const_iterator 23376: ::skip_zeroes_backward() { 23376: 23376: } 23376: 23376: namespace IO_Operators { 23376: 23376: template 23376: inline std::ostream& 23376: operator<<(std::ostream& s, const Linear_Expression_Impl& e) { 23376: e.print(s); 23376: return s; 23376: } 23376: 23376: } 23376: 23376: } 23376: # 904 "../../src/Linear_Expression_Impl_defs.hh" 2 23376: # 1 "../../src/Linear_Expression_Impl_templates.hh" 1 23376: # 30 "../../src/Linear_Expression_Impl_templates.hh" 23376: # 1 "../../src/Constraint_defs.hh" 1 23376: # 27 "../../src/Constraint_defs.hh" 23376: # 1 "../../src/Constraint_types.hh" 1 23376: # 16 "../../src/Constraint_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Constraint; 23376: 23376: } 23376: # 28 "../../src/Constraint_defs.hh" 2 23376: 23376: # 1 "../../src/Congruence_types.hh" 1 23376: # 16 "../../src/Congruence_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Congruence; 23376: 23376: } 23376: # 30 "../../src/Constraint_defs.hh" 2 23376: 23376: # 1 "../../src/Polyhedron_types.hh" 1 23376: # 16 "../../src/Polyhedron_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Polyhedron; 23376: 23376: } 23376: # 32 "../../src/Constraint_defs.hh" 2 23376: # 1 "../../src/termination_types.hh" 1 23376: # 16 "../../src/termination_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Termination_Helpers; 23376: 23376: } 23376: # 33 "../../src/Constraint_defs.hh" 2 23376: # 1 "../../src/Octagonal_Shape_types.hh" 1 23376: # 16 "../../src/Octagonal_Shape_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Octagonal_Shape; 23376: 23376: class Octagonal_Shape_Helper; 23376: 23376: } 23376: # 34 "../../src/Constraint_defs.hh" 2 23376: # 1 "../../src/Grid_types.hh" 1 23376: # 16 "../../src/Grid_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Grid; 23376: 23376: } 23376: # 35 "../../src/Constraint_defs.hh" 2 23376: 23376: # 1 "../../src/Linear_Expression_defs.hh" 1 23376: # 30 "../../src/Linear_Expression_defs.hh" 23376: # 1 "../../src/Generator_types.hh" 1 23376: # 16 "../../src/Generator_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Generator; 23376: 23376: } 23376: # 31 "../../src/Linear_Expression_defs.hh" 2 23376: 23376: # 1 "../../src/Grid_Generator_types.hh" 1 23376: # 16 "../../src/Grid_Generator_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Grid_Generator; 23376: 23376: } 23376: # 33 "../../src/Linear_Expression_defs.hh" 2 23376: # 1 "../../src/Linear_System_types.hh" 1 23376: # 16 "../../src/Linear_System_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Linear_System; 23376: 23376: template 23376: class Linear_System_With_Bit_Matrix_iterator; 23376: 23376: } 23376: # 34 "../../src/Linear_Expression_defs.hh" 2 23376: # 1 "../../src/Constraint_System_types.hh" 1 23376: # 16 "../../src/Constraint_System_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Constraint_System; 23376: class Constraint_System_const_iterator; 23376: 23376: } 23376: # 35 "../../src/Linear_Expression_defs.hh" 2 23376: # 1 "../../src/Congruence_System_types.hh" 1 23376: # 16 "../../src/Congruence_System_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Congruence_System; 23376: 23376: } 23376: # 36 "../../src/Linear_Expression_defs.hh" 2 23376: 23376: 23376: 23376: # 1 "../../src/PIP_Problem_types.hh" 1 23376: # 16 "../../src/PIP_Problem_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: enum PIP_Problem_Status { 23376: 23376: UNFEASIBLE_PIP_PROBLEM, 23376: 23376: OPTIMIZED_PIP_PROBLEM 23376: }; 23376: 23376: class PIP_Problem; 23376: 23376: } 23376: # 40 "../../src/Linear_Expression_defs.hh" 2 23376: # 1 "../../src/BHRZ03_Certificate_types.hh" 1 23376: # 16 "../../src/BHRZ03_Certificate_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class BHRZ03_Certificate; 23376: 23376: } 23376: # 41 "../../src/Linear_Expression_defs.hh" 2 23376: # 1 "../../src/Scalar_Products_types.hh" 1 23376: # 16 "../../src/Scalar_Products_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Scalar_Products; 23376: class Topology_Adjusted_Scalar_Product_Sign; 23376: class Topology_Adjusted_Scalar_Product_Assign; 23376: 23376: } 23376: # 42 "../../src/Linear_Expression_defs.hh" 2 23376: # 1 "../../src/MIP_Problem_types.hh" 1 23376: # 16 "../../src/MIP_Problem_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: enum MIP_Problem_Status { 23376: 23376: UNFEASIBLE_MIP_PROBLEM, 23376: 23376: UNBOUNDED_MIP_PROBLEM, 23376: 23376: OPTIMIZED_MIP_PROBLEM 23376: }; 23376: 23376: class MIP_Problem; 23376: 23376: } 23376: # 43 "../../src/Linear_Expression_defs.hh" 2 23376: 23376: # 1 "../../src/BD_Shape_types.hh" 1 23376: # 16 "../../src/BD_Shape_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class BD_Shape; 23376: 23376: class BD_Shape_Helpers; 23376: 23376: } 23376: # 45 "../../src/Linear_Expression_defs.hh" 2 23376: 23376: 23376: 23376: # 1 "../../src/Expression_Adapter_defs.hh" 1 23376: # 27 "../../src/Expression_Adapter_defs.hh" 23376: # 1 "../../src/Expression_Adapter_types.hh" 1 23376: # 16 "../../src/Expression_Adapter_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Expression_Adapter_Base; 23376: 23376: template 23376: class Expression_Adapter; 23376: 23376: template 23376: class Expression_Adapter_Transparent; 23376: 23376: } 23376: # 28 "../../src/Expression_Adapter_defs.hh" 2 23376: # 36 "../../src/Expression_Adapter_defs.hh" 23376: class Parma_Polyhedra_Library::Expression_Adapter_Base { 23376: }; 23376: # 55 "../../src/Expression_Adapter_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::Expression_Adapter 23376: : public Expression_Adapter_Base { 23376: public: 23376: 23376: typedef Expression_Adapter const_reference; 23376: 23376: typedef typename T::const_reference inner_type; 23376: 23376: typedef typename T::raw_type raw_type; 23376: 23376: 23376: inner_type inner() const; 23376: 23376: 23376: typedef typename raw_type::const_iterator const_iterator; 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: const_iterator end() const; 23376: 23376: 23376: 23376: const_iterator lower_bound(Variable v) const; 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: Coefficient_traits::const_reference coefficient(Variable v) const; 23376: 23376: 23376: Coefficient_traits::const_reference inhomogeneous_term() const; 23376: 23376: 23376: bool is_zero() const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_homogeneous_terms_are_zero() const; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Expression& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes(const Variables_Set& vars) const; 23376: 23376: 23376: Coefficient_traits::const_reference get(dimension_type i) const; 23376: 23376: 23376: Coefficient_traits::const_reference get(Variable v) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes(dimension_type start, dimension_type end) const; 23376: 23376: 23376: dimension_type num_zeroes(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: Coefficient gcd(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: dimension_type last_nonzero() const; 23376: 23376: 23376: 23376: dimension_type last_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: dimension_type first_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: void has_a_free_dimension_helper(std::set& x) const; 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Expression& y, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: void get_row(Dense_Row& r) const; 23376: 23376: 23376: void get_row(Sparse_Row& r) const; 23376: 23376: 23376: 23376: template 23376: bool have_a_common_variable(const Expression& y, 23376: Variable first, Variable last) const; 23376: 23376: protected: 23376: 23376: explicit Expression_Adapter(const raw_type& expr); 23376: 23376: const raw_type& raw_; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: class Parma_Polyhedra_Library::Expression_Adapter_Transparent 23376: : public Expression_Adapter { 23376: typedef Expression_Adapter base_type; 23376: public: 23376: 23376: typedef Expression_Adapter_Transparent const_reference; 23376: 23376: typedef typename base_type::inner_type inner_type; 23376: 23376: typedef typename base_type::raw_type raw_type; 23376: 23376: 23376: typedef typename base_type::const_iterator const_iterator; 23376: 23376: 23376: explicit Expression_Adapter_Transparent(const raw_type& expr); 23376: }; 23376: 23376: # 1 "../../src/Expression_Adapter_inlines.hh" 1 23376: # 29 "../../src/Expression_Adapter_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline 23376: Expression_Adapter::Expression_Adapter(const raw_type& expr) 23376: : raw_(expr) { 23376: } 23376: 23376: template 23376: inline typename Expression_Adapter::inner_type 23376: Expression_Adapter::inner() const { 23376: return inner_type(raw_); 23376: } 23376: 23376: template 23376: inline Representation 23376: Expression_Adapter::representation() const { 23376: return inner().representation(); 23376: } 23376: 23376: template 23376: inline typename Expression_Adapter::const_iterator 23376: Expression_Adapter::begin() const { 23376: return inner().begin(); 23376: } 23376: 23376: template 23376: inline typename Expression_Adapter::const_iterator 23376: Expression_Adapter::end() const { 23376: return inner().end(); 23376: } 23376: 23376: template 23376: inline typename Expression_Adapter::const_iterator 23376: Expression_Adapter::lower_bound(Variable v) const { 23376: return inner().lower_bound(v); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Adapter::space_dimension() const { 23376: return inner().space_dimension(); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Adapter::coefficient(Variable v) const { 23376: return inner().coefficient(v); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Adapter::inhomogeneous_term() const { 23376: return inner().inhomogeneous_term(); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Adapter::is_zero() const { 23376: return inner().is_zero(); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Adapter::all_homogeneous_terms_are_zero() const { 23376: return inner().all_homogeneous_terms_are_zero(); 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Adapter::is_equal_to(const Expression& y) const { 23376: return inner().is_equal_to(y); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Adapter 23376: ::all_zeroes(const Variables_Set& vars) const { 23376: return inner().all_zeroes(vars); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Adapter::get(dimension_type i) const { 23376: return inner().get(i); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Adapter::get(Variable v) const { 23376: return inner().get(v); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Adapter::all_zeroes(dimension_type start, 23376: dimension_type end) const { 23376: return inner().all_zeroes(start, end); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Adapter::num_zeroes(dimension_type start, 23376: dimension_type end) const { 23376: return inner().num_zeroes(start, end); 23376: } 23376: 23376: template 23376: inline Coefficient 23376: Expression_Adapter::gcd(dimension_type start, 23376: dimension_type end) const { 23376: return inner().gcd(start, end); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Adapter::last_nonzero() const { 23376: return inner().last_nonzero(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Adapter::last_nonzero(dimension_type first, 23376: dimension_type last) const { 23376: return inner().last_nonzero(first, last); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Adapter::first_nonzero(dimension_type first, 23376: dimension_type last) const { 23376: return inner().first_nonzero(first, last); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Adapter 23376: ::all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const { 23376: return inner().all_zeroes_except(vars, start, end); 23376: } 23376: 23376: template 23376: inline void 23376: Expression_Adapter 23376: ::has_a_free_dimension_helper(std::set& x) const { 23376: inner().has_a_free_dimension_helper(x); 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Adapter 23376: ::is_equal_to(const Expression& y, 23376: dimension_type start, dimension_type end) const { 23376: return inner().is_equal_to(y, start, end); 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Adapter 23376: ::is_equal_to(const Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const { 23376: return inner().is_equal_to(y, c1, c2, start, end); 23376: } 23376: 23376: template 23376: inline void 23376: Expression_Adapter::get_row(Dense_Row& r) const { 23376: inner().get_row(r); 23376: } 23376: 23376: template 23376: inline void 23376: Expression_Adapter::get_row(Sparse_Row& r) const { 23376: inner().get_row(r); 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Adapter 23376: ::have_a_common_variable(const Expression& y, 23376: Variable first, Variable last) const { 23376: return inner().have_a_common_variable(y, first, last); 23376: } 23376: 23376: template 23376: inline 23376: Expression_Adapter_Transparent 23376: ::Expression_Adapter_Transparent(const raw_type& expr) 23376: : base_type(expr) { 23376: } 23376: 23376: } 23376: # 215 "../../src/Expression_Adapter_defs.hh" 2 23376: # 49 "../../src/Linear_Expression_defs.hh" 2 23376: # 1 "../../src/Expression_Hide_Inhomo_types.hh" 1 23376: # 16 "../../src/Expression_Hide_Inhomo_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Expression_Hide_Inhomo; 23376: 23376: } 23376: # 50 "../../src/Linear_Expression_defs.hh" 2 23376: # 1 "../../src/Expression_Hide_Last_types.hh" 1 23376: # 16 "../../src/Expression_Hide_Last_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Expression_Hide_Last; 23376: 23376: } 23376: # 51 "../../src/Linear_Expression_defs.hh" 2 23376: 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression 23376: operator+(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator+(Variable v, Variable w); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator+(Variable v, const Linear_Expression& e); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator+(const Linear_Expression& e, Variable v); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator+(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator+(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator+(const Linear_Expression& e); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator-(const Linear_Expression& e); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator-(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator-(Variable v, Variable w); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator-(Variable v, const Linear_Expression& e); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator-(const Linear_Expression& e, Variable v); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator-(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator-(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator*(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: 23376: 23376: Linear_Expression 23376: operator*(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Linear_Expression& 23376: operator+=(Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression& 23376: operator+=(Linear_Expression& e, Variable v); 23376: 23376: 23376: 23376: Linear_Expression& 23376: operator+=(Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Linear_Expression& 23376: operator-=(Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression& 23376: operator-=(Linear_Expression& e, Variable v); 23376: 23376: 23376: 23376: Linear_Expression& 23376: operator-=(Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Linear_Expression& 23376: operator*=(Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Linear_Expression& 23376: operator/=(Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: void 23376: neg_assign(Linear_Expression& e); 23376: 23376: 23376: 23376: Linear_Expression& 23376: add_mul_assign(Linear_Expression& e, 23376: Coefficient_traits::const_reference n, Variable v); 23376: 23376: 23376: 23376: void add_mul_assign(Linear_Expression& e1, 23376: Coefficient_traits::const_reference factor, 23376: const Linear_Expression& e2); 23376: 23376: 23376: 23376: void sub_mul_assign(Linear_Expression& e1, 23376: Coefficient_traits::const_reference factor, 23376: const Linear_Expression& e2); 23376: 23376: 23376: 23376: Linear_Expression& 23376: sub_mul_assign(Linear_Expression& e, 23376: Coefficient_traits::const_reference n, Variable v); 23376: # 230 "../../src/Linear_Expression_defs.hh" 23376: int compare(const Linear_Expression& x, const Linear_Expression& y); 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Linear_Expression& e); 23376: 23376: } 23376: 23376: } 23376: # 289 "../../src/Linear_Expression_defs.hh" 23376: class Parma_Polyhedra_Library::Linear_Expression { 23376: public: 23376: static const Representation default_representation = SPARSE; 23376: 23376: 23376: explicit Linear_Expression(Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression(const Linear_Expression& e); 23376: 23376: 23376: Linear_Expression(const Linear_Expression& e, Representation r); 23376: 23376: 23376: typedef const Linear_Expression& const_reference; 23376: typedef Linear_Expression raw_type; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: explicit 23376: Linear_Expression(const LE_Adapter& e, 23376: typename 23376: Enable_If::value, 23376: void*>::type = 0); 23376: 23376: 23376: 23376: 23376: template 23376: Linear_Expression(const LE_Adapter& e, 23376: Representation r, 23376: typename 23376: Enable_If::value, 23376: void*>::type = 0); 23376: # 341 "../../src/Linear_Expression_defs.hh" 23376: template 23376: explicit 23376: Linear_Expression(const LE_Adapter& e, 23376: dimension_type space_dim, 23376: typename 23376: Enable_If::value, 23376: void*>::type = 0); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: Linear_Expression(const LE_Adapter& e, 23376: dimension_type space_dim, 23376: Representation r, 23376: typename 23376: Enable_If::value, 23376: void*>::type = 0); 23376: 23376: 23376: Linear_Expression& operator=(const Linear_Expression& e); 23376: 23376: 23376: ~Linear_Expression(); 23376: 23376: 23376: 23376: 23376: 23376: explicit Linear_Expression(Coefficient_traits::const_reference n, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression(Variable v, Representation r = default_representation); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: 23376: 23376: 23376: 23376: class const_iterator { 23376: private: 23376: public: 23376: typedef std::bidirectional_iterator_tag iterator_category; 23376: typedef const Coefficient value_type; 23376: typedef std::ptrdiff_t difference_type; 23376: typedef value_type* pointer; 23376: typedef Coefficient_traits::const_reference reference; 23376: 23376: 23376: 23376: 23376: 23376: explicit const_iterator(); 23376: # 417 "../../src/Linear_Expression_defs.hh" 23376: const_iterator(const const_iterator& i); 23376: 23376: ~const_iterator(); 23376: # 428 "../../src/Linear_Expression_defs.hh" 23376: void m_swap(const_iterator& i); 23376: # 437 "../../src/Linear_Expression_defs.hh" 23376: const_iterator& operator=(const const_iterator& i); 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator& operator++(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator& operator--(); 23376: 23376: 23376: reference operator*() const; 23376: 23376: 23376: 23376: 23376: 23376: Variable variable() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const const_iterator& i) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const const_iterator& i) const; 23376: 23376: private: 23376: 23376: 23376: const_iterator(Linear_Expression_Interface::const_iterator_interface* i); 23376: 23376: Linear_Expression_Interface::const_iterator_interface* itr; 23376: 23376: friend class Linear_Expression; 23376: }; 23376: 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: 23376: const_iterator end() const; 23376: 23376: 23376: 23376: const_iterator lower_bound(Variable v) const; 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: void set_space_dimension(dimension_type n); 23376: 23376: 23376: Coefficient_traits::const_reference coefficient(Variable v) const; 23376: 23376: 23376: void set_coefficient(Variable v, 23376: Coefficient_traits::const_reference n); 23376: 23376: 23376: Coefficient_traits::const_reference inhomogeneous_term() const; 23376: 23376: 23376: void set_inhomogeneous_term(Coefficient_traits::const_reference n); 23376: # 535 "../../src/Linear_Expression_defs.hh" 23376: void linear_combine(const Linear_Expression& y, Variable v); 23376: 23376: 23376: 23376: void linear_combine(const Linear_Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2); 23376: 23376: 23376: 23376: void linear_combine_lax(const Linear_Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2); 23376: 23376: 23376: void swap_space_dimensions(Variable v1, Variable v2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: 23376: 23376: 23376: void shift_space_dimensions(Variable v, dimension_type n); 23376: # 576 "../../src/Linear_Expression_defs.hh" 23376: void permute_space_dimensions(const std::vector& cycle); 23376: 23376: 23376: bool is_zero() const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_homogeneous_terms_are_zero() const; 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: static const Linear_Expression& zero(); 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: void m_swap(Linear_Expression& y); 23376: 23376: 23376: Linear_Expression(const Linear_Expression& e, dimension_type space_dim); 23376: 23376: 23376: Linear_Expression(const Linear_Expression& e, dimension_type space_dim, 23376: Representation r); 23376: 23376: 23376: 23376: bool is_equal_to(const Linear_Expression& x) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void normalize(); 23376: 23376: 23376: 23376: void sign_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes(const Variables_Set& vars) const; 23376: 23376: private: 23376: 23376: 23376: 23376: 23376: static const Linear_Expression* zero_p; 23376: 23376: Linear_Expression_Interface* impl; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression(dimension_type space_dim, bool, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: Coefficient_traits::const_reference get(dimension_type i) const; 23376: 23376: 23376: 23376: 23376: 23376: void set(dimension_type i, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: 23376: 23376: Coefficient_traits::const_reference get(Variable v) const; 23376: 23376: 23376: 23376: 23376: 23376: void set(Variable v, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: dimension_type num_zeroes(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: Coefficient gcd(dimension_type start, dimension_type end) const; 23376: 23376: void exact_div_assign(Coefficient_traits::const_reference c, 23376: dimension_type start, dimension_type end); 23376: # 725 "../../src/Linear_Expression_defs.hh" 23376: void linear_combine(const Linear_Expression& y, dimension_type i); 23376: 23376: 23376: 23376: void linear_combine(const Linear_Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: 23376: 23376: void linear_combine_lax(const Linear_Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end); 23376: 23376: 23376: void mul_assign(Coefficient_traits::const_reference n, 23376: dimension_type start, dimension_type end); 23376: 23376: 23376: 23376: dimension_type last_nonzero() const; 23376: 23376: 23376: 23376: dimension_type last_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: dimension_type first_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: void scalar_product_assign(Coefficient& result, 23376: const Linear_Expression& y) const; 23376: 23376: 23376: void scalar_product_assign(Coefficient& result, const Linear_Expression& y, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: int scalar_product_sign(const Linear_Expression& y) const; 23376: 23376: 23376: 23376: int scalar_product_sign(const Linear_Expression& y, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: void has_a_free_dimension_helper(std::set& x) const; 23376: 23376: 23376: bool is_equal_to(const Linear_Expression& x, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: bool is_equal_to(const Linear_Expression& x, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: void get_row(Dense_Row& r) const; 23376: 23376: 23376: void get_row(Sparse_Row& r) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool have_a_common_variable(const Linear_Expression& x, 23376: Variable first, Variable last) const; 23376: 23376: 23376: 23376: 23376: 23376: void negate(dimension_type first, dimension_type last); 23376: 23376: template 23376: friend class Linear_Expression_Impl; 23376: 23376: 23376: 23376: 23376: 23376: 23376: friend class Grid; 23376: friend class Congruence; 23376: friend class Polyhedron; 23376: friend class PIP_Tree_Node; 23376: friend class Grid_Generator; 23376: friend class Generator; 23376: friend class Constraint; 23376: friend class Constraint_System; 23376: friend class PIP_Problem; 23376: friend class BHRZ03_Certificate; 23376: friend class Scalar_Products; 23376: friend class MIP_Problem; 23376: friend class Box_Helpers; 23376: friend class Congruence_System; 23376: friend class BD_Shape_Helpers; 23376: friend class Octagonal_Shape_Helper; 23376: friend class Termination_Helpers; 23376: template 23376: friend class BD_Shape; 23376: template 23376: friend class Octagonal_Shape; 23376: template 23376: friend class Linear_System; 23376: template 23376: friend class Box; 23376: template 23376: friend class Expression_Adapter; 23376: template 23376: friend class Expression_Hide_Inhomo; 23376: template 23376: friend class Expression_Hide_Last; 23376: 23376: friend Linear_Expression 23376: operator+(const Linear_Expression& e1, const Linear_Expression& e2); 23376: friend Linear_Expression 23376: operator+(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: friend Linear_Expression 23376: operator+(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: friend Linear_Expression 23376: operator+(Variable v, const Linear_Expression& e); 23376: friend Linear_Expression 23376: operator+(Variable v, Variable w); 23376: 23376: friend Linear_Expression 23376: operator-(const Linear_Expression& e); 23376: 23376: friend Linear_Expression 23376: operator-(const Linear_Expression& e1, const Linear_Expression& e2); 23376: friend Linear_Expression 23376: operator-(Variable v, Variable w); 23376: friend Linear_Expression 23376: operator-(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: friend Linear_Expression 23376: operator-(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: friend Linear_Expression 23376: operator-(Variable v, const Linear_Expression& e); 23376: friend Linear_Expression 23376: operator-(const Linear_Expression& e, Variable v); 23376: 23376: friend Linear_Expression 23376: operator*(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: friend Linear_Expression 23376: operator*(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: friend Linear_Expression& 23376: operator+=(Linear_Expression& e1, const Linear_Expression& e2); 23376: friend Linear_Expression& 23376: operator+=(Linear_Expression& e, Variable v); 23376: friend Linear_Expression& 23376: operator+=(Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: friend Linear_Expression& 23376: operator-=(Linear_Expression& e1, const Linear_Expression& e2); 23376: friend Linear_Expression& 23376: operator-=(Linear_Expression& e, Variable v); 23376: friend Linear_Expression& 23376: operator-=(Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: friend Linear_Expression& 23376: operator*=(Linear_Expression& e, Coefficient_traits::const_reference n); 23376: friend Linear_Expression& 23376: operator/=(Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: friend void 23376: neg_assign(Linear_Expression& e); 23376: 23376: friend Linear_Expression& 23376: add_mul_assign(Linear_Expression& e, 23376: Coefficient_traits::const_reference n, Variable v); 23376: friend Linear_Expression& 23376: sub_mul_assign(Linear_Expression& e, 23376: Coefficient_traits::const_reference n, Variable v); 23376: 23376: friend void 23376: add_mul_assign(Linear_Expression& e1, 23376: Coefficient_traits::const_reference factor, 23376: const Linear_Expression& e2); 23376: friend void 23376: sub_mul_assign(Linear_Expression& e1, 23376: Coefficient_traits::const_reference factor, 23376: const Linear_Expression& e2); 23376: 23376: friend int 23376: compare(const Linear_Expression& x, const Linear_Expression& y); 23376: 23376: friend std::ostream& 23376: Parma_Polyhedra_Library::IO_Operators 23376: ::operator<<(std::ostream& s, const Linear_Expression& e); 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: void swap(Linear_Expression& x, Linear_Expression& y); 23376: 23376: 23376: 23376: void swap(Linear_Expression::const_iterator& x, 23376: Linear_Expression::const_iterator& y); 23376: 23376: } 23376: 23376: # 1 "../../src/Linear_Expression_inlines.hh" 1 23376: # 29 "../../src/Linear_Expression_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline Linear_Expression& 23376: Linear_Expression::operator=(const Linear_Expression& e) { 23376: Linear_Expression tmp = e; 23376: swap(*this, tmp); 23376: return *this; 23376: } 23376: 23376: inline 23376: Linear_Expression::~Linear_Expression() { 23376: delete impl; 23376: } 23376: 23376: inline Representation 23376: Linear_Expression::representation() const { 23376: return impl->representation(); 23376: } 23376: 23376: inline dimension_type 23376: Linear_Expression::space_dimension() const { 23376: return impl->space_dimension(); 23376: } 23376: 23376: inline void 23376: Linear_Expression::set_space_dimension(dimension_type n) { 23376: impl->set_space_dimension(n); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Linear_Expression::coefficient(Variable v) const { 23376: return impl->coefficient(v); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::set_coefficient(Variable v, Coefficient_traits::const_reference n) { 23376: impl->set_coefficient(v, n); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Linear_Expression::inhomogeneous_term() const { 23376: return impl->inhomogeneous_term(); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::set_inhomogeneous_term(Coefficient_traits::const_reference n) { 23376: impl->set_inhomogeneous_term(n); 23376: } 23376: 23376: inline void 23376: Linear_Expression::swap_space_dimensions(Variable v1, Variable v2) { 23376: impl->swap_space_dimensions(v1, v2); 23376: } 23376: 23376: inline void 23376: Linear_Expression::shift_space_dimensions(Variable v, dimension_type n) { 23376: impl->shift_space_dimensions(v, n); 23376: } 23376: 23376: inline bool 23376: Linear_Expression::is_zero() const { 23376: return impl->is_zero(); 23376: } 23376: 23376: inline bool 23376: Linear_Expression::all_homogeneous_terms_are_zero() const { 23376: return impl->all_homogeneous_terms_are_zero(); 23376: } 23376: 23376: inline const Linear_Expression& 23376: Linear_Expression::zero() { 23376: ((void) 0); 23376: return *zero_p; 23376: } 23376: 23376: inline memory_size_type 23376: Linear_Expression::external_memory_in_bytes() const { 23376: return impl->total_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Linear_Expression::total_memory_in_bytes() const { 23376: return external_memory_in_bytes() + sizeof(*this); 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator+(const Linear_Expression& e) { 23376: return e; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator+(const Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: Linear_Expression x = e; 23376: x += n; 23376: return x; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator+(const Linear_Expression& e, const Variable v) { 23376: Linear_Expression x = e; 23376: x += v; 23376: return x; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator-(const Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: Linear_Expression x = e; 23376: x -= n; 23376: return x; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator-(const Variable v, const Variable w) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: const dimension_type w_space_dim = w.space_dimension(); 23376: const dimension_type space_dim = std::max(v_space_dim, w_space_dim); 23376: if (space_dim > Linear_Expression::max_space_dimension()) { 23376: throw std::length_error("Linear_Expression " 23376: "PPL::operator+(v, w):\n" 23376: "v or w exceed the maximum allowed " 23376: "space dimension."); 23376: } 23376: if (v_space_dim >= w_space_dim) { 23376: Linear_Expression e(v); 23376: e -= w; 23376: return e; 23376: } 23376: else { 23376: Linear_Expression e(w.space_dimension(), true); 23376: e -= w; 23376: e += v; 23376: return e; 23376: } 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator*(const Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: Linear_Expression x = e; 23376: x *= n; 23376: return x; 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: operator+=(Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: *e.impl += n; 23376: return e; 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: operator-=(Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: *e.impl -= n; 23376: return e; 23376: } 23376: 23376: inline void 23376: Linear_Expression::m_swap(Linear_Expression& y) { 23376: using std::swap; 23376: swap(impl, y.impl); 23376: } 23376: 23376: inline void 23376: Linear_Expression::normalize() { 23376: impl->normalize(); 23376: } 23376: 23376: inline void 23376: Linear_Expression::ascii_dump(std::ostream& s) const { 23376: impl->ascii_dump(s); 23376: } 23376: 23376: inline bool 23376: Linear_Expression::ascii_load(std::istream& s) { 23376: return impl->ascii_load(s); 23376: } 23376: 23376: inline void 23376: Linear_Expression::remove_space_dimensions(const Variables_Set& vars) { 23376: impl->remove_space_dimensions(vars); 23376: } 23376: 23376: inline void 23376: Linear_Expression::permute_space_dimensions(const std::vector& cycle) { 23376: impl->permute_space_dimensions(cycle); 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator+(const Linear_Expression& e1, const Linear_Expression& e2) { 23376: if (e1.space_dimension() >= e2.space_dimension()) { 23376: Linear_Expression e = e1; 23376: e += e2; 23376: return e; 23376: } 23376: else { 23376: Linear_Expression e = e2; 23376: e += e1; 23376: return e; 23376: } 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator+(const Variable v, const Linear_Expression& e) { 23376: return e + v; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator+(Coefficient_traits::const_reference n, 23376: const Linear_Expression& e) { 23376: return e + n; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator+(const Variable v, const Variable w) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: const dimension_type w_space_dim = w.space_dimension(); 23376: const dimension_type space_dim = std::max(v_space_dim, w_space_dim); 23376: if (space_dim > Linear_Expression::max_space_dimension()) { 23376: throw std::length_error("Linear_Expression " 23376: "PPL::operator+(v, w):\n" 23376: "v or w exceed the maximum allowed " 23376: "space dimension."); 23376: } 23376: if (v_space_dim >= w_space_dim) { 23376: Linear_Expression e(v); 23376: e += w; 23376: return e; 23376: } 23376: else { 23376: Linear_Expression e(w); 23376: e += v; 23376: return e; 23376: } 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator-(const Linear_Expression& e) { 23376: Linear_Expression r(e); 23376: neg_assign(r); 23376: return r; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator-(const Linear_Expression& e1, const Linear_Expression& e2) { 23376: if (e1.space_dimension() >= e2.space_dimension()) { 23376: Linear_Expression e = e1; 23376: e -= e2; 23376: return e; 23376: } 23376: else { 23376: Linear_Expression e = e2; 23376: neg_assign(e); 23376: e += e1; 23376: return e; 23376: } 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator-(const Variable v, const Linear_Expression& e) { 23376: Linear_Expression result(e, std::max(v.space_dimension(), e.space_dimension())); 23376: result.negate(0, e.space_dimension() + 1); 23376: result += v; 23376: return result; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator-(const Linear_Expression& e, const Variable v) { 23376: Linear_Expression result(e, std::max(v.space_dimension(), e.space_dimension())); 23376: result -= v; 23376: return result; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator-(Coefficient_traits::const_reference n, 23376: const Linear_Expression& e) { 23376: Linear_Expression result(e); 23376: neg_assign(result); 23376: result += n; 23376: return result; 23376: } 23376: 23376: 23376: inline Linear_Expression 23376: operator*(Coefficient_traits::const_reference n, 23376: const Linear_Expression& e) { 23376: return e * n; 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: operator+=(Linear_Expression& e1, const Linear_Expression& e2) { 23376: *e1.impl += *e2.impl; 23376: return e1; 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: operator+=(Linear_Expression& e, const Variable v) { 23376: *e.impl += v; 23376: return e; 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: operator-=(Linear_Expression& e1, const Linear_Expression& e2) { 23376: *e1.impl -= *e2.impl; 23376: return e1; 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: operator-=(Linear_Expression& e, const Variable v) { 23376: *e.impl -= v; 23376: return e; 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: operator*=(Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: *e.impl *= n; 23376: return e; 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: operator/=(Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: *e.impl /= n; 23376: return e; 23376: } 23376: 23376: 23376: inline void 23376: neg_assign(Linear_Expression& e) { 23376: e.impl->negate(); 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: add_mul_assign(Linear_Expression& e, 23376: Coefficient_traits::const_reference n, 23376: const Variable v) { 23376: e.impl->add_mul_assign(n, v); 23376: return e; 23376: } 23376: 23376: 23376: inline Linear_Expression& 23376: sub_mul_assign(Linear_Expression& e, 23376: Coefficient_traits::const_reference n, 23376: const Variable v) { 23376: e.impl->sub_mul_assign(n, v); 23376: return e; 23376: } 23376: 23376: inline void 23376: add_mul_assign(Linear_Expression& e1, 23376: Coefficient_traits::const_reference factor, 23376: const Linear_Expression& e2) { 23376: e1.impl->add_mul_assign(factor, *e2.impl); 23376: } 23376: 23376: inline void 23376: sub_mul_assign(Linear_Expression& e1, 23376: Coefficient_traits::const_reference factor, 23376: const Linear_Expression& e2) { 23376: e1.impl->sub_mul_assign(factor, *e2.impl); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Linear_Expression::get(dimension_type i) const { 23376: return impl->get(i); 23376: } 23376: 23376: inline void 23376: Linear_Expression::set(dimension_type i, 23376: Coefficient_traits::const_reference n) { 23376: impl->set(i, n); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Linear_Expression::get(Variable v) const { 23376: return impl->get(v.space_dimension()); 23376: } 23376: 23376: inline void 23376: Linear_Expression::set(Variable v, 23376: Coefficient_traits::const_reference n) { 23376: impl->set(v.space_dimension(), n); 23376: } 23376: 23376: inline bool 23376: Linear_Expression::all_zeroes(dimension_type start, dimension_type end) const { 23376: return impl->all_zeroes(start, end); 23376: } 23376: 23376: inline dimension_type 23376: Linear_Expression::num_zeroes(dimension_type start, dimension_type end) const { 23376: return impl->num_zeroes(start, end); 23376: } 23376: 23376: inline Coefficient 23376: Linear_Expression::gcd(dimension_type start, dimension_type end) const { 23376: return impl->gcd(start, end); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::exact_div_assign(Coefficient_traits::const_reference c, 23376: dimension_type start, dimension_type end) { 23376: impl->exact_div_assign(c, start, end); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::mul_assign(Coefficient_traits::const_reference c, 23376: dimension_type start, dimension_type end) { 23376: impl->mul_assign(c, start, end); 23376: } 23376: 23376: inline void 23376: Linear_Expression::sign_normalize() { 23376: impl->sign_normalize(); 23376: } 23376: 23376: inline void 23376: Linear_Expression::negate(dimension_type first, dimension_type last) { 23376: impl->negate(first, last); 23376: } 23376: 23376: inline bool 23376: Linear_Expression::all_zeroes(const Variables_Set& vars) const { 23376: return impl->all_zeroes(vars); 23376: } 23376: 23376: inline bool 23376: Linear_Expression::all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, 23376: dimension_type end) const { 23376: return impl->all_zeroes_except(vars, start, end); 23376: } 23376: 23376: inline dimension_type 23376: Linear_Expression::last_nonzero() const { 23376: return impl->last_nonzero(); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::scalar_product_assign(Coefficient& result, const Linear_Expression& y) const { 23376: scalar_product_assign(result, y, 0, space_dimension() + 1); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::scalar_product_assign(Coefficient& result, const Linear_Expression& y, 23376: dimension_type start, dimension_type end) const { 23376: impl->scalar_product_assign(result, *(y.impl), start, end); 23376: } 23376: 23376: inline int 23376: Linear_Expression 23376: ::scalar_product_sign(const Linear_Expression& y) const { 23376: return scalar_product_sign(y, 0, space_dimension() + 1); 23376: } 23376: 23376: inline int 23376: Linear_Expression 23376: ::scalar_product_sign(const Linear_Expression& y, 23376: dimension_type start, dimension_type end) const { 23376: return impl->scalar_product_sign(*(y.impl), start, end); 23376: } 23376: 23376: inline dimension_type 23376: Linear_Expression 23376: ::first_nonzero(dimension_type first, dimension_type last) const { 23376: return impl->first_nonzero(first, last); 23376: } 23376: 23376: inline dimension_type 23376: Linear_Expression 23376: ::last_nonzero(dimension_type first, dimension_type last) const { 23376: return impl->last_nonzero(first, last); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::has_a_free_dimension_helper(std::set& x) const { 23376: return impl->has_a_free_dimension_helper(x); 23376: } 23376: 23376: inline bool 23376: Linear_Expression 23376: ::is_equal_to(const Linear_Expression& x, 23376: dimension_type start, dimension_type end) const { 23376: return impl->is_equal_to(*(x.impl), start, end); 23376: } 23376: 23376: inline bool 23376: Linear_Expression 23376: ::is_equal_to(const Linear_Expression& x, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const { 23376: return impl->is_equal_to(*(x.impl), c1, c2, start, end); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::get_row(Dense_Row& r) const { 23376: return impl->get_row(r); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::get_row(Sparse_Row& r) const { 23376: return impl->get_row(r); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::linear_combine(const Linear_Expression& y, dimension_type i) { 23376: impl->linear_combine(*y.impl, i); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::linear_combine(const Linear_Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2) { 23376: impl->linear_combine(*y.impl, c1, c2); 23376: } 23376: 23376: inline void 23376: Linear_Expression 23376: ::linear_combine_lax(const Linear_Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2) { 23376: impl->linear_combine_lax(*y.impl, c1, c2); 23376: } 23376: 23376: inline int 23376: compare(const Linear_Expression& x, const Linear_Expression& y) { 23376: return x.impl->compare(*y.impl); 23376: } 23376: 23376: inline bool 23376: Linear_Expression::is_equal_to(const Linear_Expression& x) const { 23376: return impl->is_equal_to(*x.impl); 23376: } 23376: 23376: inline void 23376: Linear_Expression::linear_combine(const Linear_Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, 23376: dimension_type end) { 23376: impl->linear_combine(*y.impl, c1, c2, start, end); 23376: } 23376: 23376: inline void 23376: Linear_Expression::linear_combine_lax(const Linear_Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, 23376: dimension_type end) { 23376: impl->linear_combine_lax(*y.impl, c1, c2, start, end); 23376: } 23376: 23376: inline bool 23376: Linear_Expression 23376: ::have_a_common_variable(const Linear_Expression& x, 23376: Variable first, Variable last) const { 23376: return impl->have_a_common_variable(*(x.impl), first, last); 23376: } 23376: 23376: inline 23376: Linear_Expression::const_iterator 23376: ::const_iterator() 23376: : itr( 23376: # 624 "../../src/Linear_Expression_inlines.hh" 3 4 23376: __null 23376: # 624 "../../src/Linear_Expression_inlines.hh" 23376: ) { 23376: } 23376: 23376: inline 23376: Linear_Expression::const_iterator 23376: ::const_iterator(const const_iterator& i) 23376: : itr(i.itr->clone()) { 23376: } 23376: 23376: inline 23376: Linear_Expression::const_iterator 23376: ::~const_iterator() { 23376: 23376: delete itr; 23376: } 23376: 23376: inline void 23376: Linear_Expression::const_iterator::m_swap(const_iterator& i) { 23376: using std::swap; 23376: swap(itr, i.itr); 23376: } 23376: 23376: inline Linear_Expression::const_iterator& 23376: Linear_Expression::const_iterator 23376: ::operator=(const const_iterator& i) { 23376: const_iterator tmp = i; 23376: using std::swap; 23376: swap(*this, tmp); 23376: return *this; 23376: } 23376: 23376: inline Linear_Expression::const_iterator& 23376: Linear_Expression::const_iterator 23376: ::operator++() { 23376: ((void) 0); 23376: ++(*itr); 23376: return *this; 23376: } 23376: 23376: inline Linear_Expression::const_iterator& 23376: Linear_Expression::const_iterator 23376: ::operator--() { 23376: ((void) 0); 23376: --(*itr); 23376: return *this; 23376: } 23376: 23376: inline Linear_Expression::const_iterator::reference 23376: Linear_Expression::const_iterator 23376: ::operator*() const { 23376: ((void) 0); 23376: return *(*itr); 23376: } 23376: 23376: inline Variable 23376: Linear_Expression::const_iterator 23376: ::variable() const { 23376: ((void) 0); 23376: return itr->variable(); 23376: } 23376: 23376: inline bool 23376: Linear_Expression::const_iterator 23376: ::operator==(const const_iterator& i) const { 23376: ((void) 0); 23376: ((void) 0); 23376: return *itr == *(i.itr); 23376: } 23376: 23376: inline bool 23376: Linear_Expression::const_iterator 23376: ::operator!=(const const_iterator& i) const { 23376: return !(*this == i); 23376: } 23376: 23376: inline 23376: Linear_Expression::const_iterator 23376: ::const_iterator(Linear_Expression_Interface::const_iterator_interface* i) 23376: : itr(i) { 23376: ((void) 0); 23376: } 23376: 23376: inline Linear_Expression::const_iterator 23376: Linear_Expression 23376: ::begin() const { 23376: return const_iterator(impl->begin()); 23376: } 23376: 23376: inline Linear_Expression::const_iterator 23376: Linear_Expression 23376: ::end() const { 23376: return const_iterator(impl->end()); 23376: } 23376: 23376: inline Linear_Expression::const_iterator 23376: Linear_Expression 23376: ::lower_bound(Variable v) const { 23376: return const_iterator(impl->lower_bound(v)); 23376: } 23376: 23376: template 23376: inline 23376: Linear_Expression 23376: ::Linear_Expression(const LE_Adapter& e, 23376: typename Enable_If::value, 23376: void*>::type) 23376: : impl( 23376: # 731 "../../src/Linear_Expression_inlines.hh" 3 4 23376: __null 23376: # 731 "../../src/Linear_Expression_inlines.hh" 23376: ) { 23376: Linear_Expression tmp(e.representation()); 23376: tmp.set_space_dimension(e.space_dimension()); 23376: tmp.set_inhomogeneous_term(e.inhomogeneous_term()); 23376: for (typename LE_Adapter::const_iterator i = e.begin(), 23376: i_end = e.end(); i != i_end; ++i) { 23376: add_mul_assign(tmp, *i, i.variable()); 23376: } 23376: using std::swap; 23376: swap(impl, tmp.impl); 23376: } 23376: 23376: template 23376: inline 23376: Linear_Expression 23376: ::Linear_Expression(const LE_Adapter& e, 23376: Representation r, 23376: typename Enable_If::value, 23376: void*>::type) 23376: : impl( 23376: # 751 "../../src/Linear_Expression_inlines.hh" 3 4 23376: __null 23376: # 751 "../../src/Linear_Expression_inlines.hh" 23376: ) { 23376: Linear_Expression tmp(r); 23376: tmp.set_space_dimension(e.space_dimension()); 23376: tmp.set_inhomogeneous_term(e.inhomogeneous_term()); 23376: for (typename LE_Adapter::const_iterator i = e.begin(), 23376: i_end = e.end(); i != i_end; ++i) { 23376: add_mul_assign(tmp, *i, i.variable()); 23376: } 23376: using std::swap; 23376: swap(impl, tmp.impl); 23376: } 23376: 23376: template 23376: inline 23376: Linear_Expression 23376: ::Linear_Expression(const LE_Adapter& e, 23376: dimension_type space_dim, 23376: typename Enable_If::value, 23376: void*>::type) 23376: : impl( 23376: # 771 "../../src/Linear_Expression_inlines.hh" 3 4 23376: __null 23376: # 771 "../../src/Linear_Expression_inlines.hh" 23376: ) { 23376: Linear_Expression tmp(e.representation()); 23376: tmp.set_space_dimension(space_dim); 23376: tmp.set_inhomogeneous_term(e.inhomogeneous_term()); 23376: typedef typename LE_Adapter::const_iterator itr_t; 23376: itr_t i_end; 23376: if (space_dim <= e.space_dimension()) { 23376: i_end = e.lower_bound(Variable(space_dim)); 23376: } 23376: else { 23376: i_end = e.end(); 23376: } 23376: for (itr_t i = e.begin(); i != i_end; ++i) { 23376: add_mul_assign(tmp, *i, i.variable()); 23376: } 23376: using std::swap; 23376: swap(impl, tmp.impl); 23376: } 23376: 23376: template 23376: inline 23376: Linear_Expression 23376: ::Linear_Expression(const LE_Adapter& e, 23376: dimension_type space_dim, 23376: Representation r, 23376: typename Enable_If::value, 23376: void*>::type) 23376: : impl( 23376: # 799 "../../src/Linear_Expression_inlines.hh" 3 4 23376: __null 23376: # 799 "../../src/Linear_Expression_inlines.hh" 23376: ) { 23376: Linear_Expression tmp(r); 23376: tmp.set_space_dimension(space_dim); 23376: tmp.set_inhomogeneous_term(e.inhomogeneous_term()); 23376: typedef typename LE_Adapter::const_iterator itr_t; 23376: itr_t i_end; 23376: if (space_dim <= e.space_dimension()) { 23376: i_end = e.lower_bound(Variable(space_dim)); 23376: } 23376: else { 23376: i_end = e.end(); 23376: } 23376: for (itr_t i = e.begin(); i != i_end; ++i) { 23376: add_mul_assign(tmp, *i, i.variable()); 23376: } 23376: using std::swap; 23376: swap(impl, tmp.impl); 23376: } 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: inline std::ostream& 23376: operator<<(std::ostream& s, const Linear_Expression& e) { 23376: e.impl->print(s); 23376: return s; 23376: } 23376: 23376: } 23376: 23376: 23376: inline void 23376: swap(Linear_Expression& x, Linear_Expression& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: 23376: inline void 23376: swap(Linear_Expression::const_iterator& x, 23376: Linear_Expression::const_iterator& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 946 "../../src/Linear_Expression_defs.hh" 2 23376: # 37 "../../src/Constraint_defs.hh" 2 23376: 23376: # 1 "../../src/Topology_types.hh" 1 23376: # 16 "../../src/Topology_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: enum Topology { 23376: NECESSARILY_CLOSED = 0, 23376: NOT_NECESSARILY_CLOSED = 1 23376: }; 23376: 23376: } 23376: # 39 "../../src/Constraint_defs.hh" 2 23376: # 1 "../../src/Expression_Hide_Last_defs.hh" 1 23376: # 36 "../../src/Expression_Hide_Last_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::Expression_Hide_Last 23376: : public Expression_Adapter { 23376: typedef Expression_Adapter base_type; 23376: public: 23376: 23376: typedef Expression_Hide_Last const_reference; 23376: 23376: typedef typename base_type::inner_type inner_type; 23376: 23376: typedef typename base_type::raw_type raw_type; 23376: 23376: 23376: typedef typename base_type::const_iterator const_iterator; 23376: 23376: 23376: explicit Expression_Hide_Last(const raw_type& expr, bool hide_last); 23376: 23376: 23376: const_iterator end() const; 23376: 23376: 23376: 23376: const_iterator lower_bound(Variable v) const; 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: Coefficient_traits::const_reference coefficient(Variable v) const; 23376: 23376: 23376: bool is_zero() const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_homogeneous_terms_are_zero() const; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Expression& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes(const Variables_Set& vars) const; 23376: 23376: 23376: Coefficient_traits::const_reference get(dimension_type i) const; 23376: 23376: 23376: Coefficient_traits::const_reference get(Variable v) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes(dimension_type start, dimension_type end) const; 23376: 23376: 23376: dimension_type num_zeroes(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: Coefficient gcd(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: dimension_type last_nonzero() const; 23376: 23376: 23376: 23376: dimension_type last_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: dimension_type first_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: void has_a_free_dimension_helper(std::set& x) const; 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Expression& y, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: void get_row(Dense_Row& r) const; 23376: 23376: 23376: void get_row(Sparse_Row& r) const; 23376: 23376: 23376: 23376: template 23376: bool have_a_common_variable(const Expression& y, 23376: Variable first, Variable last) const; 23376: 23376: private: 23376: 23376: const bool hide_last_; 23376: }; 23376: 23376: # 1 "../../src/Expression_Hide_Last_inlines.hh" 1 23376: # 29 "../../src/Expression_Hide_Last_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline 23376: Expression_Hide_Last::Expression_Hide_Last(const raw_type& expr, 23376: const bool hide_last) 23376: : base_type(expr), hide_last_(hide_last) { 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Hide_Last::space_dimension() const { 23376: dimension_type dim = this->inner().space_dimension(); 23376: if (hide_last_) { 23376: ((void) 0); 23376: --dim; 23376: } 23376: return dim; 23376: } 23376: 23376: template 23376: inline typename Expression_Hide_Last::const_iterator 23376: Expression_Hide_Last::end() const { 23376: if (hide_last_) { 23376: return this->inner().lower_bound(Variable(space_dimension())); 23376: } 23376: else { 23376: return this->inner().end(); 23376: } 23376: } 23376: 23376: template 23376: inline typename Expression_Hide_Last::const_iterator 23376: Expression_Hide_Last::lower_bound(Variable v) const { 23376: ((void) 0); 23376: return this->inner().lower_bound(v); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Hide_Last::coefficient(Variable v) const { 23376: ((void) 0); 23376: return this->inner().coefficient(v); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Hide_Last::is_zero() const { 23376: return this->inner().all_zeroes(0, space_dimension() + 1); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Hide_Last::all_homogeneous_terms_are_zero() const { 23376: return this->inner().all_zeroes(1, space_dimension() + 1); 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Hide_Last 23376: ::is_equal_to(const Expression& y) const { 23376: const dimension_type x_dim = space_dimension(); 23376: const dimension_type y_dim = y.space_dimension(); 23376: if (x_dim != y_dim) { 23376: return false; 23376: } 23376: return is_equal_to(y, 0, x_dim + 1); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Hide_Last::all_zeroes(const Variables_Set& vars) const { 23376: ((void) 0); 23376: return this->inner().all_zeroes(vars); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Hide_Last::get(dimension_type i) const { 23376: ((void) 0); 23376: return this->inner().get(i); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Hide_Last::get(Variable v) const { 23376: ((void) 0); 23376: return this->inner().get(v); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Hide_Last::all_zeroes(dimension_type start, 23376: dimension_type end) const { 23376: ((void) 0); 23376: return this->inner().all_zeroes(start, end); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Hide_Last::num_zeroes(dimension_type start, 23376: dimension_type end) const { 23376: ((void) 0); 23376: return this->inner().num_zeroes(start, end); 23376: } 23376: 23376: template 23376: inline Coefficient 23376: Expression_Hide_Last::gcd(dimension_type start, 23376: dimension_type end) const { 23376: ((void) 0); 23376: return this->inner().gcd(start, end); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Hide_Last::last_nonzero() const { 23376: return this->inner().last_nonzero(0, space_dimension() + 1); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Hide_Last::last_nonzero(dimension_type first, 23376: dimension_type last) const { 23376: ((void) 0); 23376: return this->inner().last_nonzero(first, last); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Hide_Last::first_nonzero(dimension_type first, 23376: dimension_type last) const { 23376: ((void) 0); 23376: return this->inner().first_nonzero(first, last); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Hide_Last 23376: ::all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const { 23376: ((void) 0); 23376: return this->inner().all_zeroes_except(vars, start, end); 23376: } 23376: 23376: template 23376: inline void 23376: Expression_Hide_Last 23376: ::has_a_free_dimension_helper(std::set& x) const { 23376: if (x.empty()) { 23376: return; 23376: } 23376: ((void) 0); 23376: this->inner().has_a_free_dimension_helper(x); 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Hide_Last 23376: ::is_equal_to(const Expression& y, 23376: dimension_type start, dimension_type end) const { 23376: ((void) 0); 23376: ((void) 0); 23376: return this->inner().is_equal_to(y, start, end); 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Hide_Last 23376: ::is_equal_to(const Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const { 23376: ((void) 0); 23376: ((void) 0); 23376: return this->inner().is_equal_to(y, c1, c2, start, end); 23376: } 23376: 23376: template 23376: inline void 23376: Expression_Hide_Last::get_row(Dense_Row& r) const { 23376: this->inner().get_row(r); 23376: if (hide_last_) { 23376: ((void) 0); 23376: r.resize(r.size() - 1); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Expression_Hide_Last::get_row(Sparse_Row& r) const { 23376: this->inner().get_row(r); 23376: if (hide_last_) { 23376: ((void) 0); 23376: r.resize(r.size() - 1); 23376: } 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Hide_Last 23376: ::have_a_common_variable(const Expression& y, 23376: Variable first, Variable last) const { 23376: ((void) 0); 23376: ((void) 0); 23376: return this->inner().have_a_common_variable(y, first, last); 23376: } 23376: 23376: } 23376: # 164 "../../src/Expression_Hide_Last_defs.hh" 2 23376: # 40 "../../src/Constraint_defs.hh" 2 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: Constraint 23376: operator<(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: Constraint 23376: operator<(Variable v1, Variable v2); 23376: 23376: 23376: 23376: Constraint 23376: operator<(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Constraint 23376: operator<(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: 23376: 23376: Constraint 23376: operator>(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: Constraint 23376: operator>(Variable v1, Variable v2); 23376: 23376: 23376: 23376: Constraint 23376: operator>(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Constraint 23376: operator>(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: 23376: 23376: Constraint 23376: operator==(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: Constraint 23376: operator==(Variable v1, Variable v2); 23376: 23376: 23376: 23376: Constraint 23376: operator==(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Constraint 23376: operator==(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: 23376: 23376: Constraint 23376: operator<=(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: Constraint 23376: operator<=(Variable v1, Variable v2); 23376: 23376: 23376: 23376: Constraint 23376: operator<=(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Constraint 23376: operator<=(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: 23376: 23376: Constraint 23376: operator>=(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: Constraint 23376: operator>=(Variable v1, Variable v2); 23376: 23376: 23376: 23376: Constraint 23376: operator>=(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: Constraint 23376: operator>=(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: # 182 "../../src/Constraint_defs.hh" 23376: int compare(const Constraint& x, const Constraint& y); 23376: 23376: } 23376: # 284 "../../src/Constraint_defs.hh" 23376: class Parma_Polyhedra_Library::Constraint { 23376: public: 23376: 23376: 23376: enum Type { 23376: 23376: EQUALITY, 23376: 23376: NONSTRICT_INEQUALITY, 23376: 23376: STRICT_INEQUALITY 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const Representation default_representation = SPARSE; 23376: 23376: 23376: explicit Constraint(Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: Constraint(const Constraint& c); 23376: 23376: 23376: 23376: 23376: 23376: 23376: Constraint(const Constraint& c, dimension_type space_dim); 23376: 23376: 23376: Constraint(const Constraint& c, Representation r); 23376: 23376: 23376: Constraint(const Constraint& c, dimension_type space_dim, 23376: Representation r); 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit Constraint(const Congruence& cg, 23376: Representation r = default_representation); 23376: 23376: 23376: ~Constraint(); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: Constraint& operator=(const Constraint& c); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: void set_space_dimension(dimension_type space_dim); 23376: 23376: 23376: void swap_space_dimensions(Variable v1, Variable v2); 23376: # 371 "../../src/Constraint_defs.hh" 23376: bool remove_space_dimensions(const Variables_Set& vars); 23376: # 385 "../../src/Constraint_defs.hh" 23376: void permute_space_dimensions(const std::vector& cycle); 23376: 23376: 23376: 23376: void shift_space_dimensions(Variable v, dimension_type n); 23376: 23376: 23376: Type type() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_equality() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_inequality() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_nonstrict_inequality() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_strict_inequality() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Coefficient_traits::const_reference coefficient(Variable v) const; 23376: 23376: 23376: Coefficient_traits::const_reference inhomogeneous_term() const; 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: static const Constraint& zero_dim_false(); 23376: 23376: 23376: 23376: 23376: 23376: static const Constraint& zero_dim_positivity(); 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: # 463 "../../src/Constraint_defs.hh" 23376: bool is_tautological() const; 23376: # 477 "../../src/Constraint_defs.hh" 23376: bool is_inconsistent() const; 23376: # 487 "../../src/Constraint_defs.hh" 23376: bool is_equivalent_to(const Constraint& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_equal_to(const Constraint& y) const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: void m_swap(Constraint& y); 23376: 23376: 23376: static const Constraint& epsilon_geq_zero(); 23376: 23376: 23376: 23376: 23376: 23376: static const Constraint& epsilon_leq_one(); 23376: 23376: 23376: typedef Expression_Hide_Last expr_type; 23376: 23376: expr_type expression() const; 23376: 23376: private: 23376: 23376: 23376: enum Kind { 23376: LINE_OR_EQUALITY = 0, 23376: RAY_OR_POINT_OR_INEQUALITY = 1 23376: }; 23376: 23376: Linear_Expression expr; 23376: 23376: Kind kind_; 23376: 23376: Topology topology_; 23376: 23376: 23376: 23376: 23376: 23376: static const Constraint* zero_dim_false_p; 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const Constraint* zero_dim_positivity_p; 23376: 23376: 23376: 23376: 23376: 23376: static const Constraint* epsilon_geq_zero_p; 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const Constraint* epsilon_leq_one_p; 23376: 23376: 23376: Constraint(dimension_type space_dim, Kind kind, Topology topology, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Constraint(Linear_Expression& e, Kind kind, Topology topology); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Constraint(Linear_Expression& e, Type type, Topology topology); 23376: 23376: 23376: 23376: 23376: 23376: bool is_line_or_equality() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_ray_or_point_or_inequality() const; 23376: 23376: 23376: void set_is_line_or_equality(); 23376: 23376: 23376: void set_is_ray_or_point_or_inequality(); 23376: 23376: 23376: 23376: 23376: Topology topology() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_not_necessarily_closed() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_necessarily_closed() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void set_topology(Topology x); 23376: 23376: 23376: void set_necessarily_closed(); 23376: 23376: 23376: void set_not_necessarily_closed(); 23376: # 642 "../../src/Constraint_defs.hh" 23376: void set_space_dimension_no_ok(dimension_type space_dim); 23376: 23376: 23376: 23376: 23376: 23376: void 23376: throw_invalid_argument(const char* method, const char* message) const; 23376: 23376: 23376: 23376: 23376: 23376: void 23376: throw_dimension_incompatible(const char* method, 23376: const char* name_var, 23376: Variable v) const; 23376: 23376: 23376: Coefficient_traits::const_reference epsilon_coefficient() const; 23376: 23376: 23376: void set_epsilon_coefficient(Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void mark_as_necessarily_closed(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void mark_as_not_necessarily_closed(); 23376: 23376: 23376: void set_is_equality(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void set_is_inequality(); 23376: # 703 "../../src/Constraint_defs.hh" 23376: void linear_combine(const Constraint& y, dimension_type i); 23376: 23376: 23376: 23376: 23376: 23376: void sign_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void strong_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: bool check_strong_normalized() const; 23376: 23376: 23376: 23376: 23376: 23376: static Constraint construct_epsilon_geq_zero(); 23376: 23376: friend int 23376: compare(const Constraint& x, const Constraint& y); 23376: 23376: friend class Linear_System; 23376: friend class Constraint_System; 23376: friend class Polyhedron; 23376: friend class Scalar_Products; 23376: friend class Topology_Adjusted_Scalar_Product_Sign; 23376: friend class Termination_Helpers; 23376: friend class Grid; 23376: template 23376: friend class Octagonal_Shape; 23376: 23376: friend Constraint 23376: operator<(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: friend Constraint 23376: operator<(Variable v1, Variable v2); 23376: 23376: friend Constraint 23376: operator<(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: friend Constraint 23376: operator<(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: friend Constraint 23376: operator>(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: friend Constraint 23376: operator>(Variable v1, Variable v2); 23376: 23376: friend Constraint 23376: operator>(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: friend Constraint 23376: operator>(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: friend Constraint 23376: operator==(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: friend Constraint 23376: operator==(Variable v1, Variable v2); 23376: 23376: friend Constraint 23376: operator==(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: friend Constraint 23376: operator==(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: friend Constraint 23376: operator<=(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: friend Constraint 23376: operator<=(Variable v1, Variable v2); 23376: 23376: friend Constraint 23376: operator<=(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: friend Constraint 23376: operator<=(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: 23376: friend Constraint 23376: operator>=(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: friend Constraint 23376: operator>=(Variable v1, Variable v2); 23376: 23376: friend Constraint 23376: operator>=(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: 23376: friend Constraint 23376: operator>=(Coefficient_traits::const_reference n, const Linear_Expression& e); 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Constraint& c); 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Constraint::Type& t); 23376: 23376: } 23376: 23376: 23376: 23376: bool 23376: operator==(const Constraint& x, const Constraint& y); 23376: 23376: 23376: 23376: bool 23376: operator!=(const Constraint& x, const Constraint& y); 23376: 23376: 23376: void swap(Constraint& x, Constraint& y); 23376: 23376: } 23376: 23376: # 1 "../../src/Constraint_inlines.hh" 1 23376: # 29 "../../src/Constraint_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline bool 23376: Constraint::is_necessarily_closed() const { 23376: return (topology_ == NECESSARILY_CLOSED); 23376: } 23376: 23376: inline bool 23376: Constraint::is_not_necessarily_closed() const { 23376: return !is_necessarily_closed(); 23376: } 23376: 23376: inline Constraint::expr_type 23376: Constraint::expression() const { 23376: return expr_type(expr, is_not_necessarily_closed()); 23376: } 23376: 23376: inline dimension_type 23376: Constraint::space_dimension() const { 23376: return expression().space_dimension(); 23376: } 23376: 23376: inline void 23376: Constraint::shift_space_dimensions(Variable v, dimension_type n) { 23376: expr.shift_space_dimensions(v, n); 23376: } 23376: 23376: inline bool 23376: Constraint::is_line_or_equality() const { 23376: return (kind_ == LINE_OR_EQUALITY); 23376: } 23376: 23376: inline bool 23376: Constraint::is_ray_or_point_or_inequality() const { 23376: return (kind_ == RAY_OR_POINT_OR_INEQUALITY); 23376: } 23376: 23376: inline Topology 23376: Constraint::topology() const { 23376: return topology_; 23376: } 23376: 23376: inline void 23376: Constraint::set_is_line_or_equality() { 23376: kind_ = LINE_OR_EQUALITY; 23376: } 23376: 23376: inline void 23376: Constraint::set_is_ray_or_point_or_inequality() { 23376: kind_ = RAY_OR_POINT_OR_INEQUALITY; 23376: } 23376: 23376: inline void 23376: Constraint::set_topology(Topology x) { 23376: if (topology() == x) { 23376: return; 23376: } 23376: if (topology() == NECESSARILY_CLOSED) { 23376: 23376: expr.set_space_dimension(expr.space_dimension() + 1); 23376: } 23376: else { 23376: ((void) 0); 23376: expr.set_space_dimension(expr.space_dimension() - 1); 23376: } 23376: topology_ = x; 23376: } 23376: 23376: inline void 23376: Constraint::mark_as_necessarily_closed() { 23376: ((void) 0); 23376: topology_ = NECESSARILY_CLOSED; 23376: } 23376: 23376: inline void 23376: Constraint::mark_as_not_necessarily_closed() { 23376: ((void) 0); 23376: topology_ = NOT_NECESSARILY_CLOSED; 23376: } 23376: 23376: inline void 23376: Constraint::set_necessarily_closed() { 23376: set_topology(NECESSARILY_CLOSED); 23376: } 23376: 23376: inline void 23376: Constraint::set_not_necessarily_closed() { 23376: set_topology(NOT_NECESSARILY_CLOSED); 23376: } 23376: 23376: inline 23376: Constraint::Constraint(Representation r) 23376: : expr(r), 23376: kind_(RAY_OR_POINT_OR_INEQUALITY), 23376: topology_(NECESSARILY_CLOSED) { 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Constraint::Constraint(dimension_type space_dim, Kind kind, Topology topology, 23376: Representation r) 23376: : expr(r), 23376: kind_(kind), 23376: topology_(topology) { 23376: expr.set_space_dimension(space_dim + 1); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Constraint::Constraint(Linear_Expression& e, Kind kind, Topology topology) 23376: : kind_(kind), 23376: topology_(topology) { 23376: ((void) 0); 23376: swap(expr, e); 23376: if (topology == NOT_NECESSARILY_CLOSED) { 23376: 23376: expr.set_space_dimension(expr.space_dimension() + 1); 23376: } 23376: strong_normalize(); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Constraint::Constraint(Linear_Expression& e, Type type, Topology topology) 23376: : topology_(topology) { 23376: ((void) 0); 23376: swap(expr, e); 23376: if (topology == NOT_NECESSARILY_CLOSED) { 23376: expr.set_space_dimension(expr.space_dimension() + 1); 23376: } 23376: if (type == EQUALITY) { 23376: kind_ = LINE_OR_EQUALITY; 23376: } 23376: else { 23376: kind_ = RAY_OR_POINT_OR_INEQUALITY; 23376: } 23376: strong_normalize(); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Constraint::Constraint(const Constraint& c) 23376: : expr(c.expr), 23376: kind_(c.kind_), 23376: topology_(c.topology_) { 23376: 23376: } 23376: 23376: inline 23376: Constraint::Constraint(const Constraint& c, Representation r) 23376: : expr(c.expr, r), 23376: kind_(c.kind_), 23376: topology_(c.topology_) { 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Constraint::Constraint(const Constraint& c, const dimension_type space_dim) 23376: : expr(c.expr, c.is_necessarily_closed() ? space_dim : (space_dim + 1)), 23376: kind_(c.kind_), topology_(c.topology_) { 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Constraint::Constraint(const Constraint& c, const dimension_type space_dim, 23376: Representation r) 23376: : expr(c.expr, c.is_necessarily_closed() ? space_dim : (space_dim + 1), r), 23376: kind_(c.kind_), topology_(c.topology_) { 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Constraint::~Constraint() { 23376: } 23376: 23376: inline Constraint& 23376: Constraint::operator=(const Constraint& c) { 23376: Constraint tmp = c; 23376: swap(*this, tmp); 23376: 23376: return *this; 23376: } 23376: 23376: inline Representation 23376: Constraint::representation() const { 23376: return expr.representation(); 23376: } 23376: 23376: inline void 23376: Constraint::set_representation(Representation r) { 23376: expr.set_representation(r); 23376: } 23376: 23376: inline dimension_type 23376: Constraint::max_space_dimension() { 23376: return Linear_Expression::max_space_dimension(); 23376: } 23376: 23376: inline void 23376: Constraint::set_space_dimension_no_ok(dimension_type space_dim) { 23376: const dimension_type old_expr_space_dim = expr.space_dimension(); 23376: if (topology() == NECESSARILY_CLOSED) { 23376: expr.set_space_dimension(space_dim); 23376: } 23376: else { 23376: const dimension_type old_space_dim = space_dimension(); 23376: if (space_dim > old_space_dim) { 23376: expr.set_space_dimension(space_dim + 1); 23376: expr.swap_space_dimensions(Variable(space_dim), Variable(old_space_dim)); 23376: } 23376: else { 23376: expr.swap_space_dimensions(Variable(space_dim), Variable(old_space_dim)); 23376: expr.set_space_dimension(space_dim + 1); 23376: } 23376: } 23376: ((void) 0); 23376: if (expr.space_dimension() < old_expr_space_dim) { 23376: strong_normalize(); 23376: } 23376: } 23376: 23376: inline void 23376: Constraint::set_space_dimension(dimension_type space_dim) { 23376: set_space_dimension_no_ok(space_dim); 23376: ((void) 0); 23376: } 23376: 23376: inline bool 23376: Constraint::remove_space_dimensions(const Variables_Set& vars) { 23376: expr.remove_space_dimensions(vars); 23376: return true; 23376: } 23376: 23376: inline bool 23376: Constraint::is_equality() const { 23376: return is_line_or_equality(); 23376: } 23376: 23376: inline bool 23376: Constraint::is_inequality() const { 23376: return is_ray_or_point_or_inequality(); 23376: } 23376: 23376: inline Constraint::Type 23376: Constraint::type() const { 23376: if (is_equality()) { 23376: return EQUALITY; 23376: } 23376: if (is_necessarily_closed()) { 23376: return NONSTRICT_INEQUALITY; 23376: } 23376: if (epsilon_coefficient() < 0) { 23376: return STRICT_INEQUALITY; 23376: } 23376: else { 23376: return NONSTRICT_INEQUALITY; 23376: } 23376: } 23376: 23376: inline bool 23376: Constraint::is_nonstrict_inequality() const { 23376: return type() == NONSTRICT_INEQUALITY; 23376: } 23376: 23376: inline bool 23376: Constraint::is_strict_inequality() const { 23376: return type() == STRICT_INEQUALITY; 23376: } 23376: 23376: inline void 23376: Constraint::set_is_equality() { 23376: set_is_line_or_equality(); 23376: } 23376: 23376: inline void 23376: Constraint::set_is_inequality() { 23376: set_is_ray_or_point_or_inequality(); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Constraint::coefficient(const Variable v) const { 23376: if (v.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("coefficient(v)", "v", v); 23376: } 23376: return expr.coefficient(v); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Constraint::inhomogeneous_term() const { 23376: return expr.inhomogeneous_term(); 23376: } 23376: 23376: inline memory_size_type 23376: Constraint::external_memory_in_bytes() const { 23376: return expr.external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Constraint::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline void 23376: Constraint::strong_normalize() { 23376: expr.normalize(); 23376: sign_normalize(); 23376: } 23376: 23376: 23376: inline bool 23376: operator==(const Constraint& x, const Constraint& y) { 23376: return x.is_equivalent_to(y); 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Constraint& x, const Constraint& y) { 23376: return !x.is_equivalent_to(y); 23376: } 23376: 23376: 23376: inline Constraint 23376: operator==(const Linear_Expression& e1, const Linear_Expression& e2) { 23376: Linear_Expression diff(e1, 23376: std::max(e1.space_dimension(), e2.space_dimension()), 23376: Constraint::default_representation); 23376: diff -= e2; 23376: return Constraint(diff, Constraint::EQUALITY, NECESSARILY_CLOSED); 23376: } 23376: 23376: 23376: inline Constraint 23376: operator==(Variable v1, Variable v2) { 23376: if (v1.space_dimension() > v2.space_dimension()) { 23376: swap(v1, v2); 23376: } 23376: ((void) 0); 23376: 23376: Linear_Expression diff(v1, Constraint::default_representation); 23376: diff -= v2; 23376: return Constraint(diff, Constraint::EQUALITY, NECESSARILY_CLOSED); 23376: } 23376: 23376: 23376: inline Constraint 23376: operator>=(const Linear_Expression& e1, const Linear_Expression& e2) { 23376: Linear_Expression diff(e1, 23376: std::max(e1.space_dimension(), e2.space_dimension()), 23376: Constraint::default_representation); 23376: diff -= e2; 23376: return Constraint(diff, Constraint::NONSTRICT_INEQUALITY, NECESSARILY_CLOSED); 23376: } 23376: 23376: 23376: inline Constraint 23376: operator>=(const Variable v1, const Variable v2) { 23376: Linear_Expression diff(Constraint::default_representation); 23376: diff.set_space_dimension(std::max(v1.space_dimension(), 23376: v2.space_dimension())); 23376: diff += v1; 23376: diff -= v2; 23376: return Constraint(diff, Constraint::NONSTRICT_INEQUALITY, NECESSARILY_CLOSED); 23376: } 23376: 23376: 23376: inline Constraint 23376: operator>(const Linear_Expression& e1, const Linear_Expression& e2) { 23376: Linear_Expression diff(e1, Constraint::default_representation); 23376: diff -= e2; 23376: Constraint c(diff, Constraint::STRICT_INEQUALITY, NOT_NECESSARILY_CLOSED); 23376: 23376: 23376: c.set_epsilon_coefficient(-1); 23376: ((void) 0); 23376: 23376: return c; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator>(const Variable v1, const Variable v2) { 23376: Linear_Expression diff(Constraint::default_representation); 23376: diff.set_space_dimension(std::max(v1.space_dimension(), 23376: v2.space_dimension())); 23376: diff += v1; 23376: diff -= v2; 23376: Constraint c(diff, Constraint::STRICT_INEQUALITY, NOT_NECESSARILY_CLOSED); 23376: 23376: c.set_epsilon_coefficient(-1); 23376: ((void) 0); 23376: 23376: return c; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator==(Coefficient_traits::const_reference n, const Linear_Expression& e) { 23376: Linear_Expression diff(e, Constraint::default_representation); 23376: neg_assign(diff); 23376: diff += n; 23376: return Constraint(diff, Constraint::EQUALITY, NECESSARILY_CLOSED); 23376: } 23376: 23376: 23376: inline Constraint 23376: operator>=(Coefficient_traits::const_reference n, const Linear_Expression& e) { 23376: Linear_Expression diff(e, Constraint::default_representation); 23376: neg_assign(diff); 23376: diff += n; 23376: return Constraint(diff, Constraint::NONSTRICT_INEQUALITY, NECESSARILY_CLOSED); 23376: } 23376: 23376: 23376: inline Constraint 23376: operator>(Coefficient_traits::const_reference n, const Linear_Expression& e) { 23376: Linear_Expression diff(e, Constraint::default_representation); 23376: neg_assign(diff); 23376: diff += n; 23376: Constraint c(diff, Constraint::STRICT_INEQUALITY, NOT_NECESSARILY_CLOSED); 23376: 23376: 23376: c.set_epsilon_coefficient(-1); 23376: ((void) 0); 23376: 23376: return c; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator==(const Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: Linear_Expression diff(e, Constraint::default_representation); 23376: diff -= n; 23376: return Constraint(diff, Constraint::EQUALITY, NECESSARILY_CLOSED); 23376: } 23376: 23376: 23376: inline Constraint 23376: operator>=(const Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: Linear_Expression diff(e, Constraint::default_representation); 23376: diff -= n; 23376: return Constraint(diff, Constraint::NONSTRICT_INEQUALITY, NECESSARILY_CLOSED); 23376: } 23376: 23376: 23376: inline Constraint 23376: operator>(const Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: Linear_Expression diff(e, Constraint::default_representation); 23376: diff -= n; 23376: Constraint c(diff, Constraint::STRICT_INEQUALITY, NOT_NECESSARILY_CLOSED); 23376: 23376: 23376: c.set_epsilon_coefficient(-1); 23376: ((void) 0); 23376: 23376: return c; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator<=(const Linear_Expression& e1, const Linear_Expression& e2) { 23376: return e2 >= e1; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator<=(const Variable v1, const Variable v2) { 23376: return v2 >= v1; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator<=(Coefficient_traits::const_reference n, const Linear_Expression& e) { 23376: return e >= n; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator<=(const Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: return n >= e; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator<(const Linear_Expression& e1, const Linear_Expression& e2) { 23376: return e2 > e1; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator<(const Variable v1, const Variable v2) { 23376: return v2 > v1; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator<(Coefficient_traits::const_reference n, const Linear_Expression& e) { 23376: return e > n; 23376: } 23376: 23376: 23376: inline Constraint 23376: operator<(const Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: return n > e; 23376: } 23376: 23376: inline const Constraint& 23376: Constraint::zero_dim_false() { 23376: ((void) 0); 23376: return *zero_dim_false_p; 23376: } 23376: 23376: inline const Constraint& 23376: Constraint::zero_dim_positivity() { 23376: ((void) 0); 23376: return *zero_dim_positivity_p; 23376: } 23376: 23376: inline const Constraint& 23376: Constraint::epsilon_geq_zero() { 23376: ((void) 0); 23376: return *epsilon_geq_zero_p; 23376: } 23376: 23376: inline const Constraint& 23376: Constraint::epsilon_leq_one() { 23376: ((void) 0); 23376: return *epsilon_leq_one_p; 23376: } 23376: 23376: inline void 23376: Constraint::m_swap(Constraint& y) { 23376: using std::swap; 23376: swap(expr, y.expr); 23376: swap(kind_, y.kind_); 23376: swap(topology_, y.topology_); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Constraint::epsilon_coefficient() const { 23376: ((void) 0); 23376: return expr.coefficient(Variable(expr.space_dimension() - 1)); 23376: } 23376: 23376: inline void 23376: Constraint::set_epsilon_coefficient(Coefficient_traits::const_reference n) { 23376: ((void) 0); 23376: expr.set_coefficient(Variable(expr.space_dimension() - 1), n); 23376: } 23376: 23376: 23376: inline void 23376: swap(Constraint& x, Constraint& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 835 "../../src/Constraint_defs.hh" 2 23376: # 31 "../../src/Linear_Expression_Impl_templates.hh" 2 23376: # 1 "../../src/Generator_defs.hh" 1 23376: # 31 "../../src/Generator_defs.hh" 23376: # 1 "../../src/Generator_System_types.hh" 1 23376: # 16 "../../src/Generator_System_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Generator_System; 23376: class Generator_System_const_iterator; 23376: 23376: } 23376: # 32 "../../src/Generator_defs.hh" 2 23376: 23376: 23376: 23376: # 1 "../../src/Grid_Generator_System_types.hh" 1 23376: # 16 "../../src/Grid_Generator_System_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Grid_Generator_System; 23376: 23376: } 23376: # 36 "../../src/Generator_defs.hh" 2 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "../../src/distances_defs.hh" 1 23376: # 27 "../../src/distances_defs.hh" 23376: # 1 "../../src/distances_types.hh" 1 23376: # 16 "../../src/distances_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: struct Rectilinear_Distance_Specialization; 23376: 23376: template 23376: struct Euclidean_Distance_Specialization; 23376: 23376: template 23376: struct L_Infinity_Distance_Specialization; 23376: 23376: } 23376: # 28 "../../src/distances_defs.hh" 2 23376: 23376: 23376: template 23376: struct Parma_Polyhedra_Library::Rectilinear_Distance_Specialization { 23376: static void combine(Temp& running, const Temp& current, Rounding_Dir dir); 23376: 23376: static void finalize(Temp&, Rounding_Dir); 23376: }; 23376: 23376: template 23376: struct Parma_Polyhedra_Library::Euclidean_Distance_Specialization { 23376: static void combine(Temp& running, Temp& current, Rounding_Dir dir); 23376: 23376: static void finalize(Temp& running, Rounding_Dir dir); 23376: }; 23376: 23376: 23376: template 23376: struct Parma_Polyhedra_Library::L_Infinity_Distance_Specialization { 23376: static void combine(Temp& running, const Temp& current, Rounding_Dir); 23376: 23376: static void finalize(Temp&, Rounding_Dir); 23376: }; 23376: 23376: # 1 "../../src/distances_inlines.hh" 1 23376: # 29 "../../src/distances_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: template 23376: struct maybe_assign_struct { 23376: static inline Result 23376: function(const To*& top, To& tmp, const From& from, Rounding_Dir dir) { 23376: 23376: 23376: top = &tmp; 23376: return assign_r(tmp, from, dir); 23376: } 23376: }; 23376: 23376: template 23376: struct maybe_assign_struct { 23376: static inline Result 23376: function(const Type*& top, Type&, const Type& from, Rounding_Dir) { 23376: 23376: top = &from; 23376: return V_EQ; 23376: } 23376: }; 23376: # 62 "../../src/distances_inlines.hh" 23376: template 23376: inline Result 23376: maybe_assign(const To*& top, To& tmp, const From& from, Rounding_Dir dir) { 23376: return maybe_assign_struct::function(top, tmp, from, dir); 23376: } 23376: 23376: template 23376: inline void 23376: Rectilinear_Distance_Specialization::combine(Temp& running, 23376: const Temp& current, 23376: Rounding_Dir dir) { 23376: add_assign_r(running, running, current, dir); 23376: } 23376: 23376: template 23376: inline void 23376: Rectilinear_Distance_Specialization::finalize(Temp&, Rounding_Dir) { 23376: } 23376: 23376: template 23376: inline void 23376: Euclidean_Distance_Specialization::combine(Temp& running, 23376: Temp& current, 23376: Rounding_Dir dir) { 23376: mul_assign_r(current, current, current, dir); 23376: add_assign_r(running, running, current, dir); 23376: } 23376: 23376: template 23376: inline void 23376: Euclidean_Distance_Specialization::finalize(Temp& running, 23376: Rounding_Dir dir) { 23376: sqrt_assign_r(running, running, dir); 23376: } 23376: 23376: template 23376: inline void 23376: L_Infinity_Distance_Specialization::combine(Temp& running, 23376: const Temp& current, 23376: Rounding_Dir) { 23376: if (current > running) { 23376: running = current; 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: L_Infinity_Distance_Specialization::finalize(Temp&, Rounding_Dir) { 23376: } 23376: 23376: } 23376: # 53 "../../src/distances_defs.hh" 2 23376: # 43 "../../src/Generator_defs.hh" 2 23376: 23376: 23376: # 1 "../../src/Expression_Hide_Inhomo_defs.hh" 1 23376: # 41 "../../src/Expression_Hide_Inhomo_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::Expression_Hide_Inhomo 23376: : public Expression_Adapter { 23376: typedef Expression_Adapter base_type; 23376: public: 23376: 23376: typedef Expression_Hide_Inhomo const_reference; 23376: 23376: typedef typename base_type::inner_type inner_type; 23376: 23376: typedef typename base_type::raw_type raw_type; 23376: 23376: 23376: explicit Expression_Hide_Inhomo(const raw_type& expr); 23376: 23376: public: 23376: 23376: typedef typename base_type::const_iterator const_iterator; 23376: 23376: 23376: Coefficient_traits::const_reference inhomogeneous_term() const; 23376: 23376: 23376: bool is_zero() const; 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Expression& y) const; 23376: 23376: 23376: Coefficient_traits::const_reference get(dimension_type i) const; 23376: 23376: 23376: Coefficient_traits::const_reference get(Variable v) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes(const Variables_Set& vars) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: dimension_type num_zeroes(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: 23376: 23376: Coefficient gcd(dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: dimension_type last_nonzero() const; 23376: 23376: 23376: 23376: dimension_type last_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: dimension_type first_nonzero(dimension_type first, dimension_type last) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: void has_a_free_dimension_helper(std::set& x) const; 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Expression& y, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: 23376: template 23376: bool is_equal_to(const Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const; 23376: 23376: 23376: void get_row(Dense_Row& r) const; 23376: 23376: 23376: void get_row(Sparse_Row& r) const; 23376: }; 23376: 23376: # 1 "../../src/Expression_Hide_Inhomo_inlines.hh" 1 23376: # 29 "../../src/Expression_Hide_Inhomo_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: Expression_Hide_Inhomo::Expression_Hide_Inhomo(const raw_type& expr) 23376: : base_type(expr) { 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Hide_Inhomo::inhomogeneous_term() const { 23376: 23376: return Coefficient_zero(); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Hide_Inhomo::is_zero() const { 23376: 23376: return this->inner().all_homogeneous_terms_are_zero(); 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Hide_Inhomo 23376: ::is_equal_to(const Expression& y) const { 23376: const dimension_type x_dim = this->space_dimension(); 23376: const dimension_type y_dim = y.space_dimension(); 23376: if (x_dim != y_dim) { 23376: return false; 23376: } 23376: if (y.inhomogeneous_term() != 0) { 23376: return false; 23376: } 23376: 23376: return this->inner().is_equal_to(y, 1, x_dim + 1); 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Hide_Inhomo::get(dimension_type i) const { 23376: if (i == 0) { 23376: return Coefficient_zero(); 23376: } 23376: else { 23376: return this->inner().get(i); 23376: } 23376: } 23376: 23376: template 23376: inline Coefficient_traits::const_reference 23376: Expression_Hide_Inhomo::get(Variable v) const { 23376: return this->inner().get(v); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Hide_Inhomo 23376: ::all_zeroes(const Variables_Set& vars) const { 23376: return this->inner().all_zeroes(vars); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Hide_Inhomo::all_zeroes(dimension_type start, 23376: dimension_type end) const { 23376: if (start == end) { 23376: return true; 23376: } 23376: if (start == 0) { 23376: ++start; 23376: } 23376: return this->inner().all_zeroes(start, end); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Hide_Inhomo::num_zeroes(dimension_type start, 23376: dimension_type end) const { 23376: if (start == end) { 23376: return 0; 23376: } 23376: dimension_type nz = 0; 23376: if (start == 0) { 23376: ++start; 23376: ++nz; 23376: } 23376: nz += this->inner().num_zeroes(start, end); 23376: return nz; 23376: } 23376: 23376: template 23376: inline Coefficient 23376: Expression_Hide_Inhomo::gcd(dimension_type start, 23376: dimension_type end) const { 23376: if (start == end) { 23376: return Coefficient_zero(); 23376: } 23376: if (start == 0) { 23376: ++start; 23376: } 23376: return this->inner().gcd(start, end); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Hide_Inhomo::last_nonzero() const { 23376: return this->inner().last_nonzero(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Hide_Inhomo::last_nonzero(dimension_type first, 23376: dimension_type last) const { 23376: if (first == last) { 23376: return last; 23376: } 23376: if (first == 0) { 23376: ++first; 23376: } 23376: return this->inner().last_nonzero(first, last); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Expression_Hide_Inhomo::first_nonzero(dimension_type first, 23376: dimension_type last) const { 23376: if (first == last) { 23376: return last; 23376: } 23376: if (first == 0) { 23376: ++first; 23376: } 23376: return this->inner().first_nonzero(first, last); 23376: } 23376: 23376: template 23376: inline bool 23376: Expression_Hide_Inhomo 23376: ::all_zeroes_except(const Variables_Set& vars, 23376: dimension_type start, dimension_type end) const { 23376: if (start == end) { 23376: return true; 23376: } 23376: if (start == 0) { 23376: ++start; 23376: } 23376: return this->inner().all_zeroes_except(vars, start, end); 23376: } 23376: 23376: template 23376: inline void 23376: Expression_Hide_Inhomo 23376: ::has_a_free_dimension_helper(std::set& y) const { 23376: bool had_0 = (y.count(0) == 1); 23376: this->inner().has_a_free_dimension_helper(y); 23376: if (had_0) { 23376: y.insert(0); 23376: } 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Hide_Inhomo 23376: ::is_equal_to(const Expression& y, 23376: dimension_type start, dimension_type end) const { 23376: if (start == end) { 23376: return true; 23376: } 23376: if (start == 0) { 23376: ++start; 23376: } 23376: return this->inner().is_equal_to(y, start, end); 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: Expression_Hide_Inhomo 23376: ::is_equal_to(const Expression& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const { 23376: if (start == end) { 23376: return true; 23376: } 23376: if (start == 0) { 23376: ++start; 23376: } 23376: return this->inner().is_equal_to(y, c1, c2, start, end); 23376: } 23376: 23376: template 23376: inline void 23376: Expression_Hide_Inhomo::get_row(Dense_Row& r) const { 23376: this->inner().get_row(r); 23376: r.reset(0); 23376: } 23376: 23376: template 23376: inline void 23376: Expression_Hide_Inhomo::get_row(Sparse_Row& r) const { 23376: this->inner().get_row(r); 23376: r.reset(0); 23376: } 23376: 23376: } 23376: # 146 "../../src/Expression_Hide_Inhomo_defs.hh" 2 23376: # 46 "../../src/Generator_defs.hh" 2 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: # 90 "../../src/Generator_defs.hh" 23376: int compare(const Generator& x, const Generator& y); 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Generator& g); 23376: 23376: } 23376: 23376: 23376: 23376: void swap(Generator& x, Generator& y); 23376: 23376: } 23376: # 285 "../../src/Generator_defs.hh" 23376: class Parma_Polyhedra_Library::Generator { 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const Representation default_representation = SPARSE; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static Generator line(const Linear_Expression& e, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static Generator ray(const Linear_Expression& e, 23376: Representation r = default_representation); 23376: # 322 "../../src/Generator_defs.hh" 23376: static Generator point(const Linear_Expression& e 23376: = Linear_Expression::zero(), 23376: Coefficient_traits::const_reference d 23376: = Coefficient_one(), 23376: Representation r = default_representation); 23376: 23376: 23376: static Generator point(Representation r); 23376: 23376: 23376: static Generator point(const Linear_Expression& e, 23376: Representation r); 23376: 23376: 23376: explicit Generator(Representation r = default_representation); 23376: # 346 "../../src/Generator_defs.hh" 23376: static Generator 23376: closure_point(const Linear_Expression& e = Linear_Expression::zero(), 23376: Coefficient_traits::const_reference d = Coefficient_one(), 23376: Representation r = default_representation); 23376: 23376: 23376: static Generator 23376: closure_point(Representation r); 23376: 23376: 23376: static Generator 23376: closure_point(const Linear_Expression& e, Representation r); 23376: 23376: 23376: 23376: Generator(const Generator& g); 23376: 23376: 23376: Generator(const Generator& g, Representation r); 23376: 23376: 23376: 23376: Generator(const Generator& g, dimension_type space_dim); 23376: 23376: 23376: Generator(const Generator& g, dimension_type space_dim, Representation r); 23376: 23376: 23376: ~Generator(); 23376: 23376: 23376: Generator& operator=(const Generator& g); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: void set_space_dimension(dimension_type space_dim); 23376: 23376: 23376: void swap_space_dimensions(Variable v1, Variable v2); 23376: # 408 "../../src/Generator_defs.hh" 23376: bool remove_space_dimensions(const Variables_Set& vars); 23376: # 422 "../../src/Generator_defs.hh" 23376: void permute_space_dimensions(const std::vector& cycle); 23376: 23376: 23376: 23376: void shift_space_dimensions(Variable v, dimension_type n); 23376: 23376: 23376: enum Type { 23376: 23376: LINE, 23376: 23376: RAY, 23376: 23376: POINT, 23376: 23376: CLOSURE_POINT 23376: }; 23376: 23376: 23376: Type type() const; 23376: 23376: 23376: bool is_line() const; 23376: 23376: 23376: bool is_ray() const; 23376: 23376: 23376: 23376: 23376: bool is_line_or_ray() const; 23376: 23376: 23376: bool is_point() const; 23376: 23376: 23376: bool is_closure_point() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Coefficient_traits::const_reference coefficient(Variable v) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Coefficient_traits::const_reference divisor() const; 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: static const Generator& zero_dim_point(); 23376: 23376: 23376: 23376: 23376: 23376: static const Generator& zero_dim_closure_point(); 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_equivalent_to(const Generator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_equal_to(const Generator& y) const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: void m_swap(Generator& y); 23376: 23376: 23376: typedef Expression_Hide_Last > 23376: expr_type; 23376: 23376: expr_type expression() const; 23376: 23376: private: 23376: 23376: enum Kind { 23376: LINE_OR_EQUALITY = 0, 23376: RAY_OR_POINT_OR_INEQUALITY = 1 23376: }; 23376: 23376: 23376: Linear_Expression expr; 23376: 23376: 23376: Kind kind_; 23376: 23376: 23376: Topology topology_; 23376: 23376: 23376: 23376: 23376: 23376: static const Generator* zero_dim_point_p; 23376: 23376: 23376: 23376: 23376: 23376: static const Generator* zero_dim_closure_point_p; 23376: # 570 "../../src/Generator_defs.hh" 23376: Generator(Linear_Expression& e, Type type, Topology topology); 23376: 23376: Generator(Linear_Expression& e, Kind kind, Topology topology); 23376: 23376: Generator(dimension_type space_dim, Kind kind, Topology topology, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: bool is_line_or_equality() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_ray_or_point_or_inequality() const; 23376: 23376: 23376: void set_is_line_or_equality(); 23376: 23376: 23376: void set_is_ray_or_point_or_inequality(); 23376: 23376: 23376: 23376: 23376: Topology topology() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_not_necessarily_closed() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_necessarily_closed() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: void set_topology(Topology x); 23376: 23376: 23376: void set_necessarily_closed(); 23376: 23376: 23376: void set_not_necessarily_closed(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void mark_as_necessarily_closed(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void mark_as_not_necessarily_closed(); 23376: # 652 "../../src/Generator_defs.hh" 23376: void linear_combine(const Generator& y, dimension_type i); 23376: # 661 "../../src/Generator_defs.hh" 23376: void set_space_dimension_no_ok(dimension_type space_dim); 23376: 23376: 23376: 23376: 23376: 23376: void 23376: throw_dimension_incompatible(const char* method, 23376: const char* v_name, 23376: Variable v) const; 23376: 23376: 23376: 23376: 23376: 23376: void 23376: throw_invalid_argument(const char* method, const char* reason) const; 23376: 23376: 23376: bool is_ray_or_point() const; 23376: 23376: 23376: void set_is_line(); 23376: 23376: 23376: void set_is_ray_or_point(); 23376: # 695 "../../src/Generator_defs.hh" 23376: bool is_matching_closure_point(const Generator& p) const; 23376: 23376: 23376: Coefficient_traits::const_reference epsilon_coefficient() const; 23376: 23376: 23376: void set_epsilon_coefficient(Coefficient_traits::const_reference n); 23376: 23376: 23376: 23376: 23376: 23376: void sign_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void strong_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: bool check_strong_normalized() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: void fancy_print(std::ostream& s) const; 23376: 23376: friend class Expression_Adapter; 23376: friend class Linear_System; 23376: friend class Parma_Polyhedra_Library::Scalar_Products; 23376: friend class Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign; 23376: friend class Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Assign; 23376: friend class Parma_Polyhedra_Library::Generator_System; 23376: friend class Parma_Polyhedra_Library::Generator_System_const_iterator; 23376: 23376: friend class Parma_Polyhedra_Library::Polyhedron; 23376: 23376: friend class Parma_Polyhedra_Library::Grid_Generator_System; 23376: friend class Parma_Polyhedra_Library::MIP_Problem; 23376: friend class Parma_Polyhedra_Library::Grid; 23376: 23376: friend std::ostream& 23376: Parma_Polyhedra_Library::IO_Operators::operator<<(std::ostream& s, 23376: const Generator& g); 23376: 23376: friend int 23376: compare(const Generator& x, const Generator& y); 23376: }; 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: Generator line(const Linear_Expression& e, 23376: Representation r = Generator::default_representation); 23376: 23376: 23376: 23376: Generator ray(const Linear_Expression& e, 23376: Representation r = Generator::default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Generator 23376: point(const Linear_Expression& e = Linear_Expression::zero(), 23376: Coefficient_traits::const_reference d = Coefficient_one(), 23376: Representation r = Generator::default_representation); 23376: 23376: 23376: 23376: Generator 23376: point(Representation r); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Generator 23376: point(const Linear_Expression& e, Representation r); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Generator 23376: closure_point(const Linear_Expression& e = Linear_Expression::zero(), 23376: Coefficient_traits::const_reference d = Coefficient_one(), 23376: Representation r = Generator::default_representation); 23376: 23376: 23376: 23376: Generator 23376: closure_point(Representation r); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Generator 23376: closure_point(const Linear_Expression& e, Representation r); 23376: 23376: 23376: 23376: bool operator==(const Generator& x, const Generator& y); 23376: 23376: 23376: 23376: bool operator!=(const Generator& x, const Generator& y); 23376: # 838 "../../src/Generator_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: Rounding_Dir dir); 23376: # 859 "../../src/Generator_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: Rounding_Dir dir); 23376: # 880 "../../src/Generator_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 904 "../../src/Generator_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: Rounding_Dir dir); 23376: # 925 "../../src/Generator_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: Rounding_Dir dir); 23376: # 946 "../../src/Generator_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 970 "../../src/Generator_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: Rounding_Dir dir); 23376: # 991 "../../src/Generator_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: Rounding_Dir dir); 23376: # 1012 "../../src/Generator_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Generator::Type& t); 23376: 23376: } 23376: 23376: } 23376: 23376: # 1 "../../src/Generator_inlines.hh" 1 23376: # 27 "../../src/Generator_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline bool 23376: Generator::is_necessarily_closed() const { 23376: return (topology() == NECESSARILY_CLOSED); 23376: } 23376: 23376: inline bool 23376: Generator::is_not_necessarily_closed() const { 23376: return (topology() == NOT_NECESSARILY_CLOSED); 23376: } 23376: 23376: inline Generator::expr_type 23376: Generator::expression() const { 23376: return expr_type(expr, is_not_necessarily_closed()); 23376: } 23376: 23376: inline dimension_type 23376: Generator::space_dimension() const { 23376: return expression().space_dimension(); 23376: } 23376: 23376: inline bool 23376: Generator::is_line_or_equality() const { 23376: return (kind_ == LINE_OR_EQUALITY); 23376: } 23376: 23376: inline bool 23376: Generator::is_ray_or_point_or_inequality() const { 23376: return (kind_ == RAY_OR_POINT_OR_INEQUALITY); 23376: } 23376: 23376: inline Topology 23376: Generator::topology() const { 23376: return topology_; 23376: } 23376: 23376: inline void 23376: Generator::set_is_line_or_equality() { 23376: kind_ = LINE_OR_EQUALITY; 23376: } 23376: 23376: inline void 23376: Generator::set_is_ray_or_point_or_inequality() { 23376: kind_ = RAY_OR_POINT_OR_INEQUALITY; 23376: } 23376: 23376: inline void 23376: Generator::set_topology(Topology x) { 23376: if (topology() == x) { 23376: return; 23376: } 23376: if (topology() == NECESSARILY_CLOSED) { 23376: 23376: expr.set_space_dimension(expr.space_dimension() + 1); 23376: } 23376: else { 23376: ((void) 0); 23376: expr.set_space_dimension(expr.space_dimension() - 1); 23376: } 23376: topology_ = x; 23376: } 23376: 23376: inline void 23376: Generator::mark_as_necessarily_closed() { 23376: ((void) 0); 23376: topology_ = NECESSARILY_CLOSED; 23376: } 23376: 23376: inline void 23376: Generator::mark_as_not_necessarily_closed() { 23376: ((void) 0); 23376: topology_ = NOT_NECESSARILY_CLOSED; 23376: } 23376: 23376: inline void 23376: Generator::set_necessarily_closed() { 23376: set_topology(NECESSARILY_CLOSED); 23376: } 23376: 23376: inline void 23376: Generator::set_not_necessarily_closed() { 23376: set_topology(NOT_NECESSARILY_CLOSED); 23376: } 23376: 23376: inline 23376: Generator::Generator(Representation r) 23376: : expr(r), 23376: kind_(RAY_OR_POINT_OR_INEQUALITY), 23376: topology_(NECESSARILY_CLOSED) { 23376: expr.set_inhomogeneous_term(Coefficient_one()); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Generator::Generator(dimension_type space_dim, Kind kind, Topology topology, 23376: Representation r) 23376: : expr(r), 23376: kind_(kind), 23376: topology_(topology) { 23376: if (is_necessarily_closed()) { 23376: expr.set_space_dimension(space_dim); 23376: } 23376: else { 23376: expr.set_space_dimension(space_dim + 1); 23376: } 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Generator::Generator(Linear_Expression& e, Type type, Topology topology) 23376: : topology_(topology) { 23376: ((void) 0); 23376: swap(expr, e); 23376: if (topology == NOT_NECESSARILY_CLOSED) { 23376: expr.set_space_dimension(expr.space_dimension() + 1); 23376: } 23376: if (type == LINE) { 23376: kind_ = LINE_OR_EQUALITY; 23376: } 23376: else { 23376: kind_ = RAY_OR_POINT_OR_INEQUALITY; 23376: } 23376: strong_normalize(); 23376: } 23376: 23376: inline 23376: Generator::Generator(Linear_Expression& e, Kind kind, Topology topology) 23376: : kind_(kind), 23376: topology_(topology) { 23376: swap(expr, e); 23376: if (topology == NOT_NECESSARILY_CLOSED) { 23376: expr.set_space_dimension(expr.space_dimension() + 1); 23376: } 23376: strong_normalize(); 23376: } 23376: 23376: inline 23376: Generator::Generator(const Generator& g) 23376: : expr(g.expr), 23376: kind_(g.kind_), 23376: topology_(g.topology_) { 23376: } 23376: 23376: inline 23376: Generator::Generator(const Generator& g, Representation r) 23376: : expr(g.expr, r), 23376: kind_(g.kind_), 23376: topology_(g.topology_) { 23376: 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Generator::Generator(const Generator& g, dimension_type space_dim) 23376: : expr(g.expr, g.is_necessarily_closed() ? space_dim : (space_dim + 1)), 23376: kind_(g.kind_), 23376: topology_(g.topology_) { 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Generator::Generator(const Generator& g, dimension_type space_dim, 23376: Representation r) 23376: : expr(g.expr, g.is_necessarily_closed() ? space_dim : (space_dim + 1), r), 23376: kind_(g.kind_), 23376: topology_(g.topology_) { 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Generator::~Generator() { 23376: } 23376: 23376: inline Generator& 23376: Generator::operator=(const Generator& g) { 23376: Generator tmp = g; 23376: swap(*this, tmp); 23376: 23376: return *this; 23376: } 23376: 23376: inline Representation 23376: Generator::representation() const { 23376: return expr.representation(); 23376: } 23376: 23376: inline void 23376: Generator::set_representation(Representation r) { 23376: expr.set_representation(r); 23376: } 23376: 23376: inline dimension_type 23376: Generator::max_space_dimension() { 23376: return Linear_Expression::max_space_dimension(); 23376: } 23376: 23376: inline void 23376: Generator::set_space_dimension_no_ok(dimension_type space_dim) { 23376: const dimension_type old_expr_space_dim = expr.space_dimension(); 23376: if (topology() == NECESSARILY_CLOSED) { 23376: expr.set_space_dimension(space_dim); 23376: } 23376: else { 23376: const dimension_type old_space_dim = space_dimension(); 23376: if (space_dim > old_space_dim) { 23376: expr.set_space_dimension(space_dim + 1); 23376: expr.swap_space_dimensions(Variable(space_dim), Variable(old_space_dim)); 23376: } 23376: else { 23376: expr.swap_space_dimensions(Variable(space_dim), Variable(old_space_dim)); 23376: expr.set_space_dimension(space_dim + 1); 23376: } 23376: } 23376: ((void) 0); 23376: if (expr.space_dimension() < old_expr_space_dim) { 23376: strong_normalize(); 23376: } 23376: } 23376: 23376: inline void 23376: Generator::set_space_dimension(dimension_type space_dim) { 23376: set_space_dimension_no_ok(space_dim); 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Generator::shift_space_dimensions(Variable v, dimension_type n) { 23376: expr.shift_space_dimensions(v, n); 23376: } 23376: 23376: inline bool 23376: Generator::is_line() const { 23376: return is_line_or_equality(); 23376: } 23376: 23376: inline bool 23376: Generator::is_ray_or_point() const { 23376: return is_ray_or_point_or_inequality(); 23376: } 23376: 23376: inline bool 23376: Generator::is_line_or_ray() const { 23376: return expr.inhomogeneous_term() == 0; 23376: } 23376: 23376: inline bool 23376: Generator::is_ray() const { 23376: return is_ray_or_point() && is_line_or_ray(); 23376: } 23376: 23376: inline Generator::Type 23376: Generator::type() const { 23376: if (is_line()) { 23376: return LINE; 23376: } 23376: if (is_line_or_ray()) { 23376: return RAY; 23376: } 23376: if (is_necessarily_closed()) { 23376: return POINT; 23376: } 23376: else { 23376: 23376: if (epsilon_coefficient() == 0) { 23376: return CLOSURE_POINT; 23376: } 23376: else { 23376: return POINT; 23376: } 23376: } 23376: } 23376: 23376: inline bool 23376: Generator::is_point() const { 23376: return type() == POINT; 23376: } 23376: 23376: inline bool 23376: Generator::is_closure_point() const { 23376: return type() == CLOSURE_POINT; 23376: } 23376: 23376: inline void 23376: Generator::set_is_line() { 23376: set_is_line_or_equality(); 23376: } 23376: 23376: inline void 23376: Generator::set_is_ray_or_point() { 23376: set_is_ray_or_point_or_inequality(); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Generator::coefficient(const Variable v) const { 23376: if (v.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("coefficient(v)", "v", v); 23376: } 23376: return expr.coefficient(v); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Generator::divisor() const { 23376: Coefficient_traits::const_reference d = expr.inhomogeneous_term(); 23376: if (!is_ray_or_point() || d == 0) { 23376: throw_invalid_argument("divisor()", 23376: "*this is neither a point nor a closure point"); 23376: } 23376: return d; 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Generator::epsilon_coefficient() const { 23376: ((void) 0); 23376: return expr.coefficient(Variable(expr.space_dimension() - 1)); 23376: } 23376: 23376: 23376: inline void 23376: Generator::set_epsilon_coefficient(Coefficient_traits::const_reference n) { 23376: ((void) 0); 23376: expr.set_coefficient(Variable(expr.space_dimension() - 1), n); 23376: } 23376: 23376: 23376: inline memory_size_type 23376: Generator::external_memory_in_bytes() const { 23376: return expr.external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Generator::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline void 23376: Generator::strong_normalize() { 23376: expr.normalize(); 23376: sign_normalize(); 23376: } 23376: 23376: inline const Generator& 23376: Generator::zero_dim_point() { 23376: ((void) 0); 23376: return *zero_dim_point_p; 23376: } 23376: 23376: inline const Generator& 23376: Generator::zero_dim_closure_point() { 23376: ((void) 0); 23376: return *zero_dim_closure_point_p; 23376: } 23376: 23376: 23376: inline Generator 23376: line(const Linear_Expression& e, Representation r) { 23376: return Generator::line(e, r); 23376: } 23376: 23376: 23376: inline Generator 23376: ray(const Linear_Expression& e, Representation r) { 23376: return Generator::ray(e, r); 23376: } 23376: 23376: 23376: inline Generator 23376: point(const Linear_Expression& e, Coefficient_traits::const_reference d, 23376: Representation r) { 23376: return Generator::point(e, d, r); 23376: } 23376: 23376: 23376: inline Generator 23376: point(Representation r) { 23376: return Generator::point(r); 23376: } 23376: 23376: 23376: inline Generator 23376: point(const Linear_Expression& e, Representation r) { 23376: return Generator::point(e, r); 23376: } 23376: 23376: 23376: inline Generator 23376: closure_point(const Linear_Expression& e, 23376: Coefficient_traits::const_reference d, 23376: Representation r) { 23376: return Generator::closure_point(e, d, r); 23376: } 23376: 23376: 23376: inline Generator 23376: closure_point(Representation r) { 23376: return Generator::closure_point(r); 23376: } 23376: 23376: 23376: inline Generator 23376: closure_point(const Linear_Expression& e, 23376: Representation r) { 23376: return Generator::closure_point(e, r); 23376: } 23376: 23376: 23376: inline bool 23376: operator==(const Generator& x, const Generator& y) { 23376: return x.is_equivalent_to(y); 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Generator& x, const Generator& y) { 23376: return !x.is_equivalent_to(y); 23376: } 23376: 23376: inline void 23376: Generator::ascii_dump(std::ostream& s) const { 23376: 23376: expr.ascii_dump(s); 23376: 23376: s << " "; 23376: 23376: switch (type()) { 23376: case Generator::LINE: 23376: s << "L "; 23376: break; 23376: case Generator::RAY: 23376: s << "R "; 23376: break; 23376: case Generator::POINT: 23376: s << "P "; 23376: break; 23376: case Generator::CLOSURE_POINT: 23376: s << "C "; 23376: break; 23376: } 23376: if (is_necessarily_closed()) { 23376: s << "(C)"; 23376: } 23376: else { 23376: s << "(NNC)"; 23376: } 23376: s << "\n"; 23376: } 23376: 23376: inline bool 23376: Generator::ascii_load(std::istream& s) { 23376: std::string str; 23376: 23376: expr.ascii_load(s); 23376: 23376: if (!(s >> str)) { 23376: return false; 23376: } 23376: if (str == "L") { 23376: set_is_line(); 23376: } 23376: else if (str == "R" || str == "P" || str == "C") { 23376: set_is_ray_or_point(); 23376: } 23376: else { 23376: return false; 23376: } 23376: 23376: std::string str2; 23376: 23376: if (!(s >> str2)) { 23376: return false; 23376: } 23376: if (str2 == "(C)") { 23376: if (is_not_necessarily_closed()) { 23376: 23376: mark_as_necessarily_closed(); 23376: } 23376: } 23376: else { 23376: if (str2 == "(NNC)") { 23376: if (is_necessarily_closed()) { 23376: 23376: mark_as_not_necessarily_closed(); 23376: } 23376: } 23376: else { 23376: return false; 23376: } 23376: } 23376: 23376: 23376: switch (type()) { 23376: case Generator::LINE: 23376: if (str != "L") { 23376: return false; 23376: } 23376: break; 23376: case Generator::RAY: 23376: if (str != "R") { 23376: return false; 23376: } 23376: break; 23376: case Generator::POINT: 23376: if (str != "P") { 23376: return false; 23376: } 23376: break; 23376: case Generator::CLOSURE_POINT: 23376: if (str != "C") { 23376: return false; 23376: } 23376: break; 23376: } 23376: 23376: return true; 23376: } 23376: 23376: inline void 23376: Generator::m_swap(Generator& y) { 23376: using std::swap; 23376: swap(expr, y.expr); 23376: swap(kind_, y.kind_); 23376: swap(topology_, y.topology_); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: l_m_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: 23376: 23376: if (x.is_line_or_ray() || y.is_line_or_ray()) { 23376: return false; 23376: } 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: return false; 23376: } 23376: 23376: 23376: if (x_space_dim == 0) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: return true; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_x_coord; mpq_class& x_coord = holder_x_coord.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_y_coord; mpq_class& y_coord = holder_y_coord.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_x_div; mpq_class& x_div = holder_x_div.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_y_div; mpq_class& y_div = holder_y_div.item(); 23376: assign_r(x_div, x.divisor(), ROUND_NOT_NEEDED); 23376: assign_r(y_div, y.divisor(), ROUND_NOT_NEEDED); 23376: 23376: assign_r(tmp0, 0, ROUND_NOT_NEEDED); 23376: 23376: for (dimension_type i = x_space_dim; i-- > 0; ) { 23376: assign_r(x_coord, x.coefficient(Variable(i)), ROUND_NOT_NEEDED); 23376: div_assign_r(x_coord, x_coord, x_div, ROUND_NOT_NEEDED); 23376: assign_r(y_coord, y.coefficient(Variable(i)), ROUND_NOT_NEEDED); 23376: div_assign_r(y_coord, y_coord, y_div, ROUND_NOT_NEEDED); 23376: const Temp* tmp1p; 23376: const Temp* tmp2p; 23376: 23376: if (x_coord > y_coord) { 23376: maybe_assign(tmp1p, tmp1, x_coord, dir); 23376: maybe_assign(tmp2p, tmp2, y_coord, inverse(dir)); 23376: } 23376: else { 23376: maybe_assign(tmp1p, tmp1, y_coord, dir); 23376: maybe_assign(tmp2p, tmp2, x_coord, inverse(dir)); 23376: } 23376: sub_assign_r(tmp1, *tmp1p, *tmp2p, dir); 23376: ((void) 0); 23376: Specialization::combine(tmp0, tmp1, dir); 23376: } 23376: Specialization::finalize(tmp0, dir); 23376: assign_r(r, tmp0, dir); 23376: return true; 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return l_m_distance_assign > 23376: (r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return rectilinear_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir) { 23376: return rectilinear_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return l_m_distance_assign > 23376: (r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return euclidean_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir) { 23376: return euclidean_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return l_m_distance_assign > 23376: (r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return l_infinity_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Generator& x, 23376: const Generator& y, 23376: const Rounding_Dir dir) { 23376: return l_infinity_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: inline void 23376: swap(Generator& x, Generator& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 1032 "../../src/Generator_defs.hh" 2 23376: # 32 "../../src/Linear_Expression_Impl_templates.hh" 2 23376: # 1 "../../src/Grid_Generator_defs.hh" 1 23376: # 43 "../../src/Grid_Generator_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 84 "../../src/Grid_Generator_defs.hh" 23376: int compare(const Grid_Generator& x, const Grid_Generator& y); 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Grid_Generator& g); 23376: 23376: } 23376: 23376: 23376: 23376: void swap(Grid_Generator& x, Grid_Generator& y); 23376: 23376: } 23376: # 271 "../../src/Grid_Generator_defs.hh" 23376: class Parma_Polyhedra_Library::Grid_Generator { 23376: public: 23376: 23376: 23376: enum Kind { 23376: LINE_OR_EQUALITY = 0, 23376: RAY_OR_POINT_OR_INEQUALITY = 1 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const Representation default_representation = SPARSE; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static Grid_Generator grid_line(const Linear_Expression& e, 23376: Representation r = default_representation); 23376: # 306 "../../src/Grid_Generator_defs.hh" 23376: static Grid_Generator parameter(const Linear_Expression& e 23376: = Linear_Expression::zero(), 23376: Coefficient_traits::const_reference d 23376: = Coefficient_one(), 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: static Grid_Generator parameter(Representation r); 23376: 23376: 23376: static Grid_Generator parameter(const Linear_Expression& e, 23376: Representation r); 23376: # 328 "../../src/Grid_Generator_defs.hh" 23376: static Grid_Generator grid_point(const Linear_Expression& e 23376: = Linear_Expression::zero(), 23376: Coefficient_traits::const_reference d 23376: = Coefficient_one(), 23376: Representation r = default_representation); 23376: 23376: 23376: static Grid_Generator grid_point(Representation r); 23376: 23376: 23376: static Grid_Generator grid_point(const Linear_Expression& e, 23376: Representation r); 23376: 23376: 23376: explicit Grid_Generator(Representation r = default_representation); 23376: 23376: 23376: 23376: Grid_Generator(const Grid_Generator& g); 23376: 23376: 23376: Grid_Generator(const Grid_Generator& g, Representation r); 23376: 23376: 23376: 23376: Grid_Generator(const Grid_Generator& g, dimension_type space_dim); 23376: 23376: 23376: Grid_Generator(const Grid_Generator& g, dimension_type space_dim, 23376: Representation r); 23376: 23376: 23376: ~Grid_Generator(); 23376: 23376: 23376: Grid_Generator& operator=(const Grid_Generator& g); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: void set_space_dimension(dimension_type space_dim); 23376: 23376: 23376: void swap_space_dimensions(Variable v1, Variable v2); 23376: # 393 "../../src/Grid_Generator_defs.hh" 23376: bool remove_space_dimensions(const Variables_Set& vars); 23376: # 407 "../../src/Grid_Generator_defs.hh" 23376: void permute_space_dimensions(const std::vector& cycle); 23376: 23376: 23376: 23376: void shift_space_dimensions(Variable v, dimension_type n); 23376: 23376: 23376: enum Type { 23376: 23376: LINE, 23376: 23376: PARAMETER, 23376: 23376: POINT 23376: }; 23376: 23376: 23376: Type type() const; 23376: 23376: 23376: bool is_line() const; 23376: 23376: 23376: bool is_parameter() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_line_or_parameter() const; 23376: 23376: 23376: bool is_point() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_parameter_or_point() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Coefficient_traits::const_reference coefficient(Variable v) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Coefficient_traits::const_reference divisor() const; 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: static const Grid_Generator& zero_dim_point(); 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_equivalent_to(const Grid_Generator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_equal_to(const Grid_Generator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool all_homogeneous_terms_are_zero() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: void m_swap(Grid_Generator& y); 23376: # 524 "../../src/Grid_Generator_defs.hh" 23376: void scale_to_divisor(Coefficient_traits::const_reference d); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void set_divisor(Coefficient_traits::const_reference d); 23376: 23376: 23376: typedef Expression_Hide_Last > 23376: expr_type; 23376: 23376: expr_type expression() const; 23376: 23376: private: 23376: Linear_Expression expr; 23376: 23376: Kind kind_; 23376: 23376: 23376: 23376: 23376: 23376: static const Grid_Generator* zero_dim_point_p; 23376: 23376: 23376: 23376: Grid_Generator(dimension_type space_dim, Kind kind, Topology topology, 23376: Representation r = default_representation); 23376: # 565 "../../src/Grid_Generator_defs.hh" 23376: Grid_Generator(Linear_Expression& e, Type t); 23376: # 574 "../../src/Grid_Generator_defs.hh" 23376: void set_space_dimension_no_ok(dimension_type space_dim); 23376: 23376: 23376: 23376: 23376: 23376: bool is_equal_at_dimension(dimension_type dim, 23376: const Grid_Generator& gg) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: void fancy_print(std::ostream& s) const; 23376: 23376: 23376: void set_is_parameter(); 23376: 23376: 23376: void set_is_line(); 23376: 23376: 23376: void set_is_parameter_or_point(); 23376: 23376: 23376: 23376: 23376: Topology topology() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_not_necessarily_closed() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_necessarily_closed() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_line_or_equality() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_ray_or_point_or_inequality() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: void set_topology(Topology x); 23376: 23376: 23376: void set_necessarily_closed(); 23376: 23376: 23376: void set_not_necessarily_closed(); 23376: 23376: 23376: void set_is_line_or_equality(); 23376: 23376: 23376: void set_is_ray_or_point_or_inequality(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void sign_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void strong_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: bool check_strong_normalized() const; 23376: # 680 "../../src/Grid_Generator_defs.hh" 23376: void linear_combine(const Grid_Generator& y, dimension_type i); 23376: 23376: 23376: 23376: 23376: 23376: void 23376: throw_dimension_incompatible(const char* method, 23376: const char* name_var, 23376: const Variable v) const; 23376: 23376: 23376: 23376: 23376: 23376: void 23376: throw_invalid_argument(const char* method, const char* reason) const; 23376: 23376: friend std::ostream& 23376: IO_Operators::operator<<(std::ostream& s, const Grid_Generator& g); 23376: 23376: friend int 23376: compare(const Grid_Generator& x, const Grid_Generator& y); 23376: 23376: friend class Expression_Adapter; 23376: friend class Grid_Generator_System; 23376: friend class Grid; 23376: friend class Linear_System; 23376: friend class Scalar_Products; 23376: friend class Topology_Adjusted_Scalar_Product_Sign; 23376: }; 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Grid_Generator 23376: grid_line(const Linear_Expression& e, 23376: Representation r = Grid_Generator::default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Grid_Generator 23376: parameter(const Linear_Expression& e = Linear_Expression::zero(), 23376: Coefficient_traits::const_reference d = Coefficient_one(), 23376: Representation r = Grid_Generator::default_representation); 23376: 23376: 23376: 23376: Grid_Generator 23376: parameter(Representation r); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Grid_Generator 23376: parameter(const Linear_Expression& e, Representation r); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Grid_Generator 23376: grid_point(const Linear_Expression& e = Linear_Expression::zero(), 23376: Coefficient_traits::const_reference d = Coefficient_one(), 23376: Representation r = Grid_Generator::default_representation); 23376: 23376: 23376: 23376: Grid_Generator 23376: grid_point(Representation r); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Grid_Generator 23376: grid_point(const Linear_Expression& e, Representation r); 23376: 23376: 23376: 23376: bool operator==(const Grid_Generator& x, const Grid_Generator& y); 23376: 23376: 23376: 23376: bool operator!=(const Grid_Generator& x, const Grid_Generator& y); 23376: 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Grid_Generator::Type& t); 23376: 23376: } 23376: 23376: } 23376: 23376: # 1 "../../src/Grid_Generator_inlines.hh" 1 23376: # 27 "../../src/Grid_Generator_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline bool 23376: Grid_Generator::is_necessarily_closed() const { 23376: return true; 23376: } 23376: 23376: inline bool 23376: Grid_Generator::is_not_necessarily_closed() const { 23376: return false; 23376: } 23376: 23376: inline bool 23376: Grid_Generator::is_line_or_equality() const { 23376: return (kind_ == LINE_OR_EQUALITY); 23376: } 23376: 23376: inline bool 23376: Grid_Generator::is_ray_or_point_or_inequality() const { 23376: return (kind_ == RAY_OR_POINT_OR_INEQUALITY); 23376: } 23376: 23376: inline Topology 23376: Grid_Generator::topology() const { 23376: return NECESSARILY_CLOSED; 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_is_line_or_equality() { 23376: kind_ = LINE_OR_EQUALITY; 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_is_ray_or_point_or_inequality() { 23376: kind_ = RAY_OR_POINT_OR_INEQUALITY; 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_topology(Topology x) { 23376: (void)(x); 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_necessarily_closed() { 23376: set_topology(NECESSARILY_CLOSED); 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_not_necessarily_closed() { 23376: set_topology(NOT_NECESSARILY_CLOSED); 23376: } 23376: 23376: inline 23376: Grid_Generator::Grid_Generator(Linear_Expression& e, Type type) { 23376: swap(expr, e); 23376: if (type == LINE) { 23376: kind_ = LINE_OR_EQUALITY; 23376: } 23376: else { 23376: kind_ = RAY_OR_POINT_OR_INEQUALITY; 23376: } 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Grid_Generator::Grid_Generator(Representation r) 23376: : expr(Coefficient_one(), r), 23376: kind_(RAY_OR_POINT_OR_INEQUALITY) { 23376: expr.set_space_dimension(1); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Grid_Generator::Grid_Generator(const Grid_Generator& g) 23376: : expr(g.expr), 23376: kind_(g.kind_) { 23376: } 23376: 23376: inline 23376: Grid_Generator::Grid_Generator(const Grid_Generator& g, Representation r) 23376: : expr(g.expr, r), 23376: kind_(g.kind_) { 23376: } 23376: 23376: inline 23376: Grid_Generator::Grid_Generator(dimension_type space_dim, Kind kind, 23376: Topology topology, Representation r) 23376: : expr(r), 23376: kind_(kind) { 23376: (void)(topology); 23376: ((void) 0); 23376: expr.set_space_dimension(space_dim + 1); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Grid_Generator::Grid_Generator(const Grid_Generator& g, 23376: dimension_type space_dim) 23376: : expr(g.expr, space_dim + 1), 23376: kind_(g.kind_) { 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Grid_Generator::Grid_Generator(const Grid_Generator& g, 23376: dimension_type space_dim, Representation r) 23376: : expr(g.expr, space_dim + 1, r), 23376: kind_(g.kind_) { 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Grid_Generator::~Grid_Generator() { 23376: } 23376: 23376: inline Grid_Generator::expr_type 23376: Grid_Generator::expression() const { 23376: return expr_type(expr, true); 23376: } 23376: 23376: inline Representation 23376: Grid_Generator::representation() const { 23376: return expr.representation(); 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_representation(Representation r) { 23376: expr.set_representation(r); 23376: } 23376: 23376: inline dimension_type 23376: Grid_Generator::max_space_dimension() { 23376: return Linear_Expression::max_space_dimension() - 1; 23376: } 23376: 23376: inline dimension_type 23376: Grid_Generator::space_dimension() const { 23376: return expression().space_dimension(); 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_space_dimension(dimension_type space_dim) { 23376: const dimension_type old_space_dim = space_dimension(); 23376: if (space_dim > old_space_dim) { 23376: expr.set_space_dimension(space_dim + 1); 23376: expr.swap_space_dimensions(Variable(space_dim), Variable(old_space_dim)); 23376: } 23376: else { 23376: expr.swap_space_dimensions(Variable(space_dim), Variable(old_space_dim)); 23376: expr.set_space_dimension(space_dim + 1); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_space_dimension_no_ok(dimension_type space_dim) { 23376: set_space_dimension(space_dim); 23376: } 23376: 23376: inline void 23376: Grid_Generator::shift_space_dimensions(Variable v, dimension_type n) { 23376: expr.shift_space_dimensions(v, n); 23376: } 23376: 23376: inline Grid_Generator::Type 23376: Grid_Generator::type() const { 23376: if (is_line()) { 23376: return LINE; 23376: } 23376: return is_point() ? POINT : PARAMETER; 23376: } 23376: 23376: inline bool 23376: Grid_Generator::is_line() const { 23376: return is_line_or_equality(); 23376: } 23376: 23376: inline bool 23376: Grid_Generator::is_parameter() const { 23376: return is_parameter_or_point() && is_line_or_parameter(); 23376: } 23376: 23376: inline bool 23376: Grid_Generator::is_line_or_parameter() const { 23376: return expr.inhomogeneous_term() == 0; 23376: } 23376: 23376: inline bool 23376: Grid_Generator::is_point() const { 23376: return !is_line_or_parameter(); 23376: } 23376: 23376: inline bool 23376: Grid_Generator::is_parameter_or_point() const { 23376: return is_ray_or_point_or_inequality(); 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_divisor(Coefficient_traits::const_reference d) { 23376: ((void) 0); 23376: if (is_line_or_parameter()) { 23376: expr.set_coefficient(Variable(space_dimension()), d); 23376: } 23376: else { 23376: expr.set_inhomogeneous_term(d); 23376: } 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Grid_Generator::divisor() const { 23376: if (is_line()) { 23376: throw_invalid_argument("divisor()", "*this is a line"); 23376: } 23376: if (is_line_or_parameter()) { 23376: return expr.coefficient(Variable(space_dimension())); 23376: } 23376: else { 23376: return expr.inhomogeneous_term(); 23376: } 23376: } 23376: 23376: inline bool 23376: Grid_Generator::is_equal_at_dimension(dimension_type dim, 23376: const Grid_Generator& y) const { 23376: const Grid_Generator& x = *this; 23376: return x.expr.get(dim) * y.divisor() == y.expr.get(dim) * x.divisor(); 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_is_line() { 23376: set_is_line_or_equality(); 23376: } 23376: 23376: inline void 23376: Grid_Generator::set_is_parameter_or_point() { 23376: set_is_ray_or_point_or_inequality(); 23376: } 23376: 23376: inline Grid_Generator& 23376: Grid_Generator::operator=(const Grid_Generator& g) { 23376: Grid_Generator tmp = g; 23376: swap(*this, tmp); 23376: 23376: return *this; 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Grid_Generator::coefficient(const Variable v) const { 23376: if (v.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("coefficient(v)", "v", v); 23376: } 23376: return expr.coefficient(v); 23376: } 23376: 23376: inline memory_size_type 23376: Grid_Generator::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Grid_Generator::external_memory_in_bytes() const { 23376: return expr.external_memory_in_bytes(); 23376: } 23376: 23376: inline const Grid_Generator& 23376: Grid_Generator::zero_dim_point() { 23376: ((void) 0); 23376: return *zero_dim_point_p; 23376: } 23376: 23376: inline void 23376: Grid_Generator::strong_normalize() { 23376: ((void) 0); 23376: expr.normalize(); 23376: sign_normalize(); 23376: } 23376: 23376: inline void 23376: Grid_Generator::m_swap(Grid_Generator& y) { 23376: using std::swap; 23376: swap(expr, y.expr); 23376: swap(kind_, y.kind_); 23376: } 23376: 23376: 23376: inline bool 23376: operator==(const Grid_Generator& x, const Grid_Generator& y) { 23376: return x.is_equivalent_to(y); 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Grid_Generator& x, const Grid_Generator& y) { 23376: return !(x == y); 23376: } 23376: 23376: 23376: inline Grid_Generator 23376: grid_line(const Linear_Expression& e, Representation r) { 23376: return Grid_Generator::grid_line(e, r); 23376: } 23376: 23376: 23376: inline Grid_Generator 23376: parameter(const Linear_Expression& e, 23376: Coefficient_traits::const_reference d, Representation r) { 23376: return Grid_Generator::parameter(e, d, r); 23376: } 23376: 23376: 23376: inline Grid_Generator 23376: parameter(Representation r) { 23376: return Grid_Generator::parameter(r); 23376: } 23376: 23376: 23376: inline Grid_Generator 23376: parameter(const Linear_Expression& e, Representation r) { 23376: return Grid_Generator::parameter(e, r); 23376: } 23376: 23376: 23376: inline Grid_Generator 23376: grid_point(const Linear_Expression& e, 23376: Coefficient_traits::const_reference d, Representation r) { 23376: return Grid_Generator::grid_point(e, d, r); 23376: } 23376: 23376: 23376: inline Grid_Generator 23376: grid_point(Representation r) { 23376: return Grid_Generator::grid_point(r); 23376: } 23376: 23376: 23376: inline Grid_Generator 23376: grid_point(const Linear_Expression& e, Representation r) { 23376: return Grid_Generator::grid_point(e, r); 23376: } 23376: 23376: 23376: inline void 23376: swap(Grid_Generator& x, Grid_Generator& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 795 "../../src/Grid_Generator_defs.hh" 2 23376: # 33 "../../src/Linear_Expression_Impl_templates.hh" 2 23376: # 1 "../../src/Congruence_defs.hh" 1 23376: # 42 "../../src/Congruence_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: bool 23376: operator==(const Congruence& x, const Congruence& y); 23376: 23376: 23376: 23376: bool 23376: operator!=(const Congruence& x, const Congruence& y); 23376: 23376: } 23376: # 161 "../../src/Congruence_defs.hh" 23376: class Parma_Polyhedra_Library::Congruence { 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const Representation default_representation = SPARSE; 23376: 23376: 23376: explicit Congruence(Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: Congruence(const Congruence& cg); 23376: 23376: 23376: Congruence(const Congruence& cg, Representation r); 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit Congruence(const Constraint& c, 23376: Representation r = default_representation); 23376: 23376: 23376: ~Congruence(); 23376: 23376: 23376: Congruence& operator=(const Congruence& y); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: void permute_space_dimensions(const std::vector& cycles); 23376: 23376: 23376: typedef Expression_Adapter_Transparent expr_type; 23376: 23376: expr_type expression() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Coefficient_traits::const_reference coefficient(Variable v) const; 23376: 23376: 23376: Coefficient_traits::const_reference inhomogeneous_term() const; 23376: 23376: 23376: Coefficient_traits::const_reference modulus() const; 23376: 23376: 23376: 23376: void set_modulus(Coefficient_traits::const_reference m); 23376: 23376: 23376: void scale(Coefficient_traits::const_reference factor); 23376: 23376: 23376: void affine_preimage(Variable v, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Congruence& 23376: operator/=(Coefficient_traits::const_reference k); 23376: # 261 "../../src/Congruence_defs.hh" 23376: bool is_tautological() const; 23376: # 273 "../../src/Congruence_defs.hh" 23376: bool is_inconsistent() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_proper_congruence() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_equality() const; 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const Congruence& zero_dim_integrality(); 23376: 23376: 23376: 23376: 23376: 23376: static const Congruence& zero_dim_false(); 23376: 23376: 23376: static Congruence 23376: create(const Linear_Expression& e1, const Linear_Expression& e2, 23376: Representation r = default_representation); 23376: 23376: 23376: static Congruence 23376: create(const Linear_Expression& e, Coefficient_traits::const_reference n, 23376: Representation r = default_representation); 23376: 23376: 23376: static Congruence 23376: create(Coefficient_traits::const_reference n, const Linear_Expression& e, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: void m_swap(Congruence& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Congruence(const Congruence& cg, dimension_type new_space_dimension); 23376: 23376: 23376: Congruence(const Congruence& cg, dimension_type new_space_dimension, 23376: Representation r); 23376: 23376: 23376: 23376: Congruence(const Constraint& cg, dimension_type new_space_dimension, 23376: Representation r = default_representation); 23376: # 374 "../../src/Congruence_defs.hh" 23376: Congruence(Linear_Expression& le, 23376: Coefficient_traits::const_reference m, Recycle_Input); 23376: 23376: 23376: void swap_space_dimensions(Variable v1, Variable v2); 23376: 23376: 23376: 23376: void set_space_dimension(dimension_type n); 23376: 23376: 23376: 23376: void shift_space_dimensions(Variable v, dimension_type n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void sign_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void normalize(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void strong_normalize(); 23376: 23376: private: 23376: 23376: 23376: 23376: 23376: static const Congruence* zero_dim_false_p; 23376: 23376: 23376: 23376: 23376: 23376: 23376: static const Congruence* zero_dim_integrality_p; 23376: 23376: Linear_Expression expr; 23376: 23376: Coefficient modulus_; 23376: 23376: 23376: 23376: 23376: 23376: bool is_equal_at_dimension(Variable v, 23376: const Congruence& cg) const; 23376: 23376: 23376: 23376: 23376: 23376: void 23376: throw_invalid_argument(const char* method, const char* message) const; 23376: 23376: 23376: 23376: 23376: 23376: void 23376: throw_dimension_incompatible(const char* method, 23376: const char* v_name, 23376: Variable v) const; 23376: 23376: friend bool 23376: operator==(const Congruence& x, const Congruence& y); 23376: 23376: friend bool 23376: operator!=(const Congruence& x, const Congruence& y); 23376: 23376: friend class Scalar_Products; 23376: friend class Grid; 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: 23376: std::ostream& 23376: operator<<(std::ostream& s, const Congruence& c); 23376: 23376: } 23376: 23376: 23376: 23376: Congruence 23376: operator%=(const Linear_Expression& e1, const Linear_Expression& e2); 23376: 23376: 23376: 23376: Congruence 23376: operator%=(const Linear_Expression& e, Coefficient_traits::const_reference n); 23376: # 490 "../../src/Congruence_defs.hh" 23376: Congruence 23376: operator/(const Congruence& cg, Coefficient_traits::const_reference k); 23376: 23376: 23376: 23376: Congruence 23376: operator/(const Constraint& c, Coefficient_traits::const_reference m); 23376: 23376: 23376: void 23376: swap(Congruence& x, Congruence& y); 23376: 23376: } 23376: 23376: # 1 "../../src/Congruence_inlines.hh" 1 23376: # 29 "../../src/Congruence_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Congruence::Congruence(Representation r) 23376: : expr(r) { 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Congruence::Congruence(const Congruence& cg) 23376: : expr(cg.expr), modulus_(cg.modulus_) { 23376: } 23376: 23376: inline 23376: Congruence::Congruence(const Congruence& cg, Representation r) 23376: : expr(cg.expr, r), modulus_(cg.modulus_) { 23376: } 23376: 23376: inline 23376: Congruence::Congruence(const Congruence& cg, 23376: dimension_type new_space_dimension) 23376: : expr(cg.expr, new_space_dimension), modulus_(cg.modulus_) { 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Congruence::Congruence(const Congruence& cg, 23376: dimension_type new_space_dimension, 23376: Representation r) 23376: : expr(cg.expr, new_space_dimension, r), modulus_(cg.modulus_) { 23376: ((void) 0); 23376: } 23376: 23376: inline Representation 23376: Congruence::representation() const { 23376: return expr.representation(); 23376: } 23376: 23376: inline void 23376: Congruence::set_representation(Representation r) { 23376: expr.set_representation(r); 23376: } 23376: 23376: inline Congruence::expr_type 23376: Congruence::expression() const { 23376: return expr_type(expr); 23376: } 23376: 23376: inline void 23376: Congruence::set_space_dimension(dimension_type n) { 23376: expr.set_space_dimension(n); 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Congruence::shift_space_dimensions(Variable v, dimension_type n) { 23376: expr.shift_space_dimensions(v, n); 23376: } 23376: 23376: inline 23376: Congruence::~Congruence() { 23376: } 23376: 23376: inline 23376: Congruence::Congruence(Linear_Expression& le, 23376: Coefficient_traits::const_reference m, 23376: Recycle_Input) 23376: : modulus_(m) { 23376: ((void) 0); 23376: swap(expr, le); 23376: 23376: ((void) 0); 23376: } 23376: 23376: inline Congruence 23376: Congruence::create(const Linear_Expression& e, 23376: Coefficient_traits::const_reference n, 23376: Representation r) { 23376: Linear_Expression diff(e, r); 23376: diff -= n; 23376: const Congruence cg(diff, 1, Recycle_Input()); 23376: return cg; 23376: } 23376: 23376: inline Congruence 23376: Congruence::create(Coefficient_traits::const_reference n, 23376: const Linear_Expression& e, 23376: Representation r) { 23376: Linear_Expression diff(e, r); 23376: diff -= n; 23376: const Congruence cg(diff, 1, Recycle_Input()); 23376: return cg; 23376: } 23376: 23376: 23376: inline Congruence 23376: operator%=(const Linear_Expression& e1, const Linear_Expression& e2) { 23376: return Congruence::create(e1, e2); 23376: } 23376: 23376: 23376: inline Congruence 23376: operator%=(const Linear_Expression& e, Coefficient_traits::const_reference n) { 23376: return Congruence::create(e, n); 23376: } 23376: 23376: 23376: inline Congruence 23376: operator/(const Congruence& cg, Coefficient_traits::const_reference k) { 23376: Congruence ret = cg; 23376: ret /= k; 23376: return ret; 23376: } 23376: 23376: inline const Congruence& 23376: Congruence::zero_dim_integrality() { 23376: return *zero_dim_integrality_p; 23376: } 23376: 23376: inline const Congruence& 23376: Congruence::zero_dim_false() { 23376: return *zero_dim_false_p; 23376: } 23376: 23376: inline Congruence& 23376: Congruence::operator=(const Congruence& y) { 23376: Congruence tmp = y; 23376: swap(*this, tmp); 23376: return *this; 23376: } 23376: 23376: 23376: inline Congruence 23376: operator/(const Constraint& c, Coefficient_traits::const_reference m) { 23376: Congruence ret(c); 23376: ret /= m; 23376: return ret; 23376: } 23376: 23376: inline Congruence& 23376: Congruence::operator/=(Coefficient_traits::const_reference k) { 23376: if (k >= 0) { 23376: modulus_ *= k; 23376: } 23376: else { 23376: modulus_ *= -k; 23376: } 23376: return *this; 23376: } 23376: 23376: 23376: inline bool 23376: operator==(const Congruence& x, const Congruence& y) { 23376: if (x.space_dimension() != y.space_dimension()) { 23376: return false; 23376: } 23376: Congruence x_temp(x); 23376: Congruence y_temp(y); 23376: x_temp.strong_normalize(); 23376: y_temp.strong_normalize(); 23376: return x_temp.expr.is_equal_to(y_temp.expr) 23376: && x_temp.modulus() == y_temp.modulus(); 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Congruence& x, const Congruence& y) { 23376: return !(x == y); 23376: } 23376: 23376: inline dimension_type 23376: Congruence::max_space_dimension() { 23376: return Linear_Expression::max_space_dimension(); 23376: } 23376: 23376: inline dimension_type 23376: Congruence::space_dimension() const { 23376: return expr.space_dimension(); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Congruence::coefficient(const Variable v) const { 23376: if (v.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("coefficient(v)", "v", v); 23376: } 23376: return expr.coefficient(v); 23376: } 23376: 23376: inline void 23376: Congruence::permute_space_dimensions(const std::vector& cycles) { 23376: expr.permute_space_dimensions(cycles); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Congruence::inhomogeneous_term() const { 23376: return expr.inhomogeneous_term(); 23376: } 23376: 23376: inline Coefficient_traits::const_reference 23376: Congruence::modulus() const { 23376: return modulus_; 23376: } 23376: 23376: inline void 23376: Congruence::set_modulus(Coefficient_traits::const_reference m) { 23376: modulus_ = m; 23376: ((void) 0); 23376: } 23376: 23376: inline bool 23376: Congruence::is_proper_congruence() const { 23376: return modulus() > 0; 23376: } 23376: 23376: inline bool 23376: Congruence::is_equality() const { 23376: return modulus() == 0; 23376: } 23376: 23376: inline bool 23376: Congruence::is_equal_at_dimension(Variable v, 23376: const Congruence& cg) const { 23376: return coefficient(v) * cg.modulus() == cg.coefficient(v) * modulus(); 23376: } 23376: 23376: inline memory_size_type 23376: Congruence::external_memory_in_bytes() const { 23376: return expr.external_memory_in_bytes() 23376: + Parma_Polyhedra_Library::external_memory_in_bytes(modulus_); 23376: } 23376: 23376: inline memory_size_type 23376: Congruence::total_memory_in_bytes() const { 23376: return external_memory_in_bytes() + sizeof(*this); 23376: } 23376: 23376: inline void 23376: Congruence::m_swap(Congruence& y) { 23376: using std::swap; 23376: swap(expr, y.expr); 23376: swap(modulus_, y.modulus_); 23376: } 23376: 23376: inline void 23376: Congruence::swap_space_dimensions(Variable v1, Variable v2) { 23376: expr.swap_space_dimensions(v1, v2); 23376: } 23376: 23376: 23376: inline void 23376: swap(Congruence& x, Congruence& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 505 "../../src/Congruence_defs.hh" 2 23376: # 34 "../../src/Linear_Expression_Impl_templates.hh" 2 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: Linear_Expression_Impl 23376: ::Linear_Expression_Impl(const Linear_Expression_Impl& e) { 23376: construct(e); 23376: } 23376: 23376: template 23376: template 23376: Linear_Expression_Impl 23376: ::Linear_Expression_Impl(const Linear_Expression_Impl& e) { 23376: construct(e); 23376: } 23376: 23376: template 23376: Linear_Expression_Impl 23376: ::Linear_Expression_Impl(const Linear_Expression_Interface& e) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&e)) { 23376: construct(*p); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&e)) { 23376: construct(*p); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: Linear_Expression_Impl 23376: ::Linear_Expression_Impl(const Linear_Expression_Interface& e, 23376: dimension_type space_dim) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&e)) { 23376: construct(*p, space_dim); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&e)) { 23376: construct(*p, space_dim); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine(const Linear_Expression_Impl& y, Variable i) { 23376: ((void) 0); 23376: ((void) 0); 23376: linear_combine(y, i.space_dimension()); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine(const Linear_Expression_Impl& y, dimension_type i) { 23376: const Linear_Expression_Impl& x = *this; 23376: ((void) 0); 23376: ((void) 0); 23376: Coefficient_traits::const_reference x_i = x.row.get(i); 23376: Coefficient_traits::const_reference y_i = y.row.get(i); 23376: ((void) 0); 23376: ((void) 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_normalized_x_v; Parma_Polyhedra_Library::Coefficient& normalized_x_v = holder_normalized_x_v.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_normalized_y_v; Parma_Polyhedra_Library::Coefficient& normalized_y_v = holder_normalized_y_v.item(); 23376: normalize2(x_i, y_i, normalized_x_v, normalized_y_v); 23376: neg_assign(normalized_x_v); 23376: linear_combine(y, normalized_y_v, normalized_x_v); 23376: 23376: 23376: 23376: # 116 "../../src/Linear_Expression_Impl_templates.hh" 3 4 23376: (static_cast (0)) 23376: # 116 "../../src/Linear_Expression_Impl_templates.hh" 23376: ; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine(const Linear_Expression_Impl& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2) { 23376: ((void) 0); 23376: ((void) 0); 23376: if (space_dimension() < y.space_dimension()) { 23376: set_space_dimension(y.space_dimension()); 23376: } 23376: linear_combine(y, c1, c2, 0, y.space_dimension() + 1); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine_lax(const Linear_Expression_Impl& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2) { 23376: if (space_dimension() < y.space_dimension()) { 23376: set_space_dimension(y.space_dimension()); 23376: } 23376: linear_combine_lax(y, c1, c2, 0, y.space_dimension() + 1); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: int 23376: Linear_Expression_Impl 23376: ::compare(const Linear_Expression_Impl& y) const { 23376: const Linear_Expression_Impl& x = *this; 23376: 23376: 23376: typename Row::const_iterator i = x.row.lower_bound(1); 23376: typename Row::const_iterator i_end = x.row.end(); 23376: typename Row2::const_iterator j = y.row.lower_bound(1); 23376: typename Row2::const_iterator j_end = y.row.end(); 23376: while (i != i_end && j != j_end) { 23376: if (i.index() < j.index()) { 23376: const int s = sgn(*i); 23376: if (s != 0) { 23376: return 2*s; 23376: } 23376: ++i; 23376: continue; 23376: } 23376: if (i.index() > j.index()) { 23376: const int s = sgn(*j); 23376: if (s != 0) { 23376: return -2*s; 23376: } 23376: ++j; 23376: continue; 23376: } 23376: ((void) 0); 23376: const int s = cmp(*i, *j); 23376: if (s < 0) { 23376: return -2; 23376: } 23376: if (s > 0) { 23376: return 2; 23376: } 23376: ((void) 0); 23376: ++i; 23376: ++j; 23376: } 23376: for ( ; i != i_end; ++i) { 23376: const int s = sgn(*i); 23376: if (s != 0) { 23376: return 2*s; 23376: } 23376: } 23376: for ( ; j != j_end; ++j) { 23376: const int s = sgn(*j); 23376: if (s != 0) { 23376: return -2*s; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: const int comp = cmp(x.row.get(0), y.row.get(0)); 23376: if (comp > 0) { 23376: return 1; 23376: } 23376: if (comp < 0) { 23376: return -1; 23376: } 23376: ((void) 0); 23376: 23376: 23376: return 0; 23376: } 23376: 23376: template 23376: Linear_Expression_Impl::Linear_Expression_Impl(const Variable v) { 23376: if (v.space_dimension() > max_space_dimension()) { 23376: throw std::length_error("Linear_Expression_Impl::" 23376: "Linear_Expression_Impl(v):\n" 23376: "v exceeds the maximum allowed " 23376: "space dimension."); 23376: } 23376: set_space_dimension(v.space_dimension()); 23376: (*this) += v; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: bool 23376: Linear_Expression_Impl 23376: ::is_equal_to(const Linear_Expression_Impl& x) const { 23376: return row == x.row; 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::get_row(Dense_Row& r) const { 23376: r = this->row; 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::get_row(Sparse_Row& r) const { 23376: r = this->row; 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::permute_space_dimensions(const std::vector& cycle) { 23376: const dimension_type n = cycle.size(); 23376: if (n < 2) { 23376: return; 23376: } 23376: 23376: if (n == 2) { 23376: row.swap_coefficients(cycle[0].space_dimension(), 23376: cycle[1].space_dimension()); 23376: } 23376: else { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; Parma_Polyhedra_Library::Coefficient& tmp = holder_tmp.item(); 23376: tmp = row.get(cycle.back().space_dimension()); 23376: for (dimension_type i = n - 1; i-- > 0; ) { 23376: row.swap_coefficients(cycle[i + 1].space_dimension(), 23376: cycle[i].space_dimension()); 23376: } 23376: if (tmp == 0) { 23376: row.reset(cycle[0].space_dimension()); 23376: } 23376: else { 23376: using std::swap; 23376: swap(tmp, row[cycle[0].space_dimension()]); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl::operator+=(const Linear_Expression_Impl& e) { 23376: linear_combine(e, Coefficient_one(), Coefficient_one()); 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl::operator+=(const Variable v) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: if (v_space_dim > Linear_Expression_Impl::max_space_dimension()) { 23376: throw std::length_error("Linear_Expression_Impl& " 23376: "operator+=(e, v):\n" 23376: "v exceeds the maximum allowed space dimension."); 23376: } 23376: if (space_dimension() < v_space_dim) { 23376: set_space_dimension(v_space_dim); 23376: } 23376: typename Row::iterator itr = row.insert(v_space_dim); 23376: ++(*itr); 23376: if (*itr == 0) { 23376: row.reset(itr); 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl::operator-=(const Linear_Expression_Impl& e2) { 23376: linear_combine(e2, Coefficient_one(), -1); 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl::operator-=(const Variable v) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: if (v_space_dim > Linear_Expression_Impl::max_space_dimension()) { 23376: throw std::length_error("Linear_Expression_Impl& " 23376: "operator-=(e, v):\n" 23376: "v exceeds the maximum allowed space dimension."); 23376: } 23376: if (space_dimension() < v_space_dim) { 23376: set_space_dimension(v_space_dim); 23376: } 23376: typename Row::iterator itr = row.insert(v_space_dim); 23376: --(*itr); 23376: if (*itr == 0) { 23376: row.reset(itr); 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl::operator*=(Coefficient_traits::const_reference n) { 23376: if (n == 0) { 23376: row.clear(); 23376: ((void) 0); 23376: return *this; 23376: } 23376: for (typename Row::iterator i = row.begin(), 23376: i_end = row.end(); i != i_end; ++i) { 23376: (*i) *= n; 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl::operator/=(Coefficient_traits::const_reference n) { 23376: typename Row::iterator i = row.begin(); 23376: const typename Row::iterator& i_end = row.end(); 23376: while (i != i_end) { 23376: (*i) /= n; 23376: if (*i == 0) { 23376: i = row.reset(i); 23376: } 23376: else { 23376: ++i; 23376: } 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::negate() { 23376: for (typename Row::iterator i = row.begin(), 23376: i_end = row.end(); i != i_end; ++i) { 23376: neg_assign(*i); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl::add_mul_assign(Coefficient_traits::const_reference n, 23376: const Variable v) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: if (v_space_dim > Linear_Expression_Impl::max_space_dimension()) { 23376: throw std::length_error("Linear_Expression_Impl& " 23376: "add_mul_assign(e, n, v):\n" 23376: "v exceeds the maximum allowed space dimension."); 23376: } 23376: if (space_dimension() < v_space_dim) { 23376: set_space_dimension(v_space_dim); 23376: } 23376: if (n == 0) { 23376: return *this; 23376: } 23376: typename Row::iterator itr = row.insert(v_space_dim); 23376: (*itr) += n; 23376: if (*itr == 0) { 23376: row.reset(itr); 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl 23376: ::sub_mul_assign(Coefficient_traits::const_reference n, 23376: const Variable v) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: if (v_space_dim > Linear_Expression_Impl::max_space_dimension()) { 23376: throw std::length_error("Linear_Expression_Impl& " 23376: "sub_mul_assign(e, n, v):\n" 23376: "v exceeds the maximum allowed space dimension."); 23376: } 23376: if (space_dimension() < v_space_dim) { 23376: set_space_dimension(v_space_dim); 23376: } 23376: if (n == 0) { 23376: return *this; 23376: } 23376: typename Row::iterator itr = row.insert(v_space_dim); 23376: (*itr) -= n; 23376: if (*itr == 0) { 23376: row.reset(itr); 23376: } 23376: ((void) 0); 23376: return *this; 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::add_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Impl& y) { 23376: if (factor != 0) { 23376: linear_combine(y, Coefficient_one(), factor); 23376: } 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::sub_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Impl& y) { 23376: if (factor != 0) { 23376: linear_combine(y, Coefficient_one(), -factor); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::print(std::ostream& s) const { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_ev; Parma_Polyhedra_Library::Coefficient& ev = holder_ev.item(); 23376: bool first = true; 23376: for (typename Row::const_iterator i = row.lower_bound(1), i_end = row.end(); 23376: i != i_end; ++i) { 23376: ev = *i; 23376: if (ev == 0) { 23376: continue; 23376: } 23376: if (!first) { 23376: if (ev > 0) { 23376: s << " + "; 23376: } 23376: else { 23376: s << " - "; 23376: neg_assign(ev); 23376: } 23376: } 23376: else { 23376: first = false; 23376: } 23376: if (ev == -1) { 23376: s << "-"; 23376: } 23376: else if (ev != 1) { 23376: s << ev << "*"; 23376: } 23376: IO_Operators::operator<<(s, Variable(i.index() - 1)); 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_it; Parma_Polyhedra_Library::Coefficient& it = holder_it.item(); 23376: it = row[0]; 23376: if (it != 0) { 23376: if (!first) { 23376: if (it > 0) { 23376: s << " + "; 23376: } 23376: else { 23376: s << " - "; 23376: neg_assign(it); 23376: } 23376: } 23376: else { 23376: first = false; 23376: } 23376: s << it; 23376: } 23376: 23376: if (first) { 23376: 23376: s << Coefficient_zero(); 23376: } 23376: } 23376: 23376: template 23376: Coefficient_traits::const_reference 23376: Linear_Expression_Impl::get(dimension_type i) const { 23376: return row.get(i); 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::set(dimension_type i, Coefficient_traits::const_reference n) { 23376: if (n == 0) { 23376: row.reset(i); 23376: } 23376: else { 23376: row.insert(i, n); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::exact_div_assign(Coefficient_traits::const_reference c, 23376: dimension_type start, dimension_type end) { 23376: 23376: 23376: 23376: for (typename Row::iterator i = row.lower_bound(start), 23376: i_end = row.lower_bound(end); i != i_end; ++i) { 23376: Parma_Polyhedra_Library::exact_div_assign(*i, *i, c); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::mul_assign(Coefficient_traits::const_reference c, 23376: dimension_type start, dimension_type end) { 23376: if (c == 0) { 23376: typename Row::iterator i = row.lower_bound(start); 23376: const typename Row::iterator& i_end = row.end(); 23376: while (i != i_end && i.index() < end) { 23376: i = row.reset(i); 23376: } 23376: } 23376: else { 23376: for (typename Row::iterator 23376: i = row.lower_bound(start), i_end = row.lower_bound(end); 23376: i != i_end; ++i) { 23376: (*i) *= c; 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine(const Linear_Expression_Impl& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) { 23376: Parma_Polyhedra_Library::linear_combine(row, y.row, c1, c2, start, end); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine_lax(const Linear_Expression_Impl& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: if (c1 == 0) { 23376: if (c2 == 0) { 23376: ((void) 0); 23376: ((void) 0); 23376: typename Row::iterator i = row.lower_bound(start); 23376: const typename Row::iterator& i_end = row.end(); 23376: while (i != i_end && i.index() < end) { 23376: i = row.reset(i); 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: typename Row::iterator i = row.lower_bound(start); 23376: const typename Row::iterator& i_end = row.end(); 23376: typename Row2::const_iterator j = y.row.lower_bound(start); 23376: typename Row2::const_iterator j_last = y.row.lower_bound(end); 23376: 23376: while (i != i_end && i.index() < end && j != j_last) { 23376: if (i.index() < j.index()) { 23376: i = row.reset(i); 23376: continue; 23376: } 23376: if (i.index() > j.index()) { 23376: i = row.insert(i, j.index(), *j); 23376: (*i) *= c2; 23376: ++i; 23376: ++j; 23376: continue; 23376: } 23376: ((void) 0); 23376: (*i) = (*j); 23376: (*i) *= c2; 23376: ++i; 23376: ++j; 23376: } 23376: while (i != i_end && i.index() < end) { 23376: i = row.reset(i); 23376: } 23376: while (j != j_last) { 23376: i = row.insert(i, j.index(), *j); 23376: (*i) *= c2; 23376: 23376: ++j; 23376: } 23376: } 23376: } 23376: else { 23376: if (c2 == 0) { 23376: ((void) 0); 23376: ((void) 0); 23376: for (typename Row::iterator i = row.lower_bound(start), 23376: i_end = row.lower_bound(end); i != i_end; ++i) { 23376: (*i) *= c1; 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: ((void) 0); 23376: Parma_Polyhedra_Library::linear_combine(row, y.row, c1, c2, start, end); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::sign_normalize() { 23376: typename Row::iterator i = row.lower_bound(1); 23376: typename Row::iterator i_end = row.end(); 23376: 23376: for ( ; i != i_end; ++i) { 23376: if (*i != 0) { 23376: break; 23376: } 23376: } 23376: 23376: if (i != i_end && *i < 0) { 23376: for ( ; i != i_end; ++i) { 23376: neg_assign(*i); 23376: } 23376: 23376: typename Row::iterator first = row.begin(); 23376: if (first != row.end() && first.index() == 0) { 23376: neg_assign(*first); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::negate(dimension_type first, dimension_type last) { 23376: ((void) 0); 23376: ((void) 0); 23376: typename Row::iterator i = row.lower_bound(first); 23376: typename Row::iterator i_end = row.lower_bound(last); 23376: for ( ; i != i_end; ++i) { 23376: neg_assign(*i); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl::construct(const Linear_Expression_Impl& e) { 23376: row = e.row; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl::construct(const Linear_Expression_Impl& e, 23376: dimension_type space_dim) { 23376: Row x(e.row, space_dim + 1, space_dim + 1); 23376: swap(row, x); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::scalar_product_assign(Coefficient& result, 23376: const Linear_Expression_Impl& y, 23376: dimension_type start, dimension_type end) const { 23376: const Linear_Expression_Impl& x = *this; 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: result = 0; 23376: typename Row ::const_iterator x_i = x.row.lower_bound(start); 23376: typename Row ::const_iterator x_end = x.row.lower_bound(end); 23376: typename Row2::const_iterator y_i = y.row.lower_bound(start); 23376: typename Row2::const_iterator y_end = y.row.lower_bound(end); 23376: while (x_i != x_end && y_i != y_end) { 23376: if (x_i.index() == y_i.index()) { 23376: Parma_Polyhedra_Library::add_mul_assign(result, *x_i, *y_i); 23376: ++x_i; 23376: ++y_i; 23376: } 23376: else { 23376: if (x_i.index() < y_i.index()) { 23376: ((void) 0); 23376: 23376: ++x_i; 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: ++y_i; 23376: } 23376: } 23376: } 23376: 23376: 23376: } 23376: 23376: template 23376: template 23376: int 23376: Linear_Expression_Impl 23376: ::scalar_product_sign(const Linear_Expression_Impl& y, 23376: dimension_type start, dimension_type end) const { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_result; Parma_Polyhedra_Library::Coefficient& result = holder_result.item(); 23376: scalar_product_assign(result, y, start, end); 23376: return sgn(result); 23376: } 23376: 23376: template 23376: template 23376: bool 23376: Linear_Expression_Impl 23376: ::is_equal_to(const Linear_Expression_Impl& y, 23376: dimension_type start, dimension_type end) const { 23376: const Linear_Expression_Impl& x = *this; 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: typename Row::const_iterator i = x.row.lower_bound(start); 23376: typename Row::const_iterator i_end = x.row.lower_bound(end); 23376: typename Row2::const_iterator j = y.row.lower_bound(start); 23376: typename Row2::const_iterator j_end = y.row.lower_bound(end); 23376: while (i != i_end && j != j_end) { 23376: if (i.index() == j.index()) { 23376: if (*i != *j) { 23376: return false; 23376: } 23376: ++i; 23376: ++j; 23376: } 23376: else { 23376: if (i.index() < j.index()) { 23376: if (*i != 0) { 23376: return false; 23376: } 23376: ++i; 23376: } 23376: else { 23376: ((void) 0); 23376: if (*j != 0) { 23376: return false; 23376: } 23376: ++j; 23376: } 23376: } 23376: } 23376: for ( ; i != i_end; ++i) { 23376: if (*i != 0) { 23376: return false; 23376: } 23376: } 23376: for ( ; j != j_end; ++j) { 23376: if (*j != 0) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: template 23376: bool 23376: Linear_Expression_Impl 23376: ::is_equal_to(const Linear_Expression_Impl& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const { 23376: const Linear_Expression_Impl& x = *this; 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: if (c1 == 0) { 23376: if (c2 == 0) { 23376: return true; 23376: } 23376: else { 23376: return y.all_zeroes(start, end); 23376: } 23376: } 23376: if (c2 == 0) { 23376: return x.all_zeroes(start, end); 23376: } 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: typename Row::const_iterator i = x.row.lower_bound(start); 23376: typename Row::const_iterator i_end = x.row.lower_bound(end); 23376: typename Row2::const_iterator j = y.row.lower_bound(start); 23376: typename Row2::const_iterator j_end = y.row.lower_bound(end); 23376: while (i != i_end && j != j_end) { 23376: if (i.index() == j.index()) { 23376: if ((*i) * c1 != (*j) * c2) { 23376: return false; 23376: } 23376: ++i; 23376: ++j; 23376: } 23376: else { 23376: if (i.index() < j.index()) { 23376: if (*i != 0) { 23376: return false; 23376: } 23376: ++i; 23376: } 23376: else { 23376: ((void) 0); 23376: if (*j != 0) { 23376: return false; 23376: } 23376: ++j; 23376: } 23376: } 23376: } 23376: for ( ; i != i_end; ++i) { 23376: if (*i != 0) { 23376: return false; 23376: } 23376: } 23376: for ( ; j != j_end; ++j) { 23376: if (*j != 0) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine(const Linear_Expression_Interface& y, Variable v) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: linear_combine(*p, v); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: linear_combine(*p, v); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: linear_combine(*p, c1, c2); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: linear_combine(*p, c1, c2); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine_lax(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: linear_combine_lax(*p, c1, c2); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: linear_combine_lax(*p, c1, c2); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: bool 23376: Linear_Expression_Impl 23376: ::is_equal_to(const Linear_Expression_Interface& y) const { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return is_equal_to(*p); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return is_equal_to(*p); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl 23376: ::operator+=(const Linear_Expression_Interface& y) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return operator+=(*p); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return operator+=(*p); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return *this; 23376: } 23376: } 23376: 23376: template 23376: Linear_Expression_Impl& 23376: Linear_Expression_Impl 23376: ::operator-=(const Linear_Expression_Interface& y) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return operator-=(*p); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return operator-=(*p); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return *this; 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::add_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Interface& y) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: add_mul_assign(factor, *p); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: add_mul_assign(factor, *p); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::sub_mul_assign(Coefficient_traits::const_reference factor, 23376: const Linear_Expression_Interface& y) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: sub_mul_assign(factor, *p); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: sub_mul_assign(factor, *p); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine(const Linear_Expression_Interface& y, dimension_type i) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: linear_combine(*p, i); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: linear_combine(*p, i); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: linear_combine(*p, c1, c2, start, end); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: linear_combine(*p, c1, c2, start, end); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::linear_combine_lax(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: linear_combine_lax(*p, c1, c2, start, end); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: linear_combine_lax(*p, c1, c2, start, end); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: int 23376: Linear_Expression_Impl 23376: ::compare(const Linear_Expression_Interface& y) const { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return compare(*p); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return compare(*p); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return 0; 23376: } 23376: } 23376: 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::construct(const Linear_Expression_Interface& y) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return construct(*p); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return construct(*p); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::construct(const Linear_Expression_Interface& y, 23376: dimension_type space_dim) { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return construct(*p, space_dim); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return construct(*p, space_dim); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl 23376: ::scalar_product_assign(Coefficient& result, 23376: const Linear_Expression_Interface& y, 23376: dimension_type start, dimension_type end) const { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: scalar_product_assign(result, *p, start, end); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: scalar_product_assign(result, *p, start, end); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: int 23376: Linear_Expression_Impl 23376: ::scalar_product_sign(const Linear_Expression_Interface& y, 23376: dimension_type start, dimension_type end) const { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return scalar_product_sign(*p, start, end); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return scalar_product_sign(*p, start, end); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return 0; 23376: } 23376: } 23376: 23376: template 23376: bool 23376: Linear_Expression_Impl 23376: ::is_equal_to(const Linear_Expression_Interface& y, 23376: dimension_type start, dimension_type end) const { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return is_equal_to(*p, start, end); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return is_equal_to(*p, start, end); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: bool 23376: Linear_Expression_Impl 23376: ::is_equal_to(const Linear_Expression_Interface& y, 23376: Coefficient_traits::const_reference c1, 23376: Coefficient_traits::const_reference c2, 23376: dimension_type start, dimension_type end) const { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return is_equal_to(*p, c1, c2, start, end); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return is_equal_to(*p, c1, c2, start, end); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: bool 23376: Linear_Expression_Impl 23376: ::have_a_common_variable(const Linear_Expression_Interface& y, 23376: Variable first, Variable last) const { 23376: typedef const Linear_Expression_Impl* Dense_Ptr; 23376: typedef const Linear_Expression_Impl* Sparse_Ptr; 23376: if (const Dense_Ptr p = dynamic_cast(&y)) { 23376: return have_a_common_variable(*p, first, last); 23376: } 23376: else if (const Sparse_Ptr p = dynamic_cast(&y)) { 23376: return have_a_common_variable(*p, first, last); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: Linear_Expression_Interface::const_iterator_interface* 23376: Linear_Expression_Impl::begin() const { 23376: return new const_iterator(row, 1); 23376: } 23376: 23376: template 23376: Linear_Expression_Interface::const_iterator_interface* 23376: Linear_Expression_Impl::end() const { 23376: return new const_iterator(row, row.size()); 23376: } 23376: 23376: template 23376: Linear_Expression_Interface::const_iterator_interface* 23376: Linear_Expression_Impl::lower_bound(Variable v) const { 23376: return new const_iterator(row, v.space_dimension()); 23376: } 23376: 23376: template 23376: Linear_Expression_Impl::const_iterator 23376: ::const_iterator(const Row& r, dimension_type i) 23376: : row(&r), itr(r.lower_bound(i)) { 23376: skip_zeroes_forward(); 23376: } 23376: 23376: template 23376: Linear_Expression_Interface::const_iterator_interface* 23376: Linear_Expression_Impl::const_iterator 23376: ::clone() const { 23376: return new const_iterator(*this); 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::const_iterator 23376: ::operator++() { 23376: ++itr; 23376: skip_zeroes_forward(); 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::const_iterator 23376: ::operator--() { 23376: --itr; 23376: skip_zeroes_backward(); 23376: } 23376: 23376: template 23376: typename Linear_Expression_Impl::const_iterator::reference 23376: Linear_Expression_Impl::const_iterator 23376: ::operator*() const { 23376: return *itr; 23376: } 23376: 23376: template 23376: Variable 23376: Linear_Expression_Impl::const_iterator 23376: ::variable() const { 23376: const dimension_type i = itr.index(); 23376: ((void) 0); 23376: return Variable(i - 1); 23376: } 23376: 23376: template 23376: bool 23376: Linear_Expression_Impl::const_iterator 23376: ::operator==(const const_iterator_interface& x) const { 23376: const const_iterator* const p = dynamic_cast(&x); 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: return itr == p->itr; 23376: } 23376: 23376: template 23376: void 23376: Linear_Expression_Impl::ascii_dump(std::ostream& s) const { 23376: s << "size " << (space_dimension() + 1) << " "; 23376: for (dimension_type i = 0; i < row.size(); ++i) { 23376: s << row.get(i); 23376: if (i != row.size() - 1) { 23376: s << ' '; 23376: } 23376: } 23376: } 23376: 23376: template 23376: bool 23376: Linear_Expression_Impl::ascii_load(std::istream& s) { 23376: std::string str; 23376: 23376: if (!(s >> str)) { 23376: return false; 23376: } 23376: if (str != "size") { 23376: return false; 23376: } 23376: 23376: dimension_type new_size; 23376: if (!(s >> new_size)) { 23376: return false; 23376: } 23376: 23376: row.resize(0); 23376: row.resize(new_size); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c; Parma_Polyhedra_Library::Coefficient& c = holder_c.item(); 23376: 23376: for (dimension_type j = 0; j < new_size; ++j) { 23376: if (!(s >> c)) { 23376: return false; 23376: } 23376: if (c != 0) { 23376: row.insert(j, c); 23376: } 23376: } 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Linear_Expression_Impl::OK() const { 23376: return row.OK(); 23376: } 23376: 23376: } 23376: # 905 "../../src/Linear_Expression_Impl_defs.hh" 2 23376: # 9 "../../src/ppl_include_files.hh" 2 23376: # 1 "../../src/Linear_Form_templates.hh" 1 23376: # 29 "../../src/Linear_Form_templates.hh" 23376: # 1 "../../src/Box_defs.hh" 1 23376: # 42 "../../src/Box_defs.hh" 23376: # 1 "../../src/Poly_Con_Relation_types.hh" 1 23376: # 16 "../../src/Poly_Con_Relation_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Poly_Con_Relation; 23376: 23376: } 23376: # 43 "../../src/Box_defs.hh" 2 23376: # 1 "../../src/Poly_Gen_Relation_types.hh" 1 23376: # 16 "../../src/Poly_Gen_Relation_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Poly_Gen_Relation; 23376: 23376: } 23376: # 44 "../../src/Box_defs.hh" 2 23376: 23376: 23376: # 1 "../../src/Partially_Reduced_Product_types.hh" 1 23376: # 16 "../../src/Partially_Reduced_Product_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Smash_Reduction; 23376: 23376: template 23376: class Constraints_Reduction; 23376: 23376: template 23376: class Congruences_Reduction; 23376: 23376: template 23376: class Shape_Preserving_Reduction; 23376: 23376: template 23376: class No_Reduction; 23376: 23376: template 23376: class Partially_Reduced_Product; 23376: 23376: } 23376: # 47 "../../src/Box_defs.hh" 2 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: struct Interval_Base; 23376: 23376: 23376: 23376: template 23376: void swap(Box& x, Box& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator==(const Box& x, const Box& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator!=(const Box& x, const Box& y); 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: template 23376: std::ostream& operator<<(std::ostream& s, const Box& box); 23376: 23376: } 23376: # 98 "../../src/Box_defs.hh" 23376: template 23376: bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: Rounding_Dir dir); 23376: # 116 "../../src/Box_defs.hh" 23376: template 23376: bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: Rounding_Dir dir); 23376: # 134 "../../src/Box_defs.hh" 23376: template 23376: bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 155 "../../src/Box_defs.hh" 23376: template 23376: bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: Rounding_Dir dir); 23376: # 173 "../../src/Box_defs.hh" 23376: template 23376: bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: Rounding_Dir dir); 23376: # 191 "../../src/Box_defs.hh" 23376: template 23376: bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 212 "../../src/Box_defs.hh" 23376: template 23376: bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: Rounding_Dir dir); 23376: # 230 "../../src/Box_defs.hh" 23376: template 23376: bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: Rounding_Dir dir); 23376: # 248 "../../src/Box_defs.hh" 23376: template 23376: bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool 23376: l_m_distance_assign(Checked_Number& r, 23376: const Box& x, const Box& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, Temp& tmp1, Temp& tmp2); 23376: 23376: } 23376: # 298 "../../src/Box_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::Box { 23376: public: 23376: 23376: typedef ITV interval_type; 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: 23376: 23376: static bool can_recycle_constraint_systems(); 23376: 23376: 23376: 23376: 23376: static bool can_recycle_congruence_systems(); 23376: # 328 "../../src/Box_defs.hh" 23376: explicit Box(dimension_type num_dimensions = 0, 23376: Degenerate_Element kind = UNIVERSE); 23376: 23376: 23376: 23376: 23376: 23376: Box(const Box& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: explicit Box(const Box& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 356 "../../src/Box_defs.hh" 23376: explicit Box(const Constraint_System& cs); 23376: # 372 "../../src/Box_defs.hh" 23376: Box(const Constraint_System& cs, Recycle_Input dummy); 23376: # 382 "../../src/Box_defs.hh" 23376: explicit Box(const Generator_System& gs); 23376: # 399 "../../src/Box_defs.hh" 23376: Box(const Generator_System& gs, Recycle_Input dummy); 23376: # 411 "../../src/Box_defs.hh" 23376: explicit Box(const Congruence_System& cgs); 23376: # 427 "../../src/Box_defs.hh" 23376: Box(const Congruence_System& cgs, Recycle_Input dummy); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: explicit Box(const BD_Shape& bds, 23376: Complexity_Class complexity = POLYNOMIAL_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: explicit Box(const Octagonal_Shape& oct, 23376: Complexity_Class complexity = POLYNOMIAL_COMPLEXITY); 23376: # 454 "../../src/Box_defs.hh" 23376: explicit Box(const Polyhedron& ph, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: 23376: explicit Box(const Grid& gr, 23376: Complexity_Class complexity = POLYNOMIAL_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: explicit Box(const Partially_Reduced_Product& dp, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: Box& operator=(const Box& y); 23376: 23376: 23376: 23376: 23376: 23376: void m_swap(Box& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type affine_dimension() const; 23376: 23376: 23376: bool is_empty() const; 23376: 23376: 23376: bool is_universe() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_topologically_closed() const; 23376: 23376: 23376: bool is_discrete() const; 23376: 23376: 23376: bool is_bounded() const; 23376: 23376: 23376: 23376: 23376: 23376: bool contains_integer_point() const; 23376: # 532 "../../src/Box_defs.hh" 23376: bool constrains(Variable var) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Con_Relation relation_with(const Constraint& c) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Con_Relation relation_with(const Congruence& cg) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Gen_Relation relation_with(const Generator& g) const; 23376: # 562 "../../src/Box_defs.hh" 23376: bool bounds_from_above(const Linear_Expression& expr) const; 23376: # 571 "../../src/Box_defs.hh" 23376: bool bounds_from_below(const Linear_Expression& expr) const; 23376: # 597 "../../src/Box_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum) const; 23376: # 628 "../../src/Box_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum, 23376: Generator& g) const; 23376: # 656 "../../src/Box_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum) const; 23376: # 687 "../../src/Box_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum, 23376: Generator& g) const; 23376: # 719 "../../src/Box_defs.hh" 23376: bool frequency(const Linear_Expression& expr, 23376: Coefficient& freq_n, Coefficient& freq_d, 23376: Coefficient& val_n, Coefficient& val_d) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool contains(const Box& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool strictly_contains(const Box& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_disjoint_from(const Box& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool OK() const; 23376: # 769 "../../src/Box_defs.hh" 23376: void add_constraint(const Constraint& c); 23376: # 783 "../../src/Box_defs.hh" 23376: void add_constraints(const Constraint_System& cs); 23376: # 801 "../../src/Box_defs.hh" 23376: void add_recycled_constraints(Constraint_System& cs); 23376: # 813 "../../src/Box_defs.hh" 23376: void add_congruence(const Congruence& cg); 23376: # 826 "../../src/Box_defs.hh" 23376: void add_congruences(const Congruence_System& cgs); 23376: # 844 "../../src/Box_defs.hh" 23376: void add_recycled_congruences(Congruence_System& cgs); 23376: # 855 "../../src/Box_defs.hh" 23376: void refine_with_constraint(const Constraint& c); 23376: # 876 "../../src/Box_defs.hh" 23376: void refine_with_constraints(const Constraint_System& cs); 23376: # 887 "../../src/Box_defs.hh" 23376: void refine_with_congruence(const Congruence& cg); 23376: # 898 "../../src/Box_defs.hh" 23376: void refine_with_congruences(const Congruence_System& cgs); 23376: # 909 "../../src/Box_defs.hh" 23376: void propagate_constraint(const Constraint& c); 23376: # 928 "../../src/Box_defs.hh" 23376: void propagate_constraints(const Constraint_System& cs, 23376: dimension_type max_iterations = 0); 23376: # 941 "../../src/Box_defs.hh" 23376: void unconstrain(Variable var); 23376: # 955 "../../src/Box_defs.hh" 23376: void unconstrain(const Variables_Set& vars); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void intersection_assign(const Box& y); 23376: # 971 "../../src/Box_defs.hh" 23376: void upper_bound_assign(const Box& y); 23376: # 981 "../../src/Box_defs.hh" 23376: bool upper_bound_assign_if_exact(const Box& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void difference_assign(const Box& y); 23376: # 999 "../../src/Box_defs.hh" 23376: bool simplify_using_context_assign(const Box& y); 23376: # 1022 "../../src/Box_defs.hh" 23376: void affine_image(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1048 "../../src/Box_defs.hh" 23376: void affine_form_image(Variable var, 23376: const Linear_Form& lf); 23376: # 1071 "../../src/Box_defs.hh" 23376: void affine_preimage(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1100 "../../src/Box_defs.hh" 23376: void generalized_affine_image(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1130 "../../src/Box_defs.hh" 23376: void 23376: generalized_affine_preimage(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1155 "../../src/Box_defs.hh" 23376: void generalized_affine_image(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs); 23376: # 1177 "../../src/Box_defs.hh" 23376: void generalized_affine_preimage(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs); 23376: # 1206 "../../src/Box_defs.hh" 23376: void bounded_affine_image(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1237 "../../src/Box_defs.hh" 23376: void bounded_affine_preimage(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1250 "../../src/Box_defs.hh" 23376: void time_elapse_assign(const Box& y); 23376: 23376: 23376: void topological_closure_assign(); 23376: # 1295 "../../src/Box_defs.hh" 23376: void wrap_assign(const Variables_Set& vars, 23376: Bounded_Integer_Type_Width w, 23376: Bounded_Integer_Type_Representation r, 23376: Bounded_Integer_Type_Overflow o, 23376: const Constraint_System* cs_p = 0, 23376: unsigned complexity_threshold = 16, 23376: bool wrap_individually = true); 23376: # 1314 "../../src/Box_defs.hh" 23376: void drop_some_non_integer_points(Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: # 1332 "../../src/Box_defs.hh" 23376: void drop_some_non_integer_points(const Variables_Set& vars, 23376: Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: # 1351 "../../src/Box_defs.hh" 23376: template 23376: typename Enable_If::value 23376: && Is_Same_Or_Derived::value, 23376: void>::type 23376: CC76_widening_assign(const T& y, unsigned* tp = 0); 23376: # 1373 "../../src/Box_defs.hh" 23376: template 23376: typename Enable_If::value 23376: && Is_Same_Or_Derived::value, 23376: void>::type 23376: CC76_widening_assign(const T& y, 23376: Iterator first, Iterator last); 23376: 23376: 23376: void widening_assign(const Box& y, unsigned* tp = 0); 23376: # 1403 "../../src/Box_defs.hh" 23376: void limited_CC76_extrapolation_assign(const Box& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1426 "../../src/Box_defs.hh" 23376: template 23376: typename Enable_If::value 23376: && Is_Same_Or_Derived::value, 23376: void>::type 23376: CC76_narrowing_assign(const T& y); 23376: # 1455 "../../src/Box_defs.hh" 23376: void add_space_dimensions_and_embed(dimension_type m); 23376: # 1478 "../../src/Box_defs.hh" 23376: void add_space_dimensions_and_project(dimension_type m); 23376: # 1503 "../../src/Box_defs.hh" 23376: void concatenate_assign(const Box& y); 23376: # 1514 "../../src/Box_defs.hh" 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: # 1524 "../../src/Box_defs.hh" 23376: void remove_higher_space_dimensions(dimension_type new_dimension); 23376: # 1563 "../../src/Box_defs.hh" 23376: template 23376: void map_space_dimensions(const Partial_Function& pfunc); 23376: # 1587 "../../src/Box_defs.hh" 23376: void expand_space_dimension(Variable var, dimension_type m); 23376: # 1612 "../../src/Box_defs.hh" 23376: void fold_space_dimensions(const Variables_Set& vars, Variable dest); 23376: # 1622 "../../src/Box_defs.hh" 23376: const ITV& get_interval(Variable var) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void set_interval(Variable var, const ITV& i); 23376: # 1663 "../../src/Box_defs.hh" 23376: bool has_lower_bound(Variable var, 23376: Coefficient& n, Coefficient& d, bool& closed) const; 23376: # 1697 "../../src/Box_defs.hh" 23376: bool has_upper_bound(Variable var, 23376: Coefficient& n, Coefficient& d, bool& closed) const; 23376: 23376: 23376: Constraint_System constraints() const; 23376: 23376: 23376: Constraint_System minimized_constraints() const; 23376: 23376: 23376: Congruence_System congruences() const; 23376: 23376: 23376: Congruence_System minimized_congruences() const; 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: int32_t hash_code() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: # 1735 "../../src/Box_defs.hh" 23376: bool ascii_load(std::istream& s); 23376: 23376: private: 23376: template 23376: friend class Parma_Polyhedra_Library::Box; 23376: 23376: friend bool 23376: operator==(const Box& x, const Box& y); 23376: 23376: friend std::ostream& 23376: Parma_Polyhedra_Library 23376: ::IO_Operators::operator<<<>(std::ostream& s, const Box& box); 23376: 23376: template 23376: friend bool Parma_Polyhedra_Library 23376: ::l_m_distance_assign(Checked_Number& r, 23376: const Box& x, const Box& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, Temp& tmp1, Temp& tmp2); 23376: 23376: 23376: typedef std::vector Sequence; 23376: 23376: 23376: 23376: 23376: 23376: typedef ITV Tmp_Interval_Type; 23376: 23376: 23376: Sequence seq; 23376: 23376: 23376: # 1 "../../src/Box_Status_idefs.hh" 1 23376: # 43 "../../src/Box_Status_idefs.hh" 23376: class Status; 23376: 23376: class Status { 23376: public: 23376: 23376: Status(); 23376: 23376: 23376: Status(const Status& y); 23376: 23376: 23376: template 23376: Status(const typename Box::Status& y); 23376: 23376: 23376: 23376: bool test_empty_up_to_date() const; 23376: void reset_empty_up_to_date(); 23376: void set_empty_up_to_date(); 23376: 23376: bool test_empty() const; 23376: void reset_empty(); 23376: void set_empty(); 23376: 23376: bool test_universe() const; 23376: void reset_universe(); 23376: void set_universe(); 23376: 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: private: 23376: 23376: typedef unsigned int flags_t; 23376: 23376: 23376: 23376: static const flags_t NONE = 0U; 23376: static const flags_t EMPTY_UP_TO_DATE = 1U << 0; 23376: static const flags_t EMPTY = 1U << 1; 23376: static const flags_t UNIVERSE = 1U << 2; 23376: 23376: 23376: 23376: flags_t flags; 23376: 23376: 23376: Status(flags_t mask); 23376: 23376: 23376: bool test_all(flags_t mask) const; 23376: 23376: 23376: bool test_any(flags_t mask) const; 23376: 23376: 23376: void set(flags_t mask); 23376: 23376: 23376: void reset(flags_t mask); 23376: }; 23376: # 1769 "../../src/Box_defs.hh" 2 23376: 23376: 23376: 23376: Status status; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool marked_empty() const; 23376: 23376: public: 23376: 23376: void set_empty(); 23376: 23376: private: 23376: 23376: void set_nonempty(); 23376: 23376: 23376: void set_empty_up_to_date(); 23376: 23376: 23376: void reset_empty_up_to_date(); 23376: 23376: 23376: 23376: 23376: 23376: bool check_empty() const; 23376: 23376: 23376: 23376: 23376: 23376: const ITV& operator[](dimension_type k) const; 23376: 23376: 23376: 23376: 23376: static I_Result 23376: refine_interval_no_check(ITV& itv, 23376: Constraint::Type type, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom); 23376: 23376: 23376: 23376: 23376: void 23376: add_interval_constraint_no_check(dimension_type var_id, 23376: Constraint::Type type, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom); 23376: 23376: 23376: 23376: 23376: void add_constraint_no_check(const Constraint& c); 23376: 23376: 23376: 23376: 23376: void add_constraints_no_check(const Constraint_System& cs); 23376: 23376: 23376: 23376: 23376: void add_congruence_no_check(const Congruence& cg); 23376: 23376: 23376: 23376: 23376: void add_congruences_no_check(const Congruence_System& cgs); 23376: # 1856 "../../src/Box_defs.hh" 23376: void refine_no_check(const Constraint& c); 23376: # 1870 "../../src/Box_defs.hh" 23376: void refine_no_check(const Constraint_System& cs); 23376: # 1883 "../../src/Box_defs.hh" 23376: void refine_no_check(const Congruence& cg); 23376: # 1896 "../../src/Box_defs.hh" 23376: void refine_no_check(const Congruence_System& cgs); 23376: # 2058 "../../src/Box_defs.hh" 23376: void propagate_constraint_no_check(const Constraint& c); 23376: # 2078 "../../src/Box_defs.hh" 23376: void propagate_constraints_no_check(const Constraint_System& cs, 23376: dimension_type max_iterations); 23376: # 2098 "../../src/Box_defs.hh" 23376: bool bounds(const Linear_Expression& expr, bool from_above) const; 23376: # 2130 "../../src/Box_defs.hh" 23376: bool max_min(const Linear_Expression& expr, 23376: bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, bool& included, 23376: Generator& g) const; 23376: # 2160 "../../src/Box_defs.hh" 23376: bool max_min(const Linear_Expression& expr, 23376: bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, bool& included) const; 23376: 23376: 23376: 23376: 23376: 23376: void get_limiting_box(const Constraint_System& cs, 23376: Box& limiting_box) const; 23376: 23376: 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Box& y) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: dimension_type required_dim) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Constraint& c) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Congruence& cg) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Constraint_System& cs) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Congruence_System& cgs) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Generator& g) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const char* le_name, 23376: const Linear_Expression& le) const; 23376: 23376: template 23376: void throw_dimension_incompatible(const char* method, 23376: const char* lf_name, 23376: const Linear_Form& lf) const; 23376: 23376: static void throw_constraint_incompatible(const char* method); 23376: 23376: static void throw_expression_too_complex(const char* method, 23376: const Linear_Expression& le); 23376: 23376: static void throw_invalid_argument(const char* method, const char* reason); 23376: 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: # 2237 "../../src/Box_defs.hh" 23376: template 23376: Poly_Con_Relation 23376: interval_relation(const ITV& i, 23376: const Constraint::Type constraint_type, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom 23376: = Coefficient_one()); 23376: 23376: class Box_Helpers { 23376: public: 23376: # 2271 "../../src/Box_defs.hh" 23376: static bool extract_interval_constraint(const Constraint& c, 23376: dimension_type& c_num_vars, 23376: dimension_type& c_only_var); 23376: 23376: 23376: 23376: static bool extract_interval_congruence(const Congruence& cg, 23376: dimension_type& cg_num_vars, 23376: dimension_type& cg_only_var); 23376: }; 23376: 23376: } 23376: 23376: # 1 "../../src/Box_Status_inlines.hh" 1 23376: # 29 "../../src/Box_Status_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline 23376: Box::Status::Status(flags_t mask) 23376: : flags(mask) { 23376: } 23376: 23376: template 23376: inline 23376: Box::Status::Status(const Status& y) 23376: : flags(y.flags) { 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Box::Status::Status(const typename Box::Status& y) 23376: : flags(y.flags) { 23376: } 23376: 23376: template 23376: inline 23376: Box::Status::Status() 23376: : flags(NONE) { 23376: } 23376: 23376: template 23376: inline bool 23376: Box::Status::test_all(flags_t mask) const { 23376: return (flags & mask) == mask; 23376: } 23376: 23376: template 23376: inline bool 23376: Box::Status::test_any(flags_t mask) const { 23376: return (flags & mask) != 0; 23376: } 23376: 23376: template 23376: inline void 23376: Box::Status::set(flags_t mask) { 23376: flags |= mask; 23376: } 23376: 23376: template 23376: inline void 23376: Box::Status::reset(flags_t mask) { 23376: flags &= ~mask; 23376: } 23376: 23376: template 23376: inline bool 23376: Box::Status::test_empty_up_to_date() const { 23376: return test_any(EMPTY_UP_TO_DATE); 23376: } 23376: 23376: template 23376: inline void 23376: Box::Status::reset_empty_up_to_date() { 23376: reset(EMPTY_UP_TO_DATE); 23376: } 23376: 23376: template 23376: inline void 23376: Box::Status::set_empty_up_to_date() { 23376: set(EMPTY_UP_TO_DATE); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::Status::test_empty() const { 23376: return test_any(EMPTY); 23376: } 23376: 23376: template 23376: inline void 23376: Box::Status::reset_empty() { 23376: reset(EMPTY); 23376: } 23376: 23376: template 23376: inline void 23376: Box::Status::set_empty() { 23376: set(EMPTY); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::Status::test_universe() const { 23376: return test_any(UNIVERSE); 23376: } 23376: 23376: template 23376: inline void 23376: Box::Status::reset_universe() { 23376: reset(UNIVERSE); 23376: } 23376: 23376: template 23376: inline void 23376: Box::Status::set_universe() { 23376: set(UNIVERSE); 23376: } 23376: 23376: template 23376: bool 23376: Box::Status::OK() const { 23376: if (test_empty_up_to_date() 23376: && test_empty() 23376: && test_universe()) { 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: 23376: namespace Implementation { 23376: 23376: namespace Boxes { 23376: 23376: 23376: extern const char* empty_up_to_date; 23376: extern const char* empty; 23376: extern const char* universe; 23376: const char yes = '+'; 23376: const char no = '-'; 23376: const char separator = ' '; 23376: # 172 "../../src/Box_Status_inlines.hh" 23376: inline bool 23376: get_field(std::istream& s, const char* keyword, bool& positive) { 23376: std::string str; 23376: if (!(s >> str) 23376: || (str[0] != yes && str[0] != no) 23376: || str.substr(1) != keyword) { 23376: return false; 23376: } 23376: positive = (str[0] == yes); 23376: return true; 23376: } 23376: 23376: } 23376: 23376: } 23376: 23376: template 23376: void 23376: Box::Status::ascii_dump(std::ostream& s) const { 23376: using namespace Implementation::Boxes; 23376: s << (test_empty_up_to_date() ? yes : no) << empty_up_to_date << separator 23376: << (test_empty() ? yes : no) << empty << separator 23376: << (test_universe() ? yes : no) << universe << separator; 23376: } 23376: 23376: template void Box::Status::ascii_dump() const { ascii_dump(std::cerr); } template void Box::Status::print() const { std::cerr << "No user level output operator defined " << "for " "Box::Status" << "." << std::endl; } 23376: 23376: template 23376: bool 23376: Box::Status::ascii_load(std::istream& s) { 23376: using namespace Implementation::Boxes; 23376: bool positive = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: if (!get_field(s, Implementation::Boxes::empty_up_to_date, positive)) { 23376: return false; 23376: } 23376: if (positive) { 23376: set_empty_up_to_date(); 23376: } 23376: 23376: if (!get_field(s, Implementation::Boxes::empty, positive)) { 23376: return false; 23376: } 23376: if (positive) { 23376: set_empty(); 23376: } 23376: if (!get_field(s, universe, positive)) { 23376: return false; 23376: } 23376: if (positive) { 23376: set_universe(); 23376: } 23376: else { 23376: reset_universe(); 23376: } 23376: 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: } 23376: # 2285 "../../src/Box_defs.hh" 2 23376: # 1 "../../src/Box_inlines.hh" 1 23376: # 28 "../../src/Box_inlines.hh" 23376: # 1 "../../src/Constraint_System_defs.hh" 1 23376: # 29 "../../src/Constraint_System_defs.hh" 23376: # 1 "../../src/Linear_System_defs.hh" 1 23376: # 29 "../../src/Linear_System_defs.hh" 23376: # 1 "../../src/Swapping_Vector_defs.hh" 1 23376: # 27 "../../src/Swapping_Vector_defs.hh" 23376: # 1 "../../src/Swapping_Vector_types.hh" 1 23376: # 16 "../../src/Swapping_Vector_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Swapping_Vector; 23376: 23376: } 23376: # 28 "../../src/Swapping_Vector_defs.hh" 2 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: class Swapping_Vector { 23376: 23376: public: 23376: typedef typename std::vector::const_iterator const_iterator; 23376: typedef typename std::vector::iterator iterator; 23376: typedef typename std::vector::size_type size_type; 23376: 23376: Swapping_Vector(); 23376: explicit Swapping_Vector(dimension_type new_size); 23376: Swapping_Vector(dimension_type new_size, const T& x); 23376: 23376: void clear(); 23376: void reserve(dimension_type new_capacity); 23376: void resize(dimension_type new_size); 23376: void resize(dimension_type new_size, const T& x); 23376: 23376: dimension_type size() const; 23376: dimension_type capacity() const; 23376: bool empty() const; 23376: 23376: void m_swap(Swapping_Vector& v); 23376: 23376: T& operator[](dimension_type i); 23376: const T& operator[](dimension_type i) const; 23376: 23376: T& back(); 23376: const T& back() const; 23376: 23376: void push_back(const T& x); 23376: void pop_back(); 23376: 23376: iterator begin(); 23376: iterator end(); 23376: const_iterator begin() const; 23376: const_iterator end() const; 23376: 23376: iterator erase(iterator itr); 23376: iterator erase(iterator first, iterator last); 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: dimension_type max_num_rows(); 23376: 23376: private: 23376: std::vector impl; 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: void swap(Swapping_Vector& x, Swapping_Vector& y); 23376: 23376: } 23376: 23376: # 1 "../../src/Swapping_Vector_inlines.hh" 1 23376: # 29 "../../src/Swapping_Vector_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline 23376: Swapping_Vector::Swapping_Vector() 23376: : impl() { 23376: } 23376: 23376: template 23376: inline 23376: Swapping_Vector::Swapping_Vector(dimension_type i) 23376: : impl() { 23376: 23376: 23376: resize(i); 23376: } 23376: 23376: template 23376: inline 23376: Swapping_Vector::Swapping_Vector(dimension_type new_size, const T& x) 23376: : impl() { 23376: resize(new_size, x); 23376: } 23376: 23376: template 23376: inline void 23376: Swapping_Vector::clear() { 23376: impl.clear(); 23376: } 23376: 23376: template 23376: inline void 23376: Swapping_Vector::reserve(dimension_type new_capacity) { 23376: if (impl.capacity() < new_capacity) { 23376: 23376: std::vector new_impl; 23376: 23376: new_impl.reserve(compute_capacity(new_capacity, max_num_rows())); 23376: new_impl.resize(impl.size()); 23376: 23376: using std::swap; 23376: 23376: 23376: for (dimension_type i = impl.size(); i-- > 0; ) { 23376: swap(new_impl[i], impl[i]); 23376: } 23376: 23376: 23376: swap(impl, new_impl); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Swapping_Vector::resize(dimension_type new_size) { 23376: reserve(new_size); 23376: impl.resize(new_size); 23376: } 23376: 23376: template 23376: inline void 23376: Swapping_Vector::resize(dimension_type new_size, const T& x) { 23376: reserve(new_size); 23376: impl.resize(new_size, x); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Swapping_Vector::size() const { 23376: return impl.size(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Swapping_Vector::capacity() const { 23376: return impl.capacity(); 23376: } 23376: 23376: template 23376: inline bool 23376: Swapping_Vector::empty() const { 23376: return impl.empty(); 23376: } 23376: 23376: template 23376: inline void 23376: Swapping_Vector::m_swap(Swapping_Vector& v) { 23376: using std::swap; 23376: swap(impl, v.impl); 23376: } 23376: 23376: template 23376: inline T& 23376: Swapping_Vector::operator[](dimension_type i) { 23376: return impl[i]; 23376: } 23376: 23376: template 23376: inline const T& 23376: Swapping_Vector::operator[](dimension_type i) const { 23376: return impl[i]; 23376: } 23376: 23376: template 23376: inline T& 23376: Swapping_Vector::back() { 23376: return impl.back(); 23376: } 23376: 23376: template 23376: inline const T& 23376: Swapping_Vector::back() const { 23376: return impl.back(); 23376: } 23376: 23376: template 23376: inline void 23376: Swapping_Vector::push_back(const T& x) { 23376: reserve(size() + 1); 23376: impl.push_back(x); 23376: } 23376: 23376: template 23376: inline void 23376: Swapping_Vector::pop_back() { 23376: impl.pop_back(); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Swapping_Vector::external_memory_in_bytes() const { 23376: 23376: memory_size_type n = impl.capacity() * sizeof(T); 23376: for (const_iterator i = begin(), i_end = end(); i != i_end; ++i) { 23376: n += i->external_memory_in_bytes(); 23376: } 23376: return n; 23376: } 23376: 23376: template 23376: inline typename Swapping_Vector::iterator 23376: Swapping_Vector::begin() { 23376: return impl.begin(); 23376: } 23376: 23376: template 23376: inline typename Swapping_Vector::iterator 23376: Swapping_Vector::end() { 23376: return impl.end(); 23376: } 23376: 23376: template 23376: inline typename Swapping_Vector::const_iterator 23376: Swapping_Vector::begin() const { 23376: return impl.begin(); 23376: } 23376: 23376: template 23376: inline typename Swapping_Vector::const_iterator 23376: Swapping_Vector::end() const { 23376: return impl.end(); 23376: } 23376: 23376: template 23376: inline typename Swapping_Vector::iterator 23376: Swapping_Vector::erase(iterator itr) { 23376: ((void) 0); 23376: ((void) 0); 23376: const dimension_type old_i = itr - begin(); 23376: dimension_type i = old_i; 23376: ++i; 23376: while (i != size()) { 23376: swap(impl[i-1], impl[i]); 23376: } 23376: impl.pop_back(); 23376: return begin() + old_i; 23376: } 23376: 23376: template 23376: inline typename Swapping_Vector::iterator 23376: Swapping_Vector::erase(iterator first, iterator last) { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: const iterator old_first = first; 23376: typedef typename std::iterator_traits::difference_type diff_t; 23376: const diff_t k = last - first; 23376: const dimension_type n = static_cast(end() - last); 23376: using std::swap; 23376: for (dimension_type i = 0; i < n; ++i, ++first) { 23376: swap(*first, *(first + k)); 23376: } 23376: impl.erase(end() - k, end()); 23376: return old_first; 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Swapping_Vector::max_num_rows() { 23376: return impl.max_size(); 23376: } 23376: 23376: template 23376: inline void 23376: swap(Swapping_Vector& vec1, Swapping_Vector& vec2) { 23376: vec1.m_swap(vec2); 23376: } 23376: 23376: } 23376: # 95 "../../src/Swapping_Vector_defs.hh" 2 23376: # 30 "../../src/Linear_System_defs.hh" 2 23376: 23376: 23376: 23376: 23376: 23376: # 1 "../../src/Bit_Row_types.hh" 1 23376: # 16 "../../src/Bit_Row_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Bit_Row; 23376: 23376: } 23376: # 36 "../../src/Linear_System_defs.hh" 2 23376: # 1 "../../src/Bit_Matrix_types.hh" 1 23376: # 16 "../../src/Bit_Matrix_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Bit_Matrix; 23376: 23376: } 23376: # 37 "../../src/Linear_System_defs.hh" 2 23376: # 60 "../../src/Linear_System_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::Linear_System { 23376: public: 23376: 23376: 23376: typedef typename Swapping_Vector::const_iterator iterator; 23376: typedef typename Swapping_Vector::const_iterator const_iterator; 23376: 23376: 23376: 23376: 23376: 23376: Linear_System(Topology topol, Representation r); 23376: # 88 "../../src/Linear_System_defs.hh" 23376: Linear_System(Topology topol, dimension_type space_dim, Representation r); 23376: # 98 "../../src/Linear_System_defs.hh" 23376: struct With_Pending { 23376: }; 23376: 23376: 23376: Linear_System(const Linear_System& y); 23376: 23376: 23376: 23376: Linear_System(const Linear_System& y, Representation r); 23376: 23376: 23376: Linear_System(const Linear_System& y, With_Pending); 23376: 23376: 23376: Linear_System(const Linear_System& y, Representation r, With_Pending); 23376: 23376: 23376: Linear_System& operator=(const Linear_System& y); 23376: 23376: 23376: void assign_with_pending(const Linear_System& y); 23376: 23376: 23376: void m_swap(Linear_System& y); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: # 141 "../../src/Linear_System_defs.hh" 23376: dimension_type space_dimension() const; 23376: 23376: 23376: void set_space_dimension(dimension_type space_dim); 23376: 23376: 23376: void remove_trailing_rows(dimension_type n); 23376: # 157 "../../src/Linear_System_defs.hh" 23376: void remove_row(dimension_type i, bool keep_sorted = false); 23376: # 167 "../../src/Linear_System_defs.hh" 23376: void remove_rows(dimension_type first, dimension_type last, 23376: bool keep_sorted = false); 23376: # 177 "../../src/Linear_System_defs.hh" 23376: void remove_rows(const std::vector& indexes); 23376: # 186 "../../src/Linear_System_defs.hh" 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: 23376: 23376: 23376: void shift_space_dimensions(Variable v, dimension_type n); 23376: # 205 "../../src/Linear_System_defs.hh" 23376: void permute_space_dimensions(const std::vector& cycle); 23376: 23376: 23376: void swap_space_dimensions(Variable v1, Variable v2); 23376: 23376: 23376: 23376: 23376: const Row& operator[](dimension_type k) const; 23376: 23376: 23376: iterator begin(); 23376: iterator end(); 23376: const_iterator begin() const; 23376: const_iterator end() const; 23376: 23376: bool has_no_rows() const; 23376: dimension_type num_rows() const; 23376: 23376: 23376: void strong_normalize(); 23376: 23376: 23376: void sign_normalize(); 23376: 23376: 23376: 23376: 23376: Topology topology() const; 23376: 23376: 23376: bool is_sorted() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_necessarily_closed() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type num_lines_or_equalities() const; 23376: 23376: 23376: dimension_type first_pending_row() const; 23376: 23376: 23376: dimension_type num_pending_rows() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool check_sorted() const; 23376: 23376: 23376: void set_topology(Topology t); 23376: 23376: 23376: void set_necessarily_closed(); 23376: 23376: 23376: void set_not_necessarily_closed(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void mark_as_necessarily_closed(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void mark_as_not_necessarily_closed(); 23376: 23376: 23376: void unset_pending_rows(); 23376: 23376: 23376: void set_index_first_pending_row(dimension_type i); 23376: 23376: 23376: void set_sorted(bool b); 23376: # 310 "../../src/Linear_System_defs.hh" 23376: void add_universe_rows_and_space_dimensions(dimension_type n); 23376: 23376: 23376: 23376: 23376: 23376: void insert(const Row& r); 23376: 23376: 23376: 23376: 23376: 23376: void insert_pending(const Row& r); 23376: 23376: 23376: 23376: 23376: 23376: void insert(Row& r, Recycle_Input); 23376: 23376: 23376: 23376: 23376: 23376: void insert_pending(Row& r, Recycle_Input); 23376: 23376: 23376: 23376: 23376: 23376: void insert(const Linear_System& y); 23376: 23376: 23376: void insert_pending(const Linear_System& r); 23376: 23376: 23376: 23376: 23376: 23376: void insert(Linear_System& r, Recycle_Input); 23376: 23376: 23376: 23376: void insert_pending(Linear_System& r, Recycle_Input); 23376: 23376: 23376: 23376: 23376: 23376: void sort_rows(); 23376: 23376: 23376: 23376: 23376: 23376: void sort_rows(dimension_type first_row, dimension_type last_row); 23376: # 375 "../../src/Linear_System_defs.hh" 23376: void merge_rows_assign(const Linear_System& y); 23376: 23376: 23376: 23376: 23376: 23376: void sort_pending_and_remove_duplicates(); 23376: # 390 "../../src/Linear_System_defs.hh" 23376: void sort_and_remove_with_sat(Bit_Matrix& sat); 23376: # 404 "../../src/Linear_System_defs.hh" 23376: dimension_type gauss(dimension_type n_lines_or_equalities); 23376: # 416 "../../src/Linear_System_defs.hh" 23376: void back_substitute(dimension_type n_lines_or_equalities); 23376: 23376: 23376: 23376: 23376: 23376: void simplify(); 23376: 23376: 23376: void clear(); 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: # 439 "../../src/Linear_System_defs.hh" 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Swapping_Vector rows; 23376: 23376: 23376: bool OK() const; 23376: 23376: private: 23376: # 469 "../../src/Linear_System_defs.hh" 23376: void remove_row_no_ok(dimension_type i, bool keep_sorted = false); 23376: # 478 "../../src/Linear_System_defs.hh" 23376: void insert_pending_no_ok(Row& r, Recycle_Input); 23376: # 487 "../../src/Linear_System_defs.hh" 23376: void insert_no_ok(Row& r, Recycle_Input); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void set_space_dimension_no_ok(dimension_type space_dim); 23376: # 506 "../../src/Linear_System_defs.hh" 23376: void swap_row_intervals(dimension_type first, dimension_type last, 23376: dimension_type offset); 23376: 23376: 23376: 23376: dimension_type space_dimension_; 23376: 23376: 23376: 23376: Topology row_topology; 23376: 23376: 23376: dimension_type index_first_pending; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool sorted; 23376: 23376: Representation representation_; 23376: 23376: 23376: struct Row_Less_Than { 23376: bool operator()(const Row& x, const Row& y) const; 23376: }; 23376: 23376: 23376: struct Unique_Compare { 23376: Unique_Compare(const Swapping_Vector& cont, 23376: dimension_type base = 0); 23376: 23376: bool operator()(dimension_type i, dimension_type j) const; 23376: 23376: const Swapping_Vector& container; 23376: const dimension_type base_index; 23376: }; 23376: 23376: friend class Polyhedron; 23376: friend class Generator_System; 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void swap(Parma_Polyhedra_Library::Linear_System& x, 23376: Parma_Polyhedra_Library::Linear_System& y); 23376: 23376: } 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator==(const Linear_System& x, const Linear_System& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator!=(const Linear_System& x, const Linear_System& y); 23376: 23376: } 23376: 23376: # 1 "../../src/Linear_System_inlines.hh" 1 23376: # 27 "../../src/Linear_System_inlines.hh" 23376: # 1 "../../src/Bit_Row_defs.hh" 1 23376: # 33 "../../src/Bit_Row_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 45 "../../src/Bit_Row_defs.hh" 23376: void 23376: iter_swap(std::vector::iterator x, 23376: std::vector::iterator y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Bit_Row& x, const Bit_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const Bit_Row& x, const Bit_Row& y); 23376: # 77 "../../src/Bit_Row_defs.hh" 23376: int compare(const Bit_Row& x, const Bit_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: bool subset_or_equal(const Bit_Row& x, const Bit_Row& y); 23376: # 93 "../../src/Bit_Row_defs.hh" 23376: bool subset_or_equal(const Bit_Row& x, const Bit_Row& y, 23376: bool& strict_subset); 23376: 23376: 23376: 23376: 23376: 23376: bool strict_subset(const Bit_Row& x, const Bit_Row& y); 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: class Parma_Polyhedra_Library::Bit_Row { 23376: public: 23376: 23376: Bit_Row(); 23376: 23376: 23376: Bit_Row(const Bit_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: Bit_Row(const Bit_Row& y, const Bit_Row& z); 23376: 23376: 23376: ~Bit_Row(); 23376: 23376: 23376: Bit_Row& operator=(const Bit_Row& y); 23376: 23376: 23376: void m_swap(Bit_Row& y); 23376: 23376: 23376: bool operator[](unsigned long k) const; 23376: 23376: 23376: void set(unsigned long k); 23376: 23376: 23376: void set_until(unsigned long k); 23376: 23376: 23376: void clear(unsigned long k); 23376: 23376: 23376: void clear_from(unsigned long k); 23376: 23376: 23376: void clear(); 23376: 23376: 23376: void union_assign(const Bit_Row& x, const Bit_Row& y); 23376: 23376: 23376: void intersection_assign(const Bit_Row& x, const Bit_Row& y); 23376: 23376: 23376: void difference_assign(const Bit_Row& x, const Bit_Row& y); 23376: 23376: 23376: friend int compare(const Bit_Row& x, const Bit_Row& y); 23376: friend bool operator==(const Bit_Row& x, const Bit_Row& y); 23376: friend bool operator!=(const Bit_Row& x, const Bit_Row& y); 23376: friend bool subset_or_equal(const Bit_Row& x, const Bit_Row& y); 23376: friend bool subset_or_equal(const Bit_Row& x, const Bit_Row& y, 23376: bool& strict_subset); 23376: friend bool strict_subset(const Bit_Row& x, const Bit_Row& y); 23376: 23376: 23376: unsigned long first() const; 23376: 23376: 23376: 23376: 23376: 23376: unsigned long next(unsigned long position) const; 23376: 23376: 23376: unsigned long last() const; 23376: 23376: 23376: 23376: 23376: 23376: unsigned long prev(unsigned long position) const; 23376: 23376: 23376: unsigned long count_ones() const; 23376: 23376: 23376: bool empty() const; 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: private: 23376: 23376: mpz_t vec; 23376: 23376: 23376: 23376: 23376: 23376: 23376: void union_helper(const Bit_Row& y, const Bit_Row& z); 23376: }; 23376: 23376: # 1 "../../src/Bit_Row_inlines.hh" 1 23376: # 40 "../../src/Bit_Row_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Bit_Row::Bit_Row() { 23376: 23376: # 44 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_init 23376: # 44 "../../src/Bit_Row_inlines.hh" 23376: (vec); 23376: } 23376: 23376: inline 23376: Bit_Row::Bit_Row(const Bit_Row& y) { 23376: 23376: # 49 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_init_set 23376: # 49 "../../src/Bit_Row_inlines.hh" 23376: (vec, y.vec); 23376: } 23376: 23376: inline 23376: Bit_Row::Bit_Row(const Bit_Row& y, const Bit_Row& z) { 23376: const mp_size_t y_size = y.vec->_mp_size; 23376: ((void) 0); 23376: const mp_size_t z_size = z.vec->_mp_size; 23376: ((void) 0); 23376: if (y_size < z_size) { 23376: ((void) 0) 23376: ; 23376: 23376: # 61 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_init2 23376: # 61 "../../src/Bit_Row_inlines.hh" 23376: (vec, static_cast(z_size) * ((4) * static_cast(8))); 23376: union_helper(y, z); 23376: } 23376: else { 23376: ((void) 0) 23376: ; 23376: 23376: # 67 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_init2 23376: # 67 "../../src/Bit_Row_inlines.hh" 23376: (vec, static_cast(y_size) * ((4) * static_cast(8))); 23376: union_helper(z, y); 23376: } 23376: } 23376: 23376: inline 23376: Bit_Row::~Bit_Row() { 23376: 23376: # 74 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_clear 23376: # 74 "../../src/Bit_Row_inlines.hh" 23376: (vec); 23376: } 23376: 23376: inline Bit_Row& 23376: Bit_Row::operator=(const Bit_Row& y) { 23376: 23376: # 79 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_set 23376: # 79 "../../src/Bit_Row_inlines.hh" 23376: (vec, y.vec); 23376: return *this; 23376: } 23376: 23376: inline void 23376: Bit_Row::set(const unsigned long k) { 23376: 23376: # 85 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_setbit 23376: # 85 "../../src/Bit_Row_inlines.hh" 23376: (vec, k); 23376: } 23376: 23376: inline void 23376: Bit_Row::clear(const unsigned long k) { 23376: 23376: # 90 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_clrbit 23376: # 90 "../../src/Bit_Row_inlines.hh" 23376: (vec, k); 23376: } 23376: 23376: inline void 23376: Bit_Row::clear_from(const unsigned long k) { 23376: 23376: # 95 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_tdiv_r_2exp 23376: # 95 "../../src/Bit_Row_inlines.hh" 23376: (vec, vec, k); 23376: } 23376: 23376: inline unsigned long 23376: Bit_Row::count_ones() const { 23376: const mp_size_t x_size = vec->_mp_size; 23376: ((void) 0); 23376: return (x_size == 0) ? 0 : 23376: # 102 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpn_popcount 23376: # 102 "../../src/Bit_Row_inlines.hh" 23376: (vec->_mp_d, x_size); 23376: } 23376: 23376: inline bool 23376: Bit_Row::empty() const { 23376: return 23376: # 107 "../../src/Bit_Row_inlines.hh" 3 4 23376: (( 23376: # 107 "../../src/Bit_Row_inlines.hh" 23376: vec 23376: # 107 "../../src/Bit_Row_inlines.hh" 3 4 23376: )->_mp_size < 0 ? -1 : ( 23376: # 107 "../../src/Bit_Row_inlines.hh" 23376: vec 23376: # 107 "../../src/Bit_Row_inlines.hh" 3 4 23376: )->_mp_size > 0) 23376: # 107 "../../src/Bit_Row_inlines.hh" 23376: == 0; 23376: } 23376: 23376: inline void 23376: Bit_Row::m_swap(Bit_Row& y) { 23376: 23376: # 112 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_swap 23376: # 112 "../../src/Bit_Row_inlines.hh" 23376: (vec, y.vec); 23376: } 23376: 23376: inline void 23376: Bit_Row::clear() { 23376: 23376: # 117 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_set_ui 23376: # 117 "../../src/Bit_Row_inlines.hh" 23376: (vec, 0UL); 23376: } 23376: 23376: inline memory_size_type 23376: Bit_Row::external_memory_in_bytes() const { 23376: return static_cast(vec[0]._mp_alloc) * 4; 23376: } 23376: 23376: inline memory_size_type 23376: Bit_Row::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline void 23376: Bit_Row::union_assign(const Bit_Row& x, const Bit_Row& y) { 23376: const mp_size_t x_size = x.vec->_mp_size; 23376: ((void) 0); 23376: const mp_size_t y_size = y.vec->_mp_size; 23376: ((void) 0); 23376: if (x_size < y_size) { 23376: ((void) 0) 23376: ; 23376: 23376: # 139 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_realloc2 23376: # 139 "../../src/Bit_Row_inlines.hh" 23376: (vec, static_cast(y_size) * ((4) * static_cast(8))); 23376: union_helper(x, y); 23376: } 23376: else { 23376: ((void) 0) 23376: ; 23376: 23376: # 145 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_realloc2 23376: # 145 "../../src/Bit_Row_inlines.hh" 23376: (vec, static_cast(x_size) * ((4) * static_cast(8))); 23376: union_helper(y, x); 23376: } 23376: } 23376: 23376: inline void 23376: Bit_Row::intersection_assign(const Bit_Row& x, const Bit_Row& y) { 23376: 23376: # 152 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_and 23376: # 152 "../../src/Bit_Row_inlines.hh" 23376: (vec, x.vec, y.vec); 23376: } 23376: 23376: inline void 23376: Bit_Row::difference_assign(const Bit_Row& x, const Bit_Row& y) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_complement_y; mpz_class& complement_y = holder_complement_y.item(); 23376: 23376: # 158 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_com 23376: # 158 "../../src/Bit_Row_inlines.hh" 23376: (complement_y.get_mpz_t(), y.vec); 23376: 23376: # 159 "../../src/Bit_Row_inlines.hh" 3 4 23376: __gmpz_and 23376: # 159 "../../src/Bit_Row_inlines.hh" 23376: (vec, x.vec, complement_y.get_mpz_t()); 23376: } 23376: 23376: namespace Implementation { 23376: 23376: 23376: 23376: 23376: inline unsigned int 23376: first_one(unsigned int u) { 23376: return ctz(u); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: inline unsigned int 23376: first_one(unsigned long ul) { 23376: return ctz(ul); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: inline unsigned int 23376: first_one(unsigned long long ull) { 23376: return ctz(ull); 23376: } 23376: 23376: 23376: 23376: 23376: inline unsigned int 23376: last_one(unsigned int u) { 23376: return static_cast(((sizeof(u)) * static_cast(8))) 23376: - 1U - clz(u); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: inline unsigned int 23376: last_one(unsigned long ul) { 23376: return static_cast(((sizeof(ul)) * static_cast(8))) 23376: - 1U - clz(ul); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: inline unsigned int 23376: last_one(unsigned long long ull) { 23376: return static_cast(((sizeof(ull)) * static_cast(8))) 23376: - 1U - clz(ull); 23376: } 23376: 23376: } 23376: 23376: 23376: inline void 23376: swap(Bit_Row& x, Bit_Row& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: 23376: inline void 23376: iter_swap(std::vector::iterator x, 23376: std::vector::iterator y) { 23376: swap(*x, *y); 23376: } 23376: 23376: } 23376: # 213 "../../src/Bit_Row_defs.hh" 2 23376: # 28 "../../src/Linear_System_inlines.hh" 2 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline memory_size_type 23376: Linear_System::external_memory_in_bytes() const { 23376: return rows.external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Linear_System::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline bool 23376: Linear_System::is_sorted() const { 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: return sorted; 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::set_sorted(const bool b) { 23376: sorted = b; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Linear_System::Linear_System(Topology topol, Representation r) 23376: : rows(), 23376: space_dimension_(0), 23376: row_topology(topol), 23376: index_first_pending(0), 23376: sorted(true), 23376: representation_(r) { 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Linear_System::Linear_System(Topology topol, 23376: dimension_type space_dim, 23376: Representation r) 23376: : rows(), 23376: space_dimension_(0), 23376: row_topology(topol), 23376: index_first_pending(0), 23376: sorted(true), 23376: representation_(r) { 23376: set_space_dimension(space_dim); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Linear_System::first_pending_row() const { 23376: return index_first_pending; 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Linear_System::num_pending_rows() const { 23376: ((void) 0); 23376: return num_rows() - first_pending_row(); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::unset_pending_rows() { 23376: index_first_pending = num_rows(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::set_index_first_pending_row(const dimension_type i) { 23376: index_first_pending = i; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Linear_System::Linear_System(const Linear_System& y) 23376: : rows(y.rows), 23376: space_dimension_(y.space_dimension_), 23376: row_topology(y.row_topology), 23376: representation_(y.representation_) { 23376: 23376: sorted = (y.num_pending_rows() > 0) ? false : y.sorted; 23376: unset_pending_rows(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Linear_System::Linear_System(const Linear_System& y, Representation r) 23376: : rows(), 23376: space_dimension_(y.space_dimension_), 23376: row_topology(y.row_topology), 23376: representation_(r) { 23376: rows.resize(y.num_rows()); 23376: for (dimension_type i = 0; i < y.num_rows(); ++i) { 23376: 23376: Row row(y.rows[i], r); 23376: swap(rows[i], row); 23376: } 23376: 23376: sorted = (y.num_pending_rows() > 0) ? false : y.sorted; 23376: unset_pending_rows(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Linear_System::Linear_System(const Linear_System& y, With_Pending) 23376: : rows(y.rows), 23376: space_dimension_(y.space_dimension_), 23376: row_topology(y.row_topology), 23376: index_first_pending(y.index_first_pending), 23376: sorted(y.sorted), 23376: representation_(y.representation_) { 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Linear_System::Linear_System(const Linear_System& y, Representation r, 23376: With_Pending) 23376: : rows(), 23376: space_dimension_(y.space_dimension_), 23376: row_topology(y.row_topology), 23376: index_first_pending(y.index_first_pending), 23376: sorted(y.sorted), 23376: representation_(r) { 23376: rows.resize(y.num_rows()); 23376: for (dimension_type i = 0; i < y.num_rows(); ++i) { 23376: 23376: Row row(y.rows[i], r); 23376: swap(rows[i], row); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline Linear_System& 23376: Linear_System::operator=(const Linear_System& y) { 23376: 23376: Linear_System tmp = y; 23376: swap(*this, tmp); 23376: return *this; 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::assign_with_pending(const Linear_System& y) { 23376: Linear_System tmp(y, With_Pending()); 23376: swap(*this, tmp); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::m_swap(Linear_System& y) { 23376: using std::swap; 23376: swap(rows, y.rows); 23376: swap(space_dimension_, y.space_dimension_); 23376: swap(row_topology, y.row_topology); 23376: swap(index_first_pending, y.index_first_pending); 23376: swap(sorted, y.sorted); 23376: swap(representation_, y.representation_); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::clear() { 23376: 23376: rows.clear(); 23376: index_first_pending = 0; 23376: sorted = true; 23376: space_dimension_ = 0; 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::mark_as_necessarily_closed() { 23376: ((void) 0); 23376: row_topology = NECESSARILY_CLOSED; 23376: ++space_dimension_; 23376: for (dimension_type i = num_rows(); i-- > 0; ) { 23376: rows[i].mark_as_necessarily_closed(); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::mark_as_not_necessarily_closed() { 23376: ((void) 0); 23376: ((void) 0); 23376: row_topology = NOT_NECESSARILY_CLOSED; 23376: --space_dimension_; 23376: for (dimension_type i = num_rows(); i-- > 0; ) { 23376: rows[i].mark_as_not_necessarily_closed(); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::set_topology(Topology t) { 23376: if (topology() == t) { 23376: return; 23376: } 23376: for (dimension_type i = num_rows(); i-- > 0; ) { 23376: rows[i].set_topology(t); 23376: } 23376: row_topology = t; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::set_necessarily_closed() { 23376: set_topology(NECESSARILY_CLOSED); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::set_not_necessarily_closed() { 23376: set_topology(NOT_NECESSARILY_CLOSED); 23376: } 23376: 23376: template 23376: inline bool 23376: Linear_System::is_necessarily_closed() const { 23376: return row_topology == NECESSARILY_CLOSED; 23376: } 23376: 23376: template 23376: inline const Row& 23376: Linear_System::operator[](const dimension_type k) const { 23376: return rows[k]; 23376: } 23376: 23376: template 23376: inline typename Linear_System::iterator 23376: Linear_System::begin() { 23376: return rows.begin(); 23376: } 23376: 23376: template 23376: inline typename Linear_System::iterator 23376: Linear_System::end() { 23376: return rows.end(); 23376: } 23376: 23376: template 23376: inline typename Linear_System::const_iterator 23376: Linear_System::begin() const { 23376: return rows.begin(); 23376: } 23376: 23376: template 23376: inline typename Linear_System::const_iterator 23376: Linear_System::end() const { 23376: return rows.end(); 23376: } 23376: 23376: template 23376: inline bool 23376: Linear_System::has_no_rows() const { 23376: return rows.empty(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Linear_System::num_rows() const { 23376: return rows.size(); 23376: } 23376: 23376: template 23376: inline Topology 23376: Linear_System::topology() const { 23376: return row_topology; 23376: } 23376: 23376: template 23376: inline Representation 23376: Linear_System::representation() const { 23376: return representation_; 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::set_representation(Representation r) { 23376: representation_ = r; 23376: for (dimension_type i = 0; i < rows.size(); ++i) { 23376: rows[i].set_representation(r); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Linear_System::max_space_dimension() { 23376: return Row::max_space_dimension(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Linear_System::space_dimension() const { 23376: return space_dimension_; 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::set_space_dimension_no_ok(dimension_type space_dim) { 23376: for (dimension_type i = rows.size(); i-- > 0; ) { 23376: rows[i].set_space_dimension_no_ok(space_dim); 23376: } 23376: space_dimension_ = space_dim; 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::set_space_dimension(dimension_type space_dim) { 23376: set_space_dimension_no_ok(space_dim); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::remove_row_no_ok(const dimension_type i, 23376: const bool keep_sorted) { 23376: ((void) 0); 23376: const bool was_pending = (i >= index_first_pending); 23376: 23376: if (sorted && keep_sorted && !was_pending) { 23376: for (dimension_type j = i + 1; j < rows.size(); ++j) { 23376: swap(rows[j], rows[j-1]); 23376: } 23376: rows.pop_back(); 23376: } 23376: else { 23376: if (!was_pending) { 23376: sorted = false; 23376: } 23376: const bool last_row_is_pending = (num_rows() - 1 >= index_first_pending); 23376: if (was_pending == last_row_is_pending) { 23376: 23376: swap(rows[i], rows.back()); 23376: } 23376: else { 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: swap(rows[i], rows[index_first_pending - 1]); 23376: 23376: 23376: 23376: swap(rows[i], rows.back()); 23376: } 23376: rows.pop_back(); 23376: } 23376: if (!was_pending) { 23376: 23376: --index_first_pending; 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::remove_row(const dimension_type i, bool keep_sorted) { 23376: remove_row_no_ok(i, keep_sorted); 23376: ((void) 0); 23376: } 23376: 23376: 23376: template 23376: inline void 23376: Linear_System::remove_rows(dimension_type first, 23376: dimension_type last, 23376: bool keep_sorted) { 23376: ((void) 0); 23376: ((void) 0); 23376: const dimension_type n = last - first; 23376: 23376: if (n == 0) { 23376: return; 23376: } 23376: 23376: 23376: 23376: ((void) 0); 23376: 23376: const bool were_pending = (first >= index_first_pending); 23376: 23376: 23376: if (sorted && keep_sorted && !were_pending) { 23376: 23376: for (dimension_type i = last; i < rows.size(); ++i) { 23376: swap(rows[i], rows[i - n]); 23376: } 23376: 23376: rows.resize(rows.size() - n); 23376: 23376: 23376: index_first_pending -= n; 23376: 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: const dimension_type offset = rows.size() - n - first; 23376: 23376: 23376: 23376: 23376: if (index_first_pending == num_rows()) { 23376: 23376: ((void) 0); 23376: 23376: swap_row_intervals(first, last, offset); 23376: 23376: rows.resize(rows.size() - n); 23376: 23376: 23376: index_first_pending -= n; 23376: } 23376: else { 23376: 23376: if (were_pending) { 23376: 23376: 23376: 23376: swap_row_intervals(first, last, offset); 23376: 23376: rows.resize(rows.size() - n); 23376: 23376: 23376: index_first_pending -= n; 23376: } 23376: else { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: ((void) 0); 23376: swap_row_intervals(first, last, index_first_pending - last); 23376: 23376: 23376: index_first_pending -= n; 23376: first = index_first_pending; 23376: last = first + n; 23376: 23376: 23376: swap_row_intervals(first, last, num_rows() - last); 23376: 23376: 23376: rows.resize(rows.size() - n); 23376: } 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::swap_row_intervals(dimension_type first, 23376: dimension_type last, 23376: dimension_type offset) { 23376: ((void) 0); 23376: ((void) 0); 23376: # 534 "../../src/Linear_System_inlines.hh" 23376: if (first + offset < last) { 23376: 23376: const dimension_type k = last - first - offset; 23376: last -= k; 23376: offset += k; 23376: } 23376: 23376: if (first == last) { 23376: 23376: return; 23376: } 23376: 23376: for (dimension_type i = first; i < last; ++i) { 23376: swap(rows[i], rows[i + offset]); 23376: } 23376: 23376: if (first < index_first_pending) { 23376: 23376: set_sorted(false); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::remove_rows(const std::vector& indexes) { 23376: # 576 "../../src/Linear_System_inlines.hh" 23376: if (indexes.empty()) { 23376: return; 23376: } 23376: 23376: const dimension_type rows_size = rows.size(); 23376: typedef std::vector::const_iterator itr_t; 23376: 23376: 23376: 23376: 23376: dimension_type last_unused_row = indexes[0]; 23376: dimension_type i = indexes[0]; 23376: itr_t itr = indexes.begin(); 23376: itr_t itr_end = indexes.end(); 23376: while (itr != itr_end) { 23376: 23376: ((void) 0); 23376: if (*itr == i) { 23376: 23376: ++itr; 23376: } 23376: else { 23376: 23376: swap(rows[last_unused_row], rows[i]); 23376: ++last_unused_row; 23376: } 23376: ++i; 23376: } 23376: 23376: 23376: for ( ; i < rows_size; ++i) { 23376: swap(rows[last_unused_row], rows[i]); 23376: ++last_unused_row; 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: rows.resize(last_unused_row); 23376: 23376: 23376: if (indexes[0] >= index_first_pending) { 23376: 23376: } 23376: else { 23376: if (indexes.back() < index_first_pending) { 23376: 23376: index_first_pending -= indexes.size(); 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: itr_t j = std::lower_bound(indexes.begin(), indexes.end(), 23376: index_first_pending); 23376: std::iterator_traits::difference_type 23376: non_pending = j - indexes.begin(); 23376: index_first_pending -= static_cast(non_pending); 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System::remove_trailing_rows(const dimension_type n) { 23376: ((void) 0); 23376: rows.resize(rows.size() - n); 23376: if (first_pending_row() > rows.size()) { 23376: index_first_pending = rows.size(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System 23376: ::permute_space_dimensions(const std::vector& cycle) { 23376: for (dimension_type i = num_rows(); i-- > 0; ) { 23376: rows[i].permute_space_dimensions(cycle); 23376: } 23376: sorted = false; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Linear_System 23376: ::swap_space_dimensions(Variable v1, Variable v2) { 23376: ((void) 0); 23376: ((void) 0); 23376: for (dimension_type k = num_rows(); k-- > 0; ) { 23376: rows[k].swap_space_dimensions(v1, v2); 23376: } 23376: sorted = false; 23376: ((void) 0); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const Linear_System& x, const Linear_System& y) { 23376: return !(x == y); 23376: } 23376: 23376: template 23376: inline bool 23376: Linear_System::Row_Less_Than::operator()(const Row& x, 23376: const Row& y) const { 23376: return compare(x, y) < 0; 23376: } 23376: 23376: template 23376: inline 23376: Linear_System::Unique_Compare 23376: ::Unique_Compare(const Swapping_Vector& cont, 23376: dimension_type base) 23376: : container(cont), base_index(base) { 23376: } 23376: 23376: template 23376: inline bool 23376: Linear_System::Unique_Compare 23376: ::operator()(dimension_type i, dimension_type j) const { 23376: return container[base_index + i].is_equal_to(container[base_index + j]); 23376: } 23376: 23376: 23376: template 23376: inline void 23376: swap(Linear_System& x, Linear_System& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 580 "../../src/Linear_System_defs.hh" 2 23376: # 1 "../../src/Linear_System_templates.hh" 1 23376: # 27 "../../src/Linear_System_templates.hh" 23376: # 1 "../../src/Bit_Matrix_defs.hh" 1 23376: # 33 "../../src/Bit_Matrix_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: class Parma_Polyhedra_Library::Bit_Matrix { 23376: public: 23376: 23376: Bit_Matrix(); 23376: 23376: 23376: Bit_Matrix(dimension_type n_rows, dimension_type n_columns); 23376: 23376: 23376: Bit_Matrix(const Bit_Matrix& y); 23376: 23376: 23376: ~Bit_Matrix(); 23376: 23376: 23376: Bit_Matrix& operator=(const Bit_Matrix& y); 23376: 23376: 23376: void m_swap(Bit_Matrix& y); 23376: 23376: 23376: Bit_Row& operator[](dimension_type k); 23376: 23376: 23376: const Bit_Row& operator[](dimension_type k) const; 23376: 23376: 23376: void clear(); 23376: 23376: 23376: void transpose(); 23376: 23376: 23376: void transpose_assign(const Bit_Matrix& y); 23376: 23376: 23376: static dimension_type max_num_rows(); 23376: 23376: 23376: dimension_type num_columns() const; 23376: 23376: 23376: dimension_type num_rows() const; 23376: 23376: 23376: void sort_rows(); 23376: # 105 "../../src/Bit_Matrix_defs.hh" 23376: bool sorted_contains(const Bit_Row& row) const; 23376: # 114 "../../src/Bit_Matrix_defs.hh" 23376: void add_recycled_row(Bit_Row& row); 23376: 23376: 23376: void remove_trailing_rows(dimension_type n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_trailing_columns(dimension_type n); 23376: 23376: 23376: void resize(dimension_type new_n_rows, dimension_type new_n_columns); 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: private: 23376: 23376: std::vector rows; 23376: 23376: 23376: dimension_type row_size; 23376: 23376: 23376: 23376: struct Bit_Row_Less_Than { 23376: bool operator()(const Bit_Row& x, const Bit_Row& y) const; 23376: }; 23376: 23376: template 23376: friend class Parma_Polyhedra_Library::Linear_System; 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Bit_Matrix& x, const Bit_Matrix& y); 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const Bit_Matrix& x, const Bit_Matrix& y); 23376: 23376: } 23376: 23376: # 1 "../../src/Bit_Matrix_inlines.hh" 1 23376: # 30 "../../src/Bit_Matrix_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Bit_Matrix::Bit_Matrix() 23376: : rows(), 23376: row_size(0) { 23376: } 23376: 23376: inline dimension_type 23376: Bit_Matrix::max_num_rows() { 23376: return std::vector().max_size(); 23376: } 23376: 23376: inline 23376: Bit_Matrix::Bit_Matrix(const dimension_type n_rows, 23376: const dimension_type n_columns) 23376: : rows(n_rows), 23376: row_size(n_columns) { 23376: } 23376: 23376: inline 23376: Bit_Matrix::Bit_Matrix(const Bit_Matrix& y) 23376: : rows(y.rows), 23376: row_size(y.row_size) { 23376: } 23376: 23376: inline 23376: Bit_Matrix::~Bit_Matrix() { 23376: } 23376: 23376: inline void 23376: Bit_Matrix::remove_trailing_rows(const dimension_type n) { 23376: 23376: 23376: ((void) 0); 23376: if (n != 0) { 23376: rows.resize(rows.size() - n); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Bit_Matrix::remove_trailing_columns(const dimension_type n) { 23376: 23376: 23376: ((void) 0); 23376: row_size -= n; 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Bit_Matrix::m_swap(Bit_Matrix& y) { 23376: std::swap(row_size, y.row_size); 23376: std::swap(rows, y.rows); 23376: } 23376: 23376: inline Bit_Row& 23376: Bit_Matrix::operator[](const dimension_type k) { 23376: ((void) 0); 23376: return rows[k]; 23376: } 23376: 23376: inline const Bit_Row& 23376: Bit_Matrix::operator[](const dimension_type k) const { 23376: ((void) 0); 23376: return rows[k]; 23376: } 23376: 23376: inline dimension_type 23376: Bit_Matrix::num_columns() const { 23376: return row_size; 23376: } 23376: 23376: inline dimension_type 23376: Bit_Matrix::num_rows() const { 23376: return rows.size(); 23376: } 23376: 23376: inline void 23376: Bit_Matrix::clear() { 23376: 23376: std::vector tmp; 23376: std::swap(tmp, rows); 23376: row_size = 0; 23376: } 23376: 23376: inline memory_size_type 23376: Bit_Matrix::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline bool 23376: Bit_Matrix::Bit_Row_Less_Than:: 23376: operator()(const Bit_Row& x, const Bit_Row& y) const { 23376: return compare(x, y) < 0; 23376: } 23376: 23376: inline bool 23376: Bit_Matrix::sorted_contains(const Bit_Row& row) const { 23376: ((void) 0); 23376: return std::binary_search(rows.begin(), rows.end(), row, 23376: Bit_Row_Less_Than()); 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Bit_Matrix& x, const Bit_Matrix& y) { 23376: return !(x == y); 23376: } 23376: 23376: 23376: inline void 23376: swap(Bit_Matrix& x, Bit_Matrix& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 186 "../../src/Bit_Matrix_defs.hh" 2 23376: # 28 "../../src/Linear_System_templates.hh" 2 23376: 23376: # 1 "../../src/Scalar_Products_defs.hh" 1 23376: # 44 "../../src/Scalar_Products_defs.hh" 23376: class Parma_Polyhedra_Library::Scalar_Products { 23376: public: 23376: 23376: static void assign(Coefficient& z, 23376: const Linear_Expression& x, const Linear_Expression& y); 23376: 23376: 23376: static void assign(Coefficient& z, const Constraint& c, const Generator& g); 23376: 23376: 23376: static void assign(Coefficient& z, const Generator& g, const Constraint& c); 23376: 23376: 23376: static void assign(Coefficient& z, 23376: const Constraint& c, const Grid_Generator& gg); 23376: 23376: 23376: static void assign(Coefficient& z, 23376: const Grid_Generator& gg, const Congruence& cg); 23376: 23376: 23376: static void assign(Coefficient& z, 23376: const Congruence& cg, const Grid_Generator& gg); 23376: 23376: 23376: static int sign(const Linear_Expression& x, const Linear_Expression& y); 23376: 23376: 23376: static int sign(const Constraint& c, const Generator& g); 23376: 23376: 23376: static int sign(const Generator& g, const Constraint& c); 23376: 23376: 23376: static int sign(const Constraint& c, const Grid_Generator& g); 23376: 23376: 23376: 23376: 23376: 23376: 23376: static void reduced_assign(Coefficient& z, 23376: const Linear_Expression& x, 23376: const Linear_Expression& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: static void reduced_assign(Coefficient& z, 23376: const Constraint& c, const Generator& g); 23376: 23376: 23376: 23376: 23376: 23376: 23376: static void reduced_assign(Coefficient& z, 23376: const Generator& g, const Constraint& c); 23376: 23376: 23376: 23376: 23376: 23376: static void reduced_assign(Coefficient& z, 23376: const Grid_Generator& gg, const Congruence& cg); 23376: 23376: 23376: 23376: 23376: 23376: static int reduced_sign(const Linear_Expression& x, 23376: const Linear_Expression& y); 23376: 23376: 23376: 23376: 23376: 23376: static int reduced_sign(const Constraint& c, const Generator& g); 23376: 23376: 23376: 23376: 23376: 23376: static int reduced_sign(const Generator& g, const Constraint& c); 23376: 23376: 23376: 23376: 23376: 23376: 23376: static void homogeneous_assign(Coefficient& z, 23376: const Linear_Expression& x, 23376: const Linear_Expression& y); 23376: 23376: 23376: 23376: 23376: 23376: static void homogeneous_assign(Coefficient& z, 23376: const Linear_Expression& e, 23376: const Generator& g); 23376: 23376: 23376: 23376: 23376: 23376: static void homogeneous_assign(Coefficient& z, 23376: const Grid_Generator& gg, 23376: const Constraint& c); 23376: 23376: 23376: 23376: 23376: 23376: static void homogeneous_assign(Coefficient& z, 23376: const Grid_Generator& gg, 23376: const Congruence& cg); 23376: 23376: 23376: 23376: 23376: 23376: static void homogeneous_assign(Coefficient& z, 23376: const Linear_Expression& e, 23376: const Grid_Generator& g); 23376: 23376: 23376: 23376: 23376: 23376: static int homogeneous_sign(const Linear_Expression& x, 23376: const Linear_Expression& y); 23376: 23376: 23376: 23376: 23376: 23376: static int homogeneous_sign(const Linear_Expression& e, const Generator& g); 23376: 23376: 23376: 23376: 23376: static int homogeneous_sign(const Linear_Expression& e, 23376: const Grid_Generator& g); 23376: 23376: 23376: 23376: 23376: static int homogeneous_sign(const Grid_Generator& g, const Constraint& c); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: class Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign { 23376: public: 23376: 23376: Topology_Adjusted_Scalar_Product_Sign(const Constraint& c); 23376: 23376: 23376: Topology_Adjusted_Scalar_Product_Sign(const Generator& g); 23376: 23376: 23376: int operator()(const Constraint&, const Generator&) const; 23376: 23376: 23376: int operator()(const Generator&, const Constraint&) const; 23376: 23376: private: 23376: 23376: typedef int (* const SPS_type)(const Linear_Expression&, 23376: const Linear_Expression&); 23376: 23376: 23376: SPS_type sps_fp; 23376: }; 23376: # 30 "../../src/Linear_System_templates.hh" 2 23376: # 1 "../../src/Scalar_Products_inlines.hh" 1 23376: # 33 "../../src/Scalar_Products_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline int 23376: Scalar_Products::sign(const Linear_Expression& x, const Linear_Expression& y) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_z; Parma_Polyhedra_Library::Coefficient& z = holder_z.item(); 23376: assign(z, x, y); 23376: return sgn(z); 23376: } 23376: 23376: inline int 23376: Scalar_Products::reduced_sign(const Linear_Expression& x, 23376: const Linear_Expression& y) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_z; Parma_Polyhedra_Library::Coefficient& z = holder_z.item(); 23376: reduced_assign(z, x, y); 23376: return sgn(z); 23376: } 23376: 23376: inline int 23376: Scalar_Products::homogeneous_sign(const Linear_Expression& x, 23376: const Linear_Expression& y) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_z; Parma_Polyhedra_Library::Coefficient& z = holder_z.item(); 23376: homogeneous_assign(z, x, y); 23376: return sgn(z); 23376: } 23376: 23376: inline int 23376: Scalar_Products::sign(const Constraint& c, const Generator& g) { 23376: return sign(c.expr, g.expr); 23376: } 23376: 23376: inline int 23376: Scalar_Products::sign(const Generator& g, const Constraint& c) { 23376: return sign(g.expr, c.expr); 23376: } 23376: 23376: inline int 23376: Scalar_Products::sign(const Constraint& c, const Grid_Generator& g) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_z; Parma_Polyhedra_Library::Coefficient& z = holder_z.item(); 23376: assign(z, c, g); 23376: return sgn(z); 23376: } 23376: 23376: inline int 23376: Scalar_Products::reduced_sign(const Constraint& c, const Generator& g) { 23376: 23376: 23376: ((void) 0); 23376: return reduced_sign(c.expr, g.expr); 23376: } 23376: 23376: inline int 23376: Scalar_Products::reduced_sign(const Generator& g, const Constraint& c) { 23376: 23376: 23376: ((void) 0); 23376: return reduced_sign(g.expr, c.expr); 23376: } 23376: 23376: inline void 23376: Scalar_Products::homogeneous_assign(Coefficient& z, 23376: const Linear_Expression& e, 23376: const Generator& g) { 23376: homogeneous_assign(z, e, g.expr); 23376: } 23376: 23376: inline void 23376: Scalar_Products::homogeneous_assign(Coefficient& z, 23376: const Linear_Expression& e, 23376: const Grid_Generator& g) { 23376: homogeneous_assign(z, e, g.expr); 23376: } 23376: 23376: inline int 23376: Scalar_Products::homogeneous_sign(const Linear_Expression& e, 23376: const Generator& g) { 23376: return homogeneous_sign(e, g.expr); 23376: } 23376: 23376: inline int 23376: Scalar_Products::homogeneous_sign(const Linear_Expression& e, 23376: const Grid_Generator& g) { 23376: return homogeneous_sign(e, g.expr); 23376: } 23376: 23376: inline int 23376: Scalar_Products::homogeneous_sign(const Grid_Generator& g, 23376: const Constraint& c) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_z; Parma_Polyhedra_Library::Coefficient& z = holder_z.item(); 23376: homogeneous_assign(z, g, c); 23376: return sgn(z); 23376: } 23376: 23376: inline 23376: Topology_Adjusted_Scalar_Product_Sign 23376: ::Topology_Adjusted_Scalar_Product_Sign(const Constraint& c) 23376: : sps_fp(c.is_necessarily_closed() 23376: ? static_cast(&Scalar_Products::sign) 23376: : static_cast(&Scalar_Products::reduced_sign)) { 23376: } 23376: 23376: inline 23376: Topology_Adjusted_Scalar_Product_Sign 23376: ::Topology_Adjusted_Scalar_Product_Sign(const Generator& g) 23376: : sps_fp(g.is_necessarily_closed() 23376: ? static_cast(&Scalar_Products::sign) 23376: : static_cast(&Scalar_Products::reduced_sign)) { 23376: } 23376: 23376: inline int 23376: Topology_Adjusted_Scalar_Product_Sign::operator()(const Constraint& c, 23376: const Generator& g) const { 23376: ((void) 0); 23376: ((void) 0) 23376: 23376: ; 23376: return sps_fp(c.expr, g.expr); 23376: } 23376: 23376: inline int 23376: Topology_Adjusted_Scalar_Product_Sign::operator()(const Generator& g, 23376: const Constraint& c) const { 23376: ((void) 0); 23376: ((void) 0) 23376: 23376: ; 23376: return sps_fp(g.expr, c.expr); 23376: } 23376: 23376: } 23376: # 31 "../../src/Linear_System_templates.hh" 2 23376: # 1 "../../src/swapping_sort_templates.hh" 1 23376: # 30 "../../src/swapping_sort_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Implementation { 23376: 23376: template 23376: struct Indirect_Sort_Compare { 23376: typedef typename RA_Container::size_type size_type; 23376: 23376: Indirect_Sort_Compare(const RA_Container& cont, 23376: size_type base = 0, 23376: Compare comp = Compare()) 23376: : container(cont), base_index(base), compare(comp) { 23376: } 23376: 23376: bool operator()(size_type i, size_type j) const { 23376: return compare(container[base_index + i], container[base_index + j]); 23376: } 23376: 23376: const RA_Container& container; 23376: const size_type base_index; 23376: const Compare compare; 23376: }; 23376: 23376: template 23376: struct Indirect_Unique_Compare { 23376: typedef typename RA_Container::size_type size_type; 23376: 23376: Indirect_Unique_Compare(const RA_Container& cont, size_type base = 0) 23376: : container(cont), base_index(base) { 23376: } 23376: 23376: bool operator()(size_type i, size_type j) const { 23376: return container[base_index + i] == container[base_index + j]; 23376: } 23376: 23376: const RA_Container& container; 23376: const size_type base_index; 23376: }; 23376: 23376: template 23376: struct Indirect_Swapper { 23376: typedef typename RA_Container::size_type size_type; 23376: 23376: Indirect_Swapper(RA_Container& cont, size_type base = 0) 23376: : container(cont), base_index(base) { 23376: } 23376: 23376: void operator()(size_type i, size_type j) const { 23376: using std::swap; 23376: swap(container[base_index + i], container[base_index + j]); 23376: } 23376: 23376: RA_Container& container; 23376: const size_type base_index; 23376: }; 23376: 23376: template 23376: struct Indirect_Swapper2 { 23376: typedef typename RA_Container1::size_type size_type; 23376: 23376: Indirect_Swapper2(RA_Container1& cont1, RA_Container2& cont2) 23376: : container1(cont1), container2(cont2) { 23376: } 23376: 23376: void operator()(size_type i, size_type j) const { 23376: using std::swap; 23376: swap(container1[i], container1[j]); 23376: swap(container2[i], container2[j]); 23376: } 23376: 23376: RA_Container1& container1; 23376: RA_Container2& container2; 23376: }; 23376: 23376: template 23376: typename Sort_Comparer::size_type 23376: indirect_sort_and_unique(typename Sort_Comparer::size_type num_elems, 23376: Sort_Comparer sort_cmp, 23376: Unique_Comparer unique_cmp, 23376: Swapper indirect_swap) { 23376: typedef typename Sort_Comparer::size_type index_type; 23376: 23376: ((void) 0); 23376: std::vector iv; 23376: iv.reserve(num_elems); 23376: for (index_type i = 0, i_end = num_elems; i != i_end; ++i) { 23376: iv.push_back(i); 23376: } 23376: 23376: typedef typename std::vector::iterator Iter; 23376: const Iter iv_begin = iv.begin(); 23376: Iter iv_end = iv.end(); 23376: 23376: 23376: std::sort(iv_begin, iv_end, sort_cmp); 23376: 23376: 23376: 23376: 23376: for (index_type i = num_elems; i-- > 0; ) { 23376: if (i != iv[i]) { 23376: index_type dst = i; 23376: index_type src = iv[i]; 23376: do { 23376: indirect_swap(src, dst); 23376: iv[dst] = dst; 23376: dst = src; 23376: src = iv[dst]; 23376: } while (i != src); 23376: iv[dst] = dst; 23376: } 23376: } 23376: 23376: 23376: for (index_type i = num_elems; i-- > 0; ) { 23376: iv[i] = i; 23376: } 23376: 23376: 23376: iv_end = std::unique(iv_begin, iv_end, unique_cmp); 23376: 23376: const index_type num_sorted = static_cast(iv_end - iv_begin); 23376: const index_type num_duplicates = num_elems - num_sorted; 23376: if (num_duplicates == 0) { 23376: return 0; 23376: } 23376: 23376: 23376: index_type dst = 0; 23376: while (dst < num_sorted && dst == iv[dst]) { 23376: ++dst; 23376: } 23376: if (dst == num_sorted) { 23376: return num_duplicates; 23376: } 23376: do { 23376: const index_type src = iv[dst]; 23376: indirect_swap(src, dst); 23376: ++dst; 23376: } 23376: while (dst < num_sorted); 23376: return num_duplicates; 23376: } 23376: 23376: template 23376: Iter 23376: swapping_unique(Iter first, Iter last) { 23376: return swapping_unique(first, last, std::iter_swap); 23376: } 23376: 23376: } 23376: 23376: } 23376: # 32 "../../src/Linear_System_templates.hh" 2 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/deque" 1 3 23376: # 58 "/usr/include/c++/8/deque" 3 23376: 23376: # 59 "/usr/include/c++/8/deque" 3 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/stl_deque.h" 1 3 23376: # 68 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: 23376: # 68 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: # 91 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: constexpr inline size_t 23376: __deque_buf_size(size_t __size) 23376: { return (__size < 512 23376: ? size_t(512 / __size) : size_t(1)); } 23376: # 108 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: struct _Deque_iterator 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: private: 23376: template 23376: using __ptr_to = typename pointer_traits<_Ptr>::template rebind<_Up>; 23376: template 23376: using __iter = _Deque_iterator<_Tp, _CvTp&, __ptr_to<_CvTp>>; 23376: public: 23376: typedef __iter<_Tp> iterator; 23376: typedef __iter const_iterator; 23376: typedef __ptr_to<_Tp> _Elt_pointer; 23376: typedef __ptr_to<_Elt_pointer> _Map_pointer; 23376: 23376: 23376: static size_t _S_buffer_size() noexcept 23376: { return __deque_buf_size(sizeof(_Tp)); } 23376: 23376: typedef std::random_access_iterator_tag iterator_category; 23376: typedef _Tp value_type; 23376: typedef _Ptr pointer; 23376: typedef _Ref reference; 23376: typedef size_t size_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef _Deque_iterator _Self; 23376: 23376: _Elt_pointer _M_cur; 23376: _Elt_pointer _M_first; 23376: _Elt_pointer _M_last; 23376: _Map_pointer _M_node; 23376: 23376: _Deque_iterator(_Elt_pointer __x, _Map_pointer __y) noexcept 23376: : _M_cur(__x), _M_first(*__y), 23376: _M_last(*__y + _S_buffer_size()), _M_node(__y) { } 23376: 23376: _Deque_iterator() noexcept 23376: : _M_cur(), _M_first(), _M_last(), _M_node() { } 23376: 23376: _Deque_iterator(const iterator& __x) noexcept 23376: : _M_cur(__x._M_cur), _M_first(__x._M_first), 23376: _M_last(__x._M_last), _M_node(__x._M_node) { } 23376: 23376: iterator 23376: _M_const_cast() const noexcept 23376: { return iterator(_M_cur, _M_node); } 23376: 23376: reference 23376: operator*() const noexcept 23376: { return *_M_cur; } 23376: 23376: pointer 23376: operator->() const noexcept 23376: { return _M_cur; } 23376: 23376: _Self& 23376: operator++() noexcept 23376: { 23376: ++_M_cur; 23376: if (_M_cur == _M_last) 23376: { 23376: _M_set_node(_M_node + 1); 23376: _M_cur = _M_first; 23376: } 23376: return *this; 23376: } 23376: 23376: _Self 23376: operator++(int) noexcept 23376: { 23376: _Self __tmp = *this; 23376: ++*this; 23376: return __tmp; 23376: } 23376: 23376: _Self& 23376: operator--() noexcept 23376: { 23376: if (_M_cur == _M_first) 23376: { 23376: _M_set_node(_M_node - 1); 23376: _M_cur = _M_last; 23376: } 23376: --_M_cur; 23376: return *this; 23376: } 23376: 23376: _Self 23376: operator--(int) noexcept 23376: { 23376: _Self __tmp = *this; 23376: --*this; 23376: return __tmp; 23376: } 23376: 23376: _Self& 23376: operator+=(difference_type __n) noexcept 23376: { 23376: const difference_type __offset = __n + (_M_cur - _M_first); 23376: if (__offset >= 0 && __offset < difference_type(_S_buffer_size())) 23376: _M_cur += __n; 23376: else 23376: { 23376: const difference_type __node_offset = 23376: __offset > 0 ? __offset / difference_type(_S_buffer_size()) 23376: : -difference_type((-__offset - 1) 23376: / _S_buffer_size()) - 1; 23376: _M_set_node(_M_node + __node_offset); 23376: _M_cur = _M_first + (__offset - __node_offset 23376: * difference_type(_S_buffer_size())); 23376: } 23376: return *this; 23376: } 23376: 23376: _Self 23376: operator+(difference_type __n) const noexcept 23376: { 23376: _Self __tmp = *this; 23376: return __tmp += __n; 23376: } 23376: 23376: _Self& 23376: operator-=(difference_type __n) noexcept 23376: { return *this += -__n; } 23376: 23376: _Self 23376: operator-(difference_type __n) const noexcept 23376: { 23376: _Self __tmp = *this; 23376: return __tmp -= __n; 23376: } 23376: 23376: reference 23376: operator[](difference_type __n) const noexcept 23376: { return *(*this + __n); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: _M_set_node(_Map_pointer __new_node) noexcept 23376: { 23376: _M_node = __new_node; 23376: _M_first = *__new_node; 23376: _M_last = _M_first + difference_type(_S_buffer_size()); 23376: } 23376: }; 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 23376: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 23376: { return __x._M_cur == __y._M_cur; } 23376: 23376: template 23376: inline bool 23376: operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 23376: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 23376: { return __x._M_cur == __y._M_cur; } 23376: 23376: template 23376: inline bool 23376: operator!=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 23376: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 23376: { return !(__x == __y); } 23376: 23376: template 23376: inline bool 23376: operator!=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 23376: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 23376: { return !(__x == __y); } 23376: 23376: template 23376: inline bool 23376: operator<(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 23376: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 23376: { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur) 23376: : (__x._M_node < __y._M_node); } 23376: 23376: template 23376: inline bool 23376: operator<(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 23376: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 23376: { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur) 23376: : (__x._M_node < __y._M_node); } 23376: 23376: template 23376: inline bool 23376: operator>(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 23376: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 23376: { return __y < __x; } 23376: 23376: template 23376: inline bool 23376: operator>(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 23376: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 23376: { return __y < __x; } 23376: 23376: template 23376: inline bool 23376: operator<=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 23376: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 23376: { return !(__y < __x); } 23376: 23376: template 23376: inline bool 23376: operator<=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 23376: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 23376: { return !(__y < __x); } 23376: 23376: template 23376: inline bool 23376: operator>=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 23376: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 23376: { return !(__x < __y); } 23376: 23376: template 23376: inline bool 23376: operator>=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 23376: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 23376: { return !(__x < __y); } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type 23376: operator-(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 23376: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 23376: { 23376: return typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type 23376: (_Deque_iterator<_Tp, _Ref, _Ptr>::_S_buffer_size()) 23376: * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) 23376: + (__y._M_last - __y._M_cur); 23376: } 23376: 23376: template 23376: inline typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type 23376: operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 23376: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 23376: { 23376: return typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type 23376: (_Deque_iterator<_Tp, _RefL, _PtrL>::_S_buffer_size()) 23376: * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) 23376: + (__y._M_last - __y._M_cur); 23376: } 23376: 23376: template 23376: inline _Deque_iterator<_Tp, _Ref, _Ptr> 23376: operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x) 23376: noexcept 23376: { return __x + __n; } 23376: 23376: template 23376: void 23376: fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>&, 23376: const _Deque_iterator<_Tp, _Tp&, _Tp*>&, const _Tp&); 23376: 23376: template 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: copy(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*>); 23376: 23376: template 23376: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: copy(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 23376: { return std::copy(_Deque_iterator<_Tp, const _Tp&, const _Tp*>(__first), 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*>(__last), 23376: __result); } 23376: 23376: template 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: copy_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*>); 23376: 23376: template 23376: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: copy_backward(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 23376: { return std::copy_backward(_Deque_iterator<_Tp, 23376: const _Tp&, const _Tp*>(__first), 23376: _Deque_iterator<_Tp, 23376: const _Tp&, const _Tp*>(__last), 23376: __result); } 23376: 23376: 23376: template 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: move(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*>); 23376: 23376: template 23376: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: move(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 23376: { return std::move(_Deque_iterator<_Tp, const _Tp&, const _Tp*>(__first), 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*>(__last), 23376: __result); } 23376: 23376: template 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: move_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*>); 23376: 23376: template 23376: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: move_backward(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 23376: { return std::move_backward(_Deque_iterator<_Tp, 23376: const _Tp&, const _Tp*>(__first), 23376: _Deque_iterator<_Tp, 23376: const _Tp&, const _Tp*>(__last), 23376: __result); } 23376: # 460 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: class _Deque_base 23376: { 23376: protected: 23376: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 23376: rebind<_Tp>::other _Tp_alloc_type; 23376: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 23376: 23376: 23376: 23376: 23376: 23376: typedef typename _Alloc_traits::pointer _Ptr; 23376: typedef typename _Alloc_traits::const_pointer _Ptr_const; 23376: 23376: 23376: typedef typename _Alloc_traits::template rebind<_Ptr>::other 23376: _Map_alloc_type; 23376: typedef __gnu_cxx::__alloc_traits<_Map_alloc_type> _Map_alloc_traits; 23376: 23376: public: 23376: typedef _Alloc allocator_type; 23376: typedef typename _Alloc_traits::size_type size_type; 23376: 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return allocator_type(_M_get_Tp_allocator()); } 23376: 23376: typedef _Deque_iterator<_Tp, _Tp&, _Ptr> iterator; 23376: typedef _Deque_iterator<_Tp, const _Tp&, _Ptr_const> const_iterator; 23376: 23376: _Deque_base() 23376: : _M_impl() 23376: { _M_initialize_map(0); } 23376: 23376: _Deque_base(size_t __num_elements) 23376: : _M_impl() 23376: { _M_initialize_map(__num_elements); } 23376: 23376: _Deque_base(const allocator_type& __a, size_t __num_elements) 23376: : _M_impl(__a) 23376: { _M_initialize_map(__num_elements); } 23376: 23376: _Deque_base(const allocator_type& __a) 23376: : _M_impl(__a) 23376: { } 23376: 23376: 23376: _Deque_base(_Deque_base&& __x, false_type) 23376: : _M_impl(__x._M_move_impl()) 23376: { } 23376: 23376: _Deque_base(_Deque_base&& __x, true_type) 23376: : _M_impl(std::move(__x._M_get_Tp_allocator())) 23376: { 23376: _M_initialize_map(0); 23376: if (__x._M_impl._M_map) 23376: this->_M_impl._M_swap_data(__x._M_impl); 23376: } 23376: 23376: _Deque_base(_Deque_base&& __x) 23376: : _Deque_base(std::move(__x), typename _Alloc_traits::is_always_equal{}) 23376: { } 23376: 23376: _Deque_base(_Deque_base&& __x, const allocator_type& __a, size_type __n) 23376: : _M_impl(__a) 23376: { 23376: if (__x.get_allocator() == __a) 23376: { 23376: if (__x._M_impl._M_map) 23376: { 23376: _M_initialize_map(0); 23376: this->_M_impl._M_swap_data(__x._M_impl); 23376: } 23376: } 23376: else 23376: { 23376: _M_initialize_map(__n); 23376: } 23376: } 23376: 23376: 23376: ~_Deque_base() noexcept; 23376: 23376: protected: 23376: typedef typename iterator::_Map_pointer _Map_pointer; 23376: 23376: 23376: 23376: 23376: struct _Deque_impl 23376: : public _Tp_alloc_type 23376: { 23376: _Map_pointer _M_map; 23376: size_t _M_map_size; 23376: iterator _M_start; 23376: iterator _M_finish; 23376: 23376: _Deque_impl() 23376: : _Tp_alloc_type(), _M_map(), _M_map_size(0), 23376: _M_start(), _M_finish() 23376: { } 23376: 23376: _Deque_impl(const _Tp_alloc_type& __a) noexcept 23376: : _Tp_alloc_type(__a), _M_map(), _M_map_size(0), 23376: _M_start(), _M_finish() 23376: { } 23376: 23376: 23376: _Deque_impl(_Deque_impl&&) = default; 23376: 23376: _Deque_impl(_Tp_alloc_type&& __a) noexcept 23376: : _Tp_alloc_type(std::move(__a)), _M_map(), _M_map_size(0), 23376: _M_start(), _M_finish() 23376: { } 23376: 23376: 23376: void _M_swap_data(_Deque_impl& __x) noexcept 23376: { 23376: using std::swap; 23376: swap(this->_M_start, __x._M_start); 23376: swap(this->_M_finish, __x._M_finish); 23376: swap(this->_M_map, __x._M_map); 23376: swap(this->_M_map_size, __x._M_map_size); 23376: } 23376: }; 23376: 23376: _Tp_alloc_type& 23376: _M_get_Tp_allocator() noexcept 23376: { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 23376: 23376: const _Tp_alloc_type& 23376: _M_get_Tp_allocator() const noexcept 23376: { return *static_cast(&this->_M_impl); } 23376: 23376: _Map_alloc_type 23376: _M_get_map_allocator() const noexcept 23376: { return _Map_alloc_type(_M_get_Tp_allocator()); } 23376: 23376: _Ptr 23376: _M_allocate_node() 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Traits; 23376: return _Traits::allocate(_M_impl, __deque_buf_size(sizeof(_Tp))); 23376: } 23376: 23376: void 23376: _M_deallocate_node(_Ptr __p) noexcept 23376: { 23376: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Traits; 23376: _Traits::deallocate(_M_impl, __p, __deque_buf_size(sizeof(_Tp))); 23376: } 23376: 23376: _Map_pointer 23376: _M_allocate_map(size_t __n) 23376: { 23376: _Map_alloc_type __map_alloc = _M_get_map_allocator(); 23376: return _Map_alloc_traits::allocate(__map_alloc, __n); 23376: } 23376: 23376: void 23376: _M_deallocate_map(_Map_pointer __p, size_t __n) noexcept 23376: { 23376: _Map_alloc_type __map_alloc = _M_get_map_allocator(); 23376: _Map_alloc_traits::deallocate(__map_alloc, __p, __n); 23376: } 23376: 23376: protected: 23376: void _M_initialize_map(size_t); 23376: void _M_create_nodes(_Map_pointer __nstart, _Map_pointer __nfinish); 23376: void _M_destroy_nodes(_Map_pointer __nstart, 23376: _Map_pointer __nfinish) noexcept; 23376: enum { _S_initial_map_size = 8 }; 23376: 23376: _Deque_impl _M_impl; 23376: 23376: 23376: private: 23376: _Deque_impl 23376: _M_move_impl() 23376: { 23376: if (!_M_impl._M_map) 23376: return std::move(_M_impl); 23376: 23376: 23376: _Tp_alloc_type __alloc{_M_get_Tp_allocator()}; 23376: 23376: _Tp_alloc_type __sink __attribute((__unused__)) {std::move(__alloc)}; 23376: 23376: _Deque_base __empty{__alloc}; 23376: __empty._M_initialize_map(0); 23376: 23376: _Deque_impl __ret{std::move(_M_get_Tp_allocator())}; 23376: _M_impl._M_swap_data(__ret); 23376: _M_impl._M_swap_data(__empty._M_impl); 23376: return __ret; 23376: } 23376: 23376: }; 23376: 23376: template 23376: _Deque_base<_Tp, _Alloc>:: 23376: ~_Deque_base() noexcept 23376: { 23376: if (this->_M_impl._M_map) 23376: { 23376: _M_destroy_nodes(this->_M_impl._M_start._M_node, 23376: this->_M_impl._M_finish._M_node + 1); 23376: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 23376: } 23376: } 23376: # 680 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: void 23376: _Deque_base<_Tp, _Alloc>:: 23376: _M_initialize_map(size_t __num_elements) 23376: { 23376: const size_t __num_nodes = (__num_elements/ __deque_buf_size(sizeof(_Tp)) 23376: + 1); 23376: 23376: this->_M_impl._M_map_size = std::max((size_t) _S_initial_map_size, 23376: size_t(__num_nodes + 2)); 23376: this->_M_impl._M_map = _M_allocate_map(this->_M_impl._M_map_size); 23376: 23376: 23376: 23376: 23376: 23376: 23376: _Map_pointer __nstart = (this->_M_impl._M_map 23376: + (this->_M_impl._M_map_size - __num_nodes) / 2); 23376: _Map_pointer __nfinish = __nstart + __num_nodes; 23376: 23376: try 23376: { _M_create_nodes(__nstart, __nfinish); } 23376: catch(...) 23376: { 23376: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 23376: this->_M_impl._M_map = _Map_pointer(); 23376: this->_M_impl._M_map_size = 0; 23376: throw; 23376: } 23376: 23376: this->_M_impl._M_start._M_set_node(__nstart); 23376: this->_M_impl._M_finish._M_set_node(__nfinish - 1); 23376: this->_M_impl._M_start._M_cur = _M_impl._M_start._M_first; 23376: this->_M_impl._M_finish._M_cur = (this->_M_impl._M_finish._M_first 23376: + __num_elements 23376: % __deque_buf_size(sizeof(_Tp))); 23376: } 23376: 23376: template 23376: void 23376: _Deque_base<_Tp, _Alloc>:: 23376: _M_create_nodes(_Map_pointer __nstart, _Map_pointer __nfinish) 23376: { 23376: _Map_pointer __cur; 23376: try 23376: { 23376: for (__cur = __nstart; __cur < __nfinish; ++__cur) 23376: *__cur = this->_M_allocate_node(); 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(__nstart, __cur); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: void 23376: _Deque_base<_Tp, _Alloc>:: 23376: _M_destroy_nodes(_Map_pointer __nstart, 23376: _Map_pointer __nfinish) noexcept 23376: { 23376: for (_Map_pointer __n = __nstart; __n < __nfinish; ++__n) 23376: _M_deallocate_node(*__n); 23376: } 23376: # 831 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template > 23376: class deque : protected _Deque_base<_Tp, _Alloc> 23376: { 23376: # 844 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: static_assert(is_same::type, _Tp>::value, 23376: "std::deque must have a non-const, non-volatile value_type"); 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef _Deque_base<_Tp, _Alloc> _Base; 23376: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 23376: typedef typename _Base::_Alloc_traits _Alloc_traits; 23376: typedef typename _Base::_Map_pointer _Map_pointer; 23376: 23376: public: 23376: typedef _Tp value_type; 23376: typedef typename _Alloc_traits::pointer pointer; 23376: typedef typename _Alloc_traits::const_pointer const_pointer; 23376: typedef typename _Alloc_traits::reference reference; 23376: typedef typename _Alloc_traits::const_reference const_reference; 23376: typedef typename _Base::iterator iterator; 23376: typedef typename _Base::const_iterator const_iterator; 23376: typedef std::reverse_iterator const_reverse_iterator; 23376: typedef std::reverse_iterator reverse_iterator; 23376: typedef size_t size_type; 23376: typedef ptrdiff_t difference_type; 23376: typedef _Alloc allocator_type; 23376: 23376: protected: 23376: static size_t _S_buffer_size() noexcept 23376: { return __deque_buf_size(sizeof(_Tp)); } 23376: 23376: 23376: using _Base::_M_initialize_map; 23376: using _Base::_M_create_nodes; 23376: using _Base::_M_destroy_nodes; 23376: using _Base::_M_allocate_node; 23376: using _Base::_M_deallocate_node; 23376: using _Base::_M_allocate_map; 23376: using _Base::_M_deallocate_map; 23376: using _Base::_M_get_Tp_allocator; 23376: 23376: 23376: 23376: 23376: 23376: using _Base::_M_impl; 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: deque() : _Base() { } 23376: 23376: 23376: 23376: 23376: 23376: explicit 23376: deque(const allocator_type& __a) 23376: : _Base(__a, 0) { } 23376: # 917 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: explicit 23376: deque(size_type __n, const allocator_type& __a = allocator_type()) 23376: : _Base(__a, __n) 23376: { _M_default_initialize(); } 23376: # 930 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: deque(size_type __n, const value_type& __value, 23376: const allocator_type& __a = allocator_type()) 23376: : _Base(__a, __n) 23376: { _M_fill_initialize(__value); } 23376: # 957 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: deque(const deque& __x) 23376: : _Base(_Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator()), 23376: __x.size()) 23376: { std::__uninitialized_copy_a(__x.begin(), __x.end(), 23376: this->_M_impl._M_start, 23376: _M_get_Tp_allocator()); } 23376: # 972 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: deque(deque&& __x) 23376: : _Base(std::move(__x)) { } 23376: 23376: 23376: deque(const deque& __x, const allocator_type& __a) 23376: : _Base(__a, __x.size()) 23376: { std::__uninitialized_copy_a(__x.begin(), __x.end(), 23376: this->_M_impl._M_start, 23376: _M_get_Tp_allocator()); } 23376: 23376: 23376: deque(deque&& __x, const allocator_type& __a) 23376: : _Base(std::move(__x), __a, __x.size()) 23376: { 23376: if (__x.get_allocator() != __a) 23376: { 23376: std::__uninitialized_move_a(__x.begin(), __x.end(), 23376: this->_M_impl._M_start, 23376: _M_get_Tp_allocator()); 23376: __x.clear(); 23376: } 23376: } 23376: # 1006 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: deque(initializer_list __l, 23376: const allocator_type& __a = allocator_type()) 23376: : _Base(__a) 23376: { 23376: _M_range_initialize(__l.begin(), __l.end(), 23376: random_access_iterator_tag()); 23376: } 23376: # 1031 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template> 23376: deque(_InputIterator __first, _InputIterator __last, 23376: const allocator_type& __a = allocator_type()) 23376: : _Base(__a) 23376: { _M_initialize_dispatch(__first, __last, __false_type()); } 23376: # 1054 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: ~deque() 23376: { _M_destroy_data(begin(), end(), _M_get_Tp_allocator()); } 23376: # 1066 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: deque& 23376: operator=(const deque& __x); 23376: # 1078 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: deque& 23376: operator=(deque&& __x) noexcept(_Alloc_traits::_S_always_equal()) 23376: { 23376: using __always_equal = typename _Alloc_traits::is_always_equal; 23376: _M_move_assign1(std::move(__x), __always_equal{}); 23376: return *this; 23376: } 23376: # 1097 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: deque& 23376: operator=(initializer_list __l) 23376: { 23376: _M_assign_aux(__l.begin(), __l.end(), 23376: random_access_iterator_tag()); 23376: return *this; 23376: } 23376: # 1116 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: assign(size_type __n, const value_type& __val) 23376: { _M_fill_assign(__n, __val); } 23376: # 1133 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template> 23376: void 23376: assign(_InputIterator __first, _InputIterator __last) 23376: { _M_assign_dispatch(__first, __last, __false_type()); } 23376: # 1160 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: assign(initializer_list __l) 23376: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 23376: 23376: 23376: 23376: allocator_type 23376: get_allocator() const noexcept 23376: { return _Base::get_allocator(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: begin() noexcept 23376: { return this->_M_impl._M_start; } 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: begin() const noexcept 23376: { return this->_M_impl._M_start; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator 23376: end() noexcept 23376: { return this->_M_impl._M_finish; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: end() const noexcept 23376: { return this->_M_impl._M_finish; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rbegin() noexcept 23376: { return reverse_iterator(this->_M_impl._M_finish); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rbegin() const noexcept 23376: { return const_reverse_iterator(this->_M_impl._M_finish); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: reverse_iterator 23376: rend() noexcept 23376: { return reverse_iterator(this->_M_impl._M_start); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: rend() const noexcept 23376: { return const_reverse_iterator(this->_M_impl._M_start); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cbegin() const noexcept 23376: { return this->_M_impl._M_start; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator 23376: cend() const noexcept 23376: { return this->_M_impl._M_finish; } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crbegin() const noexcept 23376: { return const_reverse_iterator(this->_M_impl._M_finish); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_reverse_iterator 23376: crend() const noexcept 23376: { return const_reverse_iterator(this->_M_impl._M_start); } 23376: 23376: 23376: 23376: 23376: size_type 23376: size() const noexcept 23376: { return this->_M_impl._M_finish - this->_M_impl._M_start; } 23376: 23376: 23376: size_type 23376: max_size() const noexcept 23376: { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 23376: # 1299 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: resize(size_type __new_size) 23376: { 23376: const size_type __len = size(); 23376: if (__new_size > __len) 23376: _M_default_append(__new_size - __len); 23376: else if (__new_size < __len) 23376: _M_erase_at_end(this->_M_impl._M_start 23376: + difference_type(__new_size)); 23376: } 23376: # 1321 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: resize(size_type __new_size, const value_type& __x) 23376: { 23376: const size_type __len = size(); 23376: if (__new_size > __len) 23376: _M_fill_insert(this->_M_impl._M_finish, __new_size - __len, __x); 23376: else if (__new_size < __len) 23376: _M_erase_at_end(this->_M_impl._M_start 23376: + difference_type(__new_size)); 23376: } 23376: # 1357 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: shrink_to_fit() noexcept 23376: { _M_shrink_to_fit(); } 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool 23376: empty() const noexcept 23376: { return this->_M_impl._M_finish == this->_M_impl._M_start; } 23376: # 1382 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: reference 23376: operator[](size_type __n) noexcept 23376: { 23376: ; 23376: return this->_M_impl._M_start[difference_type(__n)]; 23376: } 23376: # 1400 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: const_reference 23376: operator[](size_type __n) const noexcept 23376: { 23376: ; 23376: return this->_M_impl._M_start[difference_type(__n)]; 23376: } 23376: 23376: protected: 23376: 23376: void 23376: _M_range_check(size_type __n) const 23376: { 23376: if (__n >= this->size()) 23376: __throw_out_of_range_fmt(("deque::_M_range_check: __n " "(which is %zu)>= this->size() " "(which is %zu)") 23376: 23376: , 23376: __n, this->size()); 23376: } 23376: 23376: public: 23376: # 1431 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: reference 23376: at(size_type __n) 23376: { 23376: _M_range_check(__n); 23376: return (*this)[__n]; 23376: } 23376: # 1449 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: const_reference 23376: at(size_type __n) const 23376: { 23376: _M_range_check(__n); 23376: return (*this)[__n]; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: reference 23376: front() noexcept 23376: { 23376: ; 23376: return *begin(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const_reference 23376: front() const noexcept 23376: { 23376: ; 23376: return *begin(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: reference 23376: back() noexcept 23376: { 23376: ; 23376: iterator __tmp = end(); 23376: --__tmp; 23376: return *__tmp; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const_reference 23376: back() const noexcept 23376: { 23376: ; 23376: const_iterator __tmp = end(); 23376: --__tmp; 23376: return *__tmp; 23376: } 23376: # 1514 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: push_front(const value_type& __x) 23376: { 23376: if (this->_M_impl._M_start._M_cur != this->_M_impl._M_start._M_first) 23376: { 23376: _Alloc_traits::construct(this->_M_impl, 23376: this->_M_impl._M_start._M_cur - 1, 23376: __x); 23376: --this->_M_impl._M_start._M_cur; 23376: } 23376: else 23376: _M_push_front_aux(__x); 23376: } 23376: 23376: 23376: void 23376: push_front(value_type&& __x) 23376: { emplace_front(std::move(__x)); } 23376: 23376: template 23376: 23376: 23376: 23376: void 23376: 23376: emplace_front(_Args&&... __args); 23376: # 1551 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: push_back(const value_type& __x) 23376: { 23376: if (this->_M_impl._M_finish._M_cur 23376: != this->_M_impl._M_finish._M_last - 1) 23376: { 23376: _Alloc_traits::construct(this->_M_impl, 23376: this->_M_impl._M_finish._M_cur, __x); 23376: ++this->_M_impl._M_finish._M_cur; 23376: } 23376: else 23376: _M_push_back_aux(__x); 23376: } 23376: 23376: 23376: void 23376: push_back(value_type&& __x) 23376: { emplace_back(std::move(__x)); } 23376: 23376: template 23376: 23376: 23376: 23376: void 23376: 23376: emplace_back(_Args&&... __args); 23376: # 1587 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: pop_front() noexcept 23376: { 23376: ; 23376: if (this->_M_impl._M_start._M_cur 23376: != this->_M_impl._M_start._M_last - 1) 23376: { 23376: _Alloc_traits::destroy(this->_M_impl, 23376: this->_M_impl._M_start._M_cur); 23376: ++this->_M_impl._M_start._M_cur; 23376: } 23376: else 23376: _M_pop_front_aux(); 23376: } 23376: # 1610 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: pop_back() noexcept 23376: { 23376: ; 23376: if (this->_M_impl._M_finish._M_cur 23376: != this->_M_impl._M_finish._M_first) 23376: { 23376: --this->_M_impl._M_finish._M_cur; 23376: _Alloc_traits::destroy(this->_M_impl, 23376: this->_M_impl._M_finish._M_cur); 23376: } 23376: else 23376: _M_pop_back_aux(); 23376: } 23376: # 1635 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: iterator 23376: emplace(const_iterator __position, _Args&&... __args); 23376: # 1648 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: iterator 23376: insert(const_iterator __position, const value_type& __x); 23376: # 1674 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: iterator 23376: insert(const_iterator __position, value_type&& __x) 23376: { return emplace(__position, std::move(__x)); } 23376: # 1687 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: iterator 23376: insert(const_iterator __p, initializer_list __l) 23376: { 23376: auto __offset = __p - cbegin(); 23376: _M_range_insert_aux(__p._M_const_cast(), __l.begin(), __l.end(), 23376: std::random_access_iterator_tag()); 23376: return begin() + __offset; 23376: } 23376: # 1708 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: iterator 23376: insert(const_iterator __position, size_type __n, const value_type& __x) 23376: { 23376: difference_type __offset = __position - cbegin(); 23376: _M_fill_insert(__position._M_const_cast(), __n, __x); 23376: return begin() + __offset; 23376: } 23376: # 1742 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template> 23376: iterator 23376: insert(const_iterator __position, _InputIterator __first, 23376: _InputIterator __last) 23376: { 23376: difference_type __offset = __position - cbegin(); 23376: _M_insert_dispatch(__position._M_const_cast(), 23376: __first, __last, __false_type()); 23376: return begin() + __offset; 23376: } 23376: # 1788 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: iterator 23376: 23376: erase(const_iterator __position) 23376: 23376: 23376: 23376: { return _M_erase(__position._M_const_cast()); } 23376: # 1812 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: iterator 23376: 23376: erase(const_iterator __first, const_iterator __last) 23376: 23376: 23376: 23376: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 23376: # 1831 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: swap(deque& __x) noexcept 23376: { 23376: 23376: 23376: ; 23376: 23376: _M_impl._M_swap_data(__x._M_impl); 23376: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 23376: __x._M_get_Tp_allocator()); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void 23376: clear() noexcept 23376: { _M_erase_at_end(begin()); } 23376: 23376: protected: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 23376: { 23376: _M_initialize_map(static_cast(__n)); 23376: _M_fill_initialize(__x); 23376: } 23376: 23376: 23376: template 23376: void 23376: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 23376: __false_type) 23376: { 23376: _M_range_initialize(__first, __last, 23376: std::__iterator_category(__first)); 23376: } 23376: # 1890 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: void 23376: _M_range_initialize(_InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag); 23376: 23376: 23376: template 23376: void 23376: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 23376: std::forward_iterator_tag); 23376: # 1912 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: _M_fill_initialize(const value_type& __value); 23376: 23376: 23376: 23376: void 23376: _M_default_initialize(); 23376: # 1928 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: void 23376: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 23376: { _M_fill_assign(__n, __val); } 23376: 23376: 23376: template 23376: void 23376: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 23376: __false_type) 23376: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 23376: 23376: 23376: template 23376: void 23376: _M_assign_aux(_InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag); 23376: 23376: 23376: template 23376: void 23376: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 23376: std::forward_iterator_tag) 23376: { 23376: const size_type __len = std::distance(__first, __last); 23376: if (__len > size()) 23376: { 23376: _ForwardIterator __mid = __first; 23376: std::advance(__mid, size()); 23376: std::copy(__first, __mid, begin()); 23376: _M_range_insert_aux(end(), __mid, __last, 23376: std::__iterator_category(__first)); 23376: } 23376: else 23376: _M_erase_at_end(std::copy(__first, __last, begin())); 23376: } 23376: 23376: 23376: 23376: void 23376: _M_fill_assign(size_type __n, const value_type& __val) 23376: { 23376: if (__n > size()) 23376: { 23376: std::fill(begin(), end(), __val); 23376: _M_fill_insert(end(), __n - size(), __val); 23376: } 23376: else 23376: { 23376: _M_erase_at_end(begin() + difference_type(__n)); 23376: std::fill(begin(), end(), __val); 23376: } 23376: } 23376: # 1989 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: void _M_push_back_aux(_Args&&... __args); 23376: 23376: template 23376: void _M_push_front_aux(_Args&&... __args); 23376: 23376: 23376: void _M_pop_back_aux(); 23376: 23376: void _M_pop_front_aux(); 23376: # 2008 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: void 23376: _M_insert_dispatch(iterator __pos, 23376: _Integer __n, _Integer __x, __true_type) 23376: { _M_fill_insert(__pos, __n, __x); } 23376: 23376: 23376: template 23376: void 23376: _M_insert_dispatch(iterator __pos, 23376: _InputIterator __first, _InputIterator __last, 23376: __false_type) 23376: { 23376: _M_range_insert_aux(__pos, __first, __last, 23376: std::__iterator_category(__first)); 23376: } 23376: 23376: 23376: template 23376: void 23376: _M_range_insert_aux(iterator __pos, _InputIterator __first, 23376: _InputIterator __last, std::input_iterator_tag); 23376: 23376: 23376: template 23376: void 23376: _M_range_insert_aux(iterator __pos, _ForwardIterator __first, 23376: _ForwardIterator __last, std::forward_iterator_tag); 23376: 23376: 23376: 23376: 23376: void 23376: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: iterator 23376: _M_insert_aux(iterator __pos, _Args&&... __args); 23376: 23376: 23376: 23376: void 23376: _M_insert_aux(iterator __pos, size_type __n, const value_type& __x); 23376: 23376: 23376: template 23376: void 23376: _M_insert_aux(iterator __pos, 23376: _ForwardIterator __first, _ForwardIterator __last, 23376: size_type __n); 23376: 23376: 23376: 23376: 23376: void 23376: _M_destroy_data_aux(iterator __first, iterator __last); 23376: 23376: 23376: 23376: template 23376: void 23376: _M_destroy_data(iterator __first, iterator __last, const _Alloc1&) 23376: { _M_destroy_data_aux(__first, __last); } 23376: 23376: void 23376: _M_destroy_data(iterator __first, iterator __last, 23376: const std::allocator<_Tp>&) 23376: { 23376: if (!__has_trivial_destructor(value_type)) 23376: _M_destroy_data_aux(__first, __last); 23376: } 23376: 23376: 23376: void 23376: _M_erase_at_begin(iterator __pos) 23376: { 23376: _M_destroy_data(begin(), __pos, _M_get_Tp_allocator()); 23376: _M_destroy_nodes(this->_M_impl._M_start._M_node, __pos._M_node); 23376: this->_M_impl._M_start = __pos; 23376: } 23376: 23376: 23376: 23376: void 23376: _M_erase_at_end(iterator __pos) 23376: { 23376: _M_destroy_data(__pos, end(), _M_get_Tp_allocator()); 23376: _M_destroy_nodes(__pos._M_node + 1, 23376: this->_M_impl._M_finish._M_node + 1); 23376: this->_M_impl._M_finish = __pos; 23376: } 23376: 23376: iterator 23376: _M_erase(iterator __pos); 23376: 23376: iterator 23376: _M_erase(iterator __first, iterator __last); 23376: 23376: 23376: 23376: void 23376: _M_default_append(size_type __n); 23376: 23376: bool 23376: _M_shrink_to_fit(); 23376: 23376: 23376: 23376: 23376: iterator 23376: _M_reserve_elements_at_front(size_type __n) 23376: { 23376: const size_type __vacancies = this->_M_impl._M_start._M_cur 23376: - this->_M_impl._M_start._M_first; 23376: if (__n > __vacancies) 23376: _M_new_elements_at_front(__n - __vacancies); 23376: return this->_M_impl._M_start - difference_type(__n); 23376: } 23376: 23376: iterator 23376: _M_reserve_elements_at_back(size_type __n) 23376: { 23376: const size_type __vacancies = (this->_M_impl._M_finish._M_last 23376: - this->_M_impl._M_finish._M_cur) - 1; 23376: if (__n > __vacancies) 23376: _M_new_elements_at_back(__n - __vacancies); 23376: return this->_M_impl._M_finish + difference_type(__n); 23376: } 23376: 23376: void 23376: _M_new_elements_at_front(size_type __new_elements); 23376: 23376: void 23376: _M_new_elements_at_back(size_type __new_elements); 23376: # 2158 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: void 23376: _M_reserve_map_at_back(size_type __nodes_to_add = 1) 23376: { 23376: if (__nodes_to_add + 1 > this->_M_impl._M_map_size 23376: - (this->_M_impl._M_finish._M_node - this->_M_impl._M_map)) 23376: _M_reallocate_map(__nodes_to_add, false); 23376: } 23376: 23376: void 23376: _M_reserve_map_at_front(size_type __nodes_to_add = 1) 23376: { 23376: if (__nodes_to_add > size_type(this->_M_impl._M_start._M_node 23376: - this->_M_impl._M_map)) 23376: _M_reallocate_map(__nodes_to_add, true); 23376: } 23376: 23376: void 23376: _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front); 23376: 23376: 23376: 23376: 23376: 23376: void 23376: _M_move_assign1(deque&& __x, true_type) noexcept 23376: { 23376: this->_M_impl._M_swap_data(__x._M_impl); 23376: __x.clear(); 23376: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 23376: } 23376: 23376: 23376: 23376: 23376: void 23376: _M_move_assign1(deque&& __x, false_type) 23376: { 23376: constexpr bool __move_storage = 23376: _Alloc_traits::_S_propagate_on_move_assign(); 23376: _M_move_assign2(std::move(__x), __bool_constant<__move_storage>()); 23376: } 23376: 23376: 23376: 23376: template 23376: void 23376: _M_replace_map(_Args&&... __args) 23376: { 23376: 23376: deque __newobj(std::forward<_Args>(__args)...); 23376: 23376: clear(); 23376: _M_deallocate_node(*begin()._M_node); 23376: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 23376: this->_M_impl._M_map = nullptr; 23376: this->_M_impl._M_map_size = 0; 23376: 23376: this->_M_impl._M_swap_data(__newobj._M_impl); 23376: } 23376: 23376: 23376: void 23376: _M_move_assign2(deque&& __x, true_type) 23376: { 23376: 23376: auto __alloc = __x._M_get_Tp_allocator(); 23376: 23376: 23376: _M_replace_map(std::move(__x)); 23376: 23376: _M_get_Tp_allocator() = std::move(__alloc); 23376: } 23376: 23376: 23376: 23376: void 23376: _M_move_assign2(deque&& __x, false_type) 23376: { 23376: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 23376: { 23376: 23376: 23376: _M_replace_map(std::move(__x), __x.get_allocator()); 23376: } 23376: else 23376: { 23376: 23376: 23376: _M_assign_aux(std::__make_move_if_noexcept_iterator(__x.begin()), 23376: std::__make_move_if_noexcept_iterator(__x.end()), 23376: std::random_access_iterator_tag()); 23376: __x.clear(); 23376: } 23376: } 23376: 23376: }; 23376: # 2275 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: inline bool 23376: operator==(const deque<_Tp, _Alloc>& __x, 23376: const deque<_Tp, _Alloc>& __y) 23376: { return __x.size() == __y.size() 23376: && std::equal(__x.begin(), __x.end(), __y.begin()); } 23376: # 2293 "/usr/include/c++/8/bits/stl_deque.h" 3 23376: template 23376: inline bool 23376: operator<(const deque<_Tp, _Alloc>& __x, 23376: const deque<_Tp, _Alloc>& __y) 23376: { return std::lexicographical_compare(__x.begin(), __x.end(), 23376: __y.begin(), __y.end()); } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const deque<_Tp, _Alloc>& __x, 23376: const deque<_Tp, _Alloc>& __y) 23376: { return !(__x == __y); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>(const deque<_Tp, _Alloc>& __x, 23376: const deque<_Tp, _Alloc>& __y) 23376: { return __y < __x; } 23376: 23376: 23376: template 23376: inline bool 23376: operator<=(const deque<_Tp, _Alloc>& __x, 23376: const deque<_Tp, _Alloc>& __y) 23376: { return !(__y < __x); } 23376: 23376: 23376: template 23376: inline bool 23376: operator>=(const deque<_Tp, _Alloc>& __x, 23376: const deque<_Tp, _Alloc>& __y) 23376: { return !(__x < __y); } 23376: 23376: 23376: template 23376: inline void 23376: swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y) 23376: noexcept(noexcept(__x.swap(__y))) 23376: { __x.swap(__y); } 23376: 23376: 23376: 23376: 23376: 23376: } 23376: # 65 "/usr/include/c++/8/deque" 2 3 23376: 23376: # 1 "/usr/include/c++/8/bits/deque.tcc" 1 3 23376: # 59 "/usr/include/c++/8/bits/deque.tcc" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_default_initialize() 23376: { 23376: _Map_pointer __cur; 23376: try 23376: { 23376: for (__cur = this->_M_impl._M_start._M_node; 23376: __cur < this->_M_impl._M_finish._M_node; 23376: ++__cur) 23376: std::__uninitialized_default_a(*__cur, *__cur + _S_buffer_size(), 23376: _M_get_Tp_allocator()); 23376: std::__uninitialized_default_a(this->_M_impl._M_finish._M_first, 23376: this->_M_impl._M_finish._M_cur, 23376: _M_get_Tp_allocator()); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(this->_M_impl._M_start, iterator(*__cur, __cur), 23376: _M_get_Tp_allocator()); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: template 23376: deque<_Tp, _Alloc>& 23376: deque<_Tp, _Alloc>:: 23376: operator=(const deque& __x) 23376: { 23376: if (&__x != this) 23376: { 23376: 23376: if (_Alloc_traits::_S_propagate_on_copy_assign()) 23376: { 23376: if (!_Alloc_traits::_S_always_equal() 23376: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 23376: { 23376: 23376: 23376: _M_replace_map(__x, __x.get_allocator()); 23376: std::__alloc_on_copy(_M_get_Tp_allocator(), 23376: __x._M_get_Tp_allocator()); 23376: return *this; 23376: } 23376: std::__alloc_on_copy(_M_get_Tp_allocator(), 23376: __x._M_get_Tp_allocator()); 23376: } 23376: 23376: const size_type __len = size(); 23376: if (__len >= __x.size()) 23376: _M_erase_at_end(std::copy(__x.begin(), __x.end(), 23376: this->_M_impl._M_start)); 23376: else 23376: { 23376: const_iterator __mid = __x.begin() + difference_type(__len); 23376: std::copy(__x.begin(), __mid, this->_M_impl._M_start); 23376: _M_range_insert_aux(this->_M_impl._M_finish, __mid, __x.end(), 23376: std::random_access_iterator_tag()); 23376: } 23376: } 23376: return *this; 23376: } 23376: 23376: 23376: template 23376: template 23376: 23376: 23376: 23376: void 23376: 23376: deque<_Tp, _Alloc>:: 23376: emplace_front(_Args&&... __args) 23376: { 23376: if (this->_M_impl._M_start._M_cur != this->_M_impl._M_start._M_first) 23376: { 23376: _Alloc_traits::construct(this->_M_impl, 23376: this->_M_impl._M_start._M_cur - 1, 23376: std::forward<_Args>(__args)...); 23376: --this->_M_impl._M_start._M_cur; 23376: } 23376: else 23376: _M_push_front_aux(std::forward<_Args>(__args)...); 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: template 23376: 23376: 23376: 23376: void 23376: 23376: deque<_Tp, _Alloc>:: 23376: emplace_back(_Args&&... __args) 23376: { 23376: if (this->_M_impl._M_finish._M_cur 23376: != this->_M_impl._M_finish._M_last - 1) 23376: { 23376: _Alloc_traits::construct(this->_M_impl, 23376: this->_M_impl._M_finish._M_cur, 23376: std::forward<_Args>(__args)...); 23376: ++this->_M_impl._M_finish._M_cur; 23376: } 23376: else 23376: _M_push_back_aux(std::forward<_Args>(__args)...); 23376: 23376: 23376: 23376: } 23376: 23376: 23376: 23376: template 23376: template 23376: typename deque<_Tp, _Alloc>::iterator 23376: deque<_Tp, _Alloc>:: 23376: emplace(const_iterator __position, _Args&&... __args) 23376: { 23376: if (__position._M_cur == this->_M_impl._M_start._M_cur) 23376: { 23376: emplace_front(std::forward<_Args>(__args)...); 23376: return this->_M_impl._M_start; 23376: } 23376: else if (__position._M_cur == this->_M_impl._M_finish._M_cur) 23376: { 23376: emplace_back(std::forward<_Args>(__args)...); 23376: iterator __tmp = this->_M_impl._M_finish; 23376: --__tmp; 23376: return __tmp; 23376: } 23376: else 23376: return _M_insert_aux(__position._M_const_cast(), 23376: std::forward<_Args>(__args)...); 23376: } 23376: 23376: 23376: template 23376: typename deque<_Tp, _Alloc>::iterator 23376: deque<_Tp, _Alloc>:: 23376: 23376: insert(const_iterator __position, const value_type& __x) 23376: 23376: 23376: 23376: { 23376: if (__position._M_cur == this->_M_impl._M_start._M_cur) 23376: { 23376: push_front(__x); 23376: return this->_M_impl._M_start; 23376: } 23376: else if (__position._M_cur == this->_M_impl._M_finish._M_cur) 23376: { 23376: push_back(__x); 23376: iterator __tmp = this->_M_impl._M_finish; 23376: --__tmp; 23376: return __tmp; 23376: } 23376: else 23376: return _M_insert_aux(__position._M_const_cast(), __x); 23376: } 23376: 23376: template 23376: typename deque<_Tp, _Alloc>::iterator 23376: deque<_Tp, _Alloc>:: 23376: _M_erase(iterator __position) 23376: { 23376: iterator __next = __position; 23376: ++__next; 23376: const difference_type __index = __position - begin(); 23376: if (static_cast(__index) < (size() >> 1)) 23376: { 23376: if (__position != begin()) 23376: std::move_backward(begin(), __position, __next); 23376: pop_front(); 23376: } 23376: else 23376: { 23376: if (__next != end()) 23376: std::move(__next, end(), __position); 23376: pop_back(); 23376: } 23376: return begin() + __index; 23376: } 23376: 23376: template 23376: typename deque<_Tp, _Alloc>::iterator 23376: deque<_Tp, _Alloc>:: 23376: _M_erase(iterator __first, iterator __last) 23376: { 23376: if (__first == __last) 23376: return __first; 23376: else if (__first == begin() && __last == end()) 23376: { 23376: clear(); 23376: return end(); 23376: } 23376: else 23376: { 23376: const difference_type __n = __last - __first; 23376: const difference_type __elems_before = __first - begin(); 23376: if (static_cast(__elems_before) <= (size() - __n) / 2) 23376: { 23376: if (__first != begin()) 23376: std::move_backward(begin(), __first, __last); 23376: _M_erase_at_begin(begin() + __n); 23376: } 23376: else 23376: { 23376: if (__last != end()) 23376: std::move(__last, end(), __first); 23376: _M_erase_at_end(end() - __n); 23376: } 23376: return begin() + __elems_before; 23376: } 23376: } 23376: 23376: template 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_assign_aux(_InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag) 23376: { 23376: iterator __cur = begin(); 23376: for (; __first != __last && __cur != end(); ++__cur, ++__first) 23376: *__cur = *__first; 23376: if (__first == __last) 23376: _M_erase_at_end(__cur); 23376: else 23376: _M_range_insert_aux(end(), __first, __last, 23376: std::__iterator_category(__first)); 23376: } 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x) 23376: { 23376: if (__pos._M_cur == this->_M_impl._M_start._M_cur) 23376: { 23376: iterator __new_start = _M_reserve_elements_at_front(__n); 23376: try 23376: { 23376: std::__uninitialized_fill_a(__new_start, this->_M_impl._M_start, 23376: __x, _M_get_Tp_allocator()); 23376: this->_M_impl._M_start = __new_start; 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(__new_start._M_node, 23376: this->_M_impl._M_start._M_node); 23376: throw; 23376: } 23376: } 23376: else if (__pos._M_cur == this->_M_impl._M_finish._M_cur) 23376: { 23376: iterator __new_finish = _M_reserve_elements_at_back(__n); 23376: try 23376: { 23376: std::__uninitialized_fill_a(this->_M_impl._M_finish, 23376: __new_finish, __x, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish = __new_finish; 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 23376: __new_finish._M_node + 1); 23376: throw; 23376: } 23376: } 23376: else 23376: _M_insert_aux(__pos, __n, __x); 23376: } 23376: 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_default_append(size_type __n) 23376: { 23376: if (__n) 23376: { 23376: iterator __new_finish = _M_reserve_elements_at_back(__n); 23376: try 23376: { 23376: std::__uninitialized_default_a(this->_M_impl._M_finish, 23376: __new_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish = __new_finish; 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 23376: __new_finish._M_node + 1); 23376: throw; 23376: } 23376: } 23376: } 23376: 23376: template 23376: bool 23376: deque<_Tp, _Alloc>:: 23376: _M_shrink_to_fit() 23376: { 23376: const difference_type __front_capacity 23376: = (this->_M_impl._M_start._M_cur - this->_M_impl._M_start._M_first); 23376: if (__front_capacity == 0) 23376: return false; 23376: 23376: const difference_type __back_capacity 23376: = (this->_M_impl._M_finish._M_last - this->_M_impl._M_finish._M_cur); 23376: if (__front_capacity + __back_capacity < _S_buffer_size()) 23376: return false; 23376: 23376: return std::__shrink_to_fit_aux::_S_do_it(*this); 23376: } 23376: 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_fill_initialize(const value_type& __value) 23376: { 23376: _Map_pointer __cur; 23376: try 23376: { 23376: for (__cur = this->_M_impl._M_start._M_node; 23376: __cur < this->_M_impl._M_finish._M_node; 23376: ++__cur) 23376: std::__uninitialized_fill_a(*__cur, *__cur + _S_buffer_size(), 23376: __value, _M_get_Tp_allocator()); 23376: std::__uninitialized_fill_a(this->_M_impl._M_finish._M_first, 23376: this->_M_impl._M_finish._M_cur, 23376: __value, _M_get_Tp_allocator()); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(this->_M_impl._M_start, iterator(*__cur, __cur), 23376: _M_get_Tp_allocator()); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_range_initialize(_InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag) 23376: { 23376: this->_M_initialize_map(0); 23376: try 23376: { 23376: for (; __first != __last; ++__first) 23376: 23376: emplace_back(*__first); 23376: 23376: 23376: 23376: } 23376: catch(...) 23376: { 23376: clear(); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 23376: std::forward_iterator_tag) 23376: { 23376: const size_type __n = std::distance(__first, __last); 23376: this->_M_initialize_map(__n); 23376: 23376: _Map_pointer __cur_node; 23376: try 23376: { 23376: for (__cur_node = this->_M_impl._M_start._M_node; 23376: __cur_node < this->_M_impl._M_finish._M_node; 23376: ++__cur_node) 23376: { 23376: _ForwardIterator __mid = __first; 23376: std::advance(__mid, _S_buffer_size()); 23376: std::__uninitialized_copy_a(__first, __mid, *__cur_node, 23376: _M_get_Tp_allocator()); 23376: __first = __mid; 23376: } 23376: std::__uninitialized_copy_a(__first, __last, 23376: this->_M_impl._M_finish._M_first, 23376: _M_get_Tp_allocator()); 23376: } 23376: catch(...) 23376: { 23376: std::_Destroy(this->_M_impl._M_start, 23376: iterator(*__cur_node, __cur_node), 23376: _M_get_Tp_allocator()); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: template 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_push_back_aux(_Args&&... __args) 23376: 23376: 23376: 23376: 23376: 23376: { 23376: _M_reserve_map_at_back(); 23376: *(this->_M_impl._M_finish._M_node + 1) = this->_M_allocate_node(); 23376: try 23376: { 23376: 23376: _Alloc_traits::construct(this->_M_impl, 23376: this->_M_impl._M_finish._M_cur, 23376: std::forward<_Args>(__args)...); 23376: 23376: 23376: 23376: this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node 23376: + 1); 23376: this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_first; 23376: } 23376: catch(...) 23376: { 23376: _M_deallocate_node(*(this->_M_impl._M_finish._M_node + 1)); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: template 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_push_front_aux(_Args&&... __args) 23376: 23376: 23376: 23376: 23376: 23376: { 23376: _M_reserve_map_at_front(); 23376: *(this->_M_impl._M_start._M_node - 1) = this->_M_allocate_node(); 23376: try 23376: { 23376: this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node 23376: - 1); 23376: this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_last - 1; 23376: 23376: _Alloc_traits::construct(this->_M_impl, 23376: this->_M_impl._M_start._M_cur, 23376: std::forward<_Args>(__args)...); 23376: 23376: 23376: 23376: } 23376: catch(...) 23376: { 23376: ++this->_M_impl._M_start; 23376: _M_deallocate_node(*(this->_M_impl._M_start._M_node - 1)); 23376: throw; 23376: } 23376: } 23376: 23376: 23376: template 23376: void deque<_Tp, _Alloc>:: 23376: _M_pop_back_aux() 23376: { 23376: _M_deallocate_node(this->_M_impl._M_finish._M_first); 23376: this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node - 1); 23376: this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_last - 1; 23376: _Alloc_traits::destroy(_M_get_Tp_allocator(), 23376: this->_M_impl._M_finish._M_cur); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void deque<_Tp, _Alloc>:: 23376: _M_pop_front_aux() 23376: { 23376: _Alloc_traits::destroy(_M_get_Tp_allocator(), 23376: this->_M_impl._M_start._M_cur); 23376: _M_deallocate_node(this->_M_impl._M_start._M_first); 23376: this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node + 1); 23376: this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_first; 23376: } 23376: 23376: template 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_range_insert_aux(iterator __pos, 23376: _InputIterator __first, _InputIterator __last, 23376: std::input_iterator_tag) 23376: { std::copy(__first, __last, std::inserter(*this, __pos)); } 23376: 23376: template 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_range_insert_aux(iterator __pos, 23376: _ForwardIterator __first, _ForwardIterator __last, 23376: std::forward_iterator_tag) 23376: { 23376: const size_type __n = std::distance(__first, __last); 23376: if (__pos._M_cur == this->_M_impl._M_start._M_cur) 23376: { 23376: iterator __new_start = _M_reserve_elements_at_front(__n); 23376: try 23376: { 23376: std::__uninitialized_copy_a(__first, __last, __new_start, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_start = __new_start; 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(__new_start._M_node, 23376: this->_M_impl._M_start._M_node); 23376: throw; 23376: } 23376: } 23376: else if (__pos._M_cur == this->_M_impl._M_finish._M_cur) 23376: { 23376: iterator __new_finish = _M_reserve_elements_at_back(__n); 23376: try 23376: { 23376: std::__uninitialized_copy_a(__first, __last, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish = __new_finish; 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 23376: __new_finish._M_node + 1); 23376: throw; 23376: } 23376: } 23376: else 23376: _M_insert_aux(__pos, __first, __last, __n); 23376: } 23376: 23376: template 23376: 23376: template 23376: typename deque<_Tp, _Alloc>::iterator 23376: deque<_Tp, _Alloc>:: 23376: _M_insert_aux(iterator __pos, _Args&&... __args) 23376: { 23376: value_type __x_copy(std::forward<_Args>(__args)...); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: difference_type __index = __pos - this->_M_impl._M_start; 23376: if (static_cast(__index) < size() / 2) 23376: { 23376: push_front(std::move(front())); 23376: iterator __front1 = this->_M_impl._M_start; 23376: ++__front1; 23376: iterator __front2 = __front1; 23376: ++__front2; 23376: __pos = this->_M_impl._M_start + __index; 23376: iterator __pos1 = __pos; 23376: ++__pos1; 23376: std::move(__front2, __pos1, __front1); 23376: } 23376: else 23376: { 23376: push_back(std::move(back())); 23376: iterator __back1 = this->_M_impl._M_finish; 23376: --__back1; 23376: iterator __back2 = __back1; 23376: --__back2; 23376: __pos = this->_M_impl._M_start + __index; 23376: std::move_backward(__pos, __back2, __back1); 23376: } 23376: *__pos = std::move(__x_copy); 23376: return __pos; 23376: } 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_insert_aux(iterator __pos, size_type __n, const value_type& __x) 23376: { 23376: const difference_type __elems_before = __pos - this->_M_impl._M_start; 23376: const size_type __length = this->size(); 23376: value_type __x_copy = __x; 23376: if (__elems_before < difference_type(__length / 2)) 23376: { 23376: iterator __new_start = _M_reserve_elements_at_front(__n); 23376: iterator __old_start = this->_M_impl._M_start; 23376: __pos = this->_M_impl._M_start + __elems_before; 23376: try 23376: { 23376: if (__elems_before >= difference_type(__n)) 23376: { 23376: iterator __start_n = (this->_M_impl._M_start 23376: + difference_type(__n)); 23376: std::__uninitialized_move_a(this->_M_impl._M_start, 23376: __start_n, __new_start, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_start = __new_start; 23376: std::move(__start_n, __pos, __old_start); 23376: std::fill(__pos - difference_type(__n), __pos, __x_copy); 23376: } 23376: else 23376: { 23376: std::__uninitialized_move_fill(this->_M_impl._M_start, 23376: __pos, __new_start, 23376: this->_M_impl._M_start, 23376: __x_copy, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_start = __new_start; 23376: std::fill(__old_start, __pos, __x_copy); 23376: } 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(__new_start._M_node, 23376: this->_M_impl._M_start._M_node); 23376: throw; 23376: } 23376: } 23376: else 23376: { 23376: iterator __new_finish = _M_reserve_elements_at_back(__n); 23376: iterator __old_finish = this->_M_impl._M_finish; 23376: const difference_type __elems_after = 23376: difference_type(__length) - __elems_before; 23376: __pos = this->_M_impl._M_finish - __elems_after; 23376: try 23376: { 23376: if (__elems_after > difference_type(__n)) 23376: { 23376: iterator __finish_n = (this->_M_impl._M_finish 23376: - difference_type(__n)); 23376: std::__uninitialized_move_a(__finish_n, 23376: this->_M_impl._M_finish, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish = __new_finish; 23376: std::move_backward(__pos, __finish_n, __old_finish); 23376: std::fill(__pos, __pos + difference_type(__n), __x_copy); 23376: } 23376: else 23376: { 23376: std::__uninitialized_fill_move(this->_M_impl._M_finish, 23376: __pos + difference_type(__n), 23376: __x_copy, __pos, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish = __new_finish; 23376: std::fill(__pos, __old_finish, __x_copy); 23376: } 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 23376: __new_finish._M_node + 1); 23376: throw; 23376: } 23376: } 23376: } 23376: 23376: template 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_insert_aux(iterator __pos, 23376: _ForwardIterator __first, _ForwardIterator __last, 23376: size_type __n) 23376: { 23376: const difference_type __elemsbefore = __pos - this->_M_impl._M_start; 23376: const size_type __length = size(); 23376: if (static_cast(__elemsbefore) < __length / 2) 23376: { 23376: iterator __new_start = _M_reserve_elements_at_front(__n); 23376: iterator __old_start = this->_M_impl._M_start; 23376: __pos = this->_M_impl._M_start + __elemsbefore; 23376: try 23376: { 23376: if (__elemsbefore >= difference_type(__n)) 23376: { 23376: iterator __start_n = (this->_M_impl._M_start 23376: + difference_type(__n)); 23376: std::__uninitialized_move_a(this->_M_impl._M_start, 23376: __start_n, __new_start, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_start = __new_start; 23376: std::move(__start_n, __pos, __old_start); 23376: std::copy(__first, __last, __pos - difference_type(__n)); 23376: } 23376: else 23376: { 23376: _ForwardIterator __mid = __first; 23376: std::advance(__mid, difference_type(__n) - __elemsbefore); 23376: std::__uninitialized_move_copy(this->_M_impl._M_start, 23376: __pos, __first, __mid, 23376: __new_start, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_start = __new_start; 23376: std::copy(__mid, __last, __old_start); 23376: } 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(__new_start._M_node, 23376: this->_M_impl._M_start._M_node); 23376: throw; 23376: } 23376: } 23376: else 23376: { 23376: iterator __new_finish = _M_reserve_elements_at_back(__n); 23376: iterator __old_finish = this->_M_impl._M_finish; 23376: const difference_type __elemsafter = 23376: difference_type(__length) - __elemsbefore; 23376: __pos = this->_M_impl._M_finish - __elemsafter; 23376: try 23376: { 23376: if (__elemsafter > difference_type(__n)) 23376: { 23376: iterator __finish_n = (this->_M_impl._M_finish 23376: - difference_type(__n)); 23376: std::__uninitialized_move_a(__finish_n, 23376: this->_M_impl._M_finish, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish = __new_finish; 23376: std::move_backward(__pos, __finish_n, __old_finish); 23376: std::copy(__first, __last, __pos); 23376: } 23376: else 23376: { 23376: _ForwardIterator __mid = __first; 23376: std::advance(__mid, __elemsafter); 23376: std::__uninitialized_copy_move(__mid, __last, __pos, 23376: this->_M_impl._M_finish, 23376: this->_M_impl._M_finish, 23376: _M_get_Tp_allocator()); 23376: this->_M_impl._M_finish = __new_finish; 23376: std::copy(__first, __mid, __pos); 23376: } 23376: } 23376: catch(...) 23376: { 23376: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 23376: __new_finish._M_node + 1); 23376: throw; 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_destroy_data_aux(iterator __first, iterator __last) 23376: { 23376: for (_Map_pointer __node = __first._M_node + 1; 23376: __node < __last._M_node; ++__node) 23376: std::_Destroy(*__node, *__node + _S_buffer_size(), 23376: _M_get_Tp_allocator()); 23376: 23376: if (__first._M_node != __last._M_node) 23376: { 23376: std::_Destroy(__first._M_cur, __first._M_last, 23376: _M_get_Tp_allocator()); 23376: std::_Destroy(__last._M_first, __last._M_cur, 23376: _M_get_Tp_allocator()); 23376: } 23376: else 23376: std::_Destroy(__first._M_cur, __last._M_cur, 23376: _M_get_Tp_allocator()); 23376: } 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_new_elements_at_front(size_type __new_elems) 23376: { 23376: if (this->max_size() - this->size() < __new_elems) 23376: __throw_length_error(("deque::_M_new_elements_at_front")); 23376: 23376: const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1) 23376: / _S_buffer_size()); 23376: _M_reserve_map_at_front(__new_nodes); 23376: size_type __i; 23376: try 23376: { 23376: for (__i = 1; __i <= __new_nodes; ++__i) 23376: *(this->_M_impl._M_start._M_node - __i) = this->_M_allocate_node(); 23376: } 23376: catch(...) 23376: { 23376: for (size_type __j = 1; __j < __i; ++__j) 23376: _M_deallocate_node(*(this->_M_impl._M_start._M_node - __j)); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_new_elements_at_back(size_type __new_elems) 23376: { 23376: if (this->max_size() - this->size() < __new_elems) 23376: __throw_length_error(("deque::_M_new_elements_at_back")); 23376: 23376: const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1) 23376: / _S_buffer_size()); 23376: _M_reserve_map_at_back(__new_nodes); 23376: size_type __i; 23376: try 23376: { 23376: for (__i = 1; __i <= __new_nodes; ++__i) 23376: *(this->_M_impl._M_finish._M_node + __i) = this->_M_allocate_node(); 23376: } 23376: catch(...) 23376: { 23376: for (size_type __j = 1; __j < __i; ++__j) 23376: _M_deallocate_node(*(this->_M_impl._M_finish._M_node + __j)); 23376: throw; 23376: } 23376: } 23376: 23376: template 23376: void 23376: deque<_Tp, _Alloc>:: 23376: _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front) 23376: { 23376: const size_type __old_num_nodes 23376: = this->_M_impl._M_finish._M_node - this->_M_impl._M_start._M_node + 1; 23376: const size_type __new_num_nodes = __old_num_nodes + __nodes_to_add; 23376: 23376: _Map_pointer __new_nstart; 23376: if (this->_M_impl._M_map_size > 2 * __new_num_nodes) 23376: { 23376: __new_nstart = this->_M_impl._M_map + (this->_M_impl._M_map_size 23376: - __new_num_nodes) / 2 23376: + (__add_at_front ? __nodes_to_add : 0); 23376: if (__new_nstart < this->_M_impl._M_start._M_node) 23376: std::copy(this->_M_impl._M_start._M_node, 23376: this->_M_impl._M_finish._M_node + 1, 23376: __new_nstart); 23376: else 23376: std::copy_backward(this->_M_impl._M_start._M_node, 23376: this->_M_impl._M_finish._M_node + 1, 23376: __new_nstart + __old_num_nodes); 23376: } 23376: else 23376: { 23376: size_type __new_map_size = this->_M_impl._M_map_size 23376: + std::max(this->_M_impl._M_map_size, 23376: __nodes_to_add) + 2; 23376: 23376: _Map_pointer __new_map = this->_M_allocate_map(__new_map_size); 23376: __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2 23376: + (__add_at_front ? __nodes_to_add : 0); 23376: std::copy(this->_M_impl._M_start._M_node, 23376: this->_M_impl._M_finish._M_node + 1, 23376: __new_nstart); 23376: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 23376: 23376: this->_M_impl._M_map = __new_map; 23376: this->_M_impl._M_map_size = __new_map_size; 23376: } 23376: 23376: this->_M_impl._M_start._M_set_node(__new_nstart); 23376: this->_M_impl._M_finish._M_set_node(__new_nstart + __old_num_nodes - 1); 23376: } 23376: 23376: 23376: 23376: template 23376: void 23376: fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>& __first, 23376: const _Deque_iterator<_Tp, _Tp&, _Tp*>& __last, const _Tp& __value) 23376: { 23376: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 23376: 23376: for (typename _Self::_Map_pointer __node = __first._M_node + 1; 23376: __node < __last._M_node; ++__node) 23376: std::fill(*__node, *__node + _Self::_S_buffer_size(), __value); 23376: 23376: if (__first._M_node != __last._M_node) 23376: { 23376: std::fill(__first._M_cur, __first._M_last, __value); 23376: std::fill(__last._M_first, __last._M_cur, __value); 23376: } 23376: else 23376: std::fill(__first._M_cur, __last._M_cur, __value); 23376: } 23376: 23376: template 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: copy(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 23376: { 23376: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 23376: typedef typename _Self::difference_type difference_type; 23376: 23376: difference_type __len = __last - __first; 23376: while (__len > 0) 23376: { 23376: const difference_type __clen 23376: = std::min(__len, std::min(__first._M_last - __first._M_cur, 23376: __result._M_last - __result._M_cur)); 23376: std::copy(__first._M_cur, __first._M_cur + __clen, __result._M_cur); 23376: __first += __clen; 23376: __result += __clen; 23376: __len -= __clen; 23376: } 23376: return __result; 23376: } 23376: 23376: template 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: copy_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 23376: { 23376: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 23376: typedef typename _Self::difference_type difference_type; 23376: 23376: difference_type __len = __last - __first; 23376: while (__len > 0) 23376: { 23376: difference_type __llen = __last._M_cur - __last._M_first; 23376: _Tp* __lend = __last._M_cur; 23376: 23376: difference_type __rlen = __result._M_cur - __result._M_first; 23376: _Tp* __rend = __result._M_cur; 23376: 23376: if (!__llen) 23376: { 23376: __llen = _Self::_S_buffer_size(); 23376: __lend = *(__last._M_node - 1) + __llen; 23376: } 23376: if (!__rlen) 23376: { 23376: __rlen = _Self::_S_buffer_size(); 23376: __rend = *(__result._M_node - 1) + __rlen; 23376: } 23376: 23376: const difference_type __clen = std::min(__len, 23376: std::min(__llen, __rlen)); 23376: std::copy_backward(__lend - __clen, __lend, __rend); 23376: __last -= __clen; 23376: __result -= __clen; 23376: __len -= __clen; 23376: } 23376: return __result; 23376: } 23376: 23376: 23376: template 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: move(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 23376: { 23376: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 23376: typedef typename _Self::difference_type difference_type; 23376: 23376: difference_type __len = __last - __first; 23376: while (__len > 0) 23376: { 23376: const difference_type __clen 23376: = std::min(__len, std::min(__first._M_last - __first._M_cur, 23376: __result._M_last - __result._M_cur)); 23376: std::move(__first._M_cur, __first._M_cur + __clen, __result._M_cur); 23376: __first += __clen; 23376: __result += __clen; 23376: __len -= __clen; 23376: } 23376: return __result; 23376: } 23376: 23376: template 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> 23376: move_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 23376: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 23376: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 23376: { 23376: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 23376: typedef typename _Self::difference_type difference_type; 23376: 23376: difference_type __len = __last - __first; 23376: while (__len > 0) 23376: { 23376: difference_type __llen = __last._M_cur - __last._M_first; 23376: _Tp* __lend = __last._M_cur; 23376: 23376: difference_type __rlen = __result._M_cur - __result._M_first; 23376: _Tp* __rend = __result._M_cur; 23376: 23376: if (!__llen) 23376: { 23376: __llen = _Self::_S_buffer_size(); 23376: __lend = *(__last._M_node - 1) + __llen; 23376: } 23376: if (!__rlen) 23376: { 23376: __rlen = _Self::_S_buffer_size(); 23376: __rend = *(__result._M_node - 1) + __rlen; 23376: } 23376: 23376: const difference_type __clen = std::min(__len, 23376: std::min(__llen, __rlen)); 23376: std::move_backward(__lend - __clen, __lend, __rend); 23376: __last -= __clen; 23376: __result -= __clen; 23376: __len -= __clen; 23376: } 23376: return __result; 23376: } 23376: 23376: 23376: 23376: 23376: } 23376: # 67 "/usr/include/c++/8/deque" 2 3 23376: # 36 "../../src/Linear_System_templates.hh" 2 23376: 23376: 23376: # 37 "../../src/Linear_System_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: dimension_type 23376: Linear_System::num_lines_or_equalities() const { 23376: ((void) 0); 23376: const Linear_System& x = *this; 23376: dimension_type n = 0; 23376: for (dimension_type i = num_rows(); i-- > 0; ) { 23376: if (x[i].is_line_or_equality()) { 23376: ++n; 23376: } 23376: } 23376: return n; 23376: } 23376: 23376: template 23376: void 23376: Linear_System::merge_rows_assign(const Linear_System& y) { 23376: ((void) 0); 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: Linear_System& x = *this; 23376: 23376: 23376: Swapping_Vector tmp; 23376: 23376: tmp.reserve(compute_capacity(x.rows.size() + y.rows.size(), 23376: tmp.max_num_rows())); 23376: 23376: dimension_type xi = 0; 23376: const dimension_type x_num_rows = x.num_rows(); 23376: dimension_type yi = 0; 23376: const dimension_type y_num_rows = y.num_rows(); 23376: 23376: while (xi < x_num_rows && yi < y_num_rows) { 23376: const int comp = compare(x[xi], y[yi]); 23376: if (comp <= 0) { 23376: 23376: tmp.resize(tmp.size() + 1); 23376: swap(tmp.back(), x.rows[xi++]); 23376: tmp.back().set_representation(representation()); 23376: if (comp == 0) { 23376: 23376: ++yi; 23376: } 23376: } 23376: else { 23376: 23376: tmp.resize(tmp.size() + 1); 23376: Row copy(y[yi++], space_dimension(), representation()); 23376: swap(tmp.back(), copy); 23376: } 23376: } 23376: 23376: if (xi < x_num_rows) { 23376: while (xi < x_num_rows) { 23376: tmp.resize(tmp.size() + 1); 23376: swap(tmp.back(), x.rows[xi++]); 23376: tmp.back().set_representation(representation()); 23376: } 23376: } 23376: else { 23376: while (yi < y_num_rows) { 23376: tmp.resize(tmp.size() + 1); 23376: Row copy(y[yi++], space_dimension(), representation()); 23376: swap(tmp.back(), copy); 23376: } 23376: } 23376: 23376: 23376: swap(tmp, rows); 23376: 23376: unset_pending_rows(); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::ascii_dump(std::ostream& s) const { 23376: 23376: 23376: 23376: 23376: s << "topology " << (is_necessarily_closed() 23376: ? "NECESSARILY_CLOSED" 23376: : "NOT_NECESSARILY_CLOSED") 23376: << "\n" 23376: << num_rows() << " x " << space_dimension() << " "; 23376: Parma_Polyhedra_Library::ascii_dump(s, representation()); 23376: s << " " << (sorted ? "(sorted)" : "(not_sorted)") 23376: << "\n" 23376: << "index_first_pending " << first_pending_row() 23376: << "\n"; 23376: for (dimension_type i = 0; i < rows.size(); ++i) { 23376: rows[i].ascii_dump(s); 23376: } 23376: } 23376: 23376: template void Linear_System::ascii_dump() const { ascii_dump(std::cerr); } template void Linear_System::print() const { std::cerr << "No user level output operator defined " << "for " "Linear_System" << "." << std::endl; } 23376: 23376: template 23376: bool 23376: Linear_System::ascii_load(std::istream& s) { 23376: std::string str; 23376: if (!(s >> str) || str != "topology") { 23376: return false; 23376: } 23376: if (!(s >> str)) { 23376: return false; 23376: } 23376: 23376: clear(); 23376: 23376: Topology t; 23376: if (str == "NECESSARILY_CLOSED") { 23376: t = NECESSARILY_CLOSED; 23376: } 23376: else { 23376: if (str != "NOT_NECESSARILY_CLOSED") { 23376: return false; 23376: } 23376: t = NOT_NECESSARILY_CLOSED; 23376: } 23376: 23376: set_topology(t); 23376: 23376: dimension_type nrows; 23376: dimension_type space_dims; 23376: if (!(s >> nrows)) { 23376: return false; 23376: } 23376: if (!(s >> str) || str != "x") { 23376: return false; 23376: } 23376: if (!(s >> space_dims)) { 23376: return false; 23376: } 23376: 23376: space_dimension_ = space_dims; 23376: 23376: if (!Parma_Polyhedra_Library::ascii_load(s, representation_)) { 23376: return false; 23376: } 23376: 23376: if (!(s >> str) || (str != "(sorted)" && str != "(not_sorted)")) { 23376: return false; 23376: } 23376: const bool sortedness = (str == "(sorted)"); 23376: dimension_type index; 23376: if (!(s >> str) || str != "index_first_pending") { 23376: return false; 23376: } 23376: if (!(s >> index)) { 23376: return false; 23376: } 23376: 23376: Row row; 23376: for (dimension_type i = 0; i < nrows; ++i) { 23376: if (!row.ascii_load(s)) { 23376: return false; 23376: } 23376: insert(row, Recycle_Input()); 23376: } 23376: index_first_pending = index; 23376: sorted = sortedness; 23376: 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert(const Row& r) { 23376: Row tmp(r, representation()); 23376: insert(tmp, Recycle_Input()); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert(Row& r, Recycle_Input) { 23376: insert_no_ok(r, Recycle_Input()); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert_no_ok(Row& r, Recycle_Input) { 23376: ((void) 0); 23376: 23376: ((void) 0); 23376: 23376: const bool was_sorted = is_sorted(); 23376: 23376: insert_pending_no_ok(r, Recycle_Input()); 23376: 23376: if (was_sorted) { 23376: const dimension_type nrows = num_rows(); 23376: 23376: if (nrows > 1) { 23376: 23376: 23376: 23376: sorted = (compare(rows[nrows-2], rows[nrows-1]) <= 0); 23376: } 23376: else { 23376: 23376: sorted = true; 23376: } 23376: } 23376: 23376: unset_pending_rows(); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert_pending_no_ok(Row& r, Recycle_Input) { 23376: # 267 "../../src/Linear_System_templates.hh" 23376: ((void) 0); 23376: 23376: r.set_representation(representation()); 23376: 23376: if (space_dimension() < r.space_dimension()) { 23376: set_space_dimension_no_ok(r.space_dimension()); 23376: } 23376: else { 23376: r.set_space_dimension_no_ok(space_dimension()); 23376: } 23376: 23376: rows.resize(rows.size() + 1); 23376: swap(rows.back(), r); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert_pending(const Row& r) { 23376: Row tmp(r, representation()); 23376: insert_pending(tmp, Recycle_Input()); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert_pending(Row& r, Recycle_Input) { 23376: insert_pending_no_ok(r, Recycle_Input()); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert_pending(const Linear_System& y) { 23376: Linear_System tmp(y, representation(), With_Pending()); 23376: insert_pending(tmp, Recycle_Input()); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert_pending(Linear_System& y, Recycle_Input) { 23376: Linear_System& x = *this; 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: for (dimension_type i = 0; i < y.num_rows(); ++i) { 23376: x.insert_pending(y.rows[i], Recycle_Input()); 23376: } 23376: 23376: y.clear(); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert(const Linear_System& y) { 23376: Linear_System tmp(y, representation(), With_Pending()); 23376: insert(tmp, Recycle_Input()); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::insert(Linear_System& y, Recycle_Input) { 23376: ((void) 0); 23376: 23376: 23376: if (y.has_no_rows()) { 23376: return; 23376: } 23376: 23376: 23376: if (is_sorted()) { 23376: if (!y.is_sorted() || y.num_pending_rows() > 0) { 23376: sorted = false; 23376: } 23376: else { 23376: 23376: const dimension_type n_rows = num_rows(); 23376: if (n_rows > 0) { 23376: sorted = (compare(rows[n_rows-1], y[0]) <= 0); 23376: } 23376: } 23376: } 23376: 23376: 23376: insert_pending(y, Recycle_Input()); 23376: 23376: 23376: 23376: 23376: unset_pending_rows(); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::remove_space_dimensions(const Variables_Set& vars) { 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: if (vars.empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: for (dimension_type i = 0; i < num_rows(); ) { 23376: const bool valid = rows[i].remove_space_dimensions(vars); 23376: if (!valid) { 23376: 23376: 23376: 23376: 23376: remove_row_no_ok(i, false); 23376: } 23376: else { 23376: ++i; 23376: } 23376: } 23376: 23376: space_dimension_ -= vars.size(); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::shift_space_dimensions(Variable v, dimension_type n) { 23376: 23376: 23376: ((void) 0); 23376: for (dimension_type i = rows.size(); i-- > 0; ) { 23376: rows[i].shift_space_dimensions(v, n); 23376: } 23376: space_dimension_ += n; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::sort_rows() { 23376: 23376: sort_rows(0, first_pending_row()); 23376: sorted = true; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::sort_rows(const dimension_type first_row, 23376: const dimension_type last_row) { 23376: ((void) 0); 23376: 23376: ((void) 0) 23376: ; 23376: 23376: const bool sorting_pending = (first_row >= first_pending_row()); 23376: const dimension_type old_num_pending = num_pending_rows(); 23376: 23376: const dimension_type num_elems = last_row - first_row; 23376: if (num_elems < 2) { 23376: return; 23376: } 23376: 23376: 23376: 23376: using namespace Implementation; 23376: typedef Swapping_Vector Cont; 23376: typedef Indirect_Sort_Compare Sort_Compare; 23376: typedef Indirect_Swapper Swapper; 23376: const dimension_type num_duplicates 23376: = indirect_sort_and_unique(num_elems, 23376: Sort_Compare(rows, first_row), 23376: Unique_Compare(rows, first_row), 23376: Swapper(rows, first_row)); 23376: 23376: if (num_duplicates > 0) { 23376: typedef typename Cont::iterator Iter; 23376: typedef typename std::iterator_traits::difference_type diff_t; 23376: Iter last = rows.begin() + static_cast(last_row); 23376: Iter first = last - + static_cast(num_duplicates); 23376: rows.erase(first, last); 23376: } 23376: 23376: if (sorting_pending) { 23376: ((void) 0); 23376: index_first_pending = num_rows() - (old_num_pending - num_duplicates); 23376: } 23376: else { 23376: index_first_pending = num_rows() - old_num_pending; 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::strong_normalize() { 23376: const dimension_type nrows = rows.size(); 23376: 23376: for (dimension_type i = nrows; i-- > 0; ) { 23376: rows[i].strong_normalize(); 23376: } 23376: sorted = (nrows <= 1); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::sign_normalize() { 23376: const dimension_type nrows = rows.size(); 23376: 23376: for (dimension_type i = nrows; i-- > 0; ) { 23376: rows[i].sign_normalize(); 23376: } 23376: sorted = (nrows <= 1); 23376: ((void) 0); 23376: } 23376: 23376: 23376: template 23376: bool 23376: operator==(const Linear_System& x, const Linear_System& y) { 23376: if (x.space_dimension() != y.space_dimension()) { 23376: return false; 23376: } 23376: const dimension_type x_num_rows = x.num_rows(); 23376: const dimension_type y_num_rows = y.num_rows(); 23376: if (x_num_rows != y_num_rows) { 23376: return false; 23376: } 23376: if (x.first_pending_row() != y.first_pending_row()) { 23376: return false; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: for (dimension_type i = x_num_rows; i-- > 0; ) { 23376: if (x[i] != y[i]) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: Linear_System::sort_and_remove_with_sat(Bit_Matrix& sat) { 23376: 23376: ((void) 0); 23376: if (first_pending_row() <= 1) { 23376: set_sorted(true); 23376: return; 23376: } 23376: 23376: const dimension_type num_elems = sat.num_rows(); 23376: 23376: 23376: typedef Swapping_Vector Cont; 23376: const Implementation::Indirect_Sort_Compare 23376: sort_cmp(rows); 23376: const Unique_Compare unique_cmp(rows); 23376: const Implementation::Indirect_Swapper2 swapper(rows, sat); 23376: 23376: const dimension_type num_duplicates 23376: = Implementation::indirect_sort_and_unique(num_elems, sort_cmp, 23376: unique_cmp, swapper); 23376: 23376: const dimension_type new_first_pending_row 23376: = first_pending_row() - num_duplicates; 23376: 23376: if (num_pending_rows() > 0) { 23376: 23376: const dimension_type n_rows = num_rows() - 1; 23376: for (dimension_type i = 0; i < num_duplicates; ++i) { 23376: swap(rows[new_first_pending_row + i], rows[n_rows - i]); 23376: } 23376: } 23376: 23376: 23376: rows.resize(rows.size() - num_duplicates); 23376: index_first_pending = new_first_pending_row; 23376: 23376: sat.remove_trailing_rows(num_duplicates); 23376: 23376: 23376: sorted = true; 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: dimension_type 23376: Linear_System::gauss(const dimension_type n_lines_or_equalities) { 23376: 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type rank = 0; 23376: 23376: bool changed = false; 23376: 23376: const dimension_type num_cols 23376: = is_necessarily_closed() ? space_dimension() + 1 : space_dimension() + 2; 23376: 23376: 23376: 23376: for (dimension_type j = num_cols; j-- > 0; ) { 23376: for (dimension_type i = rank; i < n_lines_or_equalities; ++i) { 23376: 23376: 23376: if ((*this)[i].expr.get(j) == 0) { 23376: continue; 23376: } 23376: 23376: 23376: if (i > rank) { 23376: swap(rows[i], rows[rank]); 23376: 23376: changed = true; 23376: } 23376: 23376: 23376: 23376: for (dimension_type k = i + 1; k < n_lines_or_equalities; ++k) { 23376: if (rows[k].expr.get(Variable(j - 1)) != 0) { 23376: rows[k].linear_combine(rows[rank], j); 23376: changed = true; 23376: } 23376: } 23376: 23376: ++rank; 23376: 23376: break; 23376: } 23376: } 23376: if (changed) { 23376: sorted = false; 23376: } 23376: 23376: ((void) 0); 23376: return rank; 23376: } 23376: 23376: template 23376: void 23376: Linear_System 23376: ::back_substitute(const dimension_type n_lines_or_equalities) { 23376: 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: 23376: 23376: const dimension_type nrows = num_rows(); 23376: 23376: bool still_sorted = is_sorted(); 23376: 23376: 23376: std::deque check_for_sortedness; 23376: if (still_sorted) { 23376: check_for_sortedness.insert(check_for_sortedness.end(), nrows, false); 23376: } 23376: 23376: for (dimension_type k = n_lines_or_equalities; k-- > 0; ) { 23376: 23376: 23376: 23376: Row& row_k = rows[k]; 23376: const dimension_type j = row_k.expr.last_nonzero(); 23376: 23376: ((void) 0); 23376: 23376: 23376: for (dimension_type i = k; i-- > 0; ) { 23376: Row& row_i = rows[i]; 23376: if (row_i.expr.get(Variable(j - 1)) != 0) { 23376: 23376: 23376: row_i.linear_combine(row_k, j); 23376: if (still_sorted) { 23376: 23376: 23376: if (i > 0) { 23376: check_for_sortedness[i-1] = true; 23376: } 23376: check_for_sortedness[i] = true; 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: const bool have_to_negate = (row_k.expr.get(Variable(j - 1)) < 0); 23376: if (have_to_negate) { 23376: neg_assign(row_k.expr); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: for (dimension_type i = n_lines_or_equalities; i < nrows; ++i) { 23376: Row& row_i = rows[i]; 23376: if (row_i.expr.get(Variable(j - 1)) != 0) { 23376: 23376: 23376: row_i.linear_combine(row_k, j); 23376: if (still_sorted) { 23376: 23376: 23376: if (i > n_lines_or_equalities) { 23376: check_for_sortedness[i-1] = true; 23376: } 23376: check_for_sortedness[i] = true; 23376: } 23376: } 23376: } 23376: if (have_to_negate) { 23376: 23376: neg_assign(row_k.expr); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: 23376: for (dimension_type i = 0; still_sorted && i+1 < nrows; ++i) { 23376: if (check_for_sortedness[i]) { 23376: 23376: still_sorted = (compare((*this)[i], (*this)[i+1]) <= 0); 23376: } 23376: } 23376: 23376: 23376: sorted = still_sorted; 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::simplify() { 23376: 23376: ((void) 0); 23376: 23376: 23376: const dimension_type old_nrows = num_rows(); 23376: dimension_type nrows = old_nrows; 23376: dimension_type n_lines_or_equalities = 0; 23376: for (dimension_type i = 0; i < nrows; ++i) { 23376: if ((*this)[i].is_line_or_equality()) { 23376: if (n_lines_or_equalities < i) { 23376: swap(rows[i], rows[n_lines_or_equalities]); 23376: 23376: ((void) 0); 23376: } 23376: ++n_lines_or_equalities; 23376: } 23376: } 23376: 23376: const dimension_type rank = gauss(n_lines_or_equalities); 23376: 23376: if (rank < n_lines_or_equalities) { 23376: const dimension_type 23376: n_rays_or_points_or_inequalities = nrows - n_lines_or_equalities; 23376: const dimension_type 23376: num_swaps = std::min(n_lines_or_equalities - rank, 23376: n_rays_or_points_or_inequalities); 23376: for (dimension_type i = num_swaps; i-- > 0; ) { 23376: swap(rows[--nrows], rows[rank + i]); 23376: } 23376: remove_trailing_rows(old_nrows - nrows); 23376: if (n_rays_or_points_or_inequalities > num_swaps) { 23376: set_sorted(false); 23376: } 23376: unset_pending_rows(); 23376: n_lines_or_equalities = rank; 23376: } 23376: 23376: back_substitute(n_lines_or_equalities); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Linear_System 23376: ::add_universe_rows_and_space_dimensions(const dimension_type n) { 23376: ((void) 0); 23376: const bool was_sorted = is_sorted(); 23376: const dimension_type old_n_rows = num_rows(); 23376: const dimension_type old_space_dim 23376: = is_necessarily_closed() ? space_dimension() : space_dimension() + 1; 23376: set_space_dimension(space_dimension() + n); 23376: rows.resize(rows.size() + n); 23376: 23376: for (dimension_type i = old_n_rows; i-- > 0; ) { 23376: swap(rows[i], rows[i + n]); 23376: } 23376: for (dimension_type i = n, c = old_space_dim; i-- > 0; ) { 23376: 23376: 23376: 23376: if (Variable(c).space_dimension() <= space_dimension()) { 23376: 23376: Linear_Expression le(representation()); 23376: le.set_space_dimension(space_dimension()); 23376: le += Variable(c); 23376: Row r(le, Row::LINE_OR_EQUALITY, row_topology); 23376: swap(r, rows[i]); 23376: } 23376: else { 23376: 23376: ((void) 0); 23376: Linear_Expression le(Variable(c), representation()); 23376: Row r(le, Row::LINE_OR_EQUALITY, NECESSARILY_CLOSED); 23376: r.mark_as_not_necessarily_closed(); 23376: swap(r, rows[i]); 23376: 23376: } 23376: ++c; 23376: } 23376: 23376: 23376: if (was_sorted) { 23376: sorted = (compare(rows[n-1], rows[n]) <= 0); 23376: } 23376: 23376: 23376: 23376: if (!is_necessarily_closed()) { 23376: 23376: ((void) 0); 23376: if (!is_sorted()) { 23376: for (dimension_type i = n; i-- > 0; ) { 23376: rows[i].expr.swap_space_dimensions(Variable(old_space_dim - 1), 23376: Variable(old_space_dim - 1 + n)); 23376: ((void) 0); 23376: } 23376: } 23376: else { 23376: dimension_type old_eps_index = old_space_dim - 1; 23376: 23376: 23376: for (dimension_type i = n; i-- > 0; ++old_eps_index) { 23376: rows[i].expr.swap_space_dimensions(Variable(old_eps_index), 23376: Variable(old_eps_index + 1)); 23376: ((void) 0); 23376: } 23376: 23376: sorted = true; 23376: } 23376: } 23376: 23376: set_index_first_pending_row(index_first_pending + n); 23376: } 23376: 23376: template 23376: void 23376: Linear_System::sort_pending_and_remove_duplicates() { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: const dimension_type first_pending = first_pending_row(); 23376: sort_rows(first_pending, num_rows()); 23376: 23376: 23376: const dimension_type old_num_rows = num_rows(); 23376: dimension_type num_rows = old_num_rows; 23376: 23376: dimension_type k1 = 0; 23376: dimension_type k2 = first_pending; 23376: dimension_type num_duplicates = 0; 23376: 23376: 23376: while (k1 < first_pending && k2 < num_rows) { 23376: const int cmp = compare(rows[k1], rows[k2]); 23376: if (cmp == 0) { 23376: 23376: ++num_duplicates; 23376: --num_rows; 23376: 23376: ++k1; 23376: 23376: if (k2 < num_rows) { 23376: swap(rows[k2], rows[k2 + num_duplicates]); 23376: } 23376: } 23376: else if (cmp < 0) { 23376: 23376: ++k1; 23376: } 23376: else { 23376: 23376: 23376: 23376: ++k2; 23376: if (num_duplicates > 0 && k2 < num_rows) { 23376: swap(rows[k2], rows[k2 + num_duplicates]); 23376: } 23376: } 23376: } 23376: 23376: 23376: if (num_duplicates > 0) { 23376: if (k2 < num_rows) { 23376: for (++k2; k2 < num_rows; ++k2) { 23376: swap(rows[k2], rows[k2 + num_duplicates]); 23376: } 23376: } 23376: rows.resize(num_rows); 23376: } 23376: sorted = true; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: bool 23376: Linear_System::check_sorted() const { 23376: for (dimension_type i = first_pending_row(); i-- > 1; ) { 23376: if (compare(rows[i], rows[i-1]) < 0) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Linear_System::OK() const { 23376: 23376: 23376: 23376: 23376: 23376: for (dimension_type i = rows.size(); i-- > 0; ) { 23376: if (rows[i].representation() != representation()) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: if (rows[i].space_dimension() != space_dimension()) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: for (dimension_type i = rows.size(); i-- > 0; ) { 23376: if (rows[i].topology() != topology()) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: 23376: } 23376: 23376: if (first_pending_row() > num_rows()) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: 23376: 23376: const dimension_type n_rows = num_rows(); 23376: for (dimension_type i = 0; i < n_rows; ++i) { 23376: if (topology() != rows[i].topology()) { 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: 23376: } 23376: if (sorted && !check_sorted()) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: } 23376: # 581 "../../src/Linear_System_defs.hh" 2 23376: # 30 "../../src/Constraint_System_defs.hh" 2 23376: # 38 "../../src/Constraint_System_defs.hh" 23376: # 1 "/usr/include/c++/8/iterator" 1 3 23376: # 58 "/usr/include/c++/8/iterator" 3 23376: 23376: # 59 "/usr/include/c++/8/iterator" 3 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/bits/stream_iterator.h" 1 3 23376: # 33 "/usr/include/c++/8/bits/stream_iterator.h" 3 23376: 23376: # 34 "/usr/include/c++/8/bits/stream_iterator.h" 3 23376: 23376: 23376: 23376: 23376: # 37 "/usr/include/c++/8/bits/stream_iterator.h" 3 23376: namespace std __attribute__ ((__visibility__ ("default"))) 23376: { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: template, typename _Dist = ptrdiff_t> 23376: class istream_iterator 23376: : public iterator 23376: { 23376: public: 23376: typedef _CharT char_type; 23376: typedef _Traits traits_type; 23376: typedef basic_istream<_CharT, _Traits> istream_type; 23376: 23376: private: 23376: istream_type* _M_stream; 23376: _Tp _M_value; 23376: bool _M_ok; 23376: 23376: public: 23376: 23376: constexpr istream_iterator() 23376: : _M_stream(0), _M_value(), _M_ok(false) {} 23376: 23376: 23376: istream_iterator(istream_type& __s) 23376: : _M_stream(std::__addressof(__s)) 23376: { _M_read(); } 23376: 23376: istream_iterator(const istream_iterator& __obj) 23376: : _M_stream(__obj._M_stream), _M_value(__obj._M_value), 23376: _M_ok(__obj._M_ok) 23376: { } 23376: 23376: const _Tp& 23376: operator*() const 23376: { 23376: 23376: 23376: ; 23376: return _M_value; 23376: } 23376: 23376: const _Tp* 23376: operator->() const { return std::__addressof((operator*())); } 23376: 23376: istream_iterator& 23376: operator++() 23376: { 23376: 23376: 23376: ; 23376: _M_read(); 23376: return *this; 23376: } 23376: 23376: istream_iterator 23376: operator++(int) 23376: { 23376: 23376: 23376: ; 23376: istream_iterator __tmp = *this; 23376: _M_read(); 23376: return __tmp; 23376: } 23376: 23376: bool 23376: _M_equal(const istream_iterator& __x) const 23376: { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); } 23376: 23376: private: 23376: void 23376: _M_read() 23376: { 23376: _M_ok = (_M_stream && *_M_stream) ? true : false; 23376: if (_M_ok) 23376: { 23376: *_M_stream >> _M_value; 23376: _M_ok = *_M_stream ? true : false; 23376: } 23376: } 23376: }; 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 23376: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 23376: { return __x._M_equal(__y); } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 23376: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 23376: { return !__x._M_equal(__y); } 23376: # 152 "/usr/include/c++/8/bits/stream_iterator.h" 3 23376: template > 23376: class ostream_iterator 23376: : public iterator 23376: { 23376: public: 23376: 23376: 23376: typedef _CharT char_type; 23376: typedef _Traits traits_type; 23376: typedef basic_ostream<_CharT, _Traits> ostream_type; 23376: 23376: 23376: private: 23376: ostream_type* _M_stream; 23376: const _CharT* _M_string; 23376: 23376: public: 23376: 23376: ostream_iterator(ostream_type& __s) 23376: : _M_stream(std::__addressof(__s)), _M_string(0) {} 23376: # 184 "/usr/include/c++/8/bits/stream_iterator.h" 3 23376: ostream_iterator(ostream_type& __s, const _CharT* __c) 23376: : _M_stream(&__s), _M_string(__c) { } 23376: 23376: 23376: ostream_iterator(const ostream_iterator& __obj) 23376: : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } 23376: 23376: 23376: 23376: ostream_iterator& 23376: operator=(const _Tp& __value) 23376: { 23376: 23376: 23376: ; 23376: *_M_stream << __value; 23376: if (_M_string) *_M_stream << _M_string; 23376: return *this; 23376: } 23376: 23376: ostream_iterator& 23376: operator*() 23376: { return *this; } 23376: 23376: ostream_iterator& 23376: operator++() 23376: { return *this; } 23376: 23376: ostream_iterator& 23376: operator++(int) 23376: { return *this; } 23376: }; 23376: 23376: 23376: 23376: 23376: } 23376: # 67 "/usr/include/c++/8/iterator" 2 3 23376: # 39 "../../src/Constraint_System_defs.hh" 2 23376: 23376: 23376: 23376: 23376: # 42 "../../src/Constraint_System_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Constraint_System& cs); 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Constraint_System& x, const Constraint_System& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const Constraint_System& x, const Constraint_System& y); 23376: 23376: 23376: void 23376: swap(Constraint_System& x, Constraint_System& y); 23376: 23376: } 23376: # 137 "../../src/Constraint_System_defs.hh" 23376: class Parma_Polyhedra_Library::Constraint_System { 23376: public: 23376: typedef Constraint row_type; 23376: 23376: static const Representation default_representation = SPARSE; 23376: 23376: 23376: explicit Constraint_System(Representation r = default_representation); 23376: 23376: 23376: explicit Constraint_System(const Constraint& c, 23376: Representation r = default_representation); 23376: 23376: 23376: explicit Constraint_System(const Congruence_System& cgs, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: Constraint_System(const Constraint_System& cs); 23376: 23376: 23376: Constraint_System(const Constraint_System& cs, Representation r); 23376: 23376: 23376: ~Constraint_System(); 23376: 23376: 23376: Constraint_System& operator=(const Constraint_System& y); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: void set_space_dimension(dimension_type space_dim); 23376: 23376: 23376: 23376: 23376: 23376: bool has_equalities() const; 23376: 23376: 23376: 23376: 23376: 23376: bool has_strict_inequalities() const; 23376: 23376: 23376: 23376: 23376: 23376: void insert(const Constraint& c); 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: 23376: 23376: static const Constraint_System& zero_dim_empty(); 23376: 23376: typedef Constraint_System_const_iterator const_iterator; 23376: 23376: 23376: bool empty() const; 23376: 23376: 23376: 23376: 23376: 23376: void clear(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: const_iterator end() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: void m_swap(Constraint_System& y); 23376: 23376: private: 23376: Linear_System sys; 23376: 23376: 23376: 23376: 23376: 23376: static const Constraint_System* zero_dim_empty_p; 23376: 23376: friend class Constraint_System_const_iterator; 23376: 23376: friend bool operator==(const Constraint_System& x, 23376: const Constraint_System& y); 23376: 23376: 23376: explicit Constraint_System(Topology topol, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: Constraint_System(Topology topol, dimension_type space_dim, 23376: Representation r = default_representation); 23376: 23376: 23376: dimension_type num_equalities() const; 23376: 23376: 23376: dimension_type num_inequalities() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void simplify(); 23376: # 303 "../../src/Constraint_System_defs.hh" 23376: bool adjust_topology_and_space_dimension(Topology new_topology, 23376: dimension_type new_space_dim); 23376: 23376: 23376: const Constraint& operator[](dimension_type k) const; 23376: 23376: 23376: bool satisfies_all_constraints(const Generator& g) const; 23376: # 347 "../../src/Constraint_System_defs.hh" 23376: void affine_preimage(Variable v, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void insert_pending(const Constraint& c); 23376: 23376: 23376: void add_low_level_constraints(); 23376: 23376: 23376: Topology topology() const; 23376: 23376: dimension_type num_rows() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_necessarily_closed() const; 23376: 23376: 23376: dimension_type num_pending_rows() const; 23376: 23376: 23376: dimension_type first_pending_row() const; 23376: 23376: 23376: bool is_sorted() const; 23376: 23376: 23376: void unset_pending_rows(); 23376: 23376: 23376: void set_index_first_pending_row(dimension_type i); 23376: 23376: 23376: void set_sorted(bool b); 23376: # 398 "../../src/Constraint_System_defs.hh" 23376: void remove_row(dimension_type i, bool keep_sorted = false); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_rows(const std::vector& indexes); 23376: # 416 "../../src/Constraint_System_defs.hh" 23376: void remove_rows(dimension_type first, dimension_type last, 23376: bool keep_sorted = false); 23376: 23376: 23376: void remove_trailing_rows(dimension_type n); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: 23376: 23376: 23376: void shift_space_dimensions(Variable v, dimension_type n); 23376: # 446 "../../src/Constraint_System_defs.hh" 23376: void permute_space_dimensions(const std::vector& cycle); 23376: 23376: 23376: void swap_space_dimensions(Variable v1, Variable v2); 23376: 23376: bool has_no_rows() const; 23376: 23376: 23376: void strong_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: void sort_rows(); 23376: 23376: 23376: 23376: 23376: 23376: void insert_pending(Constraint& r, Recycle_Input); 23376: 23376: 23376: 23376: void insert_pending(Constraint_System& r, Recycle_Input); 23376: 23376: 23376: 23376: 23376: 23376: void insert(Constraint& r, Recycle_Input); 23376: 23376: 23376: 23376: 23376: 23376: void insert(Constraint_System& r, Recycle_Input); 23376: 23376: 23376: void insert_pending(const Constraint_System& r); 23376: # 495 "../../src/Constraint_System_defs.hh" 23376: void merge_rows_assign(const Constraint_System& y); 23376: 23376: 23376: 23376: 23376: 23376: void insert(const Constraint_System& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void mark_as_necessarily_closed(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void mark_as_not_necessarily_closed(); 23376: # 529 "../../src/Constraint_System_defs.hh" 23376: dimension_type gauss(dimension_type n_lines_or_equalities); 23376: # 541 "../../src/Constraint_System_defs.hh" 23376: void back_substitute(dimension_type n_lines_or_equalities); 23376: 23376: 23376: void assign_with_pending(const Constraint_System& y); 23376: 23376: 23376: 23376: 23376: 23376: void sort_pending_and_remove_duplicates(); 23376: # 559 "../../src/Constraint_System_defs.hh" 23376: void sort_and_remove_with_sat(Bit_Matrix& sat); 23376: 23376: 23376: 23376: 23376: 23376: bool check_sorted() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type num_lines_or_equalities() const; 23376: # 586 "../../src/Constraint_System_defs.hh" 23376: void add_universe_rows_and_space_dimensions(dimension_type n); 23376: 23376: friend class Polyhedron; 23376: friend class Termination_Helpers; 23376: }; 23376: # 610 "../../src/Constraint_System_defs.hh" 23376: class Parma_Polyhedra_Library::Constraint_System_const_iterator 23376: : public std::iterator { 23376: public: 23376: 23376: Constraint_System_const_iterator(); 23376: 23376: 23376: Constraint_System_const_iterator(const Constraint_System_const_iterator& y); 23376: 23376: 23376: ~Constraint_System_const_iterator(); 23376: 23376: 23376: Constraint_System_const_iterator& 23376: operator=(const Constraint_System_const_iterator& y); 23376: 23376: 23376: const Constraint& operator*() const; 23376: 23376: 23376: const Constraint* operator->() const; 23376: 23376: 23376: Constraint_System_const_iterator& operator++(); 23376: 23376: 23376: Constraint_System_const_iterator operator++(int); 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Constraint_System_const_iterator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const Constraint_System_const_iterator& y) const; 23376: 23376: private: 23376: friend class Constraint_System; 23376: 23376: 23376: Linear_System::const_iterator i; 23376: 23376: 23376: const Linear_System* csp; 23376: 23376: 23376: Constraint_System_const_iterator(const Linear_System 23376: ::const_iterator& iter, 23376: const Constraint_System& cs); 23376: 23376: 23376: void skip_forward(); 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Implementation { 23376: 23376: 23376: 23376: 23376: dimension_type 23376: num_constraints(const Constraint_System& cs); 23376: 23376: } 23376: 23376: } 23376: # 29 "../../src/Box_inlines.hh" 2 23376: # 1 "../../src/Constraint_System_inlines.hh" 1 23376: # 29 "../../src/Constraint_System_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Constraint_System::Constraint_System(Representation r) 23376: : sys(NECESSARILY_CLOSED, r) { 23376: } 23376: 23376: inline 23376: Constraint_System::Constraint_System(const Constraint& c, Representation r) 23376: : sys(c.topology(), r) { 23376: sys.insert(c); 23376: } 23376: 23376: inline 23376: Constraint_System::Constraint_System(const Constraint_System& cs) 23376: : sys(cs.sys) { 23376: } 23376: 23376: inline 23376: Constraint_System::Constraint_System(const Constraint_System& cs, 23376: Representation r) 23376: : sys(cs.sys, r) { 23376: } 23376: 23376: inline 23376: Constraint_System::Constraint_System(const Topology topol, Representation r) 23376: : sys(topol, r) { 23376: } 23376: 23376: inline 23376: Constraint_System::Constraint_System(const Topology topol, 23376: const dimension_type space_dim, 23376: Representation r) 23376: : sys(topol, space_dim, r) { 23376: } 23376: 23376: inline 23376: Constraint_System::~Constraint_System() { 23376: } 23376: 23376: inline Constraint_System& 23376: Constraint_System::operator=(const Constraint_System& y) { 23376: Constraint_System tmp = y; 23376: swap(*this, tmp); 23376: return *this; 23376: } 23376: 23376: inline const Constraint& 23376: Constraint_System::operator[](const dimension_type k) const { 23376: return sys[k]; 23376: } 23376: 23376: inline Representation 23376: Constraint_System::representation() const { 23376: return sys.representation(); 23376: } 23376: 23376: inline void 23376: Constraint_System::set_representation(Representation r) { 23376: sys.set_representation(r); 23376: } 23376: 23376: inline dimension_type 23376: Constraint_System::max_space_dimension() { 23376: return Linear_System::max_space_dimension(); 23376: } 23376: 23376: inline dimension_type 23376: Constraint_System::space_dimension() const { 23376: return sys.space_dimension(); 23376: } 23376: 23376: inline void 23376: Constraint_System::set_space_dimension(dimension_type space_dim) { 23376: return sys.set_space_dimension(space_dim); 23376: } 23376: 23376: inline void 23376: Constraint_System::clear() { 23376: sys.clear(); 23376: } 23376: 23376: inline const Constraint_System& 23376: Constraint_System::zero_dim_empty() { 23376: ((void) 0); 23376: return *zero_dim_empty_p; 23376: } 23376: 23376: inline 23376: Constraint_System_const_iterator::Constraint_System_const_iterator() 23376: : i(), csp(0) { 23376: } 23376: 23376: inline 23376: Constraint_System_const_iterator::Constraint_System_const_iterator(const Constraint_System_const_iterator& y) 23376: : i(y.i), csp(y.csp) { 23376: } 23376: 23376: inline 23376: Constraint_System_const_iterator::~Constraint_System_const_iterator() { 23376: } 23376: 23376: inline Constraint_System_const_iterator& 23376: Constraint_System_const_iterator::operator=(const Constraint_System_const_iterator& y) { 23376: i = y.i; 23376: csp = y.csp; 23376: return *this; 23376: } 23376: 23376: inline const Constraint& 23376: Constraint_System_const_iterator::operator*() const { 23376: return *i; 23376: } 23376: 23376: inline const Constraint* 23376: Constraint_System_const_iterator::operator->() const { 23376: return i.operator->(); 23376: } 23376: 23376: inline Constraint_System_const_iterator& 23376: Constraint_System_const_iterator::operator++() { 23376: ++i; 23376: skip_forward(); 23376: return *this; 23376: } 23376: 23376: inline Constraint_System_const_iterator 23376: Constraint_System_const_iterator::operator++(int) { 23376: const Constraint_System_const_iterator tmp = *this; 23376: operator++(); 23376: return tmp; 23376: } 23376: 23376: inline bool 23376: Constraint_System_const_iterator::operator==(const Constraint_System_const_iterator& y) const { 23376: return i == y.i; 23376: } 23376: 23376: inline bool 23376: Constraint_System_const_iterator::operator!=(const Constraint_System_const_iterator& y) const { 23376: return i != y.i; 23376: } 23376: 23376: inline 23376: Constraint_System_const_iterator:: 23376: Constraint_System_const_iterator(const Linear_System::const_iterator& iter, 23376: const Constraint_System& cs) 23376: : i(iter), csp(&cs.sys) { 23376: } 23376: 23376: inline Constraint_System_const_iterator 23376: Constraint_System::begin() const { 23376: const_iterator i(sys.begin(), *this); 23376: i.skip_forward(); 23376: return i; 23376: } 23376: 23376: inline Constraint_System_const_iterator 23376: Constraint_System::end() const { 23376: const Constraint_System_const_iterator i(sys.end(), *this); 23376: return i; 23376: } 23376: 23376: inline bool 23376: Constraint_System::empty() const { 23376: return begin() == end(); 23376: } 23376: 23376: inline void 23376: Constraint_System::add_low_level_constraints() { 23376: if (sys.is_necessarily_closed()) { 23376: 23376: insert(Constraint::zero_dim_positivity()); 23376: } 23376: else { 23376: 23376: insert(Constraint::epsilon_leq_one()); 23376: insert(Constraint::epsilon_geq_zero()); 23376: } 23376: } 23376: 23376: inline void 23376: Constraint_System::m_swap(Constraint_System& y) { 23376: swap(sys, y.sys); 23376: } 23376: 23376: inline memory_size_type 23376: Constraint_System::external_memory_in_bytes() const { 23376: return sys.external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Constraint_System::total_memory_in_bytes() const { 23376: return external_memory_in_bytes() + sizeof(*this); 23376: } 23376: 23376: inline void 23376: Constraint_System::simplify() { 23376: sys.simplify(); 23376: } 23376: 23376: inline Topology 23376: Constraint_System::topology() const { 23376: return sys.topology(); 23376: } 23376: 23376: inline dimension_type 23376: Constraint_System::num_rows() const { 23376: return sys.num_rows(); 23376: } 23376: 23376: inline bool 23376: Constraint_System::is_necessarily_closed() const { 23376: return sys.is_necessarily_closed(); 23376: } 23376: 23376: inline dimension_type 23376: Constraint_System::num_pending_rows() const { 23376: return sys.num_pending_rows(); 23376: } 23376: 23376: inline dimension_type 23376: Constraint_System::first_pending_row() const { 23376: return sys.first_pending_row(); 23376: } 23376: 23376: inline bool 23376: Constraint_System::is_sorted() const { 23376: return sys.is_sorted(); 23376: } 23376: 23376: inline void 23376: Constraint_System::unset_pending_rows() { 23376: sys.unset_pending_rows(); 23376: } 23376: 23376: inline void 23376: Constraint_System::set_index_first_pending_row(dimension_type i) { 23376: sys.set_index_first_pending_row(i); 23376: } 23376: 23376: inline void 23376: Constraint_System::set_sorted(bool b) { 23376: sys.set_sorted(b); 23376: } 23376: 23376: inline void 23376: Constraint_System::remove_row(dimension_type i, bool keep_sorted) { 23376: sys.remove_row(i, keep_sorted); 23376: } 23376: 23376: inline void 23376: Constraint_System::remove_rows(dimension_type first, dimension_type last, 23376: bool keep_sorted) { 23376: sys.remove_rows(first, last, keep_sorted); 23376: } 23376: 23376: inline void 23376: Constraint_System::remove_rows(const std::vector& indexes) { 23376: sys.remove_rows(indexes); 23376: } 23376: 23376: inline void 23376: Constraint_System::remove_trailing_rows(dimension_type n) { 23376: sys.remove_trailing_rows(n); 23376: } 23376: 23376: inline void 23376: Constraint_System 23376: ::remove_space_dimensions(const Variables_Set& vars) { 23376: sys.remove_space_dimensions(vars); 23376: } 23376: 23376: inline void 23376: Constraint_System 23376: ::shift_space_dimensions(Variable v, dimension_type n) { 23376: sys.shift_space_dimensions(v, n); 23376: } 23376: 23376: inline void 23376: Constraint_System 23376: ::permute_space_dimensions(const std::vector& cycle) { 23376: sys.permute_space_dimensions(cycle); 23376: } 23376: 23376: inline void 23376: Constraint_System 23376: ::swap_space_dimensions(Variable v1, Variable v2) { 23376: sys.swap_space_dimensions(v1, v2); 23376: } 23376: 23376: inline bool 23376: Constraint_System::has_no_rows() const { 23376: return sys.has_no_rows(); 23376: } 23376: 23376: inline void 23376: Constraint_System::strong_normalize() { 23376: sys.strong_normalize(); 23376: } 23376: 23376: inline void 23376: Constraint_System::sort_rows() { 23376: sys.sort_rows(); 23376: } 23376: 23376: inline void 23376: Constraint_System::insert_pending(Constraint_System& r, Recycle_Input) { 23376: sys.insert_pending(r.sys, Recycle_Input()); 23376: } 23376: 23376: inline void 23376: Constraint_System::insert(Constraint_System& r, Recycle_Input) { 23376: sys.insert(r.sys, Recycle_Input()); 23376: } 23376: 23376: inline void 23376: Constraint_System::insert_pending(const Constraint_System& r) { 23376: sys.insert_pending(r.sys); 23376: } 23376: 23376: inline void 23376: Constraint_System::merge_rows_assign(const Constraint_System& y) { 23376: sys.merge_rows_assign(y.sys); 23376: } 23376: 23376: inline void 23376: Constraint_System::insert(const Constraint_System& y) { 23376: sys.insert(y.sys); 23376: } 23376: 23376: inline void 23376: Constraint_System::mark_as_necessarily_closed() { 23376: sys.mark_as_necessarily_closed(); 23376: } 23376: 23376: inline void 23376: Constraint_System::mark_as_not_necessarily_closed() { 23376: sys.mark_as_not_necessarily_closed(); 23376: } 23376: 23376: inline dimension_type 23376: Constraint_System::gauss(dimension_type n_lines_or_equalities) { 23376: return sys.gauss(n_lines_or_equalities); 23376: } 23376: 23376: inline void 23376: Constraint_System::back_substitute(dimension_type n_lines_or_equalities) { 23376: sys.back_substitute(n_lines_or_equalities); 23376: } 23376: 23376: inline void 23376: Constraint_System::assign_with_pending(const Constraint_System& y) { 23376: sys.assign_with_pending(y.sys); 23376: } 23376: 23376: inline void 23376: Constraint_System::sort_pending_and_remove_duplicates() { 23376: sys.sort_pending_and_remove_duplicates(); 23376: } 23376: 23376: inline void 23376: Constraint_System::sort_and_remove_with_sat(Bit_Matrix& sat) { 23376: sys.sort_and_remove_with_sat(sat); 23376: } 23376: 23376: inline bool 23376: Constraint_System::check_sorted() const { 23376: return sys.check_sorted(); 23376: } 23376: 23376: inline dimension_type 23376: Constraint_System::num_lines_or_equalities() const { 23376: return sys.num_lines_or_equalities(); 23376: } 23376: 23376: inline void 23376: Constraint_System::add_universe_rows_and_space_dimensions(dimension_type n) { 23376: sys.add_universe_rows_and_space_dimensions(n); 23376: } 23376: 23376: inline bool 23376: operator==(const Constraint_System& x, const Constraint_System& y) { 23376: return x.sys == y.sys; 23376: } 23376: 23376: inline bool 23376: operator!=(const Constraint_System& x, const Constraint_System& y) { 23376: return !(x == y); 23376: } 23376: 23376: 23376: inline void 23376: swap(Constraint_System& x, Constraint_System& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: namespace Implementation { 23376: 23376: 23376: 23376: 23376: inline dimension_type 23376: num_constraints(const Constraint_System& cs) { 23376: return static_cast(std::distance(cs.begin(), cs.end())); 23376: } 23376: 23376: } 23376: 23376: } 23376: # 30 "../../src/Box_inlines.hh" 2 23376: # 1 "../../src/Congruence_System_defs.hh" 1 23376: # 38 "../../src/Congruence_System_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: bool 23376: operator==(const Congruence_System& x, const Congruence_System& y); 23376: 23376: } 23376: # 103 "../../src/Congruence_System_defs.hh" 23376: class Parma_Polyhedra_Library::Congruence_System { 23376: public: 23376: 23376: typedef Congruence row_type; 23376: 23376: static const Representation default_representation = SPARSE; 23376: 23376: 23376: explicit Congruence_System(Representation r = default_representation); 23376: 23376: 23376: explicit Congruence_System(dimension_type d, 23376: Representation r = default_representation); 23376: 23376: 23376: explicit Congruence_System(const Congruence& cg, 23376: Representation r = default_representation); 23376: # 129 "../../src/Congruence_System_defs.hh" 23376: explicit Congruence_System(const Constraint& c, 23376: Representation r = default_representation); 23376: 23376: 23376: explicit Congruence_System(const Constraint_System& cs, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Congruence_System(const Congruence_System& cgs); 23376: 23376: 23376: Congruence_System(const Congruence_System& cgs, Representation r); 23376: 23376: 23376: ~Congruence_System(); 23376: 23376: 23376: Congruence_System& operator=(const Congruence_System& y); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_equal_to(const Congruence_System& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool has_linear_equalities() const; 23376: 23376: 23376: void clear(); 23376: # 187 "../../src/Congruence_System_defs.hh" 23376: void insert(const Congruence& cg); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void insert(Congruence& cg, Recycle_Input); 23376: # 208 "../../src/Congruence_System_defs.hh" 23376: void insert(const Constraint& c); 23376: # 218 "../../src/Congruence_System_defs.hh" 23376: void insert(const Congruence_System& y); 23376: 23376: 23376: 23376: 23376: 23376: void insert(Congruence_System& cgs, Recycle_Input); 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: static const Congruence_System& zero_dim_empty(); 23376: # 250 "../../src/Congruence_System_defs.hh" 23376: class const_iterator 23376: : public std::iterator { 23376: public: 23376: 23376: const_iterator(); 23376: 23376: 23376: const_iterator(const const_iterator& y); 23376: 23376: 23376: ~const_iterator(); 23376: 23376: 23376: const_iterator& operator=(const const_iterator& y); 23376: 23376: 23376: const Congruence& operator*() const; 23376: 23376: 23376: const Congruence* operator->() const; 23376: 23376: 23376: const_iterator& operator++(); 23376: 23376: 23376: const_iterator operator++(int); 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const const_iterator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const const_iterator& y) const; 23376: 23376: private: 23376: friend class Congruence_System; 23376: 23376: 23376: Swapping_Vector::const_iterator i; 23376: 23376: 23376: const Swapping_Vector* csp; 23376: 23376: 23376: const_iterator(const Swapping_Vector::const_iterator& iter, 23376: const Congruence_System& cgs); 23376: 23376: 23376: void skip_forward(); 23376: }; 23376: 23376: 23376: bool empty() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: const_iterator end() const; 23376: # 331 "../../src/Congruence_System_defs.hh" 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: dimension_type num_equalities() const; 23376: 23376: 23376: dimension_type num_proper_congruences() const; 23376: 23376: 23376: void m_swap(Congruence_System& y); 23376: # 372 "../../src/Congruence_System_defs.hh" 23376: void add_unit_rows_and_space_dimensions(dimension_type dims); 23376: # 386 "../../src/Congruence_System_defs.hh" 23376: void permute_space_dimensions(const std::vector& cycle); 23376: 23376: 23376: void swap_space_dimensions(Variable v1, Variable v2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool set_space_dimension(dimension_type new_space_dim); 23376: 23376: 23376: 23376: protected: 23376: 23376: bool satisfies_all_congruences(const Grid_Generator& g) const; 23376: 23376: private: 23376: 23376: dimension_type num_rows() const; 23376: 23376: 23376: bool has_no_rows() const; 23376: 23376: 23376: const Congruence& operator[](dimension_type k) const; 23376: 23376: 23376: void normalize_moduli(); 23376: # 455 "../../src/Congruence_System_defs.hh" 23376: void affine_preimage(Variable v, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator); 23376: # 472 "../../src/Congruence_System_defs.hh" 23376: void concatenate(const Congruence_System& y); 23376: # 481 "../../src/Congruence_System_defs.hh" 23376: void insert_verbatim(Congruence& cg, Recycle_Input); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_rows(dimension_type first, dimension_type last, 23376: bool keep_sorted); 23376: 23376: void remove_trailing_rows(dimension_type n); 23376: 23376: 23376: 23376: 23376: 23376: static const Congruence_System* zero_dim_empty_p; 23376: 23376: Swapping_Vector rows; 23376: 23376: dimension_type space_dimension_; 23376: 23376: Representation representation_; 23376: # 514 "../../src/Congruence_System_defs.hh" 23376: bool has_a_free_dimension() const; 23376: 23376: friend class Grid; 23376: 23376: friend bool 23376: operator==(const Congruence_System& x, const Congruence_System& y); 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: std::ostream& 23376: operator<<(std::ostream& s, const Congruence_System& cgs); 23376: 23376: } 23376: 23376: 23376: void 23376: swap(Congruence_System& x, Congruence_System& y); 23376: 23376: } 23376: # 31 "../../src/Box_inlines.hh" 2 23376: # 1 "../../src/Congruence_System_inlines.hh" 1 23376: # 29 "../../src/Congruence_System_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline const Congruence& 23376: Congruence_System::operator[](const dimension_type k) const { 23376: return rows[k]; 23376: } 23376: 23376: inline dimension_type 23376: Congruence_System::num_rows() const { 23376: return rows.size(); 23376: } 23376: 23376: inline bool 23376: Congruence_System::has_no_rows() const { 23376: return num_rows() == 0; 23376: } 23376: 23376: inline void 23376: Congruence_System::remove_trailing_rows(dimension_type n) { 23376: ((void) 0); 23376: rows.resize(num_rows() - n); 23376: } 23376: 23376: inline void 23376: Congruence_System::insert(const Congruence& cg) { 23376: Congruence tmp = cg; 23376: insert(tmp, Recycle_Input()); 23376: } 23376: 23376: inline void 23376: Congruence_System::insert(Congruence& cg, Recycle_Input) { 23376: ((void) 0); 23376: cg.strong_normalize(); 23376: ((void) 0); 23376: insert_verbatim(cg, Recycle_Input()); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Congruence_System::Congruence_System(Representation r) 23376: : rows(), 23376: space_dimension_(0), 23376: representation_(r) { 23376: } 23376: 23376: inline 23376: Congruence_System::Congruence_System(const Congruence& cg, Representation r) 23376: : rows(), 23376: space_dimension_(0), 23376: representation_(r) { 23376: insert(cg); 23376: } 23376: 23376: inline 23376: Congruence_System::Congruence_System(const Constraint& c, Representation r) 23376: : rows(), 23376: space_dimension_(0), 23376: representation_(r) { 23376: insert(c); 23376: } 23376: 23376: inline 23376: Congruence_System::Congruence_System(const Congruence_System& cgs) 23376: : rows(cgs.rows), 23376: space_dimension_(cgs.space_dimension_), 23376: representation_(cgs.representation_) { 23376: } 23376: 23376: inline 23376: Congruence_System::Congruence_System(const Congruence_System& cgs, 23376: Representation r) 23376: : rows(cgs.rows), 23376: space_dimension_(cgs.space_dimension_), 23376: representation_(r) { 23376: if (cgs.representation() != r) { 23376: for (dimension_type i = 0; i < num_rows(); ++i) { 23376: rows[i].set_representation(representation()); 23376: } 23376: } 23376: } 23376: 23376: inline 23376: Congruence_System::Congruence_System(const dimension_type d, Representation r) 23376: : rows(), 23376: space_dimension_(d), 23376: representation_(r) { 23376: } 23376: 23376: inline 23376: Congruence_System::~Congruence_System() { 23376: } 23376: 23376: inline Congruence_System& 23376: Congruence_System::operator=(const Congruence_System& y) { 23376: Congruence_System tmp = y; 23376: swap(*this, tmp); 23376: return *this; 23376: } 23376: 23376: inline Representation 23376: Congruence_System::representation() const { 23376: return representation_; 23376: } 23376: 23376: inline void 23376: Congruence_System::set_representation(Representation r) { 23376: if (representation_ == r) { 23376: return; 23376: } 23376: representation_ = r; 23376: for (dimension_type i = 0; i < num_rows(); ++i) { 23376: rows[i].set_representation(r); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: inline dimension_type 23376: Congruence_System::max_space_dimension() { 23376: return Congruence::max_space_dimension(); 23376: } 23376: 23376: inline dimension_type 23376: Congruence_System::space_dimension() const { 23376: return space_dimension_; 23376: } 23376: 23376: inline void 23376: Congruence_System::clear() { 23376: rows.clear(); 23376: space_dimension_ = 0; 23376: } 23376: 23376: inline const Congruence_System& 23376: Congruence_System::zero_dim_empty() { 23376: ((void) 0); 23376: return *zero_dim_empty_p; 23376: } 23376: 23376: inline 23376: Congruence_System::const_iterator::const_iterator() 23376: : i(), csp(0) { 23376: } 23376: 23376: inline 23376: Congruence_System::const_iterator::const_iterator(const const_iterator& y) 23376: : i(y.i), csp(y.csp) { 23376: } 23376: 23376: inline 23376: Congruence_System::const_iterator::~const_iterator() { 23376: } 23376: 23376: inline Congruence_System::const_iterator& 23376: Congruence_System::const_iterator::operator=(const const_iterator& y) { 23376: i = y.i; 23376: csp = y.csp; 23376: return *this; 23376: } 23376: 23376: inline const Congruence& 23376: Congruence_System::const_iterator::operator*() const { 23376: return *i; 23376: } 23376: 23376: inline const Congruence* 23376: Congruence_System::const_iterator::operator->() const { 23376: return i.operator->(); 23376: } 23376: 23376: inline Congruence_System::const_iterator& 23376: Congruence_System::const_iterator::operator++() { 23376: ++i; 23376: skip_forward(); 23376: return *this; 23376: } 23376: 23376: inline Congruence_System::const_iterator 23376: Congruence_System::const_iterator::operator++(int) { 23376: const const_iterator tmp = *this; 23376: operator++(); 23376: return tmp; 23376: } 23376: 23376: inline bool 23376: Congruence_System::const_iterator::operator==(const const_iterator& y) const { 23376: return i == y.i; 23376: } 23376: 23376: inline bool 23376: Congruence_System::const_iterator::operator!=(const const_iterator& y) const { 23376: return i != y.i; 23376: } 23376: 23376: inline 23376: Congruence_System::const_iterator:: 23376: const_iterator(const Swapping_Vector::const_iterator& iter, 23376: const Congruence_System& cgs) 23376: : i(iter), csp(&cgs.rows) { 23376: } 23376: 23376: inline Congruence_System::const_iterator 23376: Congruence_System::begin() const { 23376: const_iterator i(rows.begin(), *this); 23376: i.skip_forward(); 23376: return i; 23376: } 23376: 23376: inline Congruence_System::const_iterator 23376: Congruence_System::end() const { 23376: const const_iterator i(rows.end(), *this); 23376: return i; 23376: } 23376: 23376: inline bool 23376: Congruence_System::empty() const { 23376: return begin() == end(); 23376: } 23376: 23376: inline void 23376: Congruence_System::m_swap(Congruence_System& y) { 23376: using std::swap; 23376: swap(rows, y.rows); 23376: swap(space_dimension_, y.space_dimension_); 23376: swap(representation_, y.representation_); 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline memory_size_type 23376: Congruence_System::external_memory_in_bytes() const { 23376: return rows.external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Congruence_System::total_memory_in_bytes() const { 23376: return rows.external_memory_in_bytes() + sizeof(*this); 23376: } 23376: 23376: 23376: inline void 23376: swap(Congruence_System& x, Congruence_System& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 32 "../../src/Box_inlines.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline bool 23376: Box::marked_empty() const { 23376: return status.test_empty_up_to_date() && status.test_empty(); 23376: } 23376: 23376: template 23376: inline void 23376: Box::set_empty() { 23376: status.set_empty(); 23376: status.set_empty_up_to_date(); 23376: } 23376: 23376: template 23376: inline void 23376: Box::set_nonempty() { 23376: status.reset_empty(); 23376: status.set_empty_up_to_date(); 23376: } 23376: 23376: template 23376: inline void 23376: Box::set_empty_up_to_date() { 23376: status.set_empty_up_to_date(); 23376: } 23376: 23376: template 23376: inline void 23376: Box::reset_empty_up_to_date() { 23376: return status.reset_empty_up_to_date(); 23376: } 23376: 23376: template 23376: inline 23376: Box::Box(const Box& y, Complexity_Class) 23376: : seq(y.seq), status(y.status) { 23376: } 23376: 23376: template 23376: inline Box& 23376: Box::operator=(const Box& y) { 23376: seq = y.seq; 23376: status = y.status; 23376: return *this; 23376: } 23376: 23376: template 23376: inline void 23376: Box::m_swap(Box& y) { 23376: Box& x = *this; 23376: using std::swap; 23376: swap(x.seq, y.seq); 23376: swap(x.status, y.status); 23376: } 23376: 23376: template 23376: inline 23376: Box::Box(const Constraint_System& cs, Recycle_Input) { 23376: 23376: Box tmp(cs); 23376: this->m_swap(tmp); 23376: } 23376: 23376: template 23376: inline 23376: Box::Box(const Generator_System& gs, Recycle_Input) { 23376: 23376: Box tmp(gs); 23376: this->m_swap(tmp); 23376: } 23376: 23376: template 23376: inline 23376: Box::Box(const Congruence_System& cgs, Recycle_Input) { 23376: 23376: Box tmp(cgs); 23376: this->m_swap(tmp); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Box::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Box::space_dimension() const { 23376: return seq.size(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Box::max_space_dimension() { 23376: 23376: 23376: return Sequence().max_size() - 1; 23376: } 23376: 23376: template 23376: inline int32_t 23376: Box::hash_code() const { 23376: return hash_code_from_dimension(space_dimension()); 23376: } 23376: 23376: template 23376: inline const ITV& 23376: Box::operator[](const dimension_type k) const { 23376: ((void) 0); 23376: return seq[k]; 23376: } 23376: 23376: template 23376: inline const ITV& 23376: Box::get_interval(const Variable var) const { 23376: if (space_dimension() < var.space_dimension()) { 23376: throw_dimension_incompatible("get_interval(v)", "v", var); 23376: } 23376: if (is_empty()) { 23376: static ITV empty_interval(EMPTY); 23376: return empty_interval; 23376: } 23376: 23376: return seq[var.id()]; 23376: } 23376: 23376: template 23376: inline void 23376: Box::set_interval(const Variable var, const ITV& i) { 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim < var.space_dimension()) { 23376: throw_dimension_incompatible("set_interval(v, i)", "v", var); 23376: } 23376: 23376: if (is_empty() && space_dim >= 2) { 23376: 23376: 23376: return; 23376: } 23376: seq[var.id()] = i; 23376: reset_empty_up_to_date(); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::is_empty() const { 23376: return marked_empty() || check_empty(); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::bounds_from_above(const Linear_Expression& expr) const { 23376: return bounds(expr, true); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::bounds_from_below(const Linear_Expression& expr) const { 23376: return bounds(expr, false); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, 23376: bool& maximum) const { 23376: return max_min(expr, true, sup_n, sup_d, maximum); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum, 23376: Generator& g) const { 23376: return max_min(expr, true, sup_n, sup_d, maximum, g); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, 23376: bool& minimum) const { 23376: return max_min(expr, false, inf_n, inf_d, minimum); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum, 23376: Generator& g) const { 23376: return max_min(expr, false, inf_n, inf_d, minimum, g); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::strictly_contains(const Box& y) const { 23376: const Box& x = *this; 23376: return x.contains(y) && !y.contains(x); 23376: } 23376: 23376: template 23376: inline void 23376: Box::expand_space_dimension(const Variable var, 23376: const dimension_type m) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: if (var.space_dimension() > space_dim) { 23376: throw_dimension_incompatible("expand_space_dimension(v, m)", "v", var); 23376: } 23376: 23376: 23376: 23376: if (m > max_space_dimension() - space_dim) { 23376: throw_invalid_argument("expand_dimension(v, m)", 23376: "adding m new space dimensions exceeds " 23376: "the maximum allowed space dimension"); 23376: } 23376: 23376: 23376: 23376: seq.insert(seq.end(), m, seq[var.id()]); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline bool 23376: operator!=(const Box& x, const Box& y) { 23376: return !(x == y); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::has_lower_bound(const Variable var, 23376: Coefficient& n, Coefficient& d, bool& closed) const { 23376: 23376: 23376: ((void) 0); 23376: const dimension_type k = var.id(); 23376: ((void) 0); 23376: const ITV& seq_k = seq[k]; 23376: 23376: if (seq_k.lower_is_boundary_infinity()) { 23376: return false; 23376: } 23376: closed = !seq_k.lower_is_open(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lr; mpq_class& lr = holder_lr.item(); 23376: assign_r(lr, seq_k.lower(), ROUND_NOT_NEEDED); 23376: n = lr.get_num(); 23376: d = lr.get_den(); 23376: 23376: return true; 23376: } 23376: 23376: template 23376: inline bool 23376: Box::has_upper_bound(const Variable var, 23376: Coefficient& n, Coefficient& d, bool& closed) const { 23376: 23376: 23376: ((void) 0); 23376: const dimension_type k = var.id(); 23376: ((void) 0); 23376: const ITV& seq_k = seq[k]; 23376: 23376: if (seq_k.upper_is_boundary_infinity()) { 23376: return false; 23376: } 23376: 23376: closed = !seq_k.upper_is_open(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_ur; mpq_class& ur = holder_ur.item(); 23376: assign_r(ur, seq_k.upper(), ROUND_NOT_NEEDED); 23376: n = ur.get_num(); 23376: d = ur.get_den(); 23376: 23376: return true; 23376: } 23376: 23376: template 23376: inline void 23376: Box::add_constraint(const Constraint& c) { 23376: const dimension_type c_space_dim = c.space_dimension(); 23376: 23376: if (c_space_dim > space_dimension()) { 23376: throw_dimension_incompatible("add_constraint(c)", c); 23376: } 23376: 23376: add_constraint_no_check(c); 23376: } 23376: 23376: template 23376: inline void 23376: Box::add_constraints(const Constraint_System& cs) { 23376: 23376: if (cs.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("add_constraints(cs)", cs); 23376: } 23376: 23376: add_constraints_no_check(cs); 23376: } 23376: 23376: template 23376: inline void 23376: Box::add_recycled_constraints(Constraint_System& cs) { 23376: add_constraints(cs); 23376: } 23376: 23376: template 23376: inline void 23376: Box::add_congruence(const Congruence& cg) { 23376: const dimension_type cg_space_dim = cg.space_dimension(); 23376: 23376: if (cg_space_dim > space_dimension()) { 23376: throw_dimension_incompatible("add_congruence(cg)", cg); 23376: } 23376: 23376: add_congruence_no_check(cg); 23376: } 23376: 23376: template 23376: inline void 23376: Box::add_congruences(const Congruence_System& cgs) { 23376: if (cgs.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("add_congruences(cgs)", cgs); 23376: } 23376: add_congruences_no_check(cgs); 23376: } 23376: 23376: template 23376: inline void 23376: Box::add_recycled_congruences(Congruence_System& cgs) { 23376: add_congruences(cgs); 23376: } 23376: 23376: template 23376: inline bool 23376: Box::can_recycle_constraint_systems() { 23376: return false; 23376: } 23376: 23376: template 23376: inline bool 23376: Box::can_recycle_congruence_systems() { 23376: return false; 23376: } 23376: 23376: template 23376: inline void 23376: Box::widening_assign(const Box& y, unsigned* tp) { 23376: CC76_widening_assign(y, tp); 23376: } 23376: 23376: template 23376: inline Congruence_System 23376: Box::minimized_congruences() const { 23376: 23376: return congruences(); 23376: } 23376: 23376: template 23376: inline I_Result 23376: Box 23376: ::refine_interval_no_check(ITV& itv, 23376: const Constraint::Type type, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom) { 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: assign_r(q.get_num(), numer, ROUND_NOT_NEEDED); 23376: assign_r(q.get_den(), denom, ROUND_NOT_NEEDED); 23376: q.canonicalize(); 23376: 23376: q = -q; 23376: 23376: Relation_Symbol rel_sym; 23376: switch (type) { 23376: case Constraint::EQUALITY: 23376: rel_sym = EQUAL; 23376: break; 23376: case Constraint::NONSTRICT_INEQUALITY: 23376: rel_sym = (denom > 0) ? GREATER_OR_EQUAL : LESS_OR_EQUAL; 23376: break; 23376: case Constraint::STRICT_INEQUALITY: 23376: rel_sym = (denom > 0) ? GREATER_THAN : LESS_THAN; 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return I_ANY; 23376: } 23376: I_Result res = itv.add_constraint(i_constraint(rel_sym, q)); 23376: ((void) 0); 23376: return res; 23376: } 23376: 23376: template 23376: inline void 23376: Box 23376: ::add_interval_constraint_no_check(const dimension_type var_id, 23376: const Constraint::Type type, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom) { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: refine_interval_no_check(seq[var_id], type, numer, denom); 23376: 23376: 23376: 23376: reset_empty_up_to_date(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Box::refine_with_constraint(const Constraint& c) { 23376: const dimension_type c_space_dim = c.space_dimension(); 23376: 23376: if (c_space_dim > space_dimension()) { 23376: throw_dimension_incompatible("refine_with_constraint(c)", c); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: refine_no_check(c); 23376: } 23376: 23376: template 23376: inline void 23376: Box::refine_with_constraints(const Constraint_System& cs) { 23376: 23376: if (cs.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("refine_with_constraints(cs)", cs); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: refine_no_check(cs); 23376: } 23376: 23376: template 23376: inline void 23376: Box::refine_with_congruence(const Congruence& cg) { 23376: const dimension_type cg_space_dim = cg.space_dimension(); 23376: 23376: if (cg_space_dim > space_dimension()) { 23376: throw_dimension_incompatible("refine_with_congruence(cg)", cg); 23376: } 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: refine_no_check(cg); 23376: } 23376: 23376: template 23376: inline void 23376: Box::refine_with_congruences(const Congruence_System& cgs) { 23376: 23376: if (cgs.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("refine_with_congruences(cgs)", cgs); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: refine_no_check(cgs); 23376: } 23376: 23376: template 23376: inline void 23376: Box::propagate_constraint(const Constraint& c) { 23376: const dimension_type c_space_dim = c.space_dimension(); 23376: 23376: if (c_space_dim > space_dimension()) { 23376: throw_dimension_incompatible("propagate_constraint(c)", c); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: propagate_constraint_no_check(c); 23376: } 23376: 23376: template 23376: inline void 23376: Box::propagate_constraints(const Constraint_System& cs, 23376: const dimension_type max_iterations) { 23376: 23376: if (cs.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("propagate_constraints(cs)", cs); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: propagate_constraints_no_check(cs, max_iterations); 23376: } 23376: 23376: template 23376: inline void 23376: Box::unconstrain(const Variable var) { 23376: const dimension_type var_id = var.id(); 23376: 23376: if (space_dimension() < var_id + 1) { 23376: throw_dimension_incompatible("unconstrain(var)", var_id + 1); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: ITV& seq_var = seq[var_id]; 23376: if (seq_var.is_empty()) { 23376: set_empty(); 23376: } 23376: else { 23376: seq_var.assign(UNIVERSE); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return l_m_distance_assign > 23376: (r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return rectilinear_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: const Rounding_Dir dir) { 23376: 23376: 23376: return Parma_Polyhedra_Library 23376: ::rectilinear_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return l_m_distance_assign > 23376: (r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return euclidean_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: const Rounding_Dir dir) { 23376: 23376: 23376: return Parma_Polyhedra_Library 23376: ::euclidean_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return l_m_distance_assign > 23376: (r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return l_infinity_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Box& x, 23376: const Box& y, 23376: const Rounding_Dir dir) { 23376: 23376: 23376: return Parma_Polyhedra_Library 23376: ::l_infinity_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: template 23376: inline void 23376: swap(Box& x, Box& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 2286 "../../src/Box_defs.hh" 2 23376: # 1 "../../src/Box_templates.hh" 1 23376: # 30 "../../src/Box_templates.hh" 23376: # 1 "../../src/Generator_System_defs.hh" 1 23376: # 33 "../../src/Generator_System_defs.hh" 23376: # 1 "../../src/Poly_Con_Relation_defs.hh" 1 23376: # 31 "../../src/Poly_Con_Relation_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Poly_Con_Relation& x, const Poly_Con_Relation& y); 23376: 23376: 23376: 23376: bool operator!=(const Poly_Con_Relation& x, const Poly_Con_Relation& y); 23376: 23376: 23376: 23376: Poly_Con_Relation operator&&(const Poly_Con_Relation& x, 23376: const Poly_Con_Relation& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Con_Relation operator-(const Poly_Con_Relation& x, 23376: const Poly_Con_Relation& y); 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Poly_Con_Relation& r); 23376: 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: class Parma_Polyhedra_Library::Poly_Con_Relation { 23376: private: 23376: 23376: typedef unsigned int flags_t; 23376: 23376: 23376: 23376: static const flags_t NOTHING = 0U; 23376: static const flags_t IS_DISJOINT = 1U << 0; 23376: static const flags_t STRICTLY_INTERSECTS = 1U << 1; 23376: static const flags_t IS_INCLUDED = 1U << 2; 23376: static const flags_t SATURATES = 1U << 3; 23376: 23376: 23376: 23376: static const flags_t EVERYTHING 23376: = IS_DISJOINT 23376: | STRICTLY_INTERSECTS 23376: | IS_INCLUDED 23376: | SATURATES; 23376: 23376: 23376: flags_t flags; 23376: 23376: 23376: static bool implies(flags_t x, flags_t y); 23376: 23376: 23376: Poly_Con_Relation(flags_t mask); 23376: 23376: friend bool 23376: operator==(const Poly_Con_Relation& x, const Poly_Con_Relation& y); 23376: friend bool 23376: operator!=(const Poly_Con_Relation& x, const Poly_Con_Relation& y); 23376: 23376: friend Poly_Con_Relation 23376: operator&&(const Poly_Con_Relation& x, const Poly_Con_Relation& y); 23376: 23376: friend Poly_Con_Relation 23376: operator-(const Poly_Con_Relation& x, const Poly_Con_Relation& y); 23376: 23376: friend std::ostream& 23376: Parma_Polyhedra_Library:: 23376: IO_Operators::operator<<(std::ostream& s, const Poly_Con_Relation& r); 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: flags_t get_flags() const; 23376: 23376: public: 23376: 23376: static Poly_Con_Relation nothing(); 23376: 23376: 23376: 23376: 23376: 23376: static Poly_Con_Relation is_disjoint(); 23376: 23376: 23376: 23376: 23376: 23376: static Poly_Con_Relation strictly_intersects(); 23376: 23376: 23376: 23376: 23376: 23376: static Poly_Con_Relation is_included(); 23376: 23376: 23376: 23376: 23376: 23376: static Poly_Con_Relation saturates(); 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: bool implies(const Poly_Con_Relation& y) const; 23376: 23376: 23376: bool OK() const; 23376: }; 23376: 23376: # 1 "../../src/Poly_Con_Relation_inlines.hh" 1 23376: # 27 "../../src/Poly_Con_Relation_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Poly_Con_Relation::Poly_Con_Relation(flags_t mask) 23376: : flags(mask) { 23376: } 23376: 23376: inline Poly_Con_Relation::flags_t 23376: Poly_Con_Relation::get_flags() const { 23376: return flags; 23376: } 23376: 23376: inline Poly_Con_Relation 23376: Poly_Con_Relation::nothing() { 23376: return Poly_Con_Relation(NOTHING); 23376: } 23376: 23376: inline Poly_Con_Relation 23376: Poly_Con_Relation::is_disjoint() { 23376: return Poly_Con_Relation(IS_DISJOINT); 23376: } 23376: 23376: inline Poly_Con_Relation 23376: Poly_Con_Relation::strictly_intersects() { 23376: return Poly_Con_Relation(STRICTLY_INTERSECTS); 23376: } 23376: 23376: inline Poly_Con_Relation 23376: Poly_Con_Relation::is_included() { 23376: return Poly_Con_Relation(IS_INCLUDED); 23376: } 23376: 23376: inline Poly_Con_Relation 23376: Poly_Con_Relation::saturates() { 23376: return Poly_Con_Relation(SATURATES); 23376: } 23376: 23376: inline bool 23376: Poly_Con_Relation::implies(flags_t x, flags_t y) { 23376: return (x & y) == y; 23376: } 23376: 23376: inline bool 23376: Poly_Con_Relation::implies(const Poly_Con_Relation& y) const { 23376: return implies(flags, y.flags); 23376: } 23376: 23376: 23376: inline bool 23376: operator==(const Poly_Con_Relation& x, const Poly_Con_Relation& y) { 23376: return x.flags == y.flags; 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Poly_Con_Relation& x, const Poly_Con_Relation& y) { 23376: return x.flags != y.flags; 23376: } 23376: 23376: 23376: inline Poly_Con_Relation 23376: operator&&(const Poly_Con_Relation& x, const Poly_Con_Relation& y) { 23376: return Poly_Con_Relation(x.flags | y.flags); 23376: } 23376: 23376: 23376: inline Poly_Con_Relation 23376: operator-(const Poly_Con_Relation& x, const Poly_Con_Relation& y) { 23376: return Poly_Con_Relation(x.flags & ~y.flags); 23376: } 23376: 23376: } 23376: # 165 "../../src/Poly_Con_Relation_defs.hh" 2 23376: # 34 "../../src/Generator_System_defs.hh" 2 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Generator_System& gs); 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Generator_System& x, const Generator_System& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const Generator_System& x, const Generator_System& y); 23376: 23376: 23376: void 23376: swap(Generator_System& x, Generator_System& y); 23376: 23376: } 23376: # 188 "../../src/Generator_System_defs.hh" 23376: class Parma_Polyhedra_Library::Generator_System { 23376: public: 23376: typedef Generator row_type; 23376: 23376: static const Representation default_representation = SPARSE; 23376: 23376: 23376: Generator_System(Representation r = default_representation); 23376: 23376: 23376: explicit Generator_System(const Generator& g, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: Generator_System(const Generator_System& gs); 23376: 23376: 23376: Generator_System(const Generator_System& gs, Representation r); 23376: 23376: 23376: ~Generator_System(); 23376: 23376: 23376: Generator_System& operator=(const Generator_System& y); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: void set_space_dimension(dimension_type space_dim); 23376: 23376: 23376: 23376: 23376: 23376: void clear(); 23376: 23376: 23376: 23376: 23376: 23376: void insert(const Generator& g); 23376: 23376: 23376: 23376: 23376: 23376: void insert(Generator& g, Recycle_Input); 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: 23376: 23376: static const Generator_System& zero_dim_univ(); 23376: 23376: typedef Generator_System_const_iterator const_iterator; 23376: 23376: 23376: bool empty() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: const_iterator end() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: # 287 "../../src/Generator_System_defs.hh" 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: void m_swap(Generator_System& y); 23376: 23376: private: 23376: 23376: bool has_no_rows() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: 23376: 23376: 23376: void shift_space_dimensions(Variable v, dimension_type n); 23376: # 326 "../../src/Generator_System_defs.hh" 23376: void permute_space_dimensions(const std::vector& cycle); 23376: 23376: 23376: void swap_space_dimensions(Variable v1, Variable v2); 23376: 23376: dimension_type num_rows() const; 23376: # 346 "../../src/Generator_System_defs.hh" 23376: void add_universe_rows_and_space_dimensions(dimension_type n); 23376: 23376: Topology topology() const; 23376: 23376: 23376: dimension_type first_pending_row() const; 23376: 23376: 23376: void unset_pending_rows(); 23376: 23376: 23376: void set_sorted(bool b); 23376: 23376: 23376: bool is_sorted() const; 23376: 23376: 23376: void set_index_first_pending_row(dimension_type i); 23376: 23376: 23376: 23376: 23376: 23376: bool is_necessarily_closed() const; 23376: 23376: 23376: void assign_with_pending(const Generator_System& y); 23376: 23376: 23376: dimension_type num_pending_rows() const; 23376: 23376: 23376: 23376: 23376: 23376: void sort_pending_and_remove_duplicates(); 23376: # 390 "../../src/Generator_System_defs.hh" 23376: void sort_and_remove_with_sat(Bit_Matrix& sat); 23376: 23376: 23376: 23376: 23376: 23376: void sort_rows(); 23376: 23376: 23376: 23376: 23376: 23376: bool check_sorted() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type num_lines_or_equalities() const; 23376: # 418 "../../src/Generator_System_defs.hh" 23376: void remove_row(dimension_type i, bool keep_sorted = false); 23376: # 428 "../../src/Generator_System_defs.hh" 23376: void remove_rows(dimension_type first, dimension_type last, 23376: bool keep_sorted = false); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_rows(const std::vector& indexes); 23376: 23376: 23376: void remove_trailing_rows(dimension_type n); 23376: # 454 "../../src/Generator_System_defs.hh" 23376: dimension_type gauss(dimension_type n_lines_or_equalities); 23376: # 466 "../../src/Generator_System_defs.hh" 23376: void back_substitute(dimension_type n_lines_or_equalities); 23376: 23376: 23376: void strong_normalize(); 23376: # 479 "../../src/Generator_System_defs.hh" 23376: void merge_rows_assign(const Generator_System& y); 23376: 23376: 23376: 23376: 23376: 23376: void insert(const Generator_System& y); 23376: 23376: 23376: void insert_pending(const Generator_System& r); 23376: 23376: 23376: 23376: 23376: 23376: static const Generator_System* zero_dim_univ_p; 23376: 23376: friend class Generator_System_const_iterator; 23376: 23376: 23376: explicit Generator_System(Topology topol, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: 23376: 23376: 23376: Generator_System(Topology topol, dimension_type space_dim, 23376: Representation r = default_representation); 23376: # 517 "../../src/Generator_System_defs.hh" 23376: bool adjust_topology_and_space_dimension(Topology new_topology, 23376: dimension_type new_space_dim); 23376: # 527 "../../src/Generator_System_defs.hh" 23376: void add_corresponding_points(); 23376: 23376: 23376: 23376: 23376: 23376: bool has_points() const; 23376: # 542 "../../src/Generator_System_defs.hh" 23376: void add_corresponding_closure_points(); 23376: # 554 "../../src/Generator_System_defs.hh" 23376: bool has_closure_points() const; 23376: 23376: 23376: 23376: void convert_into_non_necessarily_closed(); 23376: 23376: 23376: const Generator& operator[](dimension_type k) const; 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Poly_Con_Relation 23376: relation_with(const Constraint& c) const; 23376: 23376: 23376: bool satisfied_by_all_generators(const Constraint& c) const; 23376: 23376: 23376: 23376: 23376: 23376: bool satisfied_by_all_generators_C(const Constraint& c) const; 23376: 23376: 23376: 23376: 23376: 23376: bool satisfied_by_all_generators_NNC(const Constraint& c) const; 23376: # 612 "../../src/Generator_System_defs.hh" 23376: void affine_image(Variable v, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator); 23376: 23376: 23376: dimension_type num_lines() const; 23376: 23376: 23376: dimension_type num_rays() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_invalid_lines_and_rays(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void simplify(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void insert_pending(const Generator& g); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void insert_pending(Generator& g, Recycle_Input); 23376: 23376: Linear_System sys; 23376: 23376: friend bool 23376: operator==(const Generator_System& x, const Generator_System& y); 23376: 23376: friend class Polyhedron; 23376: }; 23376: # 680 "../../src/Generator_System_defs.hh" 23376: class Parma_Polyhedra_Library::Generator_System_const_iterator 23376: : public std::iterator { 23376: public: 23376: 23376: Generator_System_const_iterator(); 23376: 23376: 23376: Generator_System_const_iterator(const Generator_System_const_iterator& y); 23376: 23376: 23376: ~Generator_System_const_iterator(); 23376: 23376: 23376: Generator_System_const_iterator& operator=(const Generator_System_const_iterator& y); 23376: 23376: 23376: const Generator& operator*() const; 23376: 23376: 23376: const Generator* operator->() const; 23376: 23376: 23376: Generator_System_const_iterator& operator++(); 23376: 23376: 23376: Generator_System_const_iterator operator++(int); 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Generator_System_const_iterator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const Generator_System_const_iterator& y) const; 23376: 23376: private: 23376: friend class Generator_System; 23376: 23376: 23376: Linear_System::const_iterator i; 23376: 23376: 23376: const Linear_System* gsp; 23376: 23376: 23376: Generator_System_const_iterator(const Linear_System::const_iterator& iter, 23376: const Generator_System& gsys); 23376: 23376: 23376: 23376: 23376: 23376: void skip_forward(); 23376: }; 23376: # 31 "../../src/Box_templates.hh" 2 23376: # 1 "../../src/Generator_System_inlines.hh" 1 23376: # 29 "../../src/Generator_System_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Generator_System::Generator_System(Representation r) 23376: : sys(NECESSARILY_CLOSED, r) { 23376: } 23376: 23376: inline 23376: Generator_System::Generator_System(const Generator& g, Representation r) 23376: : sys(g.topology(), r) { 23376: sys.insert(g); 23376: } 23376: 23376: inline 23376: Generator_System::Generator_System(const Generator_System& gs) 23376: : sys(gs.sys) { 23376: } 23376: 23376: inline 23376: Generator_System::Generator_System(const Generator_System& gs, 23376: Representation r) 23376: : sys(gs.sys, r) { 23376: } 23376: 23376: inline 23376: Generator_System::Generator_System(const Topology topol, Representation r) 23376: : sys(topol, r) { 23376: } 23376: 23376: inline 23376: Generator_System::Generator_System(const Topology topol, 23376: const dimension_type space_dim, 23376: Representation r) 23376: : sys(topol, space_dim, r) { 23376: } 23376: 23376: inline 23376: Generator_System::~Generator_System() { 23376: } 23376: 23376: inline Generator_System& 23376: Generator_System::operator=(const Generator_System& y) { 23376: Generator_System tmp = y; 23376: swap(*this, tmp); 23376: return *this; 23376: } 23376: 23376: inline Representation 23376: Generator_System::representation() const { 23376: return sys.representation(); 23376: } 23376: 23376: inline void 23376: Generator_System::set_representation(Representation r) { 23376: sys.set_representation(r); 23376: } 23376: 23376: inline dimension_type 23376: Generator_System::max_space_dimension() { 23376: return Linear_System::max_space_dimension(); 23376: } 23376: 23376: inline dimension_type 23376: Generator_System::space_dimension() const { 23376: return sys.space_dimension(); 23376: } 23376: 23376: inline void 23376: Generator_System::set_space_dimension(dimension_type space_dim) { 23376: const dimension_type old_space_dim = space_dimension(); 23376: sys.set_space_dimension_no_ok(space_dim); 23376: 23376: if (space_dim < old_space_dim) { 23376: 23376: remove_invalid_lines_and_rays(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Generator_System::clear() { 23376: sys.clear(); 23376: } 23376: 23376: inline const Generator& 23376: Generator_System::operator[](const dimension_type k) const { 23376: return sys[k]; 23376: } 23376: 23376: inline void 23376: Generator_System 23376: ::remove_space_dimensions(const Variables_Set& vars) { 23376: sys.remove_space_dimensions(vars); 23376: } 23376: 23376: inline void 23376: Generator_System 23376: ::shift_space_dimensions(Variable v, dimension_type n) { 23376: sys.shift_space_dimensions(v, n); 23376: } 23376: 23376: inline void 23376: Generator_System 23376: ::permute_space_dimensions(const std::vector& cycle) { 23376: sys.permute_space_dimensions(cycle); 23376: } 23376: 23376: inline void 23376: Generator_System 23376: ::swap_space_dimensions(Variable v1, Variable v2) { 23376: sys.swap_space_dimensions(v1, v2); 23376: } 23376: 23376: inline dimension_type 23376: Generator_System::num_rows() const { 23376: return sys.num_rows(); 23376: } 23376: 23376: inline void 23376: Generator_System::add_universe_rows_and_space_dimensions(dimension_type n) { 23376: sys.add_universe_rows_and_space_dimensions(n); 23376: } 23376: 23376: inline Topology 23376: Generator_System::topology() const { 23376: return sys.topology(); 23376: } 23376: 23376: inline dimension_type 23376: Generator_System::first_pending_row() const { 23376: return sys.first_pending_row(); 23376: } 23376: 23376: inline void 23376: Generator_System::unset_pending_rows() { 23376: sys.unset_pending_rows(); 23376: } 23376: 23376: inline void 23376: Generator_System::set_sorted(bool b) { 23376: sys.set_sorted(b); 23376: } 23376: 23376: inline bool 23376: Generator_System::is_sorted() const { 23376: return sys.is_sorted(); 23376: } 23376: 23376: inline void 23376: Generator_System::set_index_first_pending_row(dimension_type i) { 23376: sys.set_index_first_pending_row(i); 23376: } 23376: 23376: inline bool 23376: Generator_System::is_necessarily_closed() const { 23376: return sys.is_necessarily_closed(); 23376: } 23376: 23376: inline void 23376: Generator_System::assign_with_pending(const Generator_System& y) { 23376: sys.assign_with_pending(y.sys); 23376: } 23376: 23376: inline dimension_type 23376: Generator_System::num_pending_rows() const { 23376: return sys.num_pending_rows(); 23376: } 23376: 23376: inline void 23376: Generator_System::sort_pending_and_remove_duplicates() { 23376: return sys.sort_pending_and_remove_duplicates(); 23376: } 23376: 23376: inline void 23376: Generator_System::sort_and_remove_with_sat(Bit_Matrix& sat) { 23376: sys.sort_and_remove_with_sat(sat); 23376: } 23376: 23376: inline void 23376: Generator_System::sort_rows() { 23376: sys.sort_rows(); 23376: } 23376: 23376: inline bool 23376: Generator_System::check_sorted() const { 23376: return sys.check_sorted(); 23376: } 23376: 23376: inline dimension_type 23376: Generator_System::num_lines_or_equalities() const { 23376: return sys.num_lines_or_equalities(); 23376: } 23376: 23376: inline void 23376: Generator_System::remove_row(dimension_type i, bool keep_sorted) { 23376: sys.remove_row(i, keep_sorted); 23376: } 23376: 23376: inline void 23376: Generator_System::remove_rows(dimension_type first, dimension_type last, 23376: bool keep_sorted) { 23376: sys.remove_rows(first, last, keep_sorted); 23376: } 23376: 23376: inline void 23376: Generator_System::remove_rows(const std::vector& indexes) { 23376: sys.remove_rows(indexes); 23376: } 23376: 23376: inline void 23376: Generator_System::remove_trailing_rows(dimension_type n) { 23376: sys.remove_trailing_rows(n); 23376: } 23376: 23376: inline dimension_type 23376: Generator_System::gauss(dimension_type n_lines_or_equalities) { 23376: return sys.gauss(n_lines_or_equalities); 23376: } 23376: 23376: inline void 23376: Generator_System::back_substitute(dimension_type n_lines_or_equalities) { 23376: sys.back_substitute(n_lines_or_equalities); 23376: } 23376: 23376: inline void 23376: Generator_System::strong_normalize() { 23376: sys.strong_normalize(); 23376: } 23376: 23376: inline void 23376: Generator_System::merge_rows_assign(const Generator_System& y) { 23376: sys.merge_rows_assign(y.sys); 23376: } 23376: 23376: inline void 23376: Generator_System::insert(const Generator_System& y) { 23376: sys.insert(y.sys); 23376: } 23376: 23376: inline void 23376: Generator_System::insert_pending(const Generator_System& r) { 23376: sys.insert_pending(r.sys); 23376: } 23376: 23376: inline bool 23376: operator==(const Generator_System& x, const Generator_System& y) { 23376: return x.sys == y.sys; 23376: } 23376: 23376: inline bool 23376: operator!=(const Generator_System& x, const Generator_System& y) { 23376: return !(x == y); 23376: } 23376: 23376: inline 23376: Generator_System_const_iterator::Generator_System_const_iterator() 23376: : i(), gsp(0) { 23376: } 23376: 23376: inline 23376: Generator_System_const_iterator::Generator_System_const_iterator(const Generator_System_const_iterator& y) 23376: : i(y.i), gsp(y.gsp) { 23376: } 23376: 23376: inline 23376: Generator_System_const_iterator::~Generator_System_const_iterator() { 23376: } 23376: 23376: inline 23376: Generator_System_const_iterator& 23376: Generator_System_const_iterator::operator=(const Generator_System_const_iterator& y) { 23376: i = y.i; 23376: gsp = y.gsp; 23376: return *this; 23376: } 23376: 23376: inline const Generator& 23376: Generator_System_const_iterator::operator*() const { 23376: return *i; 23376: } 23376: 23376: inline const Generator* 23376: Generator_System_const_iterator::operator->() const { 23376: return i.operator->(); 23376: } 23376: 23376: inline Generator_System_const_iterator& 23376: Generator_System_const_iterator::operator++() { 23376: ++i; 23376: if (!gsp->is_necessarily_closed()) { 23376: skip_forward(); 23376: } 23376: return *this; 23376: } 23376: 23376: inline Generator_System_const_iterator 23376: Generator_System_const_iterator::operator++(int) { 23376: const Generator_System_const_iterator tmp = *this; 23376: operator++(); 23376: return tmp; 23376: } 23376: 23376: inline bool 23376: Generator_System_const_iterator::operator==(const Generator_System_const_iterator& y) const { 23376: return i == y.i; 23376: } 23376: 23376: inline bool 23376: Generator_System_const_iterator::operator!=(const Generator_System_const_iterator& y) const { 23376: return i != y.i; 23376: } 23376: 23376: inline 23376: Generator_System_const_iterator:: 23376: Generator_System_const_iterator(const Linear_System::const_iterator& iter, 23376: const Generator_System& gs) 23376: : i(iter), gsp(&gs.sys) { 23376: } 23376: 23376: inline bool 23376: Generator_System::empty() const { 23376: return sys.has_no_rows(); 23376: } 23376: 23376: inline bool 23376: Generator_System::has_no_rows() const { 23376: return sys.has_no_rows(); 23376: } 23376: 23376: inline Generator_System::const_iterator 23376: Generator_System::begin() const { 23376: const_iterator i(sys.begin(), *this); 23376: if (!sys.is_necessarily_closed()) { 23376: i.skip_forward(); 23376: } 23376: return i; 23376: } 23376: 23376: inline Generator_System::const_iterator 23376: Generator_System::end() const { 23376: const const_iterator i(sys.end(), *this); 23376: return i; 23376: } 23376: 23376: inline const Generator_System& 23376: Generator_System::zero_dim_univ() { 23376: ((void) 0); 23376: return *zero_dim_univ_p; 23376: } 23376: 23376: inline void 23376: Generator_System::m_swap(Generator_System& y) { 23376: swap(sys, y.sys); 23376: } 23376: 23376: inline memory_size_type 23376: Generator_System::external_memory_in_bytes() const { 23376: return sys.external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Generator_System::total_memory_in_bytes() const { 23376: return external_memory_in_bytes() + sizeof(*this); 23376: } 23376: 23376: inline void 23376: Generator_System::simplify() { 23376: sys.simplify(); 23376: remove_invalid_lines_and_rays(); 23376: } 23376: 23376: 23376: inline void 23376: swap(Generator_System& x, Generator_System& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 32 "../../src/Box_templates.hh" 2 23376: 23376: # 1 "../../src/Poly_Gen_Relation_defs.hh" 1 23376: # 31 "../../src/Poly_Gen_Relation_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y); 23376: 23376: 23376: 23376: bool operator!=(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y); 23376: 23376: 23376: 23376: Poly_Gen_Relation operator&&(const Poly_Gen_Relation& x, 23376: const Poly_Gen_Relation& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Gen_Relation operator-(const Poly_Gen_Relation& x, 23376: const Poly_Gen_Relation& y); 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Poly_Gen_Relation& r); 23376: 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: class Parma_Polyhedra_Library::Poly_Gen_Relation { 23376: private: 23376: 23376: typedef unsigned int flags_t; 23376: 23376: 23376: 23376: static const flags_t NOTHING = 0U; 23376: static const flags_t SUBSUMES = 1U << 0; 23376: 23376: 23376: 23376: static const flags_t EVERYTHING 23376: = SUBSUMES; 23376: 23376: 23376: flags_t flags; 23376: 23376: 23376: static bool implies(flags_t x, flags_t y); 23376: 23376: 23376: Poly_Gen_Relation(flags_t mask); 23376: 23376: friend bool 23376: operator==(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y); 23376: friend bool 23376: operator!=(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y); 23376: 23376: friend Poly_Gen_Relation 23376: operator&&(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y); 23376: 23376: friend Poly_Gen_Relation 23376: operator-(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y); 23376: 23376: friend std::ostream& 23376: Parma_Polyhedra_Library:: 23376: IO_Operators::operator<<(std::ostream& s, const Poly_Gen_Relation& r); 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: 23376: flags_t get_flags() const; 23376: 23376: public: 23376: 23376: static Poly_Gen_Relation nothing(); 23376: 23376: 23376: static Poly_Gen_Relation subsumes(); 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: bool implies(const Poly_Gen_Relation& y) const; 23376: 23376: 23376: bool OK() const; 23376: }; 23376: 23376: # 1 "../../src/Poly_Gen_Relation_inlines.hh" 1 23376: # 27 "../../src/Poly_Gen_Relation_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Poly_Gen_Relation::Poly_Gen_Relation(flags_t mask) 23376: : flags(mask) { 23376: } 23376: 23376: inline Poly_Gen_Relation::flags_t 23376: Poly_Gen_Relation::get_flags() const { 23376: return flags; 23376: } 23376: 23376: inline Poly_Gen_Relation 23376: Poly_Gen_Relation::nothing() { 23376: return Poly_Gen_Relation(NOTHING); 23376: } 23376: 23376: inline Poly_Gen_Relation 23376: Poly_Gen_Relation::subsumes() { 23376: return Poly_Gen_Relation(SUBSUMES); 23376: } 23376: 23376: inline bool 23376: Poly_Gen_Relation::implies(flags_t x, flags_t y) { 23376: return (x & y) == y; 23376: } 23376: 23376: inline bool 23376: Poly_Gen_Relation::implies(const Poly_Gen_Relation& y) const { 23376: return implies(flags, y.flags); 23376: } 23376: 23376: 23376: inline bool 23376: operator==(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y) { 23376: return x.flags == y.flags; 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y) { 23376: return x.flags != y.flags; 23376: } 23376: 23376: 23376: inline Poly_Gen_Relation 23376: operator&&(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y) { 23376: return Poly_Gen_Relation(x.flags | y.flags); 23376: } 23376: 23376: 23376: inline Poly_Gen_Relation 23376: operator-(const Poly_Gen_Relation& x, const Poly_Gen_Relation& y) { 23376: return Poly_Gen_Relation(x.flags & ~y.flags); 23376: } 23376: 23376: } 23376: # 138 "../../src/Poly_Gen_Relation_defs.hh" 2 23376: # 34 "../../src/Box_templates.hh" 2 23376: # 1 "../../src/Polyhedron_defs.hh" 1 23376: # 45 "../../src/Polyhedron_defs.hh" 23376: # 1 "../../src/H79_Certificate_types.hh" 1 23376: # 16 "../../src/H79_Certificate_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class H79_Certificate; 23376: 23376: } 23376: # 46 "../../src/Polyhedron_defs.hh" 2 23376: # 54 "../../src/Polyhedron_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: # 67 "../../src/Polyhedron_defs.hh" 23376: std::ostream& 23376: operator<<(std::ostream& s, const Polyhedron& ph); 23376: 23376: } 23376: 23376: 23376: 23376: void swap(Polyhedron& x, Polyhedron& y); 23376: # 84 "../../src/Polyhedron_defs.hh" 23376: bool operator==(const Polyhedron& x, const Polyhedron& y); 23376: # 94 "../../src/Polyhedron_defs.hh" 23376: bool operator!=(const Polyhedron& x, const Polyhedron& y); 23376: 23376: namespace Interfaces { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_necessarily_closed_for_interfaces(const Polyhedron& ph); 23376: 23376: } 23376: 23376: } 23376: # 369 "../../src/Polyhedron_defs.hh" 23376: class Parma_Polyhedra_Library::Polyhedron { 23376: public: 23376: 23376: typedef Coefficient coefficient_type; 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: 23376: 23376: 23376: static bool can_recycle_constraint_systems(); 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: 23376: 23376: static bool can_recycle_congruence_systems(); 23376: 23376: protected: 23376: # 406 "../../src/Polyhedron_defs.hh" 23376: Polyhedron(Topology topol, 23376: dimension_type num_dimensions, 23376: Degenerate_Element kind); 23376: 23376: 23376: 23376: 23376: 23376: Polyhedron(const Polyhedron& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 430 "../../src/Polyhedron_defs.hh" 23376: Polyhedron(Topology topol, const Constraint_System& cs); 23376: # 451 "../../src/Polyhedron_defs.hh" 23376: Polyhedron(Topology topol, Constraint_System& cs, Recycle_Input dummy); 23376: # 467 "../../src/Polyhedron_defs.hh" 23376: Polyhedron(Topology topol, const Generator_System& gs); 23376: # 489 "../../src/Polyhedron_defs.hh" 23376: Polyhedron(Topology topol, Generator_System& gs, Recycle_Input dummy); 23376: # 505 "../../src/Polyhedron_defs.hh" 23376: template 23376: Polyhedron(Topology topol, const Box& box, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: Polyhedron& operator=(const Polyhedron& y); 23376: 23376: public: 23376: 23376: 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type affine_dimension() const; 23376: 23376: 23376: const Constraint_System& constraints() const; 23376: 23376: 23376: const Constraint_System& minimized_constraints() const; 23376: 23376: 23376: const Generator_System& generators() const; 23376: 23376: 23376: const Generator_System& minimized_generators() const; 23376: 23376: 23376: Congruence_System congruences() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Congruence_System minimized_congruences() const; 23376: # 558 "../../src/Polyhedron_defs.hh" 23376: Poly_Con_Relation relation_with(const Constraint& c) const; 23376: # 567 "../../src/Polyhedron_defs.hh" 23376: Poly_Gen_Relation relation_with(const Generator& g) const; 23376: # 576 "../../src/Polyhedron_defs.hh" 23376: Poly_Con_Relation relation_with(const Congruence& cg) const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_empty() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_universe() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_topologically_closed() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_disjoint_from(const Polyhedron& y) const; 23376: 23376: 23376: bool is_discrete() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_bounded() const; 23376: 23376: 23376: 23376: 23376: 23376: bool contains_integer_point() const; 23376: # 626 "../../src/Polyhedron_defs.hh" 23376: bool constrains(Variable var) const; 23376: # 635 "../../src/Polyhedron_defs.hh" 23376: bool bounds_from_above(const Linear_Expression& expr) const; 23376: # 644 "../../src/Polyhedron_defs.hh" 23376: bool bounds_from_below(const Linear_Expression& expr) const; 23376: # 670 "../../src/Polyhedron_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum) const; 23376: # 701 "../../src/Polyhedron_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum, 23376: Generator& g) const; 23376: # 729 "../../src/Polyhedron_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum) const; 23376: # 760 "../../src/Polyhedron_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum, 23376: Generator& g) const; 23376: # 792 "../../src/Polyhedron_defs.hh" 23376: bool frequency(const Linear_Expression& expr, 23376: Coefficient& freq_n, Coefficient& freq_d, 23376: Coefficient& val_n, Coefficient& val_d) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool contains(const Polyhedron& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool strictly_contains(const Polyhedron& y) const; 23376: # 829 "../../src/Polyhedron_defs.hh" 23376: bool OK(bool check_not_empty = false) const; 23376: # 848 "../../src/Polyhedron_defs.hh" 23376: void add_constraint(const Constraint& c); 23376: # 859 "../../src/Polyhedron_defs.hh" 23376: void add_generator(const Generator& g); 23376: # 870 "../../src/Polyhedron_defs.hh" 23376: void add_congruence(const Congruence& cg); 23376: # 884 "../../src/Polyhedron_defs.hh" 23376: void add_constraints(const Constraint_System& cs); 23376: # 902 "../../src/Polyhedron_defs.hh" 23376: void add_recycled_constraints(Constraint_System& cs); 23376: # 917 "../../src/Polyhedron_defs.hh" 23376: void add_generators(const Generator_System& gs); 23376: # 936 "../../src/Polyhedron_defs.hh" 23376: void add_recycled_generators(Generator_System& gs); 23376: # 950 "../../src/Polyhedron_defs.hh" 23376: void add_congruences(const Congruence_System& cgs); 23376: # 968 "../../src/Polyhedron_defs.hh" 23376: void add_recycled_congruences(Congruence_System& cgs); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void refine_with_constraint(const Constraint& c); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void refine_with_congruence(const Congruence& cg); 23376: # 996 "../../src/Polyhedron_defs.hh" 23376: void refine_with_constraints(const Constraint_System& cs); 23376: # 1008 "../../src/Polyhedron_defs.hh" 23376: void refine_with_congruences(const Congruence_System& cgs); 23376: # 1035 "../../src/Polyhedron_defs.hh" 23376: template 23376: void refine_with_linear_form_inequality( 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right, 23376: bool is_strict = false); 23376: # 1069 "../../src/Polyhedron_defs.hh" 23376: template 23376: void generalized_refine_with_linear_form_inequality( 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right, 23376: Relation_Symbol relsym); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void refine_fp_interval_abstract_store( 23376: Box< Interval >& store) 23376: const; 23376: # 1095 "../../src/Polyhedron_defs.hh" 23376: void unconstrain(Variable var); 23376: # 1109 "../../src/Polyhedron_defs.hh" 23376: void unconstrain(const Variables_Set& vars); 23376: # 1118 "../../src/Polyhedron_defs.hh" 23376: void intersection_assign(const Polyhedron& y); 23376: # 1127 "../../src/Polyhedron_defs.hh" 23376: void poly_hull_assign(const Polyhedron& y); 23376: 23376: 23376: void upper_bound_assign(const Polyhedron& y); 23376: # 1141 "../../src/Polyhedron_defs.hh" 23376: void poly_difference_assign(const Polyhedron& y); 23376: 23376: 23376: void difference_assign(const Polyhedron& y); 23376: # 1155 "../../src/Polyhedron_defs.hh" 23376: bool simplify_using_context_assign(const Polyhedron& y); 23376: # 1246 "../../src/Polyhedron_defs.hh" 23376: void affine_image(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1273 "../../src/Polyhedron_defs.hh" 23376: template 23376: void affine_form_image(Variable var, 23376: const Linear_Form >& lf); 23376: # 1364 "../../src/Polyhedron_defs.hh" 23376: void affine_preimage(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1395 "../../src/Polyhedron_defs.hh" 23376: void generalized_affine_image(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1427 "../../src/Polyhedron_defs.hh" 23376: void 23376: generalized_affine_preimage(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1454 "../../src/Polyhedron_defs.hh" 23376: void generalized_affine_image(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs); 23376: # 1478 "../../src/Polyhedron_defs.hh" 23376: void generalized_affine_preimage(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs); 23376: # 1508 "../../src/Polyhedron_defs.hh" 23376: void bounded_affine_image(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1540 "../../src/Polyhedron_defs.hh" 23376: void bounded_affine_preimage(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1554 "../../src/Polyhedron_defs.hh" 23376: void time_elapse_assign(const Polyhedron& y); 23376: # 1565 "../../src/Polyhedron_defs.hh" 23376: void positive_time_elapse_assign(const Polyhedron& y); 23376: # 1613 "../../src/Polyhedron_defs.hh" 23376: void wrap_assign(const Variables_Set& vars, 23376: Bounded_Integer_Type_Width w, 23376: Bounded_Integer_Type_Representation r, 23376: Bounded_Integer_Type_Overflow o, 23376: const Constraint_System* cs_p = 0, 23376: unsigned complexity_threshold = 16, 23376: bool wrap_individually = true); 23376: # 1632 "../../src/Polyhedron_defs.hh" 23376: void drop_some_non_integer_points(Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: # 1650 "../../src/Polyhedron_defs.hh" 23376: void drop_some_non_integer_points(const Variables_Set& vars, 23376: Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: 23376: 23376: void topological_closure_assign(); 23376: # 1673 "../../src/Polyhedron_defs.hh" 23376: void BHRZ03_widening_assign(const Polyhedron& y, unsigned* tp = 0); 23376: # 1696 "../../src/Polyhedron_defs.hh" 23376: void limited_BHRZ03_extrapolation_assign(const Polyhedron& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1721 "../../src/Polyhedron_defs.hh" 23376: void bounded_BHRZ03_extrapolation_assign(const Polyhedron& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1741 "../../src/Polyhedron_defs.hh" 23376: void H79_widening_assign(const Polyhedron& y, unsigned* tp = 0); 23376: 23376: 23376: void widening_assign(const Polyhedron& y, unsigned* tp = 0); 23376: # 1767 "../../src/Polyhedron_defs.hh" 23376: void limited_H79_extrapolation_assign(const Polyhedron& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1792 "../../src/Polyhedron_defs.hh" 23376: void bounded_H79_extrapolation_assign(const Polyhedron& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1826 "../../src/Polyhedron_defs.hh" 23376: void add_space_dimensions_and_embed(dimension_type m); 23376: # 1853 "../../src/Polyhedron_defs.hh" 23376: void add_space_dimensions_and_project(dimension_type m); 23376: # 1866 "../../src/Polyhedron_defs.hh" 23376: void concatenate_assign(const Polyhedron& y); 23376: # 1878 "../../src/Polyhedron_defs.hh" 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: # 1888 "../../src/Polyhedron_defs.hh" 23376: void remove_higher_space_dimensions(dimension_type new_dimension); 23376: # 1930 "../../src/Polyhedron_defs.hh" 23376: template 23376: void map_space_dimensions(const Partial_Function& pfunc); 23376: # 1954 "../../src/Polyhedron_defs.hh" 23376: void expand_space_dimension(Variable var, dimension_type m); 23376: # 1979 "../../src/Polyhedron_defs.hh" 23376: void fold_space_dimensions(const Variables_Set& vars, Variable dest); 23376: 23376: 23376: 23376: friend bool operator==(const Polyhedron& x, const Polyhedron& y); 23376: 23376: 23376: 23376: 23376: 23376: ~Polyhedron(); 23376: # 1998 "../../src/Polyhedron_defs.hh" 23376: void m_swap(Polyhedron& y); 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: int32_t hash_code() const; 23376: 23376: 23376: 23376: private: 23376: static const Representation default_con_sys_repr = DENSE; 23376: static const Representation default_gen_sys_repr = DENSE; 23376: 23376: 23376: Constraint_System con_sys; 23376: 23376: 23376: Generator_System gen_sys; 23376: 23376: 23376: Bit_Matrix sat_c; 23376: 23376: 23376: Bit_Matrix sat_g; 23376: 23376: 23376: # 1 "../../src/Ph_Status_idefs.hh" 1 23376: # 86 "../../src/Ph_Status_idefs.hh" 23376: class Status { 23376: public: 23376: 23376: Status(); 23376: 23376: 23376: 23376: bool test_zero_dim_univ() const; 23376: void reset_zero_dim_univ(); 23376: void set_zero_dim_univ(); 23376: 23376: bool test_empty() const; 23376: void reset_empty(); 23376: void set_empty(); 23376: 23376: bool test_c_up_to_date() const; 23376: void reset_c_up_to_date(); 23376: void set_c_up_to_date(); 23376: 23376: bool test_g_up_to_date() const; 23376: void reset_g_up_to_date(); 23376: void set_g_up_to_date(); 23376: 23376: bool test_c_minimized() const; 23376: void reset_c_minimized(); 23376: void set_c_minimized(); 23376: 23376: bool test_g_minimized() const; 23376: void reset_g_minimized(); 23376: void set_g_minimized(); 23376: 23376: bool test_sat_c_up_to_date() const; 23376: void reset_sat_c_up_to_date(); 23376: void set_sat_c_up_to_date(); 23376: 23376: bool test_sat_g_up_to_date() const; 23376: void reset_sat_g_up_to_date(); 23376: void set_sat_g_up_to_date(); 23376: 23376: bool test_c_pending() const; 23376: void reset_c_pending(); 23376: void set_c_pending(); 23376: 23376: bool test_g_pending() const; 23376: void reset_g_pending(); 23376: void set_g_pending(); 23376: 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: private: 23376: 23376: typedef unsigned int flags_t; 23376: 23376: 23376: 23376: static const flags_t ZERO_DIM_UNIV = 0U; 23376: static const flags_t EMPTY = 1U << 0; 23376: static const flags_t C_UP_TO_DATE = 1U << 1; 23376: static const flags_t G_UP_TO_DATE = 1U << 2; 23376: static const flags_t C_MINIMIZED = 1U << 3; 23376: static const flags_t G_MINIMIZED = 1U << 4; 23376: static const flags_t SAT_C_UP_TO_DATE = 1U << 5; 23376: static const flags_t SAT_G_UP_TO_DATE = 1U << 6; 23376: static const flags_t CS_PENDING = 1U << 7; 23376: static const flags_t GS_PENDING = 1U << 8; 23376: 23376: 23376: 23376: flags_t flags; 23376: 23376: 23376: Status(flags_t mask); 23376: 23376: 23376: bool test_all(flags_t mask) const; 23376: 23376: 23376: bool test_any(flags_t mask) const; 23376: 23376: 23376: void set(flags_t mask); 23376: 23376: 23376: void reset(flags_t mask); 23376: }; 23376: # 2043 "../../src/Polyhedron_defs.hh" 2 23376: 23376: 23376: 23376: Status status; 23376: 23376: 23376: dimension_type space_dim; 23376: 23376: 23376: Topology topology() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_necessarily_closed() const; 23376: 23376: friend bool 23376: Parma_Polyhedra_Library::Interfaces 23376: ::is_necessarily_closed_for_interfaces(const Polyhedron&); 23376: # 2071 "../../src/Polyhedron_defs.hh" 23376: void refine_no_check(const Constraint& c); 23376: # 2081 "../../src/Polyhedron_defs.hh" 23376: bool marked_empty() const; 23376: 23376: 23376: bool constraints_are_up_to_date() const; 23376: 23376: 23376: bool generators_are_up_to_date() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool constraints_are_minimized() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool generators_are_minimized() const; 23376: 23376: 23376: bool has_pending_constraints() const; 23376: 23376: 23376: bool has_pending_generators() const; 23376: 23376: 23376: 23376: 23376: 23376: bool has_something_pending() const; 23376: 23376: 23376: bool can_have_something_pending() const; 23376: 23376: 23376: 23376: 23376: 23376: bool sat_c_is_up_to_date() const; 23376: 23376: 23376: 23376: 23376: 23376: bool sat_g_is_up_to_date() const; 23376: # 2139 "../../src/Polyhedron_defs.hh" 23376: void set_zero_dim_univ(); 23376: 23376: 23376: 23376: 23376: 23376: void set_empty(); 23376: 23376: 23376: void set_constraints_up_to_date(); 23376: 23376: 23376: void set_generators_up_to_date(); 23376: 23376: 23376: void set_constraints_minimized(); 23376: 23376: 23376: void set_generators_minimized(); 23376: 23376: 23376: void set_constraints_pending(); 23376: 23376: 23376: void set_generators_pending(); 23376: 23376: 23376: void set_sat_c_up_to_date(); 23376: 23376: 23376: void set_sat_g_up_to_date(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void clear_empty(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void clear_constraints_up_to_date(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void clear_generators_up_to_date(); 23376: 23376: 23376: void clear_constraints_minimized(); 23376: 23376: 23376: void clear_generators_minimized(); 23376: 23376: 23376: void clear_pending_constraints(); 23376: 23376: 23376: void clear_pending_generators(); 23376: 23376: 23376: void clear_sat_c_up_to_date(); 23376: 23376: 23376: void clear_sat_g_up_to_date(); 23376: # 2227 "../../src/Polyhedron_defs.hh" 23376: bool process_pending() const; 23376: # 2237 "../../src/Polyhedron_defs.hh" 23376: bool process_pending_constraints() const; 23376: 23376: 23376: 23376: 23376: 23376: void process_pending_generators() const; 23376: # 2252 "../../src/Polyhedron_defs.hh" 23376: void remove_pending_to_obtain_constraints() const; 23376: # 2265 "../../src/Polyhedron_defs.hh" 23376: bool remove_pending_to_obtain_generators() const; 23376: # 2278 "../../src/Polyhedron_defs.hh" 23376: void update_constraints() const; 23376: # 2292 "../../src/Polyhedron_defs.hh" 23376: bool update_generators() const; 23376: # 2309 "../../src/Polyhedron_defs.hh" 23376: void update_sat_c() const; 23376: # 2326 "../../src/Polyhedron_defs.hh" 23376: void update_sat_g() const; 23376: # 2338 "../../src/Polyhedron_defs.hh" 23376: void obtain_sorted_constraints() const; 23376: # 2350 "../../src/Polyhedron_defs.hh" 23376: void obtain_sorted_generators() const; 23376: # 2360 "../../src/Polyhedron_defs.hh" 23376: void obtain_sorted_constraints_with_sat_c() const; 23376: # 2370 "../../src/Polyhedron_defs.hh" 23376: void obtain_sorted_generators_with_sat_g() const; 23376: # 2386 "../../src/Polyhedron_defs.hh" 23376: bool minimize() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool strongly_minimize_constraints() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool strongly_minimize_generators() const; 23376: 23376: 23376: Constraint_System simplified_constraints() const; 23376: 23376: 23376: 23376: enum Three_Valued_Boolean { 23376: TVB_TRUE, 23376: TVB_FALSE, 23376: TVB_DONT_KNOW 23376: }; 23376: 23376: 23376: Three_Valued_Boolean quick_equivalence_test(const Polyhedron& y) const; 23376: 23376: 23376: bool is_included_in(const Polyhedron& y) const; 23376: # 2438 "../../src/Polyhedron_defs.hh" 23376: bool bounds(const Linear_Expression& expr, bool from_above) const; 23376: # 2471 "../../src/Polyhedron_defs.hh" 23376: bool max_min(const Linear_Expression& expr, 23376: bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, bool& included, 23376: Generator& g) const; 23376: # 2483 "../../src/Polyhedron_defs.hh" 23376: void select_CH78_constraints(const Polyhedron& y, 23376: Constraint_System& cs_selection) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: void select_H79_constraints(const Polyhedron& y, 23376: Constraint_System& cs_selected, 23376: Constraint_System& cs_not_selected) const; 23376: 23376: bool BHRZ03_combining_constraints(const Polyhedron& y, 23376: const BHRZ03_Certificate& y_cert, 23376: const Polyhedron& H79, 23376: const Constraint_System& x_minus_H79_cs); 23376: 23376: bool BHRZ03_evolving_points(const Polyhedron& y, 23376: const BHRZ03_Certificate& y_cert, 23376: const Polyhedron& H79); 23376: 23376: bool BHRZ03_evolving_rays(const Polyhedron& y, 23376: const BHRZ03_Certificate& y_cert, 23376: const Polyhedron& H79); 23376: 23376: static void modify_according_to_evolution(Linear_Expression& ray, 23376: const Linear_Expression& x, 23376: const Linear_Expression& y); 23376: # 2542 "../../src/Polyhedron_defs.hh" 23376: template 23376: static void add_space_dimensions(Linear_System1& sys1, 23376: Linear_System2& sys2, 23376: Bit_Matrix& sat1, 23376: Bit_Matrix& sat2, 23376: dimension_type add_dim); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: static bool minimize(bool con_to_gen, 23376: Source_Linear_System& source, 23376: Dest_Linear_System& dest, 23376: Bit_Matrix& sat); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: static bool add_and_minimize(bool con_to_gen, 23376: Source_Linear_System1& source1, 23376: Dest_Linear_System& dest, 23376: Bit_Matrix& sat, 23376: const Source_Linear_System2& source2); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: static bool add_and_minimize(bool con_to_gen, 23376: Source_Linear_System& source, 23376: Dest_Linear_System& dest, 23376: Bit_Matrix& sat); 23376: 23376: 23376: 23376: template 23376: static dimension_type conversion(Source_Linear_System& source, 23376: dimension_type start, 23376: Dest_Linear_System& dest, 23376: Bit_Matrix& sat, 23376: dimension_type num_lines_or_equalities); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: static dimension_type simplify(Linear_System1& sys, Bit_Matrix& sat); 23376: # 2610 "../../src/Polyhedron_defs.hh" 23376: static dimension_type* simplify_num_saturators_p; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static size_t simplify_num_saturators_size; 23376: 23376: template friend class Parma_Polyhedra_Library::Box; 23376: template friend class Parma_Polyhedra_Library::BD_Shape; 23376: template friend class Parma_Polyhedra_Library::Octagonal_Shape; 23376: friend class Parma_Polyhedra_Library::Grid; 23376: friend class Parma_Polyhedra_Library::BHRZ03_Certificate; 23376: friend class Parma_Polyhedra_Library::H79_Certificate; 23376: 23376: protected: 23376: # 2644 "../../src/Polyhedron_defs.hh" 23376: bool BFT00_poly_hull_assign_if_exact(const Polyhedron& y); 23376: 23376: bool BHZ09_poly_hull_assign_if_exact(const Polyhedron& y); 23376: bool BHZ09_C_poly_hull_assign_if_exact(const Polyhedron& y); 23376: bool BHZ09_NNC_poly_hull_assign_if_exact(const Polyhedron& y); 23376: 23376: 23376: 23376: 23376: 23376: protected: 23376: void throw_invalid_argument(const char* method, const char* reason) const; 23376: 23376: void throw_topology_incompatible(const char* method, 23376: const char* ph_name, 23376: const Polyhedron& ph) const; 23376: void throw_topology_incompatible(const char* method, 23376: const char* c_name, 23376: const Constraint& c) const; 23376: void throw_topology_incompatible(const char* method, 23376: const char* g_name, 23376: const Generator& g) const; 23376: void throw_topology_incompatible(const char* method, 23376: const char* cs_name, 23376: const Constraint_System& cs) const; 23376: void throw_topology_incompatible(const char* method, 23376: const char* gs_name, 23376: const Generator_System& gs) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const char* other_name, 23376: dimension_type other_dim) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* ph_name, 23376: const Polyhedron& ph) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* le_name, 23376: const Linear_Expression& le) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* c_name, 23376: const Constraint& c) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* g_name, 23376: const Generator& g) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* cg_name, 23376: const Congruence& cg) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* cs_name, 23376: const Constraint_System& cs) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* gs_name, 23376: const Generator_System& gs) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* cgs_name, 23376: const Congruence_System& cgs) const; 23376: template 23376: void throw_dimension_incompatible(const char* method, 23376: const char* lf_name, 23376: const Linear_Form& lf) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* var_name, 23376: Variable var) const; 23376: void throw_dimension_incompatible(const char* method, 23376: dimension_type required_space_dim) const; 23376: 23376: 23376: 23376: 23376: static dimension_type 23376: check_space_dimension_overflow(dimension_type dim, dimension_type max, 23376: const Topology topol, 23376: const char* method, const char* reason); 23376: 23376: static dimension_type 23376: check_space_dimension_overflow(dimension_type dim, const Topology topol, 23376: const char* method, const char* reason); 23376: 23376: template 23376: static Object& 23376: check_obj_space_dimension_overflow(Object& input, Topology topol, 23376: const char* method, const char* reason); 23376: 23376: void throw_invalid_generator(const char* method, 23376: const char* g_name) const; 23376: 23376: void throw_invalid_generators(const char* method, 23376: const char* gs_name) const; 23376: # 2751 "../../src/Polyhedron_defs.hh" 23376: void drop_some_non_integer_points(const Variables_Set* vars_p, 23376: Complexity_Class complexity); 23376: # 2772 "../../src/Polyhedron_defs.hh" 23376: template 23376: void overapproximate_linear_form( 23376: const Linear_Form >& lf, 23376: const dimension_type lf_dimension, 23376: Linear_Form >& result); 23376: # 2797 "../../src/Polyhedron_defs.hh" 23376: template 23376: static void convert_to_integer_expression( 23376: const Linear_Form >& lf, 23376: const dimension_type lf_dimension, 23376: Linear_Expression& result); 23376: # 2829 "../../src/Polyhedron_defs.hh" 23376: template 23376: static void 23376: convert_to_integer_expressions(const Linear_Form >& 23376: lf, 23376: const dimension_type lf_dimension, 23376: Linear_Expression& res, 23376: Coefficient& res_low_coeff, 23376: Coefficient& res_hi_coeff, 23376: Coefficient& denominator); 23376: 23376: template 23376: static bool 23376: add_to_system_and_check_independence(Linear_System1& eq_sys, 23376: const Row2& eq); 23376: # 2852 "../../src/Polyhedron_defs.hh" 23376: void positive_time_elapse_assign_impl(const Polyhedron& y); 23376: }; 23376: 23376: # 1 "../../src/Ph_Status_inlines.hh" 1 23376: # 27 "../../src/Ph_Status_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Polyhedron::Status::Status(flags_t mask) 23376: : flags(mask) { 23376: } 23376: 23376: inline 23376: Polyhedron::Status::Status() 23376: : flags(ZERO_DIM_UNIV) { 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_all(flags_t mask) const { 23376: return (flags & mask) == mask; 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_any(flags_t mask) const { 23376: return (flags & mask) != 0; 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set(flags_t mask) { 23376: flags |= mask; 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset(flags_t mask) { 23376: flags &= ~mask; 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_zero_dim_univ() const { 23376: return flags == ZERO_DIM_UNIV; 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_zero_dim_univ() { 23376: 23376: if (flags == ZERO_DIM_UNIV) { 23376: 23376: flags = EMPTY; 23376: } 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_zero_dim_univ() { 23376: 23376: flags = ZERO_DIM_UNIV; 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_empty() const { 23376: return test_any(EMPTY); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_empty() { 23376: reset(EMPTY); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_empty() { 23376: flags = EMPTY; 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_c_up_to_date() const { 23376: return test_any(C_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_c_up_to_date() { 23376: reset(C_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_c_up_to_date() { 23376: set(C_UP_TO_DATE); 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_g_up_to_date() const { 23376: return test_any(G_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_g_up_to_date() { 23376: reset(G_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_g_up_to_date() { 23376: set(G_UP_TO_DATE); 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_c_minimized() const { 23376: return test_any(C_MINIMIZED); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_c_minimized() { 23376: reset(C_MINIMIZED); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_c_minimized() { 23376: set(C_MINIMIZED); 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_g_minimized() const { 23376: return test_any(G_MINIMIZED); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_g_minimized() { 23376: reset(G_MINIMIZED); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_g_minimized() { 23376: set(G_MINIMIZED); 23376: } 23376: 23376: 23376: inline bool 23376: Polyhedron::Status::test_c_pending() const { 23376: return test_any(CS_PENDING); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_c_pending() { 23376: reset(CS_PENDING); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_c_pending() { 23376: set(CS_PENDING); 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_g_pending() const { 23376: return test_any(GS_PENDING); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_g_pending() { 23376: reset(GS_PENDING); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_g_pending() { 23376: set(GS_PENDING); 23376: } 23376: 23376: 23376: inline bool 23376: Polyhedron::Status::test_sat_c_up_to_date() const { 23376: return test_any(SAT_C_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_sat_c_up_to_date() { 23376: reset(SAT_C_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_sat_c_up_to_date() { 23376: set(SAT_C_UP_TO_DATE); 23376: } 23376: 23376: inline bool 23376: Polyhedron::Status::test_sat_g_up_to_date() const { 23376: return test_any(SAT_G_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::reset_sat_g_up_to_date() { 23376: reset(SAT_G_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Polyhedron::Status::set_sat_g_up_to_date() { 23376: set(SAT_G_UP_TO_DATE); 23376: } 23376: 23376: } 23376: # 2856 "../../src/Polyhedron_defs.hh" 2 23376: # 1 "../../src/Polyhedron_inlines.hh" 1 23376: # 32 "../../src/Polyhedron_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline memory_size_type 23376: Polyhedron::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline dimension_type 23376: Polyhedron::space_dimension() const { 23376: return space_dim; 23376: } 23376: 23376: inline int32_t 23376: Polyhedron::hash_code() const { 23376: return hash_code_from_dimension(space_dimension()); 23376: } 23376: 23376: inline dimension_type 23376: Polyhedron::max_space_dimension() { 23376: using std::min; 23376: 23376: 23376: return min(std::numeric_limits::max() - 1, 23376: min(Constraint_System::max_space_dimension(), 23376: Generator_System::max_space_dimension() 23376: ) 23376: ); 23376: } 23376: 23376: inline Topology 23376: Polyhedron::topology() const { 23376: 23376: 23376: return con_sys.topology(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::is_discrete() const { 23376: return affine_dimension() == 0; 23376: } 23376: 23376: inline bool 23376: Polyhedron::is_necessarily_closed() const { 23376: 23376: 23376: return con_sys.is_necessarily_closed(); 23376: } 23376: 23376: inline void 23376: Polyhedron::upper_bound_assign(const Polyhedron& y) { 23376: poly_hull_assign(y); 23376: } 23376: 23376: inline void 23376: Polyhedron::difference_assign(const Polyhedron& y) { 23376: poly_difference_assign(y); 23376: } 23376: 23376: inline void 23376: Polyhedron::widening_assign(const Polyhedron& y, unsigned* tp) { 23376: H79_widening_assign(y, tp); 23376: } 23376: 23376: inline 23376: Polyhedron::~Polyhedron() { 23376: } 23376: 23376: inline void 23376: Polyhedron::m_swap(Polyhedron& y) { 23376: if (topology() != y.topology()) { 23376: throw_topology_incompatible("swap(y)", "y", y); 23376: } 23376: using std::swap; 23376: swap(con_sys, y.con_sys); 23376: swap(gen_sys, y.gen_sys); 23376: swap(sat_c, y.sat_c); 23376: swap(sat_g, y.sat_g); 23376: swap(status, y.status); 23376: swap(space_dim, y.space_dim); 23376: } 23376: 23376: 23376: inline void 23376: swap(Polyhedron& x, Polyhedron& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: inline bool 23376: Polyhedron::can_recycle_constraint_systems() { 23376: return true; 23376: } 23376: 23376: inline bool 23376: Polyhedron::can_recycle_congruence_systems() { 23376: return false; 23376: } 23376: 23376: inline bool 23376: Polyhedron::marked_empty() const { 23376: return status.test_empty(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::constraints_are_up_to_date() const { 23376: return status.test_c_up_to_date(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::generators_are_up_to_date() const { 23376: return status.test_g_up_to_date(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::constraints_are_minimized() const { 23376: return status.test_c_minimized(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::generators_are_minimized() const { 23376: return status.test_g_minimized(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::sat_c_is_up_to_date() const { 23376: return status.test_sat_c_up_to_date(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::sat_g_is_up_to_date() const { 23376: return status.test_sat_g_up_to_date(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::has_pending_constraints() const { 23376: return status.test_c_pending(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::has_pending_generators() const { 23376: return status.test_g_pending(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::has_something_pending() const { 23376: return status.test_c_pending() || status.test_g_pending(); 23376: } 23376: 23376: inline bool 23376: Polyhedron::can_have_something_pending() const { 23376: return constraints_are_minimized() 23376: && generators_are_minimized() 23376: && (sat_c_is_up_to_date() || sat_g_is_up_to_date()); 23376: } 23376: 23376: inline bool 23376: Polyhedron::is_empty() const { 23376: if (marked_empty()) { 23376: return true; 23376: } 23376: 23376: 23376: 23376: if (generators_are_up_to_date() && !has_pending_constraints()) { 23376: return false; 23376: } 23376: return !minimize(); 23376: } 23376: 23376: inline void 23376: Polyhedron::set_constraints_up_to_date() { 23376: status.set_c_up_to_date(); 23376: } 23376: 23376: inline void 23376: Polyhedron::set_generators_up_to_date() { 23376: status.set_g_up_to_date(); 23376: } 23376: 23376: inline void 23376: Polyhedron::set_constraints_minimized() { 23376: set_constraints_up_to_date(); 23376: status.set_c_minimized(); 23376: } 23376: 23376: inline void 23376: Polyhedron::set_generators_minimized() { 23376: set_generators_up_to_date(); 23376: status.set_g_minimized(); 23376: } 23376: 23376: inline void 23376: Polyhedron::set_constraints_pending() { 23376: status.set_c_pending(); 23376: } 23376: 23376: inline void 23376: Polyhedron::set_generators_pending() { 23376: status.set_g_pending(); 23376: } 23376: 23376: inline void 23376: Polyhedron::set_sat_c_up_to_date() { 23376: status.set_sat_c_up_to_date(); 23376: } 23376: 23376: inline void 23376: Polyhedron::set_sat_g_up_to_date() { 23376: status.set_sat_g_up_to_date(); 23376: } 23376: 23376: inline void 23376: Polyhedron::clear_empty() { 23376: status.reset_empty(); 23376: } 23376: 23376: inline void 23376: Polyhedron::clear_constraints_minimized() { 23376: status.reset_c_minimized(); 23376: } 23376: 23376: inline void 23376: Polyhedron::clear_generators_minimized() { 23376: status.reset_g_minimized(); 23376: } 23376: 23376: inline void 23376: Polyhedron::clear_pending_constraints() { 23376: status.reset_c_pending(); 23376: } 23376: 23376: inline void 23376: Polyhedron::clear_pending_generators() { 23376: status.reset_g_pending(); 23376: } 23376: 23376: inline void 23376: Polyhedron::clear_sat_c_up_to_date() { 23376: status.reset_sat_c_up_to_date(); 23376: 23376: } 23376: 23376: inline void 23376: Polyhedron::clear_sat_g_up_to_date() { 23376: status.reset_sat_g_up_to_date(); 23376: 23376: } 23376: 23376: inline void 23376: Polyhedron::clear_constraints_up_to_date() { 23376: clear_pending_constraints(); 23376: clear_constraints_minimized(); 23376: clear_sat_c_up_to_date(); 23376: clear_sat_g_up_to_date(); 23376: status.reset_c_up_to_date(); 23376: 23376: } 23376: 23376: inline void 23376: Polyhedron::clear_generators_up_to_date() { 23376: clear_pending_generators(); 23376: clear_generators_minimized(); 23376: clear_sat_c_up_to_date(); 23376: clear_sat_g_up_to_date(); 23376: status.reset_g_up_to_date(); 23376: 23376: } 23376: 23376: inline bool 23376: Polyhedron::process_pending() const { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: if (has_pending_constraints()) { 23376: return process_pending_constraints(); 23376: } 23376: 23376: ((void) 0); 23376: process_pending_generators(); 23376: return true; 23376: } 23376: 23376: inline bool 23376: Polyhedron::bounds_from_above(const Linear_Expression& expr) const { 23376: return bounds(expr, true); 23376: } 23376: 23376: inline bool 23376: Polyhedron::bounds_from_below(const Linear_Expression& expr) const { 23376: return bounds(expr, false); 23376: } 23376: 23376: inline bool 23376: Polyhedron::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, 23376: bool& maximum) const { 23376: Generator g(point()); 23376: return max_min(expr, true, sup_n, sup_d, maximum, g); 23376: } 23376: 23376: inline bool 23376: Polyhedron::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum, 23376: Generator& g) const { 23376: return max_min(expr, true, sup_n, sup_d, maximum, g); 23376: } 23376: 23376: inline bool 23376: Polyhedron::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, 23376: bool& minimum) const { 23376: Generator g(point()); 23376: return max_min(expr, false, inf_n, inf_d, minimum, g); 23376: } 23376: 23376: inline bool 23376: Polyhedron::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum, 23376: Generator& g) const { 23376: return max_min(expr, false, inf_n, inf_d, minimum, g); 23376: } 23376: 23376: inline Constraint_System 23376: Polyhedron::simplified_constraints() const { 23376: ((void) 0); 23376: Constraint_System cs(con_sys); 23376: if (cs.num_pending_rows() > 0) { 23376: cs.unset_pending_rows(); 23376: } 23376: if (has_pending_constraints() || !constraints_are_minimized()) { 23376: cs.simplify(); 23376: } 23376: return cs; 23376: } 23376: 23376: inline Congruence_System 23376: Polyhedron::congruences() const { 23376: return Congruence_System(minimized_constraints()); 23376: } 23376: 23376: inline Congruence_System 23376: Polyhedron::minimized_congruences() const { 23376: return Congruence_System(minimized_constraints()); 23376: } 23376: 23376: inline void 23376: Polyhedron::add_recycled_congruences(Congruence_System& cgs) { 23376: add_congruences(cgs); 23376: } 23376: 23376: template 23376: inline void 23376: Polyhedron::generalized_refine_with_linear_form_inequality( 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right, 23376: const Relation_Symbol relsym) { 23376: switch (relsym) { 23376: case EQUAL: 23376: 23376: refine_with_linear_form_inequality(left, right, false); 23376: refine_with_linear_form_inequality(right, left, false); 23376: break; 23376: case LESS_THAN: 23376: refine_with_linear_form_inequality(left, right, true); 23376: break; 23376: case LESS_OR_EQUAL: 23376: refine_with_linear_form_inequality(left, right, false); 23376: break; 23376: case GREATER_THAN: 23376: refine_with_linear_form_inequality(right, left, true); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_with_linear_form_inequality(right, left, false); 23376: break; 23376: case NOT_EQUAL: 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Polyhedron:: 23376: refine_fp_interval_abstract_store( 23376: Box< Interval >& store) const { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_422 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: typedef Interval FP_Interval_Type; 23376: store.intersection_assign(Box(*this)); 23376: 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Polyhedron& x, const Polyhedron& y) { 23376: return !(x == y); 23376: } 23376: 23376: inline bool 23376: Polyhedron::strictly_contains(const Polyhedron& y) const { 23376: const Polyhedron& x = *this; 23376: return x.contains(y) && !y.contains(x); 23376: } 23376: 23376: inline void 23376: Polyhedron::drop_some_non_integer_points(Complexity_Class complexity) { 23376: const Variables_Set* const p_vs = 0; 23376: drop_some_non_integer_points(p_vs, complexity); 23376: } 23376: 23376: inline void 23376: Polyhedron::drop_some_non_integer_points(const Variables_Set& vars, 23376: Complexity_Class complexity) { 23376: drop_some_non_integer_points(&vars, complexity); 23376: } 23376: 23376: 23376: namespace Interfaces { 23376: 23376: inline bool 23376: is_necessarily_closed_for_interfaces(const Polyhedron& ph) { 23376: return ph.is_necessarily_closed(); 23376: } 23376: 23376: } 23376: 23376: } 23376: # 2857 "../../src/Polyhedron_defs.hh" 2 23376: # 1 "../../src/Polyhedron_templates.hh" 1 23376: # 28 "../../src/Polyhedron_templates.hh" 23376: # 1 "../../src/MIP_Problem_defs.hh" 1 23376: # 29 "../../src/MIP_Problem_defs.hh" 23376: # 1 "../../src/Matrix_defs.hh" 1 23376: # 27 "../../src/Matrix_defs.hh" 23376: # 1 "../../src/Matrix_types.hh" 1 23376: # 16 "../../src/Matrix_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Matrix; 23376: 23376: } 23376: # 28 "../../src/Matrix_defs.hh" 2 23376: # 36 "../../src/Matrix_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::Matrix { 23376: 23376: public: 23376: typedef typename Swapping_Vector::iterator iterator; 23376: typedef typename Swapping_Vector::const_iterator const_iterator; 23376: 23376: 23376: static dimension_type max_num_rows(); 23376: 23376: 23376: static dimension_type max_num_columns(); 23376: # 58 "../../src/Matrix_defs.hh" 23376: explicit Matrix(dimension_type n = 0); 23376: # 72 "../../src/Matrix_defs.hh" 23376: Matrix(dimension_type num_rows, dimension_type num_columns); 23376: # 82 "../../src/Matrix_defs.hh" 23376: void m_swap(Matrix& x); 23376: 23376: 23376: 23376: 23376: 23376: dimension_type num_rows() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type num_columns() const; 23376: 23376: 23376: 23376: dimension_type capacity() const; 23376: # 109 "../../src/Matrix_defs.hh" 23376: bool has_no_rows() const; 23376: 23376: 23376: void resize(dimension_type n); 23376: 23376: 23376: 23376: void reserve_rows(dimension_type n); 23376: # 146 "../../src/Matrix_defs.hh" 23376: void resize(dimension_type num_rows, dimension_type num_columns); 23376: # 164 "../../src/Matrix_defs.hh" 23376: void add_zero_rows_and_columns(dimension_type n, dimension_type m); 23376: # 178 "../../src/Matrix_defs.hh" 23376: void add_zero_rows(dimension_type n); 23376: # 191 "../../src/Matrix_defs.hh" 23376: void add_row(const Row& x); 23376: # 205 "../../src/Matrix_defs.hh" 23376: void add_recycled_row(Row& y); 23376: # 219 "../../src/Matrix_defs.hh" 23376: void remove_trailing_rows(dimension_type n); 23376: 23376: void remove_rows(iterator first, iterator last); 23376: # 253 "../../src/Matrix_defs.hh" 23376: void permute_columns(const std::vector& cycles); 23376: 23376: 23376: void swap_columns(dimension_type i, dimension_type j); 23376: # 269 "../../src/Matrix_defs.hh" 23376: void add_zero_columns(dimension_type n); 23376: # 290 "../../src/Matrix_defs.hh" 23376: void add_zero_columns(dimension_type n, dimension_type i); 23376: # 308 "../../src/Matrix_defs.hh" 23376: void remove_column(dimension_type i); 23376: # 326 "../../src/Matrix_defs.hh" 23376: void remove_trailing_columns(dimension_type n); 23376: 23376: 23376: void clear(); 23376: 23376: 23376: 23376: 23376: 23376: iterator begin(); 23376: 23376: 23376: 23376: 23376: 23376: iterator end(); 23376: 23376: 23376: 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: 23376: 23376: 23376: const_iterator end() const; 23376: # 362 "../../src/Matrix_defs.hh" 23376: Row& operator[](dimension_type i); 23376: # 371 "../../src/Matrix_defs.hh" 23376: const Row& operator[](dimension_type i) const; 23376: # 380 "../../src/Matrix_defs.hh" 23376: bool ascii_load(std::istream& s); 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: private: 23376: 23376: Swapping_Vector rows; 23376: 23376: 23376: dimension_type num_columns_; 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: template 23376: void swap(Matrix& x, Matrix& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator==(const Matrix& x, const Matrix& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator!=(const Matrix& x, const Matrix& y); 23376: 23376: } 23376: 23376: 23376: # 1 "../../src/Matrix_inlines.hh" 1 23376: # 27 "../../src/Matrix_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline dimension_type 23376: Matrix::max_num_rows() { 23376: return std::vector().max_size(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Matrix::max_num_columns() { 23376: return Row::max_size(); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::m_swap(Matrix& x) { 23376: using std::swap; 23376: swap(rows, x.rows); 23376: swap(num_columns_, x.num_columns_); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Matrix::num_rows() const { 23376: return rows.size(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Matrix::num_columns() const { 23376: return num_columns_; 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Matrix::capacity() const { 23376: return rows.capacity(); 23376: } 23376: 23376: template 23376: inline bool 23376: Matrix::has_no_rows() const { 23376: return num_rows() == 0; 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::resize(dimension_type n) { 23376: resize(n, n); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::reserve_rows(dimension_type requested_capacity) { 23376: 23376: rows.reserve(requested_capacity); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::add_zero_rows_and_columns(dimension_type n, dimension_type m) { 23376: resize(num_rows() + n, num_columns() + m); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::add_zero_rows(dimension_type n) { 23376: resize(num_rows() + n, num_columns()); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::add_row(const Row& x) { 23376: 23376: Row row(x); 23376: add_zero_rows(1); 23376: 23376: swap(rows.back(), row); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::add_recycled_row(Row& x) { 23376: add_zero_rows(1); 23376: swap(rows.back(), x); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::remove_trailing_rows(dimension_type n) { 23376: resize(num_rows() - n, num_columns()); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::remove_rows(iterator first, iterator last) { 23376: rows.erase(first, last); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::add_zero_columns(dimension_type n) { 23376: resize(num_rows(), num_columns() + n); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::remove_trailing_columns(dimension_type n) { 23376: ((void) 0); 23376: resize(num_rows(), num_columns() - n); 23376: } 23376: 23376: template 23376: inline void 23376: Matrix::clear() { 23376: resize(0, 0); 23376: } 23376: 23376: template 23376: inline typename Matrix::iterator 23376: Matrix::begin() { 23376: return rows.begin(); 23376: } 23376: 23376: template 23376: inline typename Matrix::iterator 23376: Matrix::end() { 23376: return rows.end(); 23376: } 23376: 23376: template 23376: inline typename Matrix::const_iterator 23376: Matrix::begin() const { 23376: return rows.begin(); 23376: } 23376: 23376: template 23376: inline typename Matrix::const_iterator 23376: Matrix::end() const { 23376: return rows.end(); 23376: } 23376: 23376: template 23376: inline Row& 23376: Matrix::operator[](dimension_type i) { 23376: ((void) 0); 23376: return rows[i]; 23376: } 23376: 23376: template 23376: inline const Row& 23376: Matrix::operator[](dimension_type i) const { 23376: ((void) 0); 23376: return rows[i]; 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Matrix::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline void 23376: swap(Matrix& x, Matrix& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 435 "../../src/Matrix_defs.hh" 2 23376: # 1 "../../src/Matrix_templates.hh" 1 23376: # 27 "../../src/Matrix_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: Matrix::Matrix(dimension_type n) 23376: : rows(n), num_columns_(n) { 23376: for (dimension_type i = 0; i < rows.size(); ++i) { 23376: rows[i].resize(num_columns_); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: Matrix::Matrix(dimension_type num_rows, dimension_type num_columns) 23376: : rows(num_rows), num_columns_(num_columns) { 23376: for (dimension_type i = 0; i < rows.size(); ++i) { 23376: rows[i].resize(num_columns_); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Matrix::resize(dimension_type num_rows, dimension_type num_columns) { 23376: const dimension_type old_num_rows = rows.size(); 23376: rows.resize(num_rows); 23376: if (old_num_rows < num_rows) { 23376: for (dimension_type i = old_num_rows; i < num_rows; ++i) { 23376: rows[i].resize(num_columns); 23376: } 23376: if (num_columns_ != num_columns) { 23376: num_columns_ = num_columns; 23376: for (dimension_type i = 0; i < old_num_rows; ++i) { 23376: rows[i].resize(num_columns); 23376: } 23376: } 23376: } 23376: else 23376: if (num_columns_ != num_columns) { 23376: num_columns_ = num_columns; 23376: for (dimension_type i = 0; i < num_rows; ++i) { 23376: rows[i].resize(num_columns); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Matrix::permute_columns(const std::vector& cycles) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; Parma_Polyhedra_Library::Coefficient& tmp = holder_tmp.item(); 23376: const dimension_type n = cycles.size(); 23376: ((void) 0); 23376: for (dimension_type k = num_rows(); k-- > 0; ) { 23376: Row& rows_k = (*this)[k]; 23376: for (dimension_type i = 0, j = 0; i < n; i = ++j) { 23376: 23376: while (cycles[j] != 0) { 23376: ++j; 23376: } 23376: 23376: ((void) 0); 23376: if (j - i == 2) { 23376: 23376: rows_k.swap_coefficients(cycles[i], cycles[i + 1]); 23376: } 23376: else { 23376: 23376: tmp = rows_k.get(cycles[j - 1]); 23376: for (dimension_type l = (j - 1); l > i; --l) { 23376: rows_k.swap_coefficients(cycles[l-1], cycles[l]); 23376: } 23376: if (tmp == 0) { 23376: rows_k.reset(cycles[i]); 23376: } 23376: else { 23376: using std::swap; 23376: swap(tmp, rows_k[cycles[i]]); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Matrix::swap_columns(dimension_type i, dimension_type j) { 23376: for (dimension_type k = num_rows(); k-- > 0; ) { 23376: (*this)[k].swap_coefficients(i, j); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Matrix::add_zero_columns(dimension_type n, dimension_type i) { 23376: for (dimension_type j = rows.size(); j-- > 0; ) { 23376: rows[j].add_zeroes_and_shift(n, i); 23376: } 23376: num_columns_ += n; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Matrix::remove_column(dimension_type i) { 23376: for (dimension_type j = rows.size(); j-- > 0; ) { 23376: rows[j].delete_element_and_shift(i); 23376: } 23376: --num_columns_; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Matrix::ascii_dump(std::ostream& s) const { 23376: s << num_rows() << " x "; 23376: s << num_columns() << "\n"; 23376: for (const_iterator i = begin(), i_end = end(); i !=i_end; ++i) { 23376: i->ascii_dump(s); 23376: } 23376: } 23376: 23376: template void Matrix::ascii_dump() const { ascii_dump(std::cerr); } template void Matrix::print() const { std::cerr << "No user level output operator defined " << "for " "Matrix" << "." << std::endl; } 23376: 23376: template 23376: bool 23376: Matrix::ascii_load(std::istream& s) { 23376: std::string str; 23376: dimension_type new_num_rows; 23376: dimension_type new_num_cols; 23376: if (!(s >> new_num_rows)) { 23376: return false; 23376: } 23376: if (!(s >> str) || str != "x") { 23376: return false; 23376: } 23376: if (!(s >> new_num_cols)) { 23376: return false; 23376: } 23376: 23376: for (iterator i = rows.begin(), i_end = rows.end(); 23376: i != i_end; ++i) { 23376: i->clear(); 23376: } 23376: 23376: resize(new_num_rows, new_num_cols); 23376: 23376: for (dimension_type row = 0; row < new_num_rows; ++row) { 23376: if (!rows[row].ascii_load(s)) { 23376: return false; 23376: } 23376: } 23376: 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: memory_size_type 23376: Matrix::external_memory_in_bytes() const { 23376: return rows.external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: bool 23376: Matrix::OK() const { 23376: for (const_iterator i = begin(), i_end = end(); i != i_end; ++i) { 23376: if (i->size() != num_columns_) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: 23376: template 23376: bool 23376: operator==(const Matrix& x, const Matrix& y) { 23376: if (x.num_rows() != y.num_rows()) { 23376: return false; 23376: } 23376: if (x.num_columns() != y.num_columns()) { 23376: return false; 23376: } 23376: for (dimension_type i = x.num_rows(); i-- > 0; ) { 23376: if (x[i] != y[i]) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: 23376: template 23376: bool 23376: operator!=(const Matrix& x, const Matrix& y) { 23376: return !(x == y); 23376: } 23376: 23376: } 23376: # 436 "../../src/Matrix_defs.hh" 2 23376: # 30 "../../src/MIP_Problem_defs.hh" 2 23376: # 42 "../../src/MIP_Problem_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: std::ostream& 23376: operator<<(std::ostream& s, const MIP_Problem& mip); 23376: 23376: } 23376: 23376: 23376: 23376: void swap(MIP_Problem& x, MIP_Problem& y); 23376: 23376: } 23376: # 87 "../../src/MIP_Problem_defs.hh" 23376: class Parma_Polyhedra_Library::MIP_Problem { 23376: public: 23376: # 102 "../../src/MIP_Problem_defs.hh" 23376: explicit MIP_Problem(dimension_type dim = 0); 23376: # 140 "../../src/MIP_Problem_defs.hh" 23376: template 23376: MIP_Problem(dimension_type dim, 23376: In first, In last, 23376: const Variables_Set& int_vars, 23376: const Linear_Expression& obj = Linear_Expression::zero(), 23376: Optimization_Mode mode = MAXIMIZATION); 23376: # 178 "../../src/MIP_Problem_defs.hh" 23376: template 23376: MIP_Problem(dimension_type dim, 23376: In first, In last, 23376: const Linear_Expression& obj = Linear_Expression::zero(), 23376: Optimization_Mode mode = MAXIMIZATION); 23376: # 209 "../../src/MIP_Problem_defs.hh" 23376: MIP_Problem(dimension_type dim, 23376: const Constraint_System& cs, 23376: const Linear_Expression& obj = Linear_Expression::zero(), 23376: Optimization_Mode mode = MAXIMIZATION); 23376: 23376: 23376: MIP_Problem(const MIP_Problem& y); 23376: 23376: 23376: ~MIP_Problem(); 23376: 23376: 23376: MIP_Problem& operator=(const MIP_Problem& y); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: 23376: 23376: const Variables_Set& integer_space_dimensions() const; 23376: 23376: private: 23376: 23376: typedef std::vector Constraint_Sequence; 23376: 23376: public: 23376: 23376: class const_iterator { 23376: private: 23376: typedef Constraint_Sequence::const_iterator Base; 23376: typedef std::iterator_traits Base_Traits; 23376: 23376: public: 23376: typedef Base_Traits::iterator_category iterator_category; 23376: typedef Base_Traits::difference_type difference_type; 23376: typedef const Constraint value_type; 23376: typedef const Constraint* pointer; 23376: typedef const Constraint& reference; 23376: 23376: 23376: difference_type operator-(const const_iterator& y) const; 23376: 23376: 23376: const_iterator& operator++(); 23376: 23376: 23376: const_iterator& operator--(); 23376: 23376: 23376: const_iterator operator++(int); 23376: 23376: 23376: const_iterator operator--(int); 23376: 23376: 23376: const_iterator& operator+=(difference_type n); 23376: 23376: 23376: const_iterator& operator-=(difference_type n); 23376: 23376: 23376: const_iterator operator+(difference_type n) const; 23376: 23376: 23376: const_iterator operator-(difference_type n) const; 23376: 23376: 23376: reference operator*() const; 23376: 23376: 23376: pointer operator->() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const const_iterator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const const_iterator& y) const; 23376: 23376: private: 23376: 23376: explicit const_iterator(Base b); 23376: 23376: 23376: Base itr; 23376: 23376: friend class MIP_Problem; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: const_iterator constraints_begin() const; 23376: 23376: 23376: 23376: 23376: 23376: const_iterator constraints_end() const; 23376: 23376: 23376: const Linear_Expression& objective_function() const; 23376: 23376: 23376: Optimization_Mode optimization_mode() const; 23376: 23376: 23376: 23376: 23376: 23376: void clear(); 23376: # 348 "../../src/MIP_Problem_defs.hh" 23376: void add_space_dimensions_and_embed(dimension_type m); 23376: # 358 "../../src/MIP_Problem_defs.hh" 23376: void add_to_integer_space_dimensions(const Variables_Set& i_vars); 23376: # 367 "../../src/MIP_Problem_defs.hh" 23376: void add_constraint(const Constraint& c); 23376: # 377 "../../src/MIP_Problem_defs.hh" 23376: void add_constraints(const Constraint_System& cs); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void set_objective_function(const Linear_Expression& obj); 23376: 23376: 23376: void set_optimization_mode(Optimization_Mode mode); 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_satisfiable() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: MIP_Problem_Status solve() const; 23376: # 423 "../../src/MIP_Problem_defs.hh" 23376: void evaluate_objective_function(const Generator& evaluating_point, 23376: Coefficient& numer, 23376: Coefficient& denom) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: const Generator& feasible_point() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: const Generator& optimizing_point() const; 23376: # 451 "../../src/MIP_Problem_defs.hh" 23376: void optimal_value(Coefficient& numer, Coefficient& denom) const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: void m_swap(MIP_Problem& y); 23376: 23376: 23376: enum Control_Parameter_Name { 23376: 23376: PRICING 23376: }; 23376: 23376: 23376: enum Control_Parameter_Value { 23376: 23376: PRICING_STEEPEST_EDGE_FLOAT, 23376: 23376: PRICING_STEEPEST_EDGE_EXACT, 23376: 23376: PRICING_TEXTBOOK 23376: }; 23376: 23376: 23376: Control_Parameter_Value 23376: get_control_parameter(Control_Parameter_Name name) const; 23376: 23376: 23376: void set_control_parameter(Control_Parameter_Value value); 23376: 23376: private: 23376: 23376: dimension_type external_space_dim; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type internal_space_dim; 23376: 23376: 23376: typedef Sparse_Row Row; 23376: 23376: 23376: 23376: 23376: 23376: Matrix tableau; 23376: 23376: typedef Row working_cost_type; 23376: 23376: 23376: working_cost_type working_cost; 23376: # 530 "../../src/MIP_Problem_defs.hh" 23376: std::vector > mapping; 23376: 23376: 23376: std::vector base; 23376: 23376: 23376: enum Status { 23376: 23376: UNSATISFIABLE, 23376: 23376: SATISFIABLE, 23376: 23376: UNBOUNDED, 23376: 23376: OPTIMIZED, 23376: 23376: 23376: 23376: 23376: 23376: PARTIALLY_SATISFIABLE 23376: }; 23376: 23376: 23376: Status status; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Control_Parameter_Value pricing; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool initialized; 23376: 23376: 23376: std::vector input_cs; 23376: # 582 "../../src/MIP_Problem_defs.hh" 23376: dimension_type inherited_constraints; 23376: 23376: 23376: dimension_type first_pending_constraint; 23376: 23376: 23376: Linear_Expression input_obj_function; 23376: 23376: 23376: Optimization_Mode opt_mode; 23376: 23376: 23376: Generator last_generator; 23376: 23376: 23376: 23376: 23376: 23376: Variables_Set i_variables; 23376: 23376: 23376: struct RAII_Temporary_Real_Relaxation { 23376: MIP_Problem& lp; 23376: Variables_Set i_vars; 23376: 23376: RAII_Temporary_Real_Relaxation(MIP_Problem& mip) 23376: : lp(mip), i_vars() { 23376: 23376: using std::swap; 23376: swap(i_vars, lp.i_variables); 23376: } 23376: 23376: ~RAII_Temporary_Real_Relaxation() { 23376: 23376: using std::swap; 23376: swap(i_vars, lp.i_variables); 23376: } 23376: }; 23376: friend struct RAII_Temporary_Real_Relaxation; 23376: 23376: 23376: struct Inherit_Constraints {}; 23376: 23376: 23376: MIP_Problem(const MIP_Problem& y, Inherit_Constraints); 23376: 23376: 23376: void add_constraint_helper(const Constraint& c); 23376: 23376: 23376: void process_pending_constraints(); 23376: 23376: 23376: 23376: 23376: 23376: void second_phase(); 23376: # 654 "../../src/MIP_Problem_defs.hh" 23376: MIP_Problem_Status 23376: compute_tableau(std::vector& worked_out_row); 23376: # 708 "../../src/MIP_Problem_defs.hh" 23376: bool parse_constraints(dimension_type& additional_tableau_rows, 23376: dimension_type& additional_slack_variables, 23376: std::deque& is_tableau_constraint, 23376: std::deque& is_satisfied_inequality, 23376: std::deque& is_nonnegative_variable, 23376: std::deque& is_remergeable_variable) const; 23376: # 725 "../../src/MIP_Problem_defs.hh" 23376: dimension_type 23376: get_exiting_base_index(dimension_type entering_var_index) const; 23376: # 743 "../../src/MIP_Problem_defs.hh" 23376: static void linear_combine(Row& x, const Row& y, const dimension_type k); 23376: # 763 "../../src/MIP_Problem_defs.hh" 23376: static void linear_combine(Dense_Row& x, const Sparse_Row& y, 23376: const dimension_type k); 23376: 23376: 23376: 23376: static bool is_unbounded_obj_function( 23376: const Linear_Expression& obj_function, 23376: const std::vector >& mapping, 23376: Optimization_Mode optimization_mode); 23376: # 782 "../../src/MIP_Problem_defs.hh" 23376: void pivot(dimension_type entering_var_index, 23376: dimension_type exiting_base_index); 23376: # 794 "../../src/MIP_Problem_defs.hh" 23376: dimension_type textbook_entering_index() const; 23376: # 821 "../../src/MIP_Problem_defs.hh" 23376: dimension_type steepest_edge_exact_entering_index() const; 23376: # 834 "../../src/MIP_Problem_defs.hh" 23376: dimension_type steepest_edge_float_entering_index() const; 23376: # 844 "../../src/MIP_Problem_defs.hh" 23376: bool compute_simplex_using_exact_pricing(); 23376: # 855 "../../src/MIP_Problem_defs.hh" 23376: bool compute_simplex_using_steepest_edge_float(); 23376: # 873 "../../src/MIP_Problem_defs.hh" 23376: void erase_artificials(dimension_type begin_artificials, 23376: dimension_type end_artificials); 23376: 23376: bool is_in_base(dimension_type var_index, 23376: dimension_type& row_index) const; 23376: 23376: 23376: 23376: 23376: 23376: void compute_generator() const; 23376: # 897 "../../src/MIP_Problem_defs.hh" 23376: dimension_type merge_split_variable(dimension_type var_index); 23376: 23376: 23376: static bool is_satisfied(const Constraint& c, const Generator& g); 23376: 23376: 23376: static bool is_saturated(const Constraint& c, const Generator& g); 23376: # 924 "../../src/MIP_Problem_defs.hh" 23376: static MIP_Problem_Status solve_mip(bool& have_incumbent_solution, 23376: mpq_class& incumbent_solution_value, 23376: Generator& incumbent_solution_point, 23376: MIP_Problem& mip, 23376: const Variables_Set& i_vars); 23376: 23376: 23376: 23376: 23376: bool is_lp_satisfiable() const; 23376: # 949 "../../src/MIP_Problem_defs.hh" 23376: static bool is_mip_satisfiable(MIP_Problem& mip, 23376: const Variables_Set& i_vars, 23376: Generator& p); 23376: # 968 "../../src/MIP_Problem_defs.hh" 23376: static bool choose_branching_variable(const MIP_Problem& mip, 23376: const Variables_Set& i_vars, 23376: dimension_type& branching_index); 23376: }; 23376: 23376: # 1 "../../src/MIP_Problem_inlines.hh" 1 23376: # 30 "../../src/MIP_Problem_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline dimension_type 23376: MIP_Problem::max_space_dimension() { 23376: return Constraint::max_space_dimension(); 23376: } 23376: 23376: inline dimension_type 23376: MIP_Problem::space_dimension() const { 23376: return external_space_dim; 23376: } 23376: 23376: 23376: inline 23376: MIP_Problem::MIP_Problem(const MIP_Problem& y) 23376: : external_space_dim(y.external_space_dim), 23376: internal_space_dim(y.internal_space_dim), 23376: tableau(y.tableau), 23376: working_cost(y.working_cost), 23376: mapping(y.mapping), 23376: base(y.base), 23376: status(y.status), 23376: pricing(y.pricing), 23376: initialized(y.initialized), 23376: input_cs(), 23376: inherited_constraints(0), 23376: first_pending_constraint(), 23376: input_obj_function(y.input_obj_function), 23376: opt_mode(y.opt_mode), 23376: last_generator(y.last_generator), 23376: i_variables(y.i_variables) { 23376: input_cs.reserve(y.input_cs.size()); 23376: for (Constraint_Sequence::const_iterator i = y.input_cs.begin(), 23376: i_end = y.input_cs.end(); i != i_end; ++i) { 23376: add_constraint_helper(*(*i)); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: MIP_Problem::MIP_Problem(const MIP_Problem& y, Inherit_Constraints) 23376: : external_space_dim(y.external_space_dim), 23376: internal_space_dim(y.internal_space_dim), 23376: tableau(y.tableau), 23376: working_cost(y.working_cost), 23376: mapping(y.mapping), 23376: base(y.base), 23376: status(y.status), 23376: pricing(y.pricing), 23376: initialized(y.initialized), 23376: input_cs(y.input_cs), 23376: 23376: inherited_constraints(y.input_cs.size()), 23376: first_pending_constraint(y.first_pending_constraint), 23376: input_obj_function(y.input_obj_function), 23376: opt_mode(y.opt_mode), 23376: last_generator(y.last_generator), 23376: i_variables(y.i_variables) { 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: MIP_Problem::add_constraint_helper(const Constraint& c) { 23376: 23376: const dimension_type size = input_cs.size(); 23376: if (size == input_cs.capacity()) { 23376: const dimension_type max_size = input_cs.max_size(); 23376: if (size == max_size) { 23376: throw std::length_error("MIP_Problem::add_constraint(): " 23376: "too many constraints"); 23376: } 23376: 23376: input_cs.reserve(compute_capacity(size + 1, max_size)); 23376: } 23376: 23376: 23376: 23376: input_cs.push_back(new Constraint(c)); 23376: } 23376: 23376: inline 23376: MIP_Problem::~MIP_Problem() { 23376: 23376: 23376: for (Constraint_Sequence::const_iterator 23376: i = nth_iter(input_cs, inherited_constraints), 23376: i_end = input_cs.end(); i != i_end; ++i) { 23376: delete *i; 23376: } 23376: } 23376: 23376: 23376: inline void 23376: MIP_Problem::set_optimization_mode(const Optimization_Mode mode) { 23376: if (opt_mode != mode) { 23376: opt_mode = mode; 23376: if (status == UNBOUNDED || status == OPTIMIZED) { 23376: status = SATISFIABLE; 23376: } 23376: ((void) 0); 23376: } 23376: } 23376: 23376: inline const Linear_Expression& 23376: MIP_Problem::objective_function() const { 23376: return input_obj_function; 23376: } 23376: 23376: inline Optimization_Mode 23376: MIP_Problem::optimization_mode() const { 23376: return opt_mode; 23376: } 23376: 23376: inline void 23376: MIP_Problem::optimal_value(Coefficient& numer, Coefficient& denom) const { 23376: const Generator& g = optimizing_point(); 23376: evaluate_objective_function(g, numer, denom); 23376: } 23376: 23376: inline MIP_Problem::const_iterator 23376: MIP_Problem::constraints_begin() const { 23376: return const_iterator(input_cs.begin()); 23376: } 23376: 23376: inline MIP_Problem::const_iterator 23376: MIP_Problem::constraints_end() const { 23376: return const_iterator(input_cs.end()); 23376: } 23376: 23376: inline const Variables_Set& 23376: MIP_Problem::integer_space_dimensions() const { 23376: return i_variables; 23376: } 23376: 23376: inline MIP_Problem::Control_Parameter_Value 23376: MIP_Problem::get_control_parameter(Control_Parameter_Name name) const { 23376: (void)(name); 23376: ((void) 0); 23376: return pricing; 23376: } 23376: 23376: inline void 23376: MIP_Problem::set_control_parameter(Control_Parameter_Value value) { 23376: pricing = value; 23376: } 23376: 23376: inline void 23376: MIP_Problem::m_swap(MIP_Problem& y) { 23376: using std::swap; 23376: swap(external_space_dim, y.external_space_dim); 23376: swap(internal_space_dim, y.internal_space_dim); 23376: swap(tableau, y.tableau); 23376: swap(working_cost, y.working_cost); 23376: swap(mapping, y.mapping); 23376: swap(initialized, y.initialized); 23376: swap(base, y.base); 23376: swap(status, y.status); 23376: swap(pricing, y.pricing); 23376: swap(input_cs, y.input_cs); 23376: swap(inherited_constraints, y.inherited_constraints); 23376: swap(first_pending_constraint, y.first_pending_constraint); 23376: swap(input_obj_function, y.input_obj_function); 23376: swap(opt_mode, y.opt_mode); 23376: swap(last_generator, y.last_generator); 23376: swap(i_variables, y.i_variables); 23376: } 23376: 23376: inline MIP_Problem& 23376: MIP_Problem::operator=(const MIP_Problem& y) { 23376: MIP_Problem tmp(y); 23376: m_swap(tmp); 23376: return *this; 23376: } 23376: 23376: inline void 23376: MIP_Problem::clear() { 23376: MIP_Problem tmp; 23376: m_swap(tmp); 23376: } 23376: 23376: 23376: inline memory_size_type 23376: MIP_Problem::external_memory_in_bytes() const { 23376: memory_size_type n 23376: = working_cost.external_memory_in_bytes() 23376: + tableau.external_memory_in_bytes() 23376: + input_obj_function.external_memory_in_bytes() 23376: + last_generator.external_memory_in_bytes(); 23376: 23376: 23376: 23376: n += input_cs.capacity() * sizeof(Constraint*); 23376: for (Constraint_Sequence::const_iterator 23376: i = nth_iter(input_cs, inherited_constraints), 23376: i_end = input_cs.end(); i != i_end; ++i) { 23376: n += ((*i)->total_memory_in_bytes()); 23376: } 23376: 23376: 23376: n += base.capacity() * sizeof(dimension_type); 23376: 23376: n += mapping.capacity() * sizeof(std::pair); 23376: return n; 23376: } 23376: 23376: inline memory_size_type 23376: MIP_Problem::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline 23376: MIP_Problem::const_iterator::const_iterator(Base b) 23376: : itr(b) { 23376: } 23376: 23376: inline MIP_Problem::const_iterator::difference_type 23376: MIP_Problem::const_iterator::operator-(const const_iterator& y) const { 23376: return itr - y.itr; 23376: } 23376: 23376: inline MIP_Problem::const_iterator& 23376: MIP_Problem::const_iterator::operator++() { 23376: ++itr; 23376: return *this; 23376: } 23376: 23376: inline MIP_Problem::const_iterator& 23376: MIP_Problem::const_iterator::operator--() { 23376: --itr; 23376: return *this; 23376: } 23376: 23376: inline MIP_Problem::const_iterator 23376: MIP_Problem::const_iterator::operator++(int) { 23376: const_iterator x = *this; 23376: operator++(); 23376: return x; 23376: } 23376: 23376: inline MIP_Problem::const_iterator 23376: MIP_Problem::const_iterator::operator--(int) { 23376: const_iterator x = *this; 23376: operator--(); 23376: return x; 23376: } 23376: 23376: inline MIP_Problem::const_iterator 23376: MIP_Problem::const_iterator::operator+(difference_type n) const { 23376: return const_iterator(itr + n); 23376: } 23376: 23376: inline MIP_Problem::const_iterator 23376: MIP_Problem::const_iterator::operator-(difference_type n) const { 23376: return const_iterator(itr - n); 23376: } 23376: 23376: inline MIP_Problem::const_iterator& 23376: MIP_Problem::const_iterator::operator+=(difference_type n) { 23376: itr += n; 23376: return *this; 23376: } 23376: 23376: inline MIP_Problem::const_iterator& 23376: MIP_Problem::const_iterator::operator-=(difference_type n) { 23376: itr -= n; 23376: return *this; 23376: } 23376: 23376: inline MIP_Problem::const_iterator::reference 23376: MIP_Problem::const_iterator::operator*() const { 23376: return *(*itr); 23376: } 23376: 23376: inline MIP_Problem::const_iterator::pointer 23376: MIP_Problem::const_iterator::operator->() const { 23376: return *itr; 23376: } 23376: 23376: inline bool 23376: MIP_Problem::const_iterator::operator==(const const_iterator& y) const { 23376: return itr == y.itr; 23376: } 23376: 23376: inline bool 23376: MIP_Problem::const_iterator::operator!=(const const_iterator& y) const { 23376: return itr != y.itr; 23376: } 23376: 23376: 23376: inline void 23376: swap(MIP_Problem& x, MIP_Problem& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 974 "../../src/MIP_Problem_defs.hh" 2 23376: # 1 "../../src/MIP_Problem_templates.hh" 1 23376: # 29 "../../src/MIP_Problem_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: MIP_Problem::MIP_Problem(const dimension_type dim, 23376: In first, In last, 23376: const Variables_Set& int_vars, 23376: const Linear_Expression& obj, 23376: const Optimization_Mode mode) 23376: : external_space_dim(dim), 23376: internal_space_dim(0), 23376: tableau(), 23376: working_cost(0), 23376: mapping(), 23376: base(), 23376: status(PARTIALLY_SATISFIABLE), 23376: pricing(PRICING_STEEPEST_EDGE_FLOAT), 23376: initialized(false), 23376: input_cs(), 23376: inherited_constraints(0), 23376: first_pending_constraint(0), 23376: input_obj_function(obj), 23376: opt_mode(mode), 23376: last_generator(point()), 23376: i_variables(int_vars) { 23376: 23376: 23376: if (i_variables.space_dimension() > external_space_dim) { 23376: std::ostringstream s; 23376: s << "PPL::MIP_Problem::MIP_Problem" 23376: << "(dim, first, last, int_vars, obj, mode):\n" 23376: << "dim == "<< external_space_dim << " and int_vars.space_dimension() ==" 23376: << " " << i_variables.space_dimension() << " are dimension" 23376: "incompatible."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: 23376: if (dim > max_space_dimension()) { 23376: throw std::length_error("PPL::MIP_Problem:: MIP_Problem(dim, first, " 23376: "last, int_vars, obj, mode):\n" 23376: "dim exceeds the maximum allowed" 23376: "space dimension."); 23376: } 23376: 23376: if (obj.space_dimension() > dim) { 23376: std::ostringstream s; 23376: s << "PPL::MIP_Problem::MIP_Problem(dim, first, last," 23376: << "int_vars, obj, mode):\n" 23376: << "obj.space_dimension() == "<< obj.space_dimension() 23376: << " exceeds d == "<< dim << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: try { 23376: for (In i = first; i != last; ++i) { 23376: if (i->is_strict_inequality()) { 23376: throw std::invalid_argument("PPL::MIP_Problem::" 23376: "MIP_Problem(dim, first, last, int_vars," 23376: "obj, mode):\nrange [first, last) contains" 23376: "a strict inequality constraint."); 23376: } 23376: if (i->space_dimension() > dim) { 23376: std::ostringstream s; 23376: s << "PPL::MIP_Problem::" 23376: << "MIP_Problem(dim, first, last, int_vars, obj, mode):\n" 23376: << "range [first, last) contains a constraint having space" 23376: << "dimension == " << i->space_dimension() << " that exceeds" 23376: "this->space_dimension == " << dim << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: add_constraint_helper(*i); 23376: } 23376: } catch (...) { 23376: 23376: 23376: for (Constraint_Sequence::const_iterator 23376: i = input_cs.begin(), i_end = input_cs.end(); 23376: i != i_end; ++i) { 23376: delete *i; 23376: } 23376: 23376: throw; 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: MIP_Problem::MIP_Problem(dimension_type dim, 23376: In first, In last, 23376: const Linear_Expression& obj, 23376: Optimization_Mode mode) 23376: : external_space_dim(dim), 23376: internal_space_dim(0), 23376: tableau(), 23376: working_cost(0), 23376: mapping(), 23376: base(), 23376: status(PARTIALLY_SATISFIABLE), 23376: pricing(PRICING_STEEPEST_EDGE_FLOAT), 23376: initialized(false), 23376: input_cs(), 23376: inherited_constraints(0), 23376: first_pending_constraint(0), 23376: input_obj_function(obj), 23376: opt_mode(mode), 23376: last_generator(point()), 23376: i_variables() { 23376: 23376: if (dim > max_space_dimension()) { 23376: throw std::length_error("PPL::MIP_Problem::" 23376: "MIP_Problem(dim, first, last, obj, mode):\n" 23376: "dim exceeds the maximum allowed space " 23376: "dimension."); 23376: } 23376: 23376: if (obj.space_dimension() > dim) { 23376: std::ostringstream s; 23376: s << "PPL::MIP_Problem::MIP_Problem(dim, first, last," 23376: << " obj, mode):\n" 23376: << "obj.space_dimension() == "<< obj.space_dimension() 23376: << " exceeds d == "<< dim << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: try { 23376: for (In i = first; i != last; ++i) { 23376: if (i->is_strict_inequality()) { 23376: throw std::invalid_argument("PPL::MIP_Problem::" 23376: "MIP_Problem(dim, first, last, obj, mode):" 23376: "\n" 23376: "range [first, last) contains a strict " 23376: "inequality constraint."); 23376: } 23376: if (i->space_dimension() > dim) { 23376: std::ostringstream s; 23376: s << "PPL::MIP_Problem::" 23376: << "MIP_Problem(dim, first, last, obj, mode):\n" 23376: << "range [first, last) contains a constraint having space" 23376: << "dimension" << " == " << i->space_dimension() << " that exceeds" 23376: "this->space_dimension == " << dim << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: add_constraint_helper(*i); 23376: } 23376: } catch (...) { 23376: 23376: 23376: for (Constraint_Sequence::const_iterator 23376: i = input_cs.begin(), i_end = input_cs.end(); 23376: i != i_end; ++i) { 23376: delete *i; 23376: } 23376: 23376: throw; 23376: } 23376: ((void) 0); 23376: } 23376: 23376: } 23376: # 975 "../../src/MIP_Problem_defs.hh" 2 23376: # 29 "../../src/Polyhedron_templates.hh" 2 23376: 23376: 23376: 23376: # 1 "../../src/Floating_Point_Expression_defs.hh" 1 23376: # 27 "../../src/Floating_Point_Expression_defs.hh" 23376: # 1 "../../src/Floating_Point_Expression_types.hh" 1 23376: # 16 "../../src/Floating_Point_Expression_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class Floating_Point_Expression; 23376: 23376: } 23376: # 28 "../../src/Floating_Point_Expression_defs.hh" 2 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/cmath" 1 3 23376: # 39 "/usr/include/c++/8/cmath" 3 23376: 23376: # 40 "/usr/include/c++/8/cmath" 3 23376: # 32 "../../src/Floating_Point_Expression_defs.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: # 54 "../../src/Floating_Point_Expression_defs.hh" 23376: template 23376: class Floating_Point_Expression { 23376: 23376: public: 23376: 23376: 23376: typedef Linear_Form FP_Linear_Form; 23376: # 70 "../../src/Floating_Point_Expression_defs.hh" 23376: typedef Box FP_Interval_Abstract_Store; 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef std::map 23376: FP_Linear_Form_Abstract_Store; 23376: 23376: 23376: typedef typename FP_Interval_Type::boundary_type boundary_type; 23376: 23376: 23376: typedef typename FP_Interval_Type::info_type info_type; 23376: 23376: 23376: virtual ~Floating_Point_Expression(); 23376: # 114 "../../src/Floating_Point_Expression_defs.hh" 23376: virtual bool linearize(const FP_Interval_Abstract_Store& int_store, 23376: const FP_Linear_Form_Abstract_Store& lf_store, 23376: FP_Linear_Form& result) const = 0; 23376: # 126 "../../src/Floating_Point_Expression_defs.hh" 23376: static FP_Interval_Type absolute_error; 23376: # 136 "../../src/Floating_Point_Expression_defs.hh" 23376: static bool overflows(const FP_Linear_Form& lf); 23376: # 163 "../../src/Floating_Point_Expression_defs.hh" 23376: static void relative_error(const FP_Linear_Form& lf, 23376: FP_Linear_Form& result); 23376: # 183 "../../src/Floating_Point_Expression_defs.hh" 23376: static void intervalize(const FP_Linear_Form& lf, 23376: const FP_Interval_Abstract_Store& store, 23376: FP_Interval_Type& result); 23376: 23376: private: 23376: # 198 "../../src/Floating_Point_Expression_defs.hh" 23376: static FP_Interval_Type compute_absolute_error(); 23376: 23376: }; 23376: 23376: 23376: template 23376: FP_Interval_Type Floating_Point_Expression 23376: ::absolute_error = compute_absolute_error(); 23376: 23376: } 23376: 23376: # 1 "../../src/Floating_Point_Expression_inlines.hh" 1 23376: # 30 "../../src/Floating_Point_Expression_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline 23376: Floating_Point_Expression 23376: ::~Floating_Point_Expression() {} 23376: 23376: template 23376: inline bool 23376: Floating_Point_Expression 23376: ::overflows(const FP_Linear_Form& lf) { 23376: if (!lf.inhomogeneous_term().is_bounded()) { 23376: return true; 23376: } 23376: 23376: dimension_type dimension = lf.space_dimension(); 23376: for (dimension_type i = 0; i < dimension; ++i) { 23376: if (!lf.coefficient(Variable(i)).is_bounded()) { 23376: return true; 23376: } 23376: } 23376: 23376: return false; 23376: } 23376: 23376: } 23376: # 210 "../../src/Floating_Point_Expression_defs.hh" 2 23376: # 1 "../../src/Floating_Point_Expression_templates.hh" 1 23376: # 29 "../../src/Floating_Point_Expression_templates.hh" 23376: # 1 "/usr/include/c++/8/cmath" 1 3 23376: # 39 "/usr/include/c++/8/cmath" 3 23376: 23376: # 40 "/usr/include/c++/8/cmath" 3 23376: # 30 "../../src/Floating_Point_Expression_templates.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: void 23376: Floating_Point_Expression 23376: ::relative_error(const FP_Linear_Form& lf, FP_Linear_Form& result) { 23376: 23376: FP_Interval_Type error_propagator; 23376: boundary_type lb = -pow(FP_Format::BASE, 23376: -static_cast 23376: ::boundary_type>(FP_Format::MANTISSA_BITS)); 23376: error_propagator.build(i_constraint(GREATER_OR_EQUAL, lb), 23376: i_constraint(LESS_OR_EQUAL, -lb)); 23376: 23376: 23376: const FP_Interval_Type* current_term = &lf.inhomogeneous_term(); 23376: 23376: # 47 "../../src/Floating_Point_Expression_templates.hh" 3 4 23376: (static_cast (0)) 23376: # 47 "../../src/Floating_Point_Expression_templates.hh" 23376: ; 23376: 23376: FP_Interval_Type 23376: current_multiplier(std::max(std::abs(current_term->lower()), 23376: std::abs(current_term->upper()))); 23376: FP_Linear_Form current_result_term(current_multiplier); 23376: current_result_term *= error_propagator; 23376: result = FP_Linear_Form(current_result_term); 23376: 23376: 23376: dimension_type dimension = lf.space_dimension(); 23376: for (dimension_type i = 0; i < dimension; ++i) { 23376: current_term = &lf.coefficient(Variable(i)); 23376: 23376: # 60 "../../src/Floating_Point_Expression_templates.hh" 3 4 23376: (static_cast (0)) 23376: # 60 "../../src/Floating_Point_Expression_templates.hh" 23376: ; 23376: current_multiplier 23376: = FP_Interval_Type(std::max(std::abs(current_term->lower()), 23376: std::abs(current_term->upper()))); 23376: current_result_term = FP_Linear_Form(Variable(i)); 23376: current_result_term *= current_multiplier; 23376: current_result_term *= error_propagator; 23376: result += current_result_term; 23376: } 23376: 23376: return; 23376: } 23376: 23376: template 23376: void 23376: Floating_Point_Expression 23376: ::intervalize(const FP_Linear_Form& lf, 23376: const FP_Interval_Abstract_Store& store, 23376: FP_Interval_Type& result) { 23376: result = FP_Interval_Type(lf.inhomogeneous_term()); 23376: dimension_type dimension = lf.space_dimension(); 23376: 23376: # 81 "../../src/Floating_Point_Expression_templates.hh" 3 4 23376: (static_cast (0)) 23376: # 81 "../../src/Floating_Point_Expression_templates.hh" 23376: ; 23376: for (dimension_type i = 0; i < dimension; ++i) { 23376: FP_Interval_Type current_addend = lf.coefficient(Variable(i)); 23376: const FP_Interval_Type& curr_int = store.get_interval(Variable(i)); 23376: current_addend *= curr_int; 23376: result += current_addend; 23376: } 23376: 23376: return; 23376: } 23376: 23376: template 23376: FP_Interval_Type 23376: Floating_Point_Expression 23376: ::compute_absolute_error() { 23376: typedef typename Floating_Point_Expression 23376: ::boundary_type Boundary; 23376: boundary_type omega; 23376: omega = std::max(pow(static_cast(FP_Format::BASE), 23376: static_cast(1 - FP_Format::EXPONENT_BIAS 23376: - FP_Format::MANTISSA_BITS)), 23376: std::numeric_limits::denorm_min()); 23376: FP_Interval_Type result; 23376: result.build(i_constraint(GREATER_OR_EQUAL, -omega), 23376: i_constraint(LESS_OR_EQUAL, omega)); 23376: return result; 23376: } 23376: 23376: } 23376: # 211 "../../src/Floating_Point_Expression_defs.hh" 2 23376: # 33 "../../src/Polyhedron_templates.hh" 2 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: Polyhedron::Polyhedron(Topology topol, 23376: const Box& box, 23376: Complexity_Class) 23376: : con_sys(topol, default_con_sys_repr), 23376: gen_sys(topol, default_gen_sys_repr), 23376: sat_c(), 23376: sat_g() { 23376: 23376: space_dim = box.space_dimension(); 23376: 23376: 23376: if (box.is_empty()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: 23376: if (space_dim == 0) { 23376: set_zero_dim_univ(); 23376: return; 23376: } 23376: 23376: 23376: con_sys.set_space_dimension(space_dim); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_l_n; Parma_Polyhedra_Library::Coefficient& l_n = holder_l_n.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_l_d; Parma_Polyhedra_Library::Coefficient& l_d = holder_l_d.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_u_n; Parma_Polyhedra_Library::Coefficient& u_n = holder_u_n.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_u_d; Parma_Polyhedra_Library::Coefficient& u_d = holder_u_d.item(); 23376: 23376: if (topol == NECESSARILY_CLOSED) { 23376: for (dimension_type k = space_dim; k-- > 0; ) { 23376: const Variable v_k = Variable(k); 23376: 23376: bool l_closed = false; 23376: bool l_bounded = box.has_lower_bound(v_k, l_n, l_d, l_closed); 23376: 23376: bool u_closed = false; 23376: bool u_bounded = box.has_upper_bound(v_k, u_n, u_d, u_closed); 23376: 23376: 23376: if (l_bounded && u_bounded 23376: && l_closed && u_closed 23376: && l_n == u_n && l_d == u_d) { 23376: 23376: con_sys.insert(l_d * v_k == l_n); 23376: } 23376: else { 23376: if (l_bounded) { 23376: 23376: con_sys.insert(l_d * v_k >= l_n); 23376: } 23376: if (u_bounded) { 23376: 23376: con_sys.insert(u_d * v_k <= u_n); 23376: } 23376: } 23376: } 23376: } 23376: else { 23376: 23376: for (dimension_type k = space_dim; k-- > 0; ) { 23376: const Variable v_k = Variable(k); 23376: 23376: bool l_closed = false; 23376: bool l_bounded = box.has_lower_bound(v_k, l_n, l_d, l_closed); 23376: 23376: bool u_closed = false; 23376: bool u_bounded = box.has_upper_bound(v_k, u_n, u_d, u_closed); 23376: 23376: 23376: if (l_bounded && u_bounded 23376: && l_closed && u_closed 23376: && l_n == u_n && l_d == u_d) { 23376: 23376: con_sys.insert(l_d * v_k == l_n); 23376: } 23376: else { 23376: 23376: if (l_bounded) { 23376: if (l_closed) { 23376: 23376: con_sys.insert(l_d * v_k >= l_n); 23376: } 23376: else { 23376: 23376: con_sys.insert(l_d * v_k > l_n); 23376: } 23376: } 23376: 23376: if (u_bounded) { 23376: if (u_closed) { 23376: 23376: con_sys.insert(u_d * v_k <= u_n); 23376: } 23376: else { 23376: 23376: con_sys.insert(u_d * v_k < u_n); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: con_sys.add_low_level_constraints(); 23376: 23376: 23376: set_constraints_up_to_date(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Polyhedron::map_space_dimensions(const Partial_Function& pfunc) { 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: if (pfunc.has_empty_codomain()) { 23376: 23376: if (marked_empty() 23376: || (has_pending_constraints() 23376: && !remove_pending_to_obtain_generators()) 23376: || (!generators_are_up_to_date() && !update_generators())) { 23376: 23376: space_dim = 0; 23376: con_sys.clear(); 23376: } 23376: else { 23376: 23376: set_zero_dim_univ(); 23376: } 23376: 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: const dimension_type new_space_dimension = pfunc.max_in_codomain() + 1; 23376: 23376: if (new_space_dimension == space_dim) { 23376: 23376: 23376: 23376: 23376: 23376: std::vector cycle; 23376: cycle.reserve(space_dim); 23376: 23376: 23376: std::deque visited(space_dim); 23376: 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: if (visited[i]) { 23376: continue; 23376: } 23376: 23376: dimension_type j = i; 23376: do { 23376: visited[j] = true; 23376: 23376: dimension_type k = 0; 23376: if (!pfunc.maps(j, k)) { 23376: throw_invalid_argument("map_space_dimensions(pfunc)", 23376: " pfunc is inconsistent"); 23376: } 23376: if (k == j) { 23376: break; 23376: } 23376: 23376: cycle.push_back(Variable(j)); 23376: 23376: j = k; 23376: } while (!visited[j]); 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (constraints_are_up_to_date()) { 23376: con_sys.permute_space_dimensions(cycle); 23376: } 23376: 23376: if (generators_are_up_to_date()) { 23376: gen_sys.permute_space_dimensions(cycle); 23376: } 23376: 23376: cycle.clear(); 23376: } 23376: 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const Generator_System& old_gensys = generators(); 23376: 23376: if (old_gensys.has_no_rows()) { 23376: 23376: Polyhedron new_polyhedron(topology(), new_space_dimension, EMPTY); 23376: m_swap(new_polyhedron); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: std::vector pfunc_maps(space_dim, not_a_dimension()); 23376: for (dimension_type j = space_dim; j-- > 0; ) { 23376: dimension_type pfunc_j; 23376: if (pfunc.maps(j, pfunc_j)) { 23376: pfunc_maps[j] = pfunc_j; 23376: } 23376: } 23376: 23376: Generator_System new_gensys; 23376: for (Generator_System::const_iterator i = old_gensys.begin(), 23376: old_gensys_end = old_gensys.end(); i != old_gensys_end; ++i) { 23376: const Generator& old_g = *i; 23376: const Generator::expr_type old_e = old_g.expression(); 23376: Linear_Expression expr; 23376: expr.set_space_dimension(new_space_dimension); 23376: bool all_zeroes = true; 23376: for (Generator::expr_type::const_iterator j = old_e.begin(), 23376: j_end = old_e.end(); j != j_end; ++j) { 23376: const dimension_type mapped_id = pfunc_maps[j.variable().id()]; 23376: if (mapped_id != not_a_dimension()) { 23376: add_mul_assign(expr, *j, Variable(mapped_id)); 23376: all_zeroes = false; 23376: } 23376: } 23376: switch (old_g.type()) { 23376: case Generator::LINE: 23376: if (!all_zeroes) { 23376: new_gensys.insert(line(expr)); 23376: } 23376: break; 23376: case Generator::RAY: 23376: if (!all_zeroes) { 23376: new_gensys.insert(ray(expr)); 23376: } 23376: break; 23376: case Generator::POINT: 23376: 23376: new_gensys.insert(point(expr, old_g.divisor())); 23376: break; 23376: case Generator::CLOSURE_POINT: 23376: 23376: new_gensys.insert(closure_point(expr, old_g.divisor())); 23376: break; 23376: } 23376: } 23376: Polyhedron new_polyhedron(topology(), new_gensys); 23376: m_swap(new_polyhedron); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Polyhedron::refine_with_linear_form_inequality( 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right, 23376: const bool is_strict) { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_308 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: 23376: 23376: 23376: const dimension_type left_space_dim = left.space_dimension(); 23376: if (space_dim < left_space_dim) { 23376: throw_dimension_incompatible( 23376: "refine_with_linear_form_inequality(l1, l2, s)", "l1", left); 23376: } 23376: 23376: const dimension_type right_space_dim = right.space_dimension(); 23376: if (space_dim < right_space_dim) { 23376: throw_dimension_incompatible( 23376: "refine_with_linear_form_inequality(l1, l2, s)", "l2", right); 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: typedef Interval FP_Interval_Type; 23376: typedef Linear_Form FP_Linear_Form; 23376: 23376: if (Floating_Point_Expression:: 23376: overflows(left)) { 23376: return; 23376: } 23376: 23376: if (Floating_Point_Expression:: 23376: overflows(right)) { 23376: return; 23376: } 23376: 23376: 23376: FP_Linear_Form left_minus_right(left); 23376: left_minus_right -= right; 23376: if (Floating_Point_Expression:: 23376: overflows(left_minus_right)) { 23376: return; 23376: } 23376: 23376: dimension_type lf_space_dim = left_minus_right.space_dimension(); 23376: FP_Linear_Form lf_approx; 23376: overapproximate_linear_form(left_minus_right, lf_space_dim, lf_approx); 23376: if (Floating_Point_Expression:: 23376: overflows(lf_approx)) { 23376: return; 23376: } 23376: 23376: 23376: Linear_Expression lf_approx_le; 23376: convert_to_integer_expression(lf_approx, lf_space_dim, lf_approx_le); 23376: 23376: 23376: if (!is_strict || is_necessarily_closed()) { 23376: refine_with_constraint(lf_approx_le <= 0); 23376: } 23376: else { 23376: refine_with_constraint(lf_approx_le < 0); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Polyhedron::affine_form_image(const Variable var, 23376: const Linear_Form >& lf) { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_378 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: 23376: 23376: const dimension_type lf_space_dim = lf.space_dimension(); 23376: if (space_dim < lf_space_dim) { 23376: throw_dimension_incompatible("affine_form_image(v, l, s)", "l", lf); 23376: } 23376: 23376: 23376: const dimension_type var_id = var.id(); 23376: if (space_dim < var_id + 1) { 23376: throw_dimension_incompatible("affine_form_image(v, l, s)", "v", var); 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: typedef Interval FP_Interval_Type; 23376: typedef Linear_Form FP_Linear_Form; 23376: 23376: if (Floating_Point_Expression:: 23376: overflows(lf)) { 23376: *this = Polyhedron(topology(), space_dim, UNIVERSE); 23376: return; 23376: } 23376: 23376: 23376: FP_Linear_Form lf_approx; 23376: overapproximate_linear_form(lf, lf_space_dim, lf_approx); 23376: 23376: if (Floating_Point_Expression:: 23376: overflows(lf_approx)) { 23376: *this = Polyhedron(topology(), space_dim, UNIVERSE); 23376: return; 23376: } 23376: 23376: 23376: Linear_Expression lf_approx_le; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lo_coeff; Parma_Polyhedra_Library::Coefficient& lo_coeff = holder_lo_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_hi_coeff; Parma_Polyhedra_Library::Coefficient& hi_coeff = holder_hi_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denominator; Parma_Polyhedra_Library::Coefficient& denominator = holder_denominator.item(); 23376: convert_to_integer_expressions(lf_approx, lf_space_dim, lf_approx_le, 23376: lo_coeff, hi_coeff, denominator); 23376: 23376: 23376: bounded_affine_image(var, lf_approx_le + lo_coeff, lf_approx_le + hi_coeff, 23376: denominator); 23376: } 23376: 23376: template 23376: void 23376: Polyhedron 23376: ::overapproximate_linear_form(const Linear_Form >& lf, 23376: const dimension_type lf_dimension, 23376: Linear_Form >& result) { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_438 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: typedef Interval FP_Interval_Type; 23376: typedef Linear_Form FP_Linear_Form; 23376: 23376: 23376: 23376: Box box(*this); 23376: 23376: result = FP_Linear_Form(lf.inhomogeneous_term()); 23376: 23376: const FP_Interval_Type aux_divisor1(static_cast(0.5)); 23376: FP_Interval_Type aux_divisor2(aux_divisor1); 23376: aux_divisor2.lower() = static_cast(-0.5); 23376: 23376: for (dimension_type i = 0; i < lf_dimension; ++i) { 23376: Variable curr_var(i); 23376: const FP_Interval_Type& curr_coeff = lf.coefficient(curr_var); 23376: ((void) 0); 23376: FP_Format curr_lb = curr_coeff.lower(); 23376: FP_Format curr_ub = curr_coeff.upper(); 23376: if (curr_lb != 0 || curr_ub != 0) { 23376: const FP_Interval_Type& curr_int = box.get_interval(curr_var); 23376: FP_Interval_Type curr_addend(curr_ub - curr_lb); 23376: curr_addend *= aux_divisor2; 23376: curr_addend *= curr_int; 23376: result += curr_addend; 23376: curr_addend = FP_Interval_Type(curr_lb + curr_ub); 23376: curr_addend *= aux_divisor1; 23376: FP_Linear_Form curr_addend_lf(curr_var); 23376: curr_addend_lf *= curr_addend; 23376: result += curr_addend_lf; 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Polyhedron::convert_to_integer_expression( 23376: const Linear_Form >& lf, 23376: const dimension_type lf_dimension, 23376: Linear_Expression& result) { 23376: result = Linear_Expression(); 23376: 23376: typedef Interval FP_Interval_Type; 23376: std::vector numerators(lf_dimension+1); 23376: std::vector denominators(lf_dimension+1); 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lcm; Parma_Polyhedra_Library::Coefficient& lcm = holder_lcm.item(); 23376: lcm = 1; 23376: const FP_Interval_Type& b = lf.inhomogeneous_term(); 23376: 23376: numer_denom(b.lower(), numerators[lf_dimension], 23376: denominators[lf_dimension]); 23376: if (numerators[lf_dimension] != 0) { 23376: lcm_assign(lcm, lcm, denominators[lf_dimension]); 23376: } 23376: 23376: for (dimension_type i = 0; i < lf_dimension; ++i) { 23376: const FP_Interval_Type& curr_int = lf.coefficient(Variable(i)); 23376: numer_denom(curr_int.lower(), numerators[i], denominators[i]); 23376: if (numerators[i] != 0) { 23376: lcm_assign(lcm, lcm, denominators[i]); 23376: } 23376: } 23376: 23376: for (dimension_type i = 0; i < lf_dimension; ++i) { 23376: if (numerators[i] != 0) { 23376: exact_div_assign(denominators[i], lcm, denominators[i]); 23376: numerators[i] *= denominators[i]; 23376: result += numerators[i] * Variable(i); 23376: } 23376: } 23376: 23376: if (numerators[lf_dimension] != 0) { 23376: exact_div_assign(denominators[lf_dimension], 23376: lcm, denominators[lf_dimension]); 23376: numerators[lf_dimension] *= denominators[lf_dimension]; 23376: result += numerators[lf_dimension]; 23376: } 23376: } 23376: 23376: template 23376: void 23376: Polyhedron::convert_to_integer_expressions( 23376: const Linear_Form >& lf, 23376: const dimension_type lf_dimension, Linear_Expression& res, 23376: Coefficient& res_low_coeff, Coefficient& res_hi_coeff, 23376: Coefficient& denominator) { 23376: res = Linear_Expression(); 23376: 23376: typedef Interval FP_Interval_Type; 23376: std::vector numerators(lf_dimension+2); 23376: std::vector denominators(lf_dimension+2); 23376: 23376: 23376: 23376: Coefficient& lcm = denominator; 23376: lcm = 1; 23376: const FP_Interval_Type& b = lf.inhomogeneous_term(); 23376: numer_denom(b.lower(), numerators[lf_dimension], denominators[lf_dimension]); 23376: 23376: if (numerators[lf_dimension] != 0) { 23376: lcm_assign(lcm, lcm, denominators[lf_dimension]); 23376: } 23376: 23376: numer_denom(b.upper(), numerators[lf_dimension+1], 23376: denominators[lf_dimension+1]); 23376: if (numerators[lf_dimension+1] != 0) { 23376: lcm_assign(lcm, lcm, denominators[lf_dimension+1]); 23376: } 23376: 23376: for (dimension_type i = 0; i < lf_dimension; ++i) { 23376: const FP_Interval_Type& curr_int = lf.coefficient(Variable(i)); 23376: numer_denom(curr_int.lower(), numerators[i], denominators[i]); 23376: if (numerators[i] != 0) { 23376: lcm_assign(lcm, lcm, denominators[i]); 23376: } 23376: } 23376: 23376: for (dimension_type i = 0; i < lf_dimension; ++i) { 23376: if (numerators[i] != 0) { 23376: exact_div_assign(denominators[i], lcm, denominators[i]); 23376: numerators[i] *= denominators[i]; 23376: res += numerators[i] * Variable(i); 23376: } 23376: } 23376: 23376: if (numerators[lf_dimension] != 0) { 23376: exact_div_assign(denominators[lf_dimension], 23376: lcm, denominators[lf_dimension]); 23376: numerators[lf_dimension] *= denominators[lf_dimension]; 23376: res_low_coeff = numerators[lf_dimension]; 23376: } 23376: else { 23376: res_low_coeff = 0; 23376: } 23376: 23376: if (numerators[lf_dimension+1] != 0) { 23376: exact_div_assign(denominators[lf_dimension+1], 23376: lcm, denominators[lf_dimension+1]); 23376: numerators[lf_dimension+1] *= denominators[lf_dimension+1]; 23376: res_hi_coeff = numerators[lf_dimension+1]; 23376: } 23376: else { 23376: res_hi_coeff = 0; 23376: } 23376: } 23376: 23376: template 23376: void 23376: Polyhedron::throw_dimension_incompatible(const char* method, 23376: const char* lf_name, 23376: const Linear_Form& lf) const { 23376: throw_dimension_incompatible(method, lf_name, lf.space_dimension()); 23376: } 23376: 23376: template 23376: Input& 23376: Polyhedron::check_obj_space_dimension_overflow(Input& input, 23376: const Topology topol, 23376: const char* method, 23376: const char* reason) { 23376: check_space_dimension_overflow(input.space_dimension(), 23376: max_space_dimension(), 23376: topol, method, reason); 23376: return input; 23376: } 23376: 23376: } 23376: # 2858 "../../src/Polyhedron_defs.hh" 2 23376: # 1 "../../src/Polyhedron_chdims_templates.hh" 1 23376: # 28 "../../src/Polyhedron_chdims_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: void 23376: Polyhedron::add_space_dimensions(Linear_System1& sys1, 23376: Linear_System2& sys2, 23376: Bit_Matrix& sat1, 23376: Bit_Matrix& sat2, 23376: dimension_type add_dim) { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: sys1.set_space_dimension(sys1.space_dimension() + add_dim); 23376: sys2.add_universe_rows_and_space_dimensions(add_dim); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: sat1.resize(sat1.num_rows() + add_dim, sat1.num_columns()); 23376: 23376: for (dimension_type i = sat1.num_rows() - add_dim; i-- > 0; ) { 23376: swap(sat1[i], sat1[i+add_dim]); 23376: } 23376: 23376: sat2.transpose_assign(sat1); 23376: } 23376: 23376: } 23376: # 2859 "../../src/Polyhedron_defs.hh" 2 23376: # 1 "../../src/Polyhedron_conversion_templates.hh" 1 23376: # 29 "../../src/Polyhedron_conversion_templates.hh" 23376: # 1 "../../src/Polyhedron_defs.hh" 1 23376: # 30 "../../src/Polyhedron_conversion_templates.hh" 2 23376: 23376: 23376: 23376: 23376: 23376: 23376: # 1 "/usr/include/c++/8/climits" 1 3 23376: # 39 "/usr/include/c++/8/climits" 3 23376: 23376: # 40 "/usr/include/c++/8/climits" 3 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 23376: # 43 "/usr/include/c++/8/climits" 2 3 23376: # 37 "../../src/Polyhedron_conversion_templates.hh" 2 23376: # 52 "../../src/Polyhedron_conversion_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 367 "../../src/Polyhedron_conversion_templates.hh" 23376: template 23376: dimension_type 23376: Polyhedron::conversion(Source_Linear_System& source, 23376: const dimension_type start, 23376: Dest_Linear_System& dest, 23376: Bit_Matrix& sat, 23376: dimension_type num_lines_or_equalities) { 23376: typedef typename Dest_Linear_System::row_type dest_row_type; 23376: typedef typename Source_Linear_System::row_type source_row_type; 23376: 23376: 23376: 23376: ((void) 0); 23376: const dimension_type source_space_dim = source.space_dimension(); 23376: const dimension_type source_num_rows = source.num_rows(); 23376: const dimension_type source_num_columns = source_space_dim 23376: + (source.is_necessarily_closed() ? 1U : 2U); 23376: 23376: 23376: dimension_type dest_num_rows = dest.num_rows(); 23376: 23376: 23376: std::vector recyclable_dest_rows; 23376: 23376: using std::swap; 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: ((void) 0); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_normalized_sp_i; Parma_Polyhedra_Library::Coefficient& normalized_sp_i = holder_normalized_sp_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_normalized_sp_o; Parma_Polyhedra_Library::Coefficient& normalized_sp_o = holder_normalized_sp_o.item(); 23376: 23376: bool dest_sorted = dest.is_sorted(); 23376: const dimension_type dest_first_pending_row = dest.first_pending_row(); 23376: 23376: 23376: std::vector redundant_source_rows; 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp > holder_sat_num_ones; std::vector& sat_num_ones = holder_sat_num_ones.item(); 23376: sat_num_ones.resize(dest_num_rows, 0); 23376: for (dimension_type i = dest_num_rows; i-- > 0; ) { 23376: sat_num_ones[i] = sat[i].count_ones(); 23376: } 23376: 23376: 23376: 23376: 23376: for (dimension_type k = start; k < source_num_rows; ++k) { 23376: const source_row_type& source_k = source[k]; 23376: # 437 "../../src/Polyhedron_conversion_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp > holder_scalar_prod; std::vector& scalar_prod = holder_scalar_prod.item(); 23376: if (dest_num_rows > scalar_prod.size()) { 23376: scalar_prod.insert(scalar_prod.end(), 23376: dest_num_rows - scalar_prod.size(), 23376: Coefficient_zero()); 23376: } 23376: 23376: 23376: dimension_type index_non_zero = 0; 23376: for ( ; index_non_zero < dest_num_rows; ++index_non_zero) { 23376: do { } while (false); 23376: Scalar_Products::assign(scalar_prod[index_non_zero], 23376: source_k, 23376: dest.sys.rows[index_non_zero]); 23376: do { Weightwatch_Traits::weight += (17)*(source_space_dim); } while (false); 23376: if (scalar_prod[index_non_zero] != 0) { 23376: 23376: break; 23376: } 23376: 23376: 23376: 23376: maybe_abandon(); 23376: } 23376: for (dimension_type i = index_non_zero + 1; i < dest_num_rows; ++i) { 23376: do { } while (false); 23376: Scalar_Products::assign(scalar_prod[i], source_k, dest.sys.rows[i]); 23376: do { Weightwatch_Traits::weight += (25)*(source_space_dim); } while (false); 23376: 23376: 23376: 23376: maybe_abandon(); 23376: } 23376: # 478 "../../src/Polyhedron_conversion_templates.hh" 23376: if (index_non_zero < num_lines_or_equalities) { 23376: 23376: 23376: 23376: 23376: dest.sys.rows[index_non_zero].set_is_ray_or_point_or_inequality(); 23376: 23376: 23376: 23376: if (scalar_prod[index_non_zero] < 0) { 23376: 23376: 23376: neg_assign(scalar_prod[index_non_zero]); 23376: neg_assign(dest.sys.rows[index_non_zero].expr); 23376: 23376: 23376: } 23376: 23376: 23376: 23376: dest_sorted = false; 23376: --num_lines_or_equalities; 23376: if (index_non_zero != num_lines_or_equalities) { 23376: swap(dest.sys.rows[index_non_zero], 23376: dest.sys.rows[num_lines_or_equalities]); 23376: swap(scalar_prod[index_non_zero], 23376: scalar_prod[num_lines_or_equalities]); 23376: } 23376: const dest_row_type& dest_nle = dest.sys.rows[num_lines_or_equalities]; 23376: # 523 "../../src/Polyhedron_conversion_templates.hh" 23376: Coefficient& scalar_prod_nle = scalar_prod[num_lines_or_equalities]; 23376: ((void) 0); 23376: for (dimension_type 23376: i = index_non_zero; i < num_lines_or_equalities; ++i) { 23376: if (scalar_prod[i] != 0) { 23376: # 540 "../../src/Polyhedron_conversion_templates.hh" 23376: normalize2(scalar_prod[i], 23376: scalar_prod_nle, 23376: normalized_sp_i, 23376: normalized_sp_o); 23376: dest_row_type& dest_i = dest.sys.rows[i]; 23376: neg_assign(normalized_sp_i); 23376: dest_i.expr.linear_combine(dest_nle.expr, 23376: normalized_sp_o, normalized_sp_i); 23376: dest_i.strong_normalize(); 23376: 23376: 23376: scalar_prod[i] = 0; 23376: 23376: } 23376: } 23376: # 563 "../../src/Polyhedron_conversion_templates.hh" 23376: for (dimension_type 23376: i = num_lines_or_equalities + 1; i < dest_num_rows; ++i) { 23376: if (scalar_prod[i] != 0) { 23376: # 578 "../../src/Polyhedron_conversion_templates.hh" 23376: normalize2(scalar_prod[i], 23376: scalar_prod_nle, 23376: normalized_sp_i, 23376: normalized_sp_o); 23376: dest_row_type& dest_i = dest.sys.rows[i]; 23376: do { } while (false); 23376: neg_assign(normalized_sp_i); 23376: dest_i.expr.linear_combine(dest_nle.expr, 23376: normalized_sp_o, normalized_sp_i); 23376: dest_i.strong_normalize(); 23376: 23376: 23376: scalar_prod[i] = 0; 23376: 23376: do { Weightwatch_Traits::weight += (41)*(source_space_dim); } while (false); 23376: } 23376: 23376: 23376: 23376: maybe_abandon(); 23376: } 23376: 23376: 23376: 23376: 23376: Bit_Row& sat_nle = sat[num_lines_or_equalities]; 23376: if (source_k.is_ray_or_point_or_inequality()) { 23376: sat_nle.set(k - redundant_source_rows.size()); 23376: 23376: ++sat_num_ones[num_lines_or_equalities]; 23376: 23376: } 23376: else { 23376: 23376: 23376: 23376: --dest_num_rows; 23376: swap(dest.sys.rows[num_lines_or_equalities], 23376: dest.sys.rows[dest_num_rows]); 23376: recyclable_dest_rows.resize(recyclable_dest_rows.size() + 1); 23376: swap(dest.sys.rows.back(), recyclable_dest_rows.back()); 23376: dest.sys.rows.pop_back(); 23376: ((void) 0); 23376: 23376: swap(scalar_prod_nle, scalar_prod[dest_num_rows]); 23376: swap(sat_nle, sat[dest_num_rows]); 23376: 23376: swap(sat_num_ones[num_lines_or_equalities], 23376: sat_num_ones[dest_num_rows]); 23376: 23376: 23376: } 23376: 23376: 23376: continue; 23376: } 23376: 23376: 23376: ((void) 0); 23376: # 649 "../../src/Polyhedron_conversion_templates.hh" 23376: dimension_type lines_or_equal_bound = num_lines_or_equalities; 23376: dimension_type inf_bound = dest_num_rows; 23376: 23376: 23376: while (inf_bound > lines_or_equal_bound 23376: && scalar_prod[lines_or_equal_bound] == 0) { 23376: ++lines_or_equal_bound; 23376: } 23376: dimension_type sup_bound = lines_or_equal_bound; 23376: while (inf_bound > sup_bound) { 23376: const int sp_sign = sgn(scalar_prod[sup_bound]); 23376: if (sp_sign == 0) { 23376: 23376: swap(dest.sys.rows[sup_bound], dest.sys.rows[lines_or_equal_bound]); 23376: swap(scalar_prod[sup_bound], scalar_prod[lines_or_equal_bound]); 23376: swap(sat[sup_bound], sat[lines_or_equal_bound]); 23376: 23376: swap(sat_num_ones[sup_bound], sat_num_ones[lines_or_equal_bound]); 23376: 23376: ++lines_or_equal_bound; 23376: ++sup_bound; 23376: dest_sorted = false; 23376: } 23376: else if (sp_sign < 0) { 23376: 23376: --inf_bound; 23376: swap(dest.sys.rows[sup_bound], dest.sys.rows[inf_bound]); 23376: swap(sat[sup_bound], sat[inf_bound]); 23376: swap(scalar_prod[sup_bound], scalar_prod[inf_bound]); 23376: 23376: swap(sat_num_ones[sup_bound], sat_num_ones[inf_bound]); 23376: 23376: dest_sorted = false; 23376: } 23376: else { 23376: 23376: ++sup_bound; 23376: } 23376: } 23376: 23376: if (sup_bound == dest_num_rows) { 23376: 23376: 23376: 23376: 23376: 23376: if (source_k.is_ray_or_point_or_inequality()) { 23376: redundant_source_rows.push_back(k); 23376: } 23376: else { 23376: 23376: 23376: 23376: ((void) 0); 23376: while (dest_num_rows != lines_or_equal_bound) { 23376: recyclable_dest_rows.resize(recyclable_dest_rows.size() + 1); 23376: swap(dest.sys.rows.back(), recyclable_dest_rows.back()); 23376: dest.sys.rows.pop_back(); 23376: --dest_num_rows; 23376: } 23376: ((void) 0); 23376: } 23376: 23376: 23376: continue; 23376: } 23376: 23376: 23376: 23376: if (sup_bound == num_lines_or_equalities) { 23376: 23376: 23376: 23376: ((void) 0); 23376: while (dest_num_rows != sup_bound) { 23376: recyclable_dest_rows.resize(recyclable_dest_rows.size() + 1); 23376: swap(dest.sys.rows.back(), recyclable_dest_rows.back()); 23376: dest.sys.rows.pop_back(); 23376: --dest_num_rows; 23376: } 23376: ((void) 0); 23376: 23376: 23376: continue; 23376: } 23376: # 744 "../../src/Polyhedron_conversion_templates.hh" 23376: const dimension_type bound = dest_num_rows; 23376: # 755 "../../src/Polyhedron_conversion_templates.hh" 23376: const dimension_type min_saturators 23376: = source_num_columns - num_lines_or_equalities - 2; 23376: 23376: const dimension_type max_saturators = k - redundant_source_rows.size(); 23376: 23376: 23376: 23376: 23376: 23376: for (dimension_type i = lines_or_equal_bound; i < sup_bound; ++i) { 23376: for (dimension_type j = sup_bound; j < bound; ++j) { 23376: 23376: 23376: 23376: 23376: 23376: ((void) 0) 23376: ; 23376: ((void) 0) 23376: ; 23376: 23376: 23376: 23376: 23376: 23376: Bit_Row new_satrow(sat[i], sat[j]); 23376: # 790 "../../src/Polyhedron_conversion_templates.hh" 23376: dimension_type new_satrow_ones = new_satrow.count_ones(); 23376: 23376: 23376: 23376: const dimension_type num_common_satur 23376: = max_saturators - new_satrow_ones; 23376: if (num_common_satur < min_saturators) { 23376: 23376: continue; 23376: } 23376: # 808 "../../src/Polyhedron_conversion_templates.hh" 23376: const dimension_type max_ones_i_j 23376: = std::max(sat_num_ones[i], sat_num_ones[j]); 23376: if (max_ones_i_j + 1 == new_satrow_ones) { 23376: 23376: goto are_adjacent; 23376: } 23376: 23376: 23376: 23376: { 23376: bool redundant = false; 23376: do { } while (false); 23376: for (dimension_type l = num_lines_or_equalities; l < bound; ++l) { 23376: if (l != i && l != j 23376: && subset_or_equal(sat[l], new_satrow)) { 23376: 23376: 23376: redundant = true; 23376: break; 23376: } 23376: } 23376: ((void) 0); 23376: do { Weightwatch_Traits::weight += (15)*(bound - num_lines_or_equalities); } while (false); 23376: if (redundant) { 23376: 23376: continue; 23376: } 23376: } 23376: 23376: 23376: are_adjacent: 23376: 23376: 23376: 23376: dest_row_type new_row; 23376: if (recyclable_dest_rows.empty()) { 23376: sat.add_recycled_row(new_satrow); 23376: 23376: sat_num_ones.push_back(new_satrow_ones); 23376: 23376: } 23376: else { 23376: swap(new_row, recyclable_dest_rows.back()); 23376: recyclable_dest_rows.pop_back(); 23376: new_row.set_space_dimension_no_ok(source_space_dim); 23376: swap(sat[dest_num_rows], new_satrow); 23376: 23376: swap(sat_num_ones[dest_num_rows], new_satrow_ones); 23376: 23376: } 23376: # 871 "../../src/Polyhedron_conversion_templates.hh" 23376: normalize2(scalar_prod[i], 23376: scalar_prod[j], 23376: normalized_sp_i, 23376: normalized_sp_o); 23376: do { } while (false); 23376: 23376: neg_assign(normalized_sp_o); 23376: new_row = dest.sys.rows[j]; 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: new_row.expr.linear_combine(dest.sys.rows[i].expr, 23376: normalized_sp_i, normalized_sp_o); 23376: 23376: do { Weightwatch_Traits::weight += (86)*(source_space_dim); } while (false); 23376: new_row.strong_normalize(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: if (scalar_prod.size() <= dest_num_rows) { 23376: scalar_prod.push_back(Coefficient_zero()); 23376: } 23376: else { 23376: scalar_prod[dest_num_rows] = Coefficient_zero(); 23376: } 23376: dest.sys.rows.resize(dest.sys.rows.size() + 1); 23376: swap(dest.sys.rows.back(), new_row); 23376: 23376: ++dest_num_rows; 23376: } 23376: 23376: 23376: 23376: maybe_abandon(); 23376: } 23376: 23376: 23376: dimension_type j; 23376: if (source_k.is_ray_or_point_or_inequality()) { 23376: 23376: 23376: j = sup_bound; 23376: 23376: 23376: 23376: 23376: 23376: const dimension_type new_k = k - redundant_source_rows.size(); 23376: for (dimension_type l = lines_or_equal_bound; 23376: l < sup_bound; ++l) { 23376: sat[l].set(new_k); 23376: 23376: ++sat_num_ones[l]; 23376: 23376: } 23376: } 23376: else { 23376: 23376: 23376: j = lines_or_equal_bound; 23376: } 23376: 23376: 23376: 23376: 23376: dimension_type i = dest_num_rows; 23376: while (j < bound && i > bound) { 23376: --i; 23376: swap(dest.sys.rows[i], dest.sys.rows[j]); 23376: swap(scalar_prod[i], scalar_prod[j]); 23376: swap(sat[i], sat[j]); 23376: 23376: swap(sat_num_ones[i], sat_num_ones[j]); 23376: 23376: ++j; 23376: dest_sorted = false; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: const dimension_type new_num_rows = (j == bound) ? i : j; 23376: ((void) 0); 23376: while (dest_num_rows != new_num_rows) { 23376: recyclable_dest_rows.resize(recyclable_dest_rows.size() + 1); 23376: swap(dest.sys.rows.back(), recyclable_dest_rows.back()); 23376: dest.sys.rows.pop_back(); 23376: --dest_num_rows; 23376: } 23376: ((void) 0); 23376: } 23376: 23376: 23376: 23376: if (redundant_source_rows.size() > 0) { 23376: source.remove_rows(redundant_source_rows); 23376: sat.remove_trailing_columns(redundant_source_rows.size()); 23376: } 23376: # 985 "../../src/Polyhedron_conversion_templates.hh" 23376: if (start > 0 && start < source.num_rows()) { 23376: source.set_sorted(compare(source[start - 1], source[start]) <= 0); 23376: } 23376: 23376: source.unset_pending_rows(); 23376: 23376: 23376: 23376: if (!recyclable_dest_rows.empty()) { 23376: const dimension_type num_removed_rows = recyclable_dest_rows.size(); 23376: sat.remove_trailing_rows(num_removed_rows); 23376: } 23376: if (dest_sorted) { 23376: 23376: 23376: 23376: for (dimension_type i = dest_first_pending_row; 23376: i < dest_num_rows; ++i) { 23376: if (compare(dest.sys.rows[i - 1], dest.sys.rows[i]) > 0) { 23376: dest_sorted = false; 23376: break; 23376: } 23376: } 23376: } 23376: # 1017 "../../src/Polyhedron_conversion_templates.hh" 23376: dest.sys.index_first_pending = dest.num_rows(); 23376: dest.set_sorted(dest_sorted); 23376: ((void) 0); 23376: 23376: return num_lines_or_equalities; 23376: } 23376: 23376: } 23376: # 2860 "../../src/Polyhedron_defs.hh" 2 23376: # 1 "../../src/Polyhedron_minimize_templates.hh" 1 23376: # 31 "../../src/Polyhedron_minimize_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 69 "../../src/Polyhedron_minimize_templates.hh" 23376: template 23376: bool 23376: Polyhedron::minimize(const bool con_to_gen, 23376: Source_Linear_System& source, 23376: Dest_Linear_System& dest, 23376: Bit_Matrix& sat) { 23376: 23376: typedef typename Dest_Linear_System::row_type dest_row_type; 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: if (!source.is_sorted()) { 23376: source.sort_rows(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type dest_num_rows 23376: = source.topology() == NECESSARILY_CLOSED ? source.space_dimension() + 1 23376: : source.space_dimension() + 2; 23376: 23376: dest.clear(); 23376: dest.set_space_dimension(source.space_dimension()); 23376: 23376: 23376: for (dimension_type i = 0; i < dest_num_rows; ++i) { 23376: Linear_Expression expr; 23376: expr.set_space_dimension(dest_num_rows - 1); 23376: if (i == 0) { 23376: expr += 1; 23376: } 23376: else { 23376: expr += Variable(i - 1); 23376: } 23376: dest_row_type dest_i(expr, dest_row_type::LINE_OR_EQUALITY, NECESSARILY_CLOSED); 23376: if (dest.topology() == NOT_NECESSARILY_CLOSED) { 23376: dest_i.mark_as_not_necessarily_closed(); 23376: } 23376: dest.sys.insert_no_ok(dest_i, Recycle_Input()); 23376: } 23376: 23376: 23376: dest.set_sorted(false); 23376: # 141 "../../src/Polyhedron_minimize_templates.hh" 23376: Bit_Matrix tmp_sat(dest_num_rows, source.num_rows()); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: const dimension_type num_lines_or_equalities 23376: = conversion(source, 0U, dest, tmp_sat, dest_num_rows); 23376: 23376: dest_num_rows = dest.num_rows(); 23376: # 166 "../../src/Polyhedron_minimize_templates.hh" 23376: dimension_type first_point; 23376: if (dest.is_necessarily_closed()) { 23376: for (first_point = num_lines_or_equalities; 23376: first_point < dest_num_rows; 23376: ++first_point) { 23376: if (dest[first_point].expr.inhomogeneous_term() > 0) { 23376: break; 23376: } 23376: } 23376: } 23376: else { 23376: for (first_point = num_lines_or_equalities; 23376: first_point < dest_num_rows; 23376: ++first_point) { 23376: if (dest[first_point].expr.get(Variable(dest.space_dimension())) > 0) { 23376: break; 23376: } 23376: } 23376: } 23376: 23376: if (first_point == dest_num_rows) { 23376: if (con_to_gen) { 23376: 23376: return true; 23376: } 23376: else { 23376: # 200 "../../src/Polyhedron_minimize_templates.hh" 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: sat.transpose_assign(tmp_sat); 23376: simplify(source, sat); 23376: return false; 23376: } 23376: } 23376: # 264 "../../src/Polyhedron_minimize_templates.hh" 23376: template 23376: bool 23376: Polyhedron::add_and_minimize(const bool con_to_gen, 23376: Source_Linear_System1& source1, 23376: Dest_Linear_System& dest, 23376: Bit_Matrix& sat, 23376: const Source_Linear_System2& source2) { 23376: 23376: ((void) 0); 23376: 23376: 23376: ((void) 0); 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: const dimension_type old_source1_num_rows = source1.num_rows(); 23376: 23376: dimension_type k1 = 0; 23376: dimension_type k2 = 0; 23376: dimension_type source2_num_rows = source2.num_rows(); 23376: while (k1 < old_source1_num_rows && k2 < source2_num_rows) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: const int cmp = compare(source1[k1], source2[k2]); 23376: if (cmp == 0) { 23376: 23376: ++k2; 23376: 23376: 23376: ++k1; 23376: } 23376: else if (cmp < 0) { 23376: 23376: ++k1; 23376: } 23376: else { 23376: 23376: 23376: 23376: source1.add_pending_row(source2[k2]); 23376: 23376: ++k2; 23376: } 23376: } 23376: 23376: if (k2 < source2_num_rows) { 23376: 23376: 23376: 23376: for ( ; k2 < source2_num_rows; ++k2) { 23376: source1.add_pending_row(source2[k2]); 23376: } 23376: } 23376: 23376: if (source1.num_pending_rows() == 0) { 23376: 23376: 23376: 23376: return false; 23376: } 23376: return add_and_minimize(con_to_gen, source1, dest, sat); 23376: } 23376: # 370 "../../src/Polyhedron_minimize_templates.hh" 23376: template 23376: bool 23376: Polyhedron::add_and_minimize(const bool con_to_gen, 23376: Source_Linear_System& source, 23376: Dest_Linear_System& dest, 23376: Bit_Matrix& sat) { 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: sat.resize(dest.num_rows(), source.num_rows()); 23376: 23376: 23376: 23376: const dimension_type num_lines_or_equalities 23376: = conversion(source, source.first_pending_row(), 23376: dest, sat, 23376: dest.num_lines_or_equalities()); 23376: 23376: 23376: const dimension_type dest_num_rows = dest.num_rows(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type first_point; 23376: if (dest.is_necessarily_closed()) { 23376: for (first_point = num_lines_or_equalities; 23376: first_point < dest_num_rows; 23376: ++first_point) { 23376: if (dest[first_point].expr.inhomogeneous_term() > 0) { 23376: break; 23376: } 23376: } 23376: } 23376: else { 23376: for (first_point = num_lines_or_equalities; 23376: first_point < dest_num_rows; 23376: ++first_point) { 23376: if (dest[first_point].expr.get(Variable(dest.space_dimension())) > 0) { 23376: break; 23376: } 23376: } 23376: } 23376: 23376: if (first_point == dest_num_rows) { 23376: if (con_to_gen) { 23376: 23376: return true; 23376: } 23376: else { 23376: # 434 "../../src/Polyhedron_minimize_templates.hh" 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: sat.transpose(); 23376: simplify(source, sat); 23376: 23376: sat.transpose(); 23376: return false; 23376: } 23376: } 23376: 23376: } 23376: # 2861 "../../src/Polyhedron_defs.hh" 2 23376: # 1 "../../src/Polyhedron_simplify_templates.hh" 1 23376: # 32 "../../src/Polyhedron_simplify_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: # 82 "../../src/Polyhedron_simplify_templates.hh" 23376: template 23376: dimension_type 23376: Polyhedron::simplify(Linear_System1& sys, Bit_Matrix& sat) { 23376: dimension_type num_rows = sys.num_rows(); 23376: const dimension_type num_cols_sat = sat.num_columns(); 23376: 23376: using std::swap; 23376: 23376: 23376: dimension_type num_lines_or_equalities = 0; 23376: while (num_lines_or_equalities < num_rows 23376: && sys[num_lines_or_equalities].is_line_or_equality()) { 23376: ++num_lines_or_equalities; 23376: } 23376: 23376: 23376: 23376: if (num_rows > simplify_num_saturators_size) { 23376: delete [] simplify_num_saturators_p; 23376: simplify_num_saturators_p = 0; 23376: simplify_num_saturators_size = 0; 23376: const size_t max_size 23376: = std::numeric_limits::max() / sizeof(dimension_type); 23376: const size_t new_size = compute_capacity(num_rows, max_size); 23376: simplify_num_saturators_p = new dimension_type[new_size]; 23376: simplify_num_saturators_size = new_size; 23376: } 23376: dimension_type* const num_saturators = simplify_num_saturators_p; 23376: 23376: bool sys_sorted = sys.is_sorted(); 23376: 23376: 23376: 23376: 23376: for (dimension_type i = num_lines_or_equalities; i < num_rows; ++i) { 23376: if (sat[i].empty()) { 23376: 23376: 23376: 23376: sys.sys.rows[i].set_is_line_or_equality(); 23376: 23376: sys.sys.rows[i].sign_normalize(); 23376: 23376: 23376: if (i != num_lines_or_equalities) { 23376: sys.sys.rows[i].m_swap(sys.sys.rows[num_lines_or_equalities]); 23376: swap(sat[i], sat[num_lines_or_equalities]); 23376: swap(num_saturators[i], num_saturators[num_lines_or_equalities]); 23376: } 23376: ++num_lines_or_equalities; 23376: 23376: sys_sorted = false; 23376: } 23376: else { 23376: 23376: 23376: 23376: num_saturators[i] = num_cols_sat - sat[i].count_ones(); 23376: } 23376: } 23376: 23376: sys.set_sorted(sys_sorted); 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: const dimension_type rank = sys.gauss(num_lines_or_equalities); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (rank < num_lines_or_equalities) { 23376: # 169 "../../src/Polyhedron_simplify_templates.hh" 23376: for (dimension_type redundant = rank, 23376: erasing = num_rows; 23376: redundant < num_lines_or_equalities 23376: && erasing > num_lines_or_equalities; 23376: ) { 23376: --erasing; 23376: sys.remove_row(redundant); 23376: swap(sat[redundant], sat[erasing]); 23376: swap(num_saturators[redundant], num_saturators[erasing]); 23376: ++redundant; 23376: } 23376: 23376: 23376: 23376: 23376: num_rows -= num_lines_or_equalities - rank; 23376: 23376: 23376: 23376: sys.remove_trailing_rows(sys.num_rows() - num_rows); 23376: 23376: ((void) 0); 23376: 23376: sat.remove_trailing_rows(num_lines_or_equalities - rank); 23376: 23376: 23376: num_lines_or_equalities = rank; 23376: } 23376: 23376: const dimension_type old_num_rows = sys.num_rows(); 23376: # 230 "../../src/Polyhedron_simplify_templates.hh" 23376: const dimension_type sys_num_columns 23376: = sys.topology() == NECESSARILY_CLOSED ? sys.space_dimension() + 1 23376: : sys.space_dimension() + 2; 23376: const dimension_type min_saturators 23376: = sys_num_columns - num_lines_or_equalities - 1; 23376: for (dimension_type i = num_lines_or_equalities; i < num_rows; ) { 23376: if (num_saturators[i] < min_saturators) { 23376: 23376: --num_rows; 23376: sys.remove_row(i); 23376: swap(sat[i], sat[num_rows]); 23376: swap(num_saturators[i], num_saturators[num_rows]); 23376: } 23376: else { 23376: ++i; 23376: } 23376: } 23376: 23376: 23376: for (dimension_type i = num_lines_or_equalities; i < num_rows; ) { 23376: bool redundant = false; 23376: 23376: 23376: 23376: 23376: 23376: 23376: for (dimension_type j = num_lines_or_equalities; j < num_rows; ) { 23376: if (i == j) { 23376: 23376: ++j; 23376: } 23376: else { 23376: # 271 "../../src/Polyhedron_simplify_templates.hh" 23376: bool strict_subset; 23376: if (subset_or_equal(sat[j], sat[i], strict_subset)) { 23376: if (strict_subset) { 23376: 23376: 23376: 23376: 23376: 23376: redundant = true; 23376: break; 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: --num_rows; 23376: sys.remove_row(j); 23376: ((void) 0); 23376: swap(sat[j], sat[num_rows]); 23376: swap(num_saturators[j], num_saturators[num_rows]); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: ++j; 23376: } 23376: } 23376: } 23376: if (redundant) { 23376: 23376: --num_rows; 23376: sys.remove_row(i); 23376: ((void) 0); 23376: swap(sat[i], sat[num_rows]); 23376: swap(num_saturators[i], num_saturators[num_rows]); 23376: } 23376: else { 23376: 23376: ++i; 23376: } 23376: } 23376: 23376: 23376: 23376: sat.remove_trailing_rows(old_num_rows - num_rows); 23376: # 335 "../../src/Polyhedron_simplify_templates.hh" 23376: sys.back_substitute(num_lines_or_equalities); 23376: 23376: 23376: 23376: 23376: return num_lines_or_equalities; 23376: } 23376: 23376: } 23376: # 2862 "../../src/Polyhedron_defs.hh" 2 23376: # 35 "../../src/Box_templates.hh" 2 23376: # 1 "../../src/Grid_defs.hh" 1 23376: # 37 "../../src/Grid_defs.hh" 23376: # 1 "../../src/Grid_Generator_System_defs.hh" 1 23376: # 36 "../../src/Grid_Generator_System_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: std::ostream& operator<<(std::ostream& s, const Grid_Generator_System& gs); 23376: 23376: } 23376: 23376: 23376: 23376: void swap(Grid_Generator_System& x, Grid_Generator_System& y); 23376: 23376: 23376: 23376: bool operator==(const Grid_Generator_System& x, 23376: const Grid_Generator_System& y); 23376: 23376: } 23376: # 175 "../../src/Grid_Generator_System_defs.hh" 23376: class Parma_Polyhedra_Library::Grid_Generator_System { 23376: public: 23376: typedef Grid_Generator row_type; 23376: 23376: static const Representation default_representation = SPARSE; 23376: 23376: 23376: explicit Grid_Generator_System(Representation r = default_representation); 23376: 23376: 23376: explicit Grid_Generator_System(const Grid_Generator& g, 23376: Representation r = default_representation); 23376: 23376: 23376: explicit Grid_Generator_System(dimension_type dim, 23376: Representation r = default_representation); 23376: 23376: 23376: 23376: Grid_Generator_System(const Grid_Generator_System& gs); 23376: 23376: 23376: Grid_Generator_System(const Grid_Generator_System& gs, Representation r); 23376: 23376: 23376: ~Grid_Generator_System(); 23376: 23376: 23376: Grid_Generator_System& operator=(const Grid_Generator_System& y); 23376: 23376: 23376: Representation representation() const; 23376: 23376: 23376: void set_representation(Representation r); 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: 23376: 23376: void clear(); 23376: # 231 "../../src/Grid_Generator_System_defs.hh" 23376: void insert(const Grid_Generator& g); 23376: 23376: 23376: 23376: 23376: 23376: void insert(Grid_Generator& g, Recycle_Input); 23376: 23376: 23376: 23376: 23376: 23376: void insert(Grid_Generator_System& gs, Recycle_Input); 23376: 23376: 23376: static void initialize(); 23376: 23376: 23376: static void finalize(); 23376: 23376: 23376: 23376: 23376: 23376: static const Grid_Generator_System& zero_dim_univ(); 23376: # 278 "../../src/Grid_Generator_System_defs.hh" 23376: class const_iterator 23376: : public std::iterator { 23376: public: 23376: 23376: const_iterator(); 23376: 23376: 23376: const_iterator(const const_iterator& y); 23376: 23376: 23376: ~const_iterator(); 23376: 23376: 23376: const_iterator& operator=(const const_iterator& y); 23376: 23376: 23376: const Grid_Generator& operator*() const; 23376: 23376: 23376: const Grid_Generator* operator->() const; 23376: 23376: 23376: const_iterator& operator++(); 23376: 23376: 23376: const_iterator operator++(int); 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const const_iterator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const const_iterator& y) const; 23376: 23376: private: 23376: friend class Grid_Generator_System; 23376: 23376: Linear_System::const_iterator i; 23376: 23376: 23376: const_iterator(const Linear_System::const_iterator& y); 23376: }; 23376: 23376: 23376: bool empty() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: const_iterator end() const; 23376: 23376: 23376: dimension_type num_rows() const; 23376: 23376: 23376: dimension_type num_parameters() const; 23376: 23376: 23376: dimension_type num_lines() const; 23376: 23376: 23376: 23376: 23376: 23376: bool has_points() const; 23376: 23376: 23376: bool is_equal_to(const Grid_Generator_System& y) const; 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: # 375 "../../src/Grid_Generator_System_defs.hh" 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: void m_swap(Grid_Generator_System& y); 23376: 23376: private: 23376: 23376: const Grid_Generator& operator[](dimension_type k) const; 23376: # 419 "../../src/Grid_Generator_System_defs.hh" 23376: void affine_image(Variable v, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator); 23376: 23376: 23376: void set_sorted(bool b); 23376: # 441 "../../src/Grid_Generator_System_defs.hh" 23376: void add_universe_rows_and_columns(dimension_type dims); 23376: 23376: 23376: void set_space_dimension(dimension_type space_dim); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: 23376: 23376: 23376: void shift_space_dimensions(Variable v, dimension_type n); 23376: 23376: 23376: void unset_pending_rows(); 23376: # 473 "../../src/Grid_Generator_System_defs.hh" 23376: void permute_space_dimensions(const std::vector& cycle); 23376: 23376: bool has_no_rows() const; 23376: 23376: 23376: void remove_trailing_rows(dimension_type n); 23376: 23376: void insert_verbatim(const Grid_Generator& g); 23376: 23376: 23376: Topology topology() const; 23376: 23376: 23376: dimension_type first_pending_row() const; 23376: 23376: Linear_System sys; 23376: 23376: 23376: 23376: 23376: 23376: static const Grid_Generator_System* zero_dim_univ_p; 23376: 23376: friend bool 23376: operator==(const Grid_Generator_System& x, const Grid_Generator_System& y); 23376: 23376: 23376: void set_index_first_pending_row(dimension_type i); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void remove_invalid_lines_and_parameters(); 23376: 23376: friend class Polyhedron; 23376: friend class Grid; 23376: }; 23376: # 38 "../../src/Grid_defs.hh" 2 23376: # 1 "../../src/Grid_Generator_System_inlines.hh" 1 23376: # 29 "../../src/Grid_Generator_System_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline void 23376: Grid_Generator_System::set_sorted(bool b) { 23376: sys.set_sorted(b); 23376: } 23376: 23376: inline void 23376: Grid_Generator_System::unset_pending_rows() { 23376: sys.unset_pending_rows(); 23376: } 23376: 23376: inline void 23376: Grid_Generator_System::set_index_first_pending_row(const dimension_type i) { 23376: sys.set_index_first_pending_row(i); 23376: } 23376: 23376: inline void 23376: Grid_Generator_System 23376: ::permute_space_dimensions(const std::vector& cycle) { 23376: return sys.permute_space_dimensions(cycle); 23376: } 23376: 23376: inline bool 23376: Grid_Generator_System::is_equal_to(const Grid_Generator_System& y) const { 23376: return (sys == y.sys); 23376: } 23376: 23376: inline 23376: Grid_Generator_System::Grid_Generator_System(Representation r) 23376: : sys(NECESSARILY_CLOSED, r) { 23376: sys.set_sorted(false); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Grid_Generator_System::Grid_Generator_System(const Grid_Generator_System& gs) 23376: : sys(gs.sys) { 23376: } 23376: 23376: inline 23376: Grid_Generator_System::Grid_Generator_System(const Grid_Generator_System& gs, 23376: Representation r) 23376: : sys(gs.sys, r) { 23376: } 23376: 23376: inline 23376: Grid_Generator_System::Grid_Generator_System(dimension_type dim, 23376: Representation r) 23376: : sys(NECESSARILY_CLOSED, r) { 23376: sys.set_space_dimension(dim); 23376: sys.set_sorted(false); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Grid_Generator_System::Grid_Generator_System(const Grid_Generator& g, 23376: Representation r) 23376: : sys(NECESSARILY_CLOSED, r) { 23376: sys.insert(g); 23376: sys.set_sorted(false); 23376: } 23376: 23376: inline 23376: Grid_Generator_System::~Grid_Generator_System() { 23376: } 23376: 23376: inline Grid_Generator_System& 23376: Grid_Generator_System::operator=(const Grid_Generator_System& y) { 23376: Grid_Generator_System tmp = y; 23376: swap(*this, tmp); 23376: return *this; 23376: } 23376: 23376: inline Representation 23376: Grid_Generator_System::representation() const { 23376: return sys.representation(); 23376: } 23376: 23376: inline void 23376: Grid_Generator_System::set_representation(Representation r) { 23376: sys.set_representation(r); 23376: } 23376: 23376: inline dimension_type 23376: Grid_Generator_System::max_space_dimension() { 23376: 23376: return Linear_System::max_space_dimension() - 1; 23376: } 23376: 23376: inline dimension_type 23376: Grid_Generator_System::space_dimension() const { 23376: return sys.space_dimension(); 23376: } 23376: 23376: inline const Grid_Generator_System& 23376: Grid_Generator_System::zero_dim_univ() { 23376: ((void) 0); 23376: return *zero_dim_univ_p; 23376: } 23376: 23376: inline void 23376: Grid_Generator_System::clear() { 23376: sys.clear(); 23376: sys.set_sorted(false); 23376: sys.unset_pending_rows(); 23376: ((void) 0); 23376: } 23376: 23376: inline void 23376: Grid_Generator_System::m_swap(Grid_Generator_System& y) { 23376: swap(sys, y.sys); 23376: } 23376: 23376: inline memory_size_type 23376: Grid_Generator_System::external_memory_in_bytes() const { 23376: return sys.external_memory_in_bytes(); 23376: } 23376: 23376: inline memory_size_type 23376: Grid_Generator_System::total_memory_in_bytes() const { 23376: return external_memory_in_bytes() + sizeof(*this); 23376: } 23376: 23376: inline dimension_type 23376: Grid_Generator_System::num_rows() const { 23376: return sys.num_rows(); 23376: } 23376: 23376: inline 23376: Grid_Generator_System::const_iterator::const_iterator() 23376: : i() { 23376: } 23376: 23376: inline 23376: Grid_Generator_System::const_iterator::const_iterator(const const_iterator& y) 23376: : i(y.i) { 23376: } 23376: 23376: inline 23376: Grid_Generator_System::const_iterator::~const_iterator() { 23376: } 23376: 23376: inline Grid_Generator_System::const_iterator& 23376: Grid_Generator_System::const_iterator::operator=(const const_iterator& y) { 23376: i = y.i; 23376: return *this; 23376: } 23376: 23376: inline const Grid_Generator& 23376: Grid_Generator_System::const_iterator::operator*() const { 23376: return *i; 23376: } 23376: 23376: inline const Grid_Generator* 23376: Grid_Generator_System::const_iterator::operator->() const { 23376: return i.operator->(); 23376: } 23376: 23376: inline Grid_Generator_System::const_iterator& 23376: Grid_Generator_System::const_iterator::operator++() { 23376: ++i; 23376: return *this; 23376: } 23376: 23376: inline Grid_Generator_System::const_iterator 23376: Grid_Generator_System::const_iterator::operator++(int) { 23376: const const_iterator tmp = *this; 23376: operator++(); 23376: return tmp; 23376: } 23376: 23376: inline bool 23376: Grid_Generator_System 23376: ::const_iterator::operator==(const const_iterator& y) const { 23376: return i == y.i; 23376: } 23376: 23376: inline bool 23376: Grid_Generator_System 23376: ::const_iterator::operator!=(const const_iterator& y) const { 23376: return i != y.i; 23376: } 23376: 23376: inline bool 23376: Grid_Generator_System::empty() const { 23376: return sys.has_no_rows(); 23376: } 23376: 23376: inline 23376: Grid_Generator_System::const_iterator 23376: ::const_iterator(const Linear_System::const_iterator& y) 23376: : i(y) { 23376: } 23376: 23376: inline Grid_Generator_System::const_iterator 23376: Grid_Generator_System::begin() const { 23376: return static_cast(sys.begin()); 23376: } 23376: 23376: inline Grid_Generator_System::const_iterator 23376: Grid_Generator_System::end() const { 23376: return static_cast(sys.end()); 23376: } 23376: 23376: inline const Grid_Generator& 23376: Grid_Generator_System::operator[](const dimension_type k) const { 23376: return sys[k]; 23376: } 23376: 23376: inline bool 23376: Grid_Generator_System::has_no_rows() const { 23376: return sys.has_no_rows(); 23376: } 23376: 23376: inline void 23376: Grid_Generator_System::remove_trailing_rows(dimension_type n) { 23376: sys.remove_trailing_rows(n); 23376: } 23376: 23376: inline void 23376: Grid_Generator_System::insert_verbatim(const Grid_Generator& g) { 23376: sys.insert(g); 23376: } 23376: 23376: inline Topology 23376: Grid_Generator_System::topology() const { 23376: return sys.topology(); 23376: } 23376: 23376: inline dimension_type 23376: Grid_Generator_System::first_pending_row() const { 23376: return sys.first_pending_row(); 23376: } 23376: 23376: 23376: inline bool 23376: operator==(const Grid_Generator_System& x, 23376: const Grid_Generator_System& y) { 23376: return x.is_equal_to(y); 23376: } 23376: 23376: 23376: inline void 23376: swap(Grid_Generator_System& x, Grid_Generator_System& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 39 "../../src/Grid_defs.hh" 2 23376: 23376: 23376: 23376: # 1 "../../src/Grid_Certificate_types.hh" 1 23376: # 16 "../../src/Grid_Certificate_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class Grid_Certificate; 23376: 23376: } 23376: # 43 "../../src/Grid_defs.hh" 2 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: # 63 "../../src/Grid_defs.hh" 23376: std::ostream& 23376: operator<<(std::ostream& s, const Grid& gr); 23376: 23376: } 23376: 23376: 23376: 23376: void swap(Grid& x, Grid& y); 23376: # 80 "../../src/Grid_defs.hh" 23376: bool operator==(const Grid& x, const Grid& y); 23376: # 90 "../../src/Grid_defs.hh" 23376: bool operator!=(const Grid& x, const Grid& y); 23376: 23376: } 23376: # 363 "../../src/Grid_defs.hh" 23376: class Parma_Polyhedra_Library::Grid { 23376: public: 23376: 23376: typedef Coefficient coefficient_type; 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: 23376: 23376: 23376: static bool can_recycle_congruence_systems(); 23376: 23376: 23376: 23376: 23376: 23376: static bool can_recycle_constraint_systems(); 23376: # 395 "../../src/Grid_defs.hh" 23376: explicit Grid(dimension_type num_dimensions = 0, 23376: Degenerate_Element kind = UNIVERSE); 23376: # 409 "../../src/Grid_defs.hh" 23376: explicit Grid(const Congruence_System& cgs); 23376: # 427 "../../src/Grid_defs.hh" 23376: Grid(Congruence_System& cgs, Recycle_Input dummy); 23376: # 443 "../../src/Grid_defs.hh" 23376: explicit Grid(const Constraint_System& cs); 23376: # 464 "../../src/Grid_defs.hh" 23376: Grid(Constraint_System& cs, Recycle_Input dummy); 23376: # 480 "../../src/Grid_defs.hh" 23376: explicit Grid(const Grid_Generator_System& ggs); 23376: # 500 "../../src/Grid_defs.hh" 23376: Grid(Grid_Generator_System& ggs, Recycle_Input dummy); 23376: # 518 "../../src/Grid_defs.hh" 23376: template 23376: explicit Grid(const Box& box, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 538 "../../src/Grid_defs.hh" 23376: template 23376: explicit Grid(const BD_Shape& bd, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 558 "../../src/Grid_defs.hh" 23376: template 23376: explicit Grid(const Octagonal_Shape& os, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 580 "../../src/Grid_defs.hh" 23376: explicit Grid(const Polyhedron& ph, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: Grid(const Grid& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: Grid& operator=(const Grid& y); 23376: 23376: 23376: 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type affine_dimension() const; 23376: 23376: 23376: 23376: 23376: 23376: Constraint_System constraints() const; 23376: 23376: 23376: 23376: 23376: 23376: Constraint_System minimized_constraints() const; 23376: 23376: 23376: const Congruence_System& congruences() const; 23376: 23376: 23376: const Congruence_System& minimized_congruences() const; 23376: 23376: 23376: const Grid_Generator_System& grid_generators() const; 23376: 23376: 23376: const Grid_Generator_System& minimized_grid_generators() const; 23376: # 640 "../../src/Grid_defs.hh" 23376: Poly_Con_Relation relation_with(const Congruence& cg) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Gen_Relation 23376: relation_with(const Grid_Generator& g) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Gen_Relation 23376: relation_with(const Generator& g) const; 23376: # 668 "../../src/Grid_defs.hh" 23376: Poly_Con_Relation relation_with(const Constraint& c) const; 23376: 23376: 23376: bool is_empty() const; 23376: 23376: 23376: bool is_universe() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_topologically_closed() const; 23376: # 691 "../../src/Grid_defs.hh" 23376: bool is_disjoint_from(const Grid& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_discrete() const; 23376: 23376: 23376: bool is_bounded() const; 23376: 23376: 23376: 23376: 23376: 23376: bool contains_integer_point() const; 23376: # 717 "../../src/Grid_defs.hh" 23376: bool constrains(Variable var) const; 23376: # 726 "../../src/Grid_defs.hh" 23376: bool bounds_from_above(const Linear_Expression& expr) const; 23376: # 735 "../../src/Grid_defs.hh" 23376: bool bounds_from_below(const Linear_Expression& expr) const; 23376: # 764 "../../src/Grid_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum) const; 23376: # 798 "../../src/Grid_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum, 23376: Generator& point) const; 23376: # 829 "../../src/Grid_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum) const; 23376: # 863 "../../src/Grid_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum, 23376: Generator& point) const; 23376: # 897 "../../src/Grid_defs.hh" 23376: bool frequency(const Linear_Expression& expr, 23376: Coefficient& freq_n, Coefficient& freq_d, 23376: Coefficient& val_n, Coefficient& val_d) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool contains(const Grid& y) const; 23376: # 915 "../../src/Grid_defs.hh" 23376: bool strictly_contains(const Grid& y) const; 23376: # 934 "../../src/Grid_defs.hh" 23376: bool OK(bool check_not_empty = false) const; 23376: # 947 "../../src/Grid_defs.hh" 23376: void add_congruence(const Congruence& cg); 23376: # 957 "../../src/Grid_defs.hh" 23376: void add_grid_generator(const Grid_Generator& g); 23376: # 968 "../../src/Grid_defs.hh" 23376: void add_congruences(const Congruence_System& cgs); 23376: # 983 "../../src/Grid_defs.hh" 23376: void add_recycled_congruences(Congruence_System& cgs); 23376: # 995 "../../src/Grid_defs.hh" 23376: void add_constraint(const Constraint& c); 23376: # 1008 "../../src/Grid_defs.hh" 23376: void add_constraints(const Constraint_System& cs); 23376: # 1025 "../../src/Grid_defs.hh" 23376: void add_recycled_constraints(Constraint_System& cs); 23376: # 1035 "../../src/Grid_defs.hh" 23376: void refine_with_congruence(const Congruence& cg); 23376: # 1045 "../../src/Grid_defs.hh" 23376: void refine_with_congruences(const Congruence_System& cgs); 23376: # 1056 "../../src/Grid_defs.hh" 23376: void refine_with_constraint(const Constraint& c); 23376: # 1066 "../../src/Grid_defs.hh" 23376: void refine_with_constraints(const Constraint_System& cs); 23376: # 1081 "../../src/Grid_defs.hh" 23376: void add_grid_generators(const Grid_Generator_System& gs); 23376: # 1098 "../../src/Grid_defs.hh" 23376: void add_recycled_grid_generators(Grid_Generator_System& gs); 23376: # 1110 "../../src/Grid_defs.hh" 23376: void unconstrain(Variable var); 23376: # 1124 "../../src/Grid_defs.hh" 23376: void unconstrain(const Variables_Set& vars); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void intersection_assign(const Grid& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void upper_bound_assign(const Grid& y); 23376: # 1150 "../../src/Grid_defs.hh" 23376: bool upper_bound_assign_if_exact(const Grid& y); 23376: # 1162 "../../src/Grid_defs.hh" 23376: void difference_assign(const Grid& y); 23376: # 1173 "../../src/Grid_defs.hh" 23376: bool simplify_using_context_assign(const Grid& y); 23376: # 1236 "../../src/Grid_defs.hh" 23376: void affine_image(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1300 "../../src/Grid_defs.hh" 23376: void affine_preimage(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1335 "../../src/Grid_defs.hh" 23376: void 23376: generalized_affine_image(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one(), 23376: Coefficient_traits::const_reference modulus 23376: = Coefficient_zero()); 23376: # 1374 "../../src/Grid_defs.hh" 23376: void 23376: generalized_affine_preimage(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one(), 23376: Coefficient_traits::const_reference modulus 23376: = Coefficient_zero()); 23376: # 1407 "../../src/Grid_defs.hh" 23376: void 23376: generalized_affine_image(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs, 23376: Coefficient_traits::const_reference modulus 23376: = Coefficient_zero()); 23376: # 1438 "../../src/Grid_defs.hh" 23376: void 23376: generalized_affine_preimage(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs, 23376: Coefficient_traits::const_reference modulus 23376: = Coefficient_zero()); 23376: # 1471 "../../src/Grid_defs.hh" 23376: void bounded_affine_image(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1503 "../../src/Grid_defs.hh" 23376: void bounded_affine_preimage(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1516 "../../src/Grid_defs.hh" 23376: void time_elapse_assign(const Grid& y); 23376: # 1563 "../../src/Grid_defs.hh" 23376: void wrap_assign(const Variables_Set& vars, 23376: Bounded_Integer_Type_Width w, 23376: Bounded_Integer_Type_Representation r, 23376: Bounded_Integer_Type_Overflow o, 23376: const Constraint_System* cs_p = 0, 23376: unsigned complexity_threshold = 16, 23376: bool wrap_individually = true); 23376: # 1579 "../../src/Grid_defs.hh" 23376: void drop_some_non_integer_points(Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: # 1594 "../../src/Grid_defs.hh" 23376: void drop_some_non_integer_points(const Variables_Set& vars, 23376: Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: 23376: 23376: void topological_closure_assign(); 23376: # 1616 "../../src/Grid_defs.hh" 23376: void congruence_widening_assign(const Grid& y, unsigned* tp = 23376: # 1616 "../../src/Grid_defs.hh" 3 4 23376: __null 23376: # 1616 "../../src/Grid_defs.hh" 23376: ); 23376: # 1633 "../../src/Grid_defs.hh" 23376: void generator_widening_assign(const Grid& y, unsigned* tp = 23376: # 1633 "../../src/Grid_defs.hh" 3 4 23376: __null 23376: # 1633 "../../src/Grid_defs.hh" 23376: ); 23376: # 1654 "../../src/Grid_defs.hh" 23376: void widening_assign(const Grid& y, unsigned* tp = 23376: # 1654 "../../src/Grid_defs.hh" 3 4 23376: __null 23376: # 1654 "../../src/Grid_defs.hh" 23376: ); 23376: # 1676 "../../src/Grid_defs.hh" 23376: void limited_congruence_extrapolation_assign(const Grid& y, 23376: const Congruence_System& cgs, 23376: unsigned* tp = 23376: # 1678 "../../src/Grid_defs.hh" 3 4 23376: __null 23376: # 1678 "../../src/Grid_defs.hh" 23376: ); 23376: # 1700 "../../src/Grid_defs.hh" 23376: void limited_generator_extrapolation_assign(const Grid& y, 23376: const Congruence_System& cgs, 23376: unsigned* tp = 23376: # 1702 "../../src/Grid_defs.hh" 3 4 23376: __null 23376: # 1702 "../../src/Grid_defs.hh" 23376: ); 23376: # 1723 "../../src/Grid_defs.hh" 23376: void limited_extrapolation_assign(const Grid& y, 23376: const Congruence_System& cgs, 23376: unsigned* tp = 23376: # 1725 "../../src/Grid_defs.hh" 3 4 23376: __null 23376: # 1725 "../../src/Grid_defs.hh" 23376: ); 23376: # 1758 "../../src/Grid_defs.hh" 23376: void add_space_dimensions_and_embed(dimension_type m); 23376: # 1786 "../../src/Grid_defs.hh" 23376: void add_space_dimensions_and_project(dimension_type m); 23376: # 1796 "../../src/Grid_defs.hh" 23376: void concatenate_assign(const Grid& y); 23376: # 1808 "../../src/Grid_defs.hh" 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: # 1819 "../../src/Grid_defs.hh" 23376: void remove_higher_space_dimensions(dimension_type new_dimension); 23376: # 1868 "../../src/Grid_defs.hh" 23376: template 23376: void map_space_dimensions(const Partial_Function& pfunc); 23376: # 1894 "../../src/Grid_defs.hh" 23376: void expand_space_dimension(Variable var, dimension_type m); 23376: # 1920 "../../src/Grid_defs.hh" 23376: void fold_space_dimensions(const Variables_Set& vars, Variable dest); 23376: 23376: 23376: 23376: friend bool operator==(const Grid& x, const Grid& y); 23376: 23376: friend class Parma_Polyhedra_Library::Grid_Certificate; 23376: 23376: template friend class Parma_Polyhedra_Library::Box; 23376: 23376: 23376: 23376: 23376: 23376: ~Grid(); 23376: 23376: 23376: 23376: 23376: 23376: void m_swap(Grid& y); 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: int32_t hash_code() const; 23376: 23376: 23376: 23376: private: 23376: 23376: 23376: Congruence_System con_sys; 23376: 23376: 23376: Grid_Generator_System gen_sys; 23376: 23376: 23376: # 1 "../../src/Grid_Status_idefs.hh" 1 23376: # 71 "../../src/Grid_Status_idefs.hh" 23376: class Status { 23376: public: 23376: 23376: Status(); 23376: 23376: 23376: 23376: bool test_zero_dim_univ() const; 23376: void reset_zero_dim_univ(); 23376: void set_zero_dim_univ(); 23376: 23376: bool test_empty() const; 23376: void reset_empty(); 23376: void set_empty(); 23376: 23376: bool test_c_up_to_date() const; 23376: void reset_c_up_to_date(); 23376: void set_c_up_to_date(); 23376: 23376: bool test_g_up_to_date() const; 23376: void reset_g_up_to_date(); 23376: void set_g_up_to_date(); 23376: 23376: bool test_c_minimized() const; 23376: void reset_c_minimized(); 23376: void set_c_minimized(); 23376: 23376: bool test_g_minimized() const; 23376: void reset_g_minimized(); 23376: void set_g_minimized(); 23376: 23376: bool test_sat_c_up_to_date() const; 23376: void reset_sat_c_up_to_date(); 23376: void set_sat_c_up_to_date(); 23376: 23376: bool test_sat_g_up_to_date() const; 23376: void reset_sat_g_up_to_date(); 23376: void set_sat_g_up_to_date(); 23376: 23376: bool test_c_pending() const; 23376: void reset_c_pending(); 23376: void set_c_pending(); 23376: 23376: bool test_g_pending() const; 23376: void reset_g_pending(); 23376: void set_g_pending(); 23376: 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: private: 23376: 23376: typedef unsigned int flags_t; 23376: 23376: 23376: 23376: static const flags_t ZERO_DIM_UNIV = 0U; 23376: static const flags_t EMPTY = 1U << 0; 23376: static const flags_t C_UP_TO_DATE = 1U << 1; 23376: static const flags_t G_UP_TO_DATE = 1U << 2; 23376: static const flags_t C_MINIMIZED = 1U << 3; 23376: static const flags_t G_MINIMIZED = 1U << 4; 23376: static const flags_t SAT_C_UP_TO_DATE = 1U << 5; 23376: static const flags_t SAT_G_UP_TO_DATE = 1U << 6; 23376: static const flags_t CS_PENDING = 1U << 7; 23376: static const flags_t GS_PENDING = 1U << 8; 23376: 23376: 23376: 23376: flags_t flags; 23376: 23376: 23376: Status(flags_t mask); 23376: 23376: 23376: bool test_all(flags_t mask) const; 23376: 23376: 23376: bool test_any(flags_t mask) const; 23376: 23376: 23376: void set(flags_t mask); 23376: 23376: 23376: void reset(flags_t mask); 23376: }; 23376: # 1977 "../../src/Grid_defs.hh" 2 23376: 23376: 23376: 23376: Status status; 23376: 23376: 23376: dimension_type space_dim; 23376: 23376: enum Dimension_Kind { 23376: PARAMETER = 0, 23376: LINE = 1, 23376: GEN_VIRTUAL = 2, 23376: PROPER_CONGRUENCE = PARAMETER, 23376: CON_VIRTUAL = LINE, 23376: EQUALITY = GEN_VIRTUAL 23376: }; 23376: 23376: typedef std::vector Dimension_Kinds; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Dimension_Kinds dim_kinds; 23376: # 2012 "../../src/Grid_defs.hh" 23376: void construct(dimension_type num_dimensions, Degenerate_Element kind); 23376: # 2022 "../../src/Grid_defs.hh" 23376: void construct(Congruence_System& cgs); 23376: # 2032 "../../src/Grid_defs.hh" 23376: void construct(Grid_Generator_System& ggs); 23376: # 2042 "../../src/Grid_defs.hh" 23376: bool marked_empty() const; 23376: 23376: 23376: bool congruences_are_up_to_date() const; 23376: 23376: 23376: bool generators_are_up_to_date() const; 23376: 23376: 23376: bool congruences_are_minimized() const; 23376: 23376: 23376: bool generators_are_minimized() const; 23376: # 2065 "../../src/Grid_defs.hh" 23376: void set_zero_dim_univ(); 23376: 23376: 23376: 23376: 23376: 23376: void set_empty(); 23376: 23376: 23376: void set_congruences_up_to_date(); 23376: 23376: 23376: void set_generators_up_to_date(); 23376: 23376: 23376: void set_congruences_minimized(); 23376: 23376: 23376: void set_generators_minimized(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void clear_empty(); 23376: 23376: 23376: void clear_congruences_up_to_date(); 23376: 23376: 23376: void clear_generators_up_to_date(); 23376: 23376: 23376: void clear_congruences_minimized(); 23376: 23376: 23376: void clear_generators_minimized(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void update_congruences() const; 23376: # 2122 "../../src/Grid_defs.hh" 23376: bool update_generators() const; 23376: # 2138 "../../src/Grid_defs.hh" 23376: bool minimize() const; 23376: 23376: 23376: 23376: enum Three_Valued_Boolean { 23376: TVB_TRUE, 23376: TVB_FALSE, 23376: TVB_DONT_KNOW 23376: }; 23376: 23376: 23376: Three_Valued_Boolean quick_equivalence_test(const Grid& y) const; 23376: 23376: 23376: bool is_included_in(const Grid& y) const; 23376: # 2172 "../../src/Grid_defs.hh" 23376: bool bounds(const Linear_Expression& expr, const char* method_call) const; 23376: # 2206 "../../src/Grid_defs.hh" 23376: bool max_min(const Linear_Expression& expr, 23376: const char* method_call, 23376: Coefficient& ext_n, Coefficient& ext_d, bool& included, 23376: Generator* point = 23376: # 2209 "../../src/Grid_defs.hh" 3 4 23376: __null 23376: # 2209 "../../src/Grid_defs.hh" 23376: ) const; 23376: # 2243 "../../src/Grid_defs.hh" 23376: bool frequency_no_check(const Linear_Expression& expr, 23376: Coefficient& freq_n, Coefficient& freq_d, 23376: Coefficient& val_n, Coefficient& val_d) const; 23376: # 2257 "../../src/Grid_defs.hh" 23376: bool bounds_no_check(const Linear_Expression& expr) const; 23376: # 2267 "../../src/Grid_defs.hh" 23376: void add_congruence_no_check(const Congruence& cg); 23376: # 2282 "../../src/Grid_defs.hh" 23376: void add_constraint_no_check(const Constraint& c); 23376: # 2295 "../../src/Grid_defs.hh" 23376: void refine_no_check(const Constraint& c); 23376: 23376: 23376: 23376: 23376: 23376: void select_wider_congruences(const Grid& y, 23376: Congruence_System& selected_cgs) const; 23376: 23376: 23376: void select_wider_generators(const Grid& y, 23376: Grid_Generator_System& widened_ggs) const; 23376: # 2324 "../../src/Grid_defs.hh" 23376: void add_space_dimensions(Congruence_System& cgs, 23376: Grid_Generator_System& gs, 23376: dimension_type dims); 23376: # 2342 "../../src/Grid_defs.hh" 23376: void add_space_dimensions(Grid_Generator_System& gs, 23376: Congruence_System& cgs, 23376: dimension_type dims); 23376: # 2367 "../../src/Grid_defs.hh" 23376: static void 23376: normalize_divisors(Grid_Generator_System& sys, 23376: Coefficient& divisor, 23376: const Grid_Generator* first_point = 23376: # 2370 "../../src/Grid_defs.hh" 3 4 23376: __null 23376: # 2370 "../../src/Grid_defs.hh" 23376: ); 23376: # 2381 "../../src/Grid_defs.hh" 23376: static void 23376: normalize_divisors(Grid_Generator_System& sys); 23376: # 2401 "../../src/Grid_defs.hh" 23376: static void normalize_divisors(Grid_Generator_System& sys, 23376: Grid_Generator_System& gen_sys); 23376: 23376: 23376: 23376: 23376: 23376: static void conversion(Congruence_System& source, 23376: Grid_Generator_System& dest, 23376: Dimension_Kinds& dim_kinds); 23376: 23376: 23376: 23376: 23376: 23376: static void conversion(Grid_Generator_System& source, 23376: Congruence_System& dest, 23376: Dimension_Kinds& dim_kinds); 23376: 23376: 23376: 23376: 23376: 23376: 23376: static bool simplify(Congruence_System& cgs, 23376: Dimension_Kinds& dim_kinds); 23376: 23376: 23376: 23376: 23376: 23376: static void simplify(Grid_Generator_System& ggs, 23376: Dimension_Kinds& dim_kinds); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static void reduce_line_with_line(Grid_Generator& row, 23376: Grid_Generator& pivot, 23376: dimension_type column); 23376: # 2452 "../../src/Grid_defs.hh" 23376: static void reduce_equality_with_equality(Congruence& row, 23376: const Congruence& pivot, 23376: dimension_type column); 23376: # 2469 "../../src/Grid_defs.hh" 23376: template 23376: static void reduce_pc_with_pc(R& row, 23376: R& pivot, 23376: dimension_type column, 23376: dimension_type start, 23376: dimension_type end); 23376: # 2486 "../../src/Grid_defs.hh" 23376: static void reduce_parameter_with_line(Grid_Generator& row, 23376: const Grid_Generator& pivot, 23376: dimension_type column, 23376: Swapping_Vector& sys, 23376: dimension_type num_columns); 23376: # 2501 "../../src/Grid_defs.hh" 23376: static void reduce_congruence_with_equality(Congruence& row, 23376: const Congruence& pivot, 23376: dimension_type column, 23376: Swapping_Vector& sys); 23376: # 2539 "../../src/Grid_defs.hh" 23376: template 23376: 23376: 23376: 23376: 23376: static void reduce_reduced(Swapping_Vector& sys, 23376: dimension_type dim, 23376: dimension_type pivot_index, 23376: dimension_type start, dimension_type end, 23376: const Dimension_Kinds& sys_dim_kinds, 23376: bool generators = true); 23376: 23376: 23376: 23376: 23376: 23376: static void multiply_grid(const Coefficient& multiplier, 23376: Congruence& cg, 23376: Swapping_Vector& dest, 23376: dimension_type num_rows); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: static void multiply_grid(const Coefficient& multiplier, 23376: Grid_Generator& gen, 23376: Swapping_Vector& dest, 23376: dimension_type num_rows); 23376: 23376: 23376: 23376: 23376: 23376: static bool lower_triangular(const Congruence_System& sys, 23376: const Dimension_Kinds& dim_kinds); 23376: 23376: 23376: 23376: 23376: 23376: static bool upper_triangular(const Grid_Generator_System& sys, 23376: const Dimension_Kinds& dim_kinds); 23376: # 2608 "../../src/Grid_defs.hh" 23376: protected: 23376: void throw_dimension_incompatible(const char* method, 23376: const char* other_name, 23376: dimension_type other_dim) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* gr_name, 23376: const Grid& gr) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* le_name, 23376: const Linear_Expression& le) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* cg_name, 23376: const Congruence& cg) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* c_name, 23376: const Constraint& c) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* g_name, 23376: const Grid_Generator& g) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* g_name, 23376: const Generator& g) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* cgs_name, 23376: const Congruence_System& cgs) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* cs_name, 23376: const Constraint_System& cs) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* gs_name, 23376: const Grid_Generator_System& gs) const; 23376: void throw_dimension_incompatible(const char* method, 23376: const char* var_name, 23376: Variable var) const; 23376: void throw_dimension_incompatible(const char* method, 23376: dimension_type required_space_dim) const; 23376: 23376: static void throw_invalid_argument(const char* method, 23376: const char* reason); 23376: static void throw_invalid_constraint(const char* method, 23376: const char* c_name); 23376: static void throw_invalid_constraints(const char* method, 23376: const char* cs_name); 23376: static void throw_invalid_generator(const char* method, 23376: const char* g_name); 23376: static void throw_invalid_generators(const char* method, 23376: const char* gs_name); 23376: 23376: 23376: 23376: 23376: }; 23376: 23376: # 1 "../../src/Grid_Status_inlines.hh" 1 23376: # 27 "../../src/Grid_Status_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: Grid::Status::Status(flags_t mask) 23376: : flags(mask) { 23376: } 23376: 23376: inline 23376: Grid::Status::Status() 23376: : flags(ZERO_DIM_UNIV) { 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_all(flags_t mask) const { 23376: return (flags & mask) == mask; 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_any(flags_t mask) const { 23376: return (flags & mask) != 0; 23376: } 23376: 23376: inline void 23376: Grid::Status::set(flags_t mask) { 23376: flags |= mask; 23376: } 23376: 23376: inline void 23376: Grid::Status::reset(flags_t mask) { 23376: flags &= ~mask; 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_zero_dim_univ() const { 23376: return flags == ZERO_DIM_UNIV; 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_zero_dim_univ() { 23376: 23376: if (flags == ZERO_DIM_UNIV) { 23376: 23376: flags = EMPTY; 23376: } 23376: } 23376: 23376: inline void 23376: Grid::Status::set_zero_dim_univ() { 23376: 23376: flags = ZERO_DIM_UNIV; 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_empty() const { 23376: return test_any(EMPTY); 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_empty() { 23376: reset(EMPTY); 23376: } 23376: 23376: inline void 23376: Grid::Status::set_empty() { 23376: flags = EMPTY; 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_c_up_to_date() const { 23376: return test_any(C_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_c_up_to_date() { 23376: reset(C_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Grid::Status::set_c_up_to_date() { 23376: set(C_UP_TO_DATE); 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_g_up_to_date() const { 23376: return test_any(G_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_g_up_to_date() { 23376: reset(G_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Grid::Status::set_g_up_to_date() { 23376: set(G_UP_TO_DATE); 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_c_minimized() const { 23376: return test_any(C_MINIMIZED); 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_c_minimized() { 23376: reset(C_MINIMIZED); 23376: } 23376: 23376: inline void 23376: Grid::Status::set_c_minimized() { 23376: set(C_MINIMIZED); 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_g_minimized() const { 23376: return test_any(G_MINIMIZED); 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_g_minimized() { 23376: reset(G_MINIMIZED); 23376: } 23376: 23376: inline void 23376: Grid::Status::set_g_minimized() { 23376: set(G_MINIMIZED); 23376: } 23376: 23376: 23376: inline bool 23376: Grid::Status::test_c_pending() const { 23376: return test_any(CS_PENDING); 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_c_pending() { 23376: reset(CS_PENDING); 23376: } 23376: 23376: inline void 23376: Grid::Status::set_c_pending() { 23376: set(CS_PENDING); 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_g_pending() const { 23376: return test_any(GS_PENDING); 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_g_pending() { 23376: reset(GS_PENDING); 23376: } 23376: 23376: inline void 23376: Grid::Status::set_g_pending() { 23376: set(GS_PENDING); 23376: } 23376: 23376: 23376: inline bool 23376: Grid::Status::test_sat_c_up_to_date() const { 23376: return test_any(SAT_C_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_sat_c_up_to_date() { 23376: reset(SAT_C_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Grid::Status::set_sat_c_up_to_date() { 23376: set(SAT_C_UP_TO_DATE); 23376: } 23376: 23376: inline bool 23376: Grid::Status::test_sat_g_up_to_date() const { 23376: return test_any(SAT_G_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Grid::Status::reset_sat_g_up_to_date() { 23376: reset(SAT_G_UP_TO_DATE); 23376: } 23376: 23376: inline void 23376: Grid::Status::set_sat_g_up_to_date() { 23376: set(SAT_G_UP_TO_DATE); 23376: } 23376: 23376: } 23376: # 2662 "../../src/Grid_defs.hh" 2 23376: # 1 "../../src/Grid_inlines.hh" 1 23376: # 32 "../../src/Grid_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline bool 23376: Grid::marked_empty() const { 23376: return status.test_empty(); 23376: } 23376: 23376: inline bool 23376: Grid::congruences_are_up_to_date() const { 23376: return status.test_c_up_to_date(); 23376: } 23376: 23376: inline bool 23376: Grid::generators_are_up_to_date() const { 23376: return status.test_g_up_to_date(); 23376: } 23376: 23376: inline bool 23376: Grid::congruences_are_minimized() const { 23376: return status.test_c_minimized(); 23376: } 23376: 23376: inline bool 23376: Grid::generators_are_minimized() const { 23376: return status.test_g_minimized(); 23376: } 23376: 23376: inline void 23376: Grid::set_generators_up_to_date() { 23376: status.set_g_up_to_date(); 23376: } 23376: 23376: inline void 23376: Grid::set_congruences_up_to_date() { 23376: status.set_c_up_to_date(); 23376: } 23376: 23376: inline void 23376: Grid::set_congruences_minimized() { 23376: set_congruences_up_to_date(); 23376: status.set_c_minimized(); 23376: } 23376: 23376: inline void 23376: Grid::set_generators_minimized() { 23376: set_generators_up_to_date(); 23376: status.set_g_minimized(); 23376: } 23376: 23376: inline void 23376: Grid::clear_empty() { 23376: status.reset_empty(); 23376: } 23376: 23376: inline void 23376: Grid::clear_congruences_minimized() { 23376: status.reset_c_minimized(); 23376: } 23376: 23376: inline void 23376: Grid::clear_generators_minimized() { 23376: status.reset_g_minimized(); 23376: } 23376: 23376: inline void 23376: Grid::clear_congruences_up_to_date() { 23376: clear_congruences_minimized(); 23376: status.reset_c_up_to_date(); 23376: 23376: } 23376: 23376: inline void 23376: Grid::clear_generators_up_to_date() { 23376: clear_generators_minimized(); 23376: status.reset_g_up_to_date(); 23376: 23376: } 23376: 23376: inline dimension_type 23376: Grid::max_space_dimension() { 23376: 23376: 23376: return std::min(std::numeric_limits::max() - 1, 23376: std::min(Congruence_System::max_space_dimension(), 23376: Grid_Generator_System::max_space_dimension() 23376: ) 23376: ); 23376: } 23376: 23376: inline 23376: Grid::Grid(dimension_type num_dimensions, 23376: const Degenerate_Element kind) 23376: : con_sys(), 23376: gen_sys(check_space_dimension_overflow(num_dimensions, 23376: max_space_dimension(), 23376: "PPL::Grid::", 23376: "Grid(n, k)", 23376: "n exceeds the maximum " 23376: "allowed space dimension")) { 23376: construct(num_dimensions, kind); 23376: ((void) 0); 23376: } 23376: 23376: inline 23376: Grid::Grid(const Congruence_System& cgs) 23376: : con_sys(check_space_dimension_overflow(cgs.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Grid::", 23376: "Grid(cgs)", 23376: "the space dimension of cgs " 23376: "exceeds the maximum allowed " 23376: "space dimension")), 23376: gen_sys(cgs.space_dimension()) { 23376: Congruence_System cgs_copy(cgs); 23376: construct(cgs_copy); 23376: } 23376: 23376: inline 23376: Grid::Grid(Congruence_System& cgs, Recycle_Input) 23376: : con_sys(check_space_dimension_overflow(cgs.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Grid::", 23376: "Grid(cgs, recycle)", 23376: "the space dimension of cgs " 23376: "exceeds the maximum allowed " 23376: "space dimension")), 23376: gen_sys(cgs.space_dimension()) { 23376: construct(cgs); 23376: } 23376: 23376: inline 23376: Grid::Grid(const Grid_Generator_System& ggs) 23376: : con_sys(check_space_dimension_overflow(ggs.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Grid::", 23376: "Grid(ggs)", 23376: "the space dimension of ggs " 23376: "exceeds the maximum allowed " 23376: "space dimension")), 23376: gen_sys(ggs.space_dimension()) { 23376: Grid_Generator_System ggs_copy(ggs); 23376: construct(ggs_copy); 23376: } 23376: 23376: inline 23376: Grid::Grid(Grid_Generator_System& ggs, Recycle_Input) 23376: : con_sys(check_space_dimension_overflow(ggs.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Grid::", 23376: "Grid(ggs, recycle)", 23376: "the space dimension of ggs " 23376: "exceeds the maximum allowed " 23376: "space dimension")), 23376: gen_sys(ggs.space_dimension()) { 23376: construct(ggs); 23376: } 23376: 23376: template 23376: inline 23376: Grid::Grid(const BD_Shape& bd, Complexity_Class) 23376: : con_sys(check_space_dimension_overflow(bd.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Grid::", 23376: "Grid(bd)", 23376: "the space dimension of bd " 23376: "exceeds the maximum allowed " 23376: "space dimension")), 23376: gen_sys(bd.space_dimension()) { 23376: Congruence_System cgs = bd.congruences(); 23376: construct(cgs); 23376: } 23376: 23376: template 23376: inline 23376: Grid::Grid(const Octagonal_Shape& os, Complexity_Class) 23376: : con_sys(check_space_dimension_overflow(os.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Grid::", 23376: "Grid(os)", 23376: "the space dimension of os " 23376: "exceeds the maximum allowed " 23376: "space dimension")), 23376: gen_sys(os.space_dimension()) { 23376: Congruence_System cgs = os.congruences(); 23376: construct(cgs); 23376: } 23376: 23376: inline 23376: Grid::~Grid() { 23376: } 23376: 23376: inline dimension_type 23376: Grid::space_dimension() const { 23376: return space_dim; 23376: } 23376: 23376: inline memory_size_type 23376: Grid::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: inline int32_t 23376: Grid::hash_code() const { 23376: return hash_code_from_dimension(space_dimension()); 23376: } 23376: 23376: inline Constraint_System 23376: Grid::constraints() const { 23376: return Constraint_System(congruences()); 23376: } 23376: 23376: inline Constraint_System 23376: Grid::minimized_constraints() const { 23376: return Constraint_System(minimized_congruences()); 23376: } 23376: 23376: inline void 23376: Grid::m_swap(Grid& y) { 23376: using std::swap; 23376: swap(con_sys, y.con_sys); 23376: swap(gen_sys, y.gen_sys); 23376: swap(status, y.status); 23376: swap(space_dim, y.space_dim); 23376: swap(dim_kinds, y.dim_kinds); 23376: } 23376: 23376: inline void 23376: Grid::add_congruence(const Congruence& cg) { 23376: 23376: if (space_dim < cg.space_dimension()) { 23376: throw_dimension_incompatible("add_congruence(cg)", "cg", cg); 23376: } 23376: 23376: if (!marked_empty()) { 23376: add_congruence_no_check(cg); 23376: } 23376: } 23376: 23376: inline void 23376: Grid::add_congruences(const Congruence_System& cgs) { 23376: 23376: 23376: if (space_dim < cgs.space_dimension()) { 23376: throw_dimension_incompatible("add_congruences(cgs)", "cgs", cgs); 23376: } 23376: 23376: if (!marked_empty()) { 23376: Congruence_System cgs_copy = cgs; 23376: add_recycled_congruences(cgs_copy); 23376: } 23376: } 23376: 23376: inline void 23376: Grid::refine_with_congruence(const Congruence& cg) { 23376: add_congruence(cg); 23376: } 23376: 23376: inline void 23376: Grid::refine_with_congruences(const Congruence_System& cgs) { 23376: add_congruences(cgs); 23376: } 23376: 23376: inline bool 23376: Grid::can_recycle_constraint_systems() { 23376: return true; 23376: } 23376: 23376: inline bool 23376: Grid::can_recycle_congruence_systems() { 23376: return true; 23376: } 23376: 23376: inline void 23376: Grid::add_constraint(const Constraint& c) { 23376: 23376: if (space_dim < c.space_dimension()) { 23376: throw_dimension_incompatible("add_constraint(c)", "c", c); 23376: } 23376: if (!marked_empty()) { 23376: add_constraint_no_check(c); 23376: } 23376: } 23376: 23376: inline void 23376: Grid::add_recycled_constraints(Constraint_System& cs) { 23376: 23376: add_constraints(cs); 23376: } 23376: 23376: inline bool 23376: Grid::bounds_from_above(const Linear_Expression& expr) const { 23376: return bounds(expr, "bounds_from_above(e)"); 23376: } 23376: 23376: inline bool 23376: Grid::bounds_from_below(const Linear_Expression& expr) const { 23376: return bounds(expr, "bounds_from_below(e)"); 23376: } 23376: 23376: inline bool 23376: Grid::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum) const { 23376: return max_min(expr, "maximize(e, ...)", sup_n, sup_d, maximum); 23376: } 23376: 23376: inline bool 23376: Grid::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum, 23376: Generator& point) const { 23376: return max_min(expr, "maximize(e, ...)", sup_n, sup_d, maximum, &point); 23376: } 23376: 23376: inline bool 23376: Grid::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum) const { 23376: return max_min(expr, "minimize(e, ...)", inf_n, inf_d, minimum); 23376: } 23376: 23376: inline bool 23376: Grid::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum, 23376: Generator& point) const { 23376: return max_min(expr, "minimize(e, ...)", inf_n, inf_d, minimum, &point); 23376: } 23376: 23376: inline void 23376: Grid::normalize_divisors(Grid_Generator_System& sys) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_divisor; Parma_Polyhedra_Library::Coefficient& divisor = holder_divisor.item(); 23376: divisor = 1; 23376: normalize_divisors(sys, divisor); 23376: } 23376: 23376: 23376: inline bool 23376: operator!=(const Grid& x, const Grid& y) { 23376: return !(x == y); 23376: } 23376: 23376: inline bool 23376: Grid::strictly_contains(const Grid& y) const { 23376: const Grid& x = *this; 23376: return x.contains(y) && !y.contains(x); 23376: } 23376: 23376: inline void 23376: Grid::topological_closure_assign() { 23376: } 23376: 23376: 23376: inline void 23376: swap(Grid& x, Grid& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 2663 "../../src/Grid_defs.hh" 2 23376: # 1 "../../src/Grid_templates.hh" 1 23376: # 33 "../../src/Grid_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: Grid::Grid(const Box& box, Complexity_Class) 23376: : con_sys(), 23376: gen_sys() { 23376: space_dim = check_space_dimension_overflow(box.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Grid::", 23376: "Grid(box, from_bounding_box)", 23376: "the space dimension of box " 23376: "exceeds the maximum allowed " 23376: "space dimension"); 23376: 23376: if (box.is_empty()) { 23376: 23376: set_empty(); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (space_dim == 0) { 23376: set_zero_dim_univ(); 23376: } 23376: else { 23376: 23376: con_sys.set_space_dimension(space_dim); 23376: gen_sys.set_space_dimension(space_dim); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_l_n; Parma_Polyhedra_Library::Coefficient& l_n = holder_l_n.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_l_d; Parma_Polyhedra_Library::Coefficient& l_d = holder_l_d.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_u_n; Parma_Polyhedra_Library::Coefficient& u_n = holder_u_n.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_u_d; Parma_Polyhedra_Library::Coefficient& u_d = holder_u_d.item(); 23376: gen_sys.insert(grid_point()); 23376: for (dimension_type k = space_dim; k-- > 0; ) { 23376: const Variable v_k = Variable(k); 23376: bool closed = false; 23376: 23376: if (box.has_lower_bound(v_k, l_n, l_d, closed)) { 23376: if (box.has_upper_bound(v_k, u_n, u_d, closed)) { 23376: if (l_n * u_d == u_n * l_d) { 23376: 23376: 23376: con_sys.insert(l_d * v_k == l_n); 23376: 23376: 23376: 23376: Grid_Generator& point = gen_sys.sys.rows[0]; 23376: 23376: 23376: 23376: const Coefficient& point_divisor = point.divisor(); 23376: gcd_assign(u_n, l_d, point_divisor); 23376: 23376: exact_div_assign(u_n, point_divisor, u_n); 23376: if (l_d < 0) { 23376: neg_assign(u_n); 23376: } 23376: 23376: point.scale_to_divisor(l_d * u_n); 23376: 23376: if (l_d < 0) { 23376: neg_assign(u_n); 23376: } 23376: 23376: point.expr.set(Variable(k), l_n * u_n); 23376: ((void) 0); 23376: 23376: ((void) 0); 23376: 23376: continue; 23376: } 23376: } 23376: } 23376: 23376: gen_sys.insert(grid_line(v_k)); 23376: } 23376: set_congruences_up_to_date(); 23376: set_generators_up_to_date(); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Grid::map_space_dimensions(const Partial_Function& pfunc) { 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: if (pfunc.has_empty_codomain()) { 23376: 23376: if (marked_empty() 23376: || (!generators_are_up_to_date() && !update_generators())) { 23376: 23376: space_dim = 0; 23376: set_empty(); 23376: } 23376: else { 23376: 23376: set_zero_dim_univ(); 23376: } 23376: 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: dimension_type new_space_dimension = pfunc.max_in_codomain() + 1; 23376: 23376: if (new_space_dimension == space_dim) { 23376: 23376: 23376: 23376: 23376: 23376: std::vector cycle; 23376: cycle.reserve(space_dim); 23376: 23376: 23376: std::deque visited(space_dim); 23376: 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: if (!visited[i]) { 23376: dimension_type j = i; 23376: do { 23376: visited[j] = true; 23376: 23376: dimension_type k = 0; 23376: if (!pfunc.maps(j, k)) { 23376: throw_invalid_argument("map_space_dimensions(pfunc)", 23376: " pfunc is inconsistent"); 23376: } 23376: if (k == j) { 23376: break; 23376: } 23376: 23376: cycle.push_back(Variable(j)); 23376: 23376: j = k; 23376: } while (!visited[j]); 23376: 23376: 23376: 23376: 23376: 23376: if (cycle.size() >= 2) { 23376: 23376: if (congruences_are_up_to_date()) { 23376: con_sys.permute_space_dimensions(cycle); 23376: clear_congruences_minimized(); 23376: } 23376: 23376: if (generators_are_up_to_date()) { 23376: gen_sys.permute_space_dimensions(cycle); 23376: clear_generators_minimized(); 23376: } 23376: } 23376: 23376: cycle.clear(); 23376: } 23376: } 23376: 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: const Grid_Generator_System& old_gensys = grid_generators(); 23376: 23376: if (old_gensys.has_no_rows()) { 23376: 23376: Grid new_grid(new_space_dimension, EMPTY); 23376: m_swap(new_grid); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: std::vector pfunc_maps(space_dim, not_a_dimension()); 23376: for (dimension_type j = space_dim; j-- > 0; ) { 23376: dimension_type pfunc_j; 23376: if (pfunc.maps(j, pfunc_j)) { 23376: pfunc_maps[j] = pfunc_j; 23376: } 23376: } 23376: 23376: Grid_Generator_System new_gensys; 23376: 23376: new_gensys.set_sorted(false); 23376: 23376: Grid_Generator_System::const_iterator i; 23376: Grid_Generator_System::const_iterator old_gensys_end = old_gensys.end(); 23376: for (i = old_gensys.begin(); i != old_gensys_end; ++i) { 23376: if (i->is_point()) { 23376: break; 23376: } 23376: } 23376: ((void) 0); 23376: const Coefficient& system_divisor = i->divisor(); 23376: for (i = old_gensys.begin(); i != old_gensys_end; ++i) { 23376: const Grid_Generator& old_g = *i; 23376: const Grid_Generator::expr_type old_g_e = old_g.expression(); 23376: Linear_Expression expr; 23376: expr.set_space_dimension(new_space_dimension); 23376: bool all_zeroes = true; 23376: for (Grid_Generator::expr_type::const_iterator j = old_g_e.begin(), 23376: j_end = old_g_e.end(); j != j_end; ++j) { 23376: const dimension_type mapped_id = pfunc_maps[j.variable().id()]; 23376: if (mapped_id != not_a_dimension()) { 23376: add_mul_assign(expr, *j, Variable(mapped_id)); 23376: all_zeroes = false; 23376: } 23376: } 23376: switch (old_g.type()) { 23376: case Grid_Generator::LINE: 23376: if (!all_zeroes) { 23376: new_gensys.insert(grid_line(expr)); 23376: } 23376: break; 23376: case Grid_Generator::PARAMETER: 23376: if (!all_zeroes) { 23376: new_gensys.insert(parameter(expr, system_divisor)); 23376: } 23376: break; 23376: case Grid_Generator::POINT: 23376: new_gensys.insert(grid_point(expr, old_g.divisor())); 23376: break; 23376: } 23376: } 23376: 23376: Grid new_grid(new_gensys); 23376: m_swap(new_grid); 23376: 23376: ((void) 0); 23376: } 23376: 23376: 23376: 23376: template 23376: void 23376: Grid::reduce_reduced(Swapping_Vector& rows, 23376: const dimension_type dim, 23376: const dimension_type pivot_index, 23376: const dimension_type start, 23376: const dimension_type end, 23376: const Dimension_Kinds& sys_dim_kinds, 23376: const bool generators) { 23376: 23376: typedef typename M::row_type M_row_type; 23376: 23376: const M_row_type& pivot = rows[pivot_index]; 23376: const Coefficient& pivot_dim = pivot.expr.get(dim); 23376: 23376: if (pivot_dim == 0) { 23376: return; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_pivot_dim_half; Parma_Polyhedra_Library::Coefficient& pivot_dim_half = holder_pivot_dim_half.item(); 23376: pivot_dim_half = (pivot_dim + 1) / 2; 23376: const Dimension_Kind row_kind = sys_dim_kinds[dim]; 23376: const bool row_is_line_or_equality 23376: = (row_kind == (generators ? LINE : EQUALITY)); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_num_rows_to_subtract; Parma_Polyhedra_Library::Coefficient& num_rows_to_subtract = holder_num_rows_to_subtract.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_row_dim_remainder; Parma_Polyhedra_Library::Coefficient& row_dim_remainder = holder_row_dim_remainder.item(); 23376: for (dimension_type kinds_index = dim, 23376: row_index = pivot_index; row_index-- > 0; ) { 23376: if (generators) { 23376: --kinds_index; 23376: 23376: while (sys_dim_kinds[kinds_index] == GEN_VIRTUAL) { 23376: --kinds_index; 23376: } 23376: } 23376: else { 23376: ++kinds_index; 23376: 23376: while (sys_dim_kinds[kinds_index] == CON_VIRTUAL) { 23376: ++kinds_index; 23376: } 23376: } 23376: 23376: 23376: if (row_is_line_or_equality 23376: || (row_kind == PARAMETER 23376: && sys_dim_kinds[kinds_index] == PARAMETER)) { 23376: M_row_type& row = rows[row_index]; 23376: 23376: const Coefficient& row_dim = row.expr.get(dim); 23376: 23376: num_rows_to_subtract = row_dim / pivot_dim; 23376: 23376: 23376: 23376: 23376: 23376: row_dim_remainder = row_dim % pivot_dim; 23376: if (row_dim_remainder < 0) { 23376: if (row_dim_remainder <= -pivot_dim_half) { 23376: --num_rows_to_subtract; 23376: } 23376: } 23376: else if (row_dim_remainder > 0 && row_dim_remainder > pivot_dim_half) { 23376: ++num_rows_to_subtract; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: if (num_rows_to_subtract != 0) { 23376: row.expr.linear_combine(pivot.expr, 23376: Coefficient_one(), -num_rows_to_subtract, 23376: start, end + 1); 23376: } 23376: } 23376: } 23376: } 23376: 23376: } 23376: # 2664 "../../src/Grid_defs.hh" 2 23376: # 36 "../../src/Box_templates.hh" 2 23376: 23376: 23376: # 1 "../../src/BD_Shape_defs.hh" 1 23376: # 44 "../../src/BD_Shape_defs.hh" 23376: # 1 "../../src/DB_Matrix_defs.hh" 1 23376: # 27 "../../src/DB_Matrix_defs.hh" 23376: # 1 "../../src/DB_Matrix_types.hh" 1 23376: # 16 "../../src/DB_Matrix_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class DB_Matrix; 23376: 23376: } 23376: # 28 "../../src/DB_Matrix_defs.hh" 2 23376: 23376: # 1 "../../src/DB_Row_defs.hh" 1 23376: # 27 "../../src/DB_Row_defs.hh" 23376: # 1 "../../src/DB_Row_types.hh" 1 23376: # 16 "../../src/DB_Row_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class DB_Row_Impl_Handler; 23376: 23376: template 23376: class DB_Row; 23376: 23376: } 23376: # 28 "../../src/DB_Row_defs.hh" 2 23376: 23376: # 1 "../../src/Ptr_Iterator_defs.hh" 1 23376: # 27 "../../src/Ptr_Iterator_defs.hh" 23376: # 1 "../../src/Ptr_Iterator_types.hh" 1 23376: # 16 "../../src/Ptr_Iterator_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Implementation { 23376: 23376: template 23376: class Ptr_Iterator; 23376: 23376: } 23376: 23376: } 23376: # 28 "../../src/Ptr_Iterator_defs.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Implementation { 23376: 23376: template 23376: bool operator==(const Ptr_Iterator

& x, const Ptr_Iterator& y); 23376: 23376: template 23376: bool operator!=(const Ptr_Iterator

& x, const Ptr_Iterator& y); 23376: 23376: template 23376: bool operator<(const Ptr_Iterator

& x, const Ptr_Iterator& y); 23376: 23376: template 23376: bool operator<=(const Ptr_Iterator

& x, const Ptr_Iterator& y); 23376: 23376: template 23376: bool operator>(const Ptr_Iterator

& x, const Ptr_Iterator& y); 23376: 23376: template 23376: bool operator>=(const Ptr_Iterator

& x, const Ptr_Iterator& y); 23376: 23376: template 23376: typename Ptr_Iterator

::difference_type 23376: operator-(const Ptr_Iterator

& x, const Ptr_Iterator& y); 23376: 23376: template 23376: Ptr_Iterator

operator+(typename Ptr_Iterator

::difference_type m, 23376: const Ptr_Iterator

& y); 23376: 23376: } 23376: 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: class Parma_Polyhedra_Library::Implementation::Ptr_Iterator 23376: : public std::iterator::iterator_category, 23376: typename std::iterator_traits

::value_type, 23376: typename std::iterator_traits

::difference_type, 23376: typename std::iterator_traits

::pointer, 23376: typename std::iterator_traits

::reference> { 23376: public: 23376: typedef typename std::iterator_traits

::difference_type difference_type; 23376: typedef typename std::iterator_traits

::reference reference; 23376: typedef typename std::iterator_traits

::pointer pointer; 23376: 23376: 23376: Ptr_Iterator(); 23376: 23376: 23376: explicit Ptr_Iterator(const P& q); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: Ptr_Iterator(const Ptr_Iterator& q); 23376: 23376: 23376: reference operator*() const; 23376: 23376: 23376: pointer operator->() const; 23376: 23376: 23376: reference operator[](const difference_type m) const; 23376: 23376: 23376: Ptr_Iterator& operator++(); 23376: 23376: 23376: Ptr_Iterator operator++(int); 23376: 23376: 23376: Ptr_Iterator& operator--(); 23376: 23376: 23376: Ptr_Iterator operator--(int); 23376: 23376: 23376: Ptr_Iterator& operator+=(const difference_type m); 23376: 23376: 23376: Ptr_Iterator& operator-=(const difference_type m); 23376: 23376: 23376: difference_type operator-(const Ptr_Iterator& y) const; 23376: 23376: 23376: Ptr_Iterator operator+(const difference_type m) const; 23376: 23376: 23376: Ptr_Iterator operator-(const difference_type m) const; 23376: 23376: private: 23376: 23376: P p; 23376: 23376: 23376: const P& base() const; 23376: 23376: template 23376: friend bool Parma_Polyhedra_Library::Implementation:: 23376: operator==(const Ptr_Iterator& x, const Ptr_Iterator& y); 23376: 23376: template 23376: friend bool Parma_Polyhedra_Library::Implementation:: 23376: operator!=(const Ptr_Iterator& x, const Ptr_Iterator& y); 23376: 23376: template 23376: friend bool Parma_Polyhedra_Library::Implementation:: 23376: operator<(const Ptr_Iterator& x, const Ptr_Iterator& y); 23376: 23376: template 23376: friend bool Parma_Polyhedra_Library::Implementation:: 23376: operator<=(const Ptr_Iterator& x, const Ptr_Iterator& y); 23376: 23376: template 23376: friend bool Parma_Polyhedra_Library::Implementation:: 23376: operator>(const Ptr_Iterator& x, const Ptr_Iterator& y); 23376: 23376: template 23376: friend bool Parma_Polyhedra_Library::Implementation:: 23376: operator>=(const Ptr_Iterator& x, const Ptr_Iterator& y); 23376: 23376: template 23376: friend typename Ptr_Iterator::difference_type 23376: Parma_Polyhedra_Library::Implementation:: 23376: operator-(const Ptr_Iterator& x, const Ptr_Iterator& y); 23376: 23376: friend Ptr_Iterator

23376: Parma_Polyhedra_Library::Implementation:: 23376: operator+<>(typename Ptr_Iterator

::difference_type m, 23376: const Ptr_Iterator

& y); 23376: }; 23376: 23376: # 1 "../../src/Ptr_Iterator_inlines.hh" 1 23376: # 27 "../../src/Ptr_Iterator_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Implementation { 23376: 23376: template 23376: inline const P& 23376: Ptr_Iterator

::base() const { 23376: return p; 23376: } 23376: 23376: template 23376: inline 23376: Ptr_Iterator

::Ptr_Iterator() 23376: : p(P()) { 23376: } 23376: 23376: template 23376: inline 23376: Ptr_Iterator

::Ptr_Iterator(const P& q) 23376: : p(q) { 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Ptr_Iterator

::Ptr_Iterator(const Ptr_Iterator& q) 23376: : p(q.base()) { 23376: } 23376: 23376: template 23376: inline typename Ptr_Iterator

::reference 23376: Ptr_Iterator

::operator*() const { 23376: return *p; 23376: } 23376: 23376: template 23376: inline typename Ptr_Iterator

::pointer 23376: Ptr_Iterator

::operator->() const { 23376: return p; 23376: } 23376: 23376: template 23376: inline typename Ptr_Iterator

::reference 23376: Ptr_Iterator

::operator[](const difference_type m) const { 23376: return p[m]; 23376: } 23376: 23376: template 23376: inline Ptr_Iterator

& 23376: Ptr_Iterator

::operator++() { 23376: ++p; 23376: return *this; 23376: } 23376: 23376: template 23376: inline Ptr_Iterator

23376: Ptr_Iterator

::operator++(int) { 23376: return Ptr_Iterator(p++); 23376: } 23376: 23376: template 23376: inline Ptr_Iterator

& 23376: Ptr_Iterator

::operator--() { 23376: --p; 23376: return *this; 23376: } 23376: 23376: template 23376: inline Ptr_Iterator

23376: Ptr_Iterator

::operator--(int) { 23376: return Ptr_Iterator(p--); 23376: } 23376: 23376: 23376: template 23376: inline Ptr_Iterator

& 23376: Ptr_Iterator

::operator+=(const difference_type m) { 23376: p += m; 23376: return *this; 23376: } 23376: 23376: template 23376: inline Ptr_Iterator

& 23376: Ptr_Iterator

::operator-=(const difference_type m) { 23376: p -= m; 23376: return *this; 23376: } 23376: 23376: template 23376: inline typename Ptr_Iterator

::difference_type 23376: Ptr_Iterator

::operator-(const Ptr_Iterator& y) const { 23376: return p - y.p; 23376: } 23376: 23376: template 23376: inline Ptr_Iterator

23376: Ptr_Iterator

::operator+(const difference_type m) const { 23376: return Ptr_Iterator(p + m); 23376: } 23376: 23376: template 23376: inline Ptr_Iterator

23376: Ptr_Iterator

::operator-(const difference_type m) const { 23376: return Ptr_Iterator(p - m); 23376: } 23376: 23376: template 23376: inline bool 23376: operator==(const Ptr_Iterator

& x, const Ptr_Iterator& y) { 23376: return x.base() == y.base(); 23376: } 23376: 23376: template 23376: inline bool 23376: operator!=(const Ptr_Iterator

& x, const Ptr_Iterator& y) { 23376: return x.base() != y.base(); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<(const Ptr_Iterator

& x, const Ptr_Iterator& y) { 23376: return x.base() < y.base(); 23376: } 23376: 23376: template 23376: inline bool 23376: operator<=(const Ptr_Iterator

& x, const Ptr_Iterator& y) { 23376: return x.base() <= y.base(); 23376: } 23376: 23376: template 23376: inline bool 23376: operator>(const Ptr_Iterator

& x, const Ptr_Iterator& y) { 23376: return x.base() > y.base(); 23376: } 23376: 23376: template 23376: inline bool 23376: operator>=(const Ptr_Iterator

& x, const Ptr_Iterator& y) { 23376: return x.base() >= y.base(); 23376: } 23376: 23376: template 23376: inline typename Ptr_Iterator

::difference_type 23376: operator-(const Ptr_Iterator

& x, const Ptr_Iterator& y) { 23376: return x.base() - y.base(); 23376: } 23376: 23376: template 23376: inline Ptr_Iterator

23376: operator+(typename Ptr_Iterator

::difference_type m, 23376: const Ptr_Iterator

& y) { 23376: return Ptr_Iterator

(m + y.base()); 23376: } 23376: 23376: } 23376: 23376: } 23376: # 171 "../../src/Ptr_Iterator_defs.hh" 2 23376: # 30 "../../src/DB_Row_defs.hh" 2 23376: # 57 "../../src/DB_Row_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::DB_Row_Impl_Handler { 23376: public: 23376: 23376: DB_Row_Impl_Handler(); 23376: 23376: 23376: ~DB_Row_Impl_Handler(); 23376: 23376: class Impl; 23376: 23376: 23376: Impl* impl; 23376: 23376: 23376: 23376: 23376: 23376: 23376: private: 23376: 23376: DB_Row_Impl_Handler(const DB_Row_Impl_Handler&); 23376: 23376: 23376: DB_Row_Impl_Handler& operator=(const DB_Row_Impl_Handler&); 23376: }; 23376: # 119 "../../src/DB_Row_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::DB_Row : private DB_Row_Impl_Handler { 23376: public: 23376: 23376: DB_Row(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void construct(dimension_type sz); 23376: # 145 "../../src/DB_Row_defs.hh" 23376: void construct(dimension_type sz, dimension_type capacity); 23376: # 159 "../../src/DB_Row_defs.hh" 23376: template 23376: void construct_upward_approximation(const DB_Row& y, 23376: dimension_type capacity); 23376: 23376: 23376: 23376: 23376: DB_Row(dimension_type sz); 23376: 23376: 23376: DB_Row(dimension_type sz, dimension_type capacity); 23376: 23376: 23376: DB_Row(const DB_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: DB_Row(const DB_Row& y, dimension_type capacity); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: DB_Row(const DB_Row& y, dimension_type sz, dimension_type capacity); 23376: 23376: 23376: ~DB_Row(); 23376: 23376: 23376: DB_Row& operator=(const DB_Row& y); 23376: 23376: 23376: void m_swap(DB_Row& y); 23376: 23376: 23376: void assign(DB_Row& y); 23376: # 208 "../../src/DB_Row_defs.hh" 23376: void allocate(dimension_type capacity); 23376: # 218 "../../src/DB_Row_defs.hh" 23376: void expand_within_capacity(dimension_type new_size); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void shrink(dimension_type new_size); 23376: 23376: 23376: static dimension_type max_size(); 23376: 23376: 23376: dimension_type size() const; 23376: 23376: 23376: 23376: 23376: T& operator[](dimension_type k); 23376: 23376: 23376: const T& operator[](dimension_type k) const; 23376: 23376: 23376: 23376: typedef Implementation::Ptr_Iterator iterator; 23376: 23376: 23376: typedef Implementation::Ptr_Iterator const_iterator; 23376: 23376: 23376: 23376: 23376: 23376: 23376: iterator begin(); 23376: 23376: 23376: iterator end(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: const_iterator end() const; 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes(dimension_type capacity) const; 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type external_memory_in_bytes(dimension_type capacity) const; 23376: 23376: 23376: bool OK(dimension_type row_size, dimension_type row_capacity) const; 23376: 23376: private: 23376: template friend class Parma_Polyhedra_Library::DB_Row; 23376: 23376: 23376: void copy_construct_coefficients(const DB_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void swap(DB_Row& x, DB_Row& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void iter_swap(typename std::vector >::iterator x, 23376: typename std::vector >::iterator y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator==(const DB_Row& x, const DB_Row& y); 23376: 23376: 23376: template 23376: bool operator!=(const DB_Row& x, const DB_Row& y); 23376: 23376: 23376: 23376: 23376: } 23376: # 351 "../../src/DB_Row_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::DB_Row_Impl_Handler::Impl { 23376: public: 23376: # 362 "../../src/DB_Row_defs.hh" 23376: static void* operator new(size_t fixed_size, dimension_type capacity); 23376: 23376: 23376: static void operator delete(void* p); 23376: 23376: 23376: 23376: 23376: 23376: static void operator delete(void* p, dimension_type capacity); 23376: 23376: 23376: 23376: Impl(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: ~Impl(); 23376: 23376: 23376: 23376: 23376: 23376: void expand_within_capacity(dimension_type new_size); 23376: 23376: 23376: 23376: 23376: 23376: void shrink(dimension_type new_size); 23376: 23376: 23376: void copy_construct_coefficients(const Impl& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void construct_upward_approximation(const U& y); 23376: 23376: 23376: static dimension_type max_size(); 23376: 23376: 23376: 23376: 23376: dimension_type size() const; 23376: 23376: 23376: void set_size(dimension_type new_sz); 23376: 23376: 23376: void bump_size(); 23376: 23376: 23376: 23376: 23376: 23376: T& operator[](dimension_type k); 23376: 23376: 23376: const T& operator[](dimension_type k) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type total_memory_in_bytes(dimension_type capacity) const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: private: 23376: friend class DB_Row; 23376: 23376: 23376: dimension_type size_; 23376: 23376: 23376: T vec_[ 23376: 23376: 0 23376: 23376: 23376: 23376: ]; 23376: 23376: 23376: Impl(const Impl& y); 23376: 23376: 23376: Impl& operator=(const Impl&); 23376: 23376: 23376: void copy_construct(const Impl& y); 23376: }; 23376: 23376: # 1 "../../src/DB_Row_inlines.hh" 1 23376: # 34 "../../src/DB_Row_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline void* 23376: DB_Row_Impl_Handler::Impl::operator new(const size_t fixed_size, 23376: const dimension_type capacity) { 23376: 23376: return ::operator new(fixed_size + capacity*sizeof(T)); 23376: 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row_Impl_Handler::Impl::operator delete(void* p) { 23376: ::operator delete(p); 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row_Impl_Handler::Impl::operator delete(void* p, dimension_type) { 23376: ::operator delete(p); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: DB_Row_Impl_Handler::Impl 23376: ::total_memory_in_bytes(dimension_type capacity) const { 23376: return 23376: sizeof(*this) 23376: + capacity*sizeof(T) 23376: 23376: 23376: 23376: + external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: DB_Row_Impl_Handler::Impl::total_memory_in_bytes() const { 23376: 23376: 23376: return total_memory_in_bytes(size_); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: DB_Row_Impl_Handler::Impl::max_size() { 23376: return std::numeric_limits::max() / sizeof(T); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: DB_Row_Impl_Handler::Impl::size() const { 23376: return size_; 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row_Impl_Handler::Impl::set_size(const dimension_type new_sz) { 23376: size_ = new_sz; 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row_Impl_Handler::Impl::bump_size() { 23376: ++size_; 23376: } 23376: 23376: template 23376: inline 23376: DB_Row_Impl_Handler::Impl::Impl() 23376: : size_(0) { 23376: } 23376: 23376: template 23376: inline 23376: DB_Row_Impl_Handler::Impl::~Impl() { 23376: shrink(0); 23376: } 23376: 23376: template 23376: inline 23376: DB_Row_Impl_Handler::DB_Row_Impl_Handler() 23376: : impl(0) { 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: inline 23376: DB_Row_Impl_Handler::~DB_Row_Impl_Handler() { 23376: delete impl; 23376: } 23376: 23376: template 23376: inline T& 23376: DB_Row_Impl_Handler::Impl::operator[](const dimension_type k) { 23376: ((void) 0); 23376: return vec_[k]; 23376: } 23376: 23376: template 23376: inline const T& 23376: DB_Row_Impl_Handler::Impl::operator[](const dimension_type k) const { 23376: ((void) 0); 23376: return vec_[k]; 23376: } 23376: 23376: template 23376: inline dimension_type 23376: DB_Row::max_size() { 23376: return DB_Row_Impl_Handler::Impl::max_size(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: DB_Row::size() const { 23376: return this->impl->size(); 23376: } 23376: # 166 "../../src/DB_Row_inlines.hh" 23376: template 23376: inline 23376: DB_Row::DB_Row() 23376: : DB_Row_Impl_Handler() { 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row::allocate( 23376: 23376: const 23376: 23376: dimension_type capacity) { 23376: DB_Row& x = *this; 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: x.impl = new(capacity) typename DB_Row_Impl_Handler::Impl(); 23376: 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row::expand_within_capacity(const dimension_type new_size) { 23376: DB_Row& x = *this; 23376: ((void) 0); 23376: 23376: 23376: 23376: x.impl->expand_within_capacity(new_size); 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row::copy_construct_coefficients(const DB_Row& y) { 23376: DB_Row& x = *this; 23376: ((void) 0); 23376: 23376: 23376: 23376: x.impl->copy_construct_coefficients(*(y.impl)); 23376: } 23376: 23376: template 23376: template 23376: inline void 23376: DB_Row::construct_upward_approximation(const DB_Row& y, 23376: const dimension_type capacity) { 23376: DB_Row& x = *this; 23376: ((void) 0); 23376: allocate(capacity); 23376: ((void) 0); 23376: x.impl->construct_upward_approximation(*(y.impl)); 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row::construct(const dimension_type sz, 23376: const dimension_type capacity) { 23376: ((void) 0); 23376: allocate(capacity); 23376: expand_within_capacity(sz); 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row::construct(const dimension_type sz) { 23376: construct(sz, sz); 23376: } 23376: 23376: template 23376: inline 23376: DB_Row::DB_Row(const dimension_type sz, 23376: const dimension_type capacity) 23376: : DB_Row_Impl_Handler() { 23376: construct(sz, capacity); 23376: } 23376: 23376: template 23376: inline 23376: DB_Row::DB_Row(const dimension_type sz) { 23376: construct(sz); 23376: } 23376: 23376: template 23376: inline 23376: DB_Row::DB_Row(const DB_Row& y) 23376: : DB_Row_Impl_Handler() { 23376: if (y.impl != 0) { 23376: allocate(compute_capacity(y.size(), max_size())); 23376: copy_construct_coefficients(y); 23376: } 23376: } 23376: 23376: template 23376: inline 23376: DB_Row::DB_Row(const DB_Row& y, 23376: const dimension_type capacity) 23376: : DB_Row_Impl_Handler() { 23376: ((void) 0); 23376: ((void) 0); 23376: allocate(capacity); 23376: copy_construct_coefficients(y); 23376: } 23376: 23376: template 23376: inline 23376: DB_Row::DB_Row(const DB_Row& y, 23376: const dimension_type sz, 23376: const dimension_type capacity) 23376: : DB_Row_Impl_Handler() { 23376: ((void) 0); 23376: ((void) 0); 23376: allocate(capacity); 23376: copy_construct_coefficients(y); 23376: expand_within_capacity(sz); 23376: } 23376: 23376: template 23376: inline 23376: DB_Row::~DB_Row() { 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row::shrink(const dimension_type new_size) { 23376: DB_Row& x = *this; 23376: ((void) 0); 23376: x.impl->shrink(new_size); 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row::m_swap(DB_Row& y) { 23376: using std::swap; 23376: DB_Row& x = *this; 23376: swap(x.impl, y.impl); 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: inline void 23376: DB_Row::assign(DB_Row& y) { 23376: DB_Row& x = *this; 23376: x.impl = y.impl; 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: inline DB_Row& 23376: DB_Row::operator=(const DB_Row& y) { 23376: DB_Row tmp(y); 23376: m_swap(tmp); 23376: return *this; 23376: } 23376: 23376: template 23376: inline T& 23376: DB_Row::operator[](const dimension_type k) { 23376: DB_Row& x = *this; 23376: return (*x.impl)[k]; 23376: } 23376: 23376: template 23376: inline const T& 23376: DB_Row::operator[](const dimension_type k) const { 23376: const DB_Row& x = *this; 23376: return (*x.impl)[k]; 23376: } 23376: 23376: template 23376: inline typename DB_Row::iterator 23376: DB_Row::begin() { 23376: DB_Row& x = *this; 23376: return iterator(x.impl->vec_); 23376: } 23376: 23376: template 23376: inline typename DB_Row::iterator 23376: DB_Row::end() { 23376: DB_Row& x = *this; 23376: return iterator(x.impl->vec_ + x.impl->size_); 23376: } 23376: 23376: template 23376: inline typename DB_Row::const_iterator 23376: DB_Row::begin() const { 23376: const DB_Row& x = *this; 23376: return const_iterator(x.impl->vec_); 23376: } 23376: 23376: template 23376: inline typename DB_Row::const_iterator 23376: DB_Row::end() const { 23376: const DB_Row& x = *this; 23376: return const_iterator(x.impl->vec_ + x.impl->size_); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: DB_Row::external_memory_in_bytes(dimension_type capacity) const { 23376: const DB_Row& x = *this; 23376: return x.impl->total_memory_in_bytes(capacity); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: DB_Row::total_memory_in_bytes(dimension_type capacity) const { 23376: return sizeof(*this) + external_memory_in_bytes(capacity); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: DB_Row::external_memory_in_bytes() const { 23376: const DB_Row& x = *this; 23376: 23376: 23376: 23376: return x.impl->total_memory_in_bytes(); 23376: 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: DB_Row::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const DB_Row& x, const DB_Row& y) { 23376: return !(x == y); 23376: } 23376: 23376: 23376: template 23376: inline void 23376: swap(DB_Row& x, DB_Row& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: 23376: template 23376: inline void 23376: iter_swap(typename std::vector >::iterator x, 23376: typename std::vector >::iterator y) { 23376: swap(*x, *y); 23376: } 23376: 23376: } 23376: # 468 "../../src/DB_Row_defs.hh" 2 23376: # 1 "../../src/DB_Row_templates.hh" 1 23376: # 29 "../../src/DB_Row_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: template 23376: void 23376: DB_Row_Impl_Handler::Impl::construct_upward_approximation(const U& y) { 23376: const dimension_type y_size = y.size(); 23376: 23376: 23376: for (dimension_type i = 0; i < y_size; ++i) { 23376: construct(vec_[i], y[i], ROUND_UP); 23376: bump_size(); 23376: } 23376: # 53 "../../src/DB_Row_templates.hh" 23376: } 23376: 23376: template 23376: void 23376: DB_Row_Impl_Handler:: 23376: Impl::expand_within_capacity(const dimension_type new_size) { 23376: ((void) 0); 23376: # 68 "../../src/DB_Row_templates.hh" 23376: for (dimension_type i = size(); i < new_size; ++i) { 23376: new(&vec_[i]) T(PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: bump_size(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: DB_Row_Impl_Handler::Impl::shrink(dimension_type new_size) { 23376: const dimension_type old_size = size(); 23376: ((void) 0); 23376: 23376: set_size(new_size); 23376: # 89 "../../src/DB_Row_templates.hh" 23376: for (dimension_type i = old_size; i-- > new_size; ) { 23376: vec_[i].~T(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: DB_Row_Impl_Handler::Impl::copy_construct_coefficients(const Impl& y) { 23376: const dimension_type y_size = y.size(); 23376: 23376: 23376: for (dimension_type i = 0; i < y_size; ++i) { 23376: new(&vec_[i]) T(y.vec_[i]); 23376: bump_size(); 23376: } 23376: # 115 "../../src/DB_Row_templates.hh" 23376: } 23376: 23376: template 23376: memory_size_type 23376: DB_Row_Impl_Handler::Impl::external_memory_in_bytes() const { 23376: memory_size_type n = 0; 23376: for (dimension_type i = size(); i-- > 0; ) { 23376: n += Parma_Polyhedra_Library::external_memory_in_bytes(vec_[i]); 23376: } 23376: return n; 23376: } 23376: 23376: template 23376: bool 23376: DB_Row::OK(const dimension_type row_size, 23376: const dimension_type 23376: 23376: 23376: 23376: ) const { 23376: 23376: 23376: 23376: 23376: 23376: const DB_Row& x = *this; 23376: bool is_broken = false; 23376: # 163 "../../src/DB_Row_templates.hh" 23376: if (x.size() != row_size) { 23376: 23376: 23376: 23376: 23376: 23376: is_broken = true; 23376: } 23376: # 183 "../../src/DB_Row_templates.hh" 23376: for (dimension_type i = x.size(); i-- > 0; ) { 23376: const T& element = x[i]; 23376: 23376: if (!element.OK()) { 23376: is_broken = true; 23376: break; 23376: } 23376: 23376: if (is_not_a_number(element)) { 23376: 23376: 23376: 23376: 23376: is_broken = true; 23376: break; 23376: } 23376: } 23376: 23376: return !is_broken; 23376: } 23376: 23376: 23376: template 23376: bool 23376: operator==(const DB_Row& x, const DB_Row& y) { 23376: if (x.size() != y.size()) { 23376: return false; 23376: } 23376: for (dimension_type i = x.size(); i-- > 0; ) { 23376: if (x[i] != y[i]) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: } 23376: # 469 "../../src/DB_Row_defs.hh" 2 23376: # 30 "../../src/DB_Matrix_defs.hh" 2 23376: 23376: 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: std::ostream& 23376: operator<<(std::ostream& s, const DB_Matrix& c); 23376: 23376: } 23376: 23376: } 23376: # 61 "../../src/DB_Matrix_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::DB_Matrix { 23376: public: 23376: 23376: static dimension_type max_num_rows(); 23376: 23376: 23376: static dimension_type max_num_columns(); 23376: 23376: 23376: 23376: 23376: 23376: DB_Matrix(); 23376: 23376: 23376: explicit DB_Matrix(dimension_type n_rows); 23376: 23376: 23376: DB_Matrix(const DB_Matrix& y); 23376: 23376: 23376: template 23376: explicit DB_Matrix(const DB_Matrix& y); 23376: 23376: 23376: ~DB_Matrix(); 23376: 23376: 23376: DB_Matrix& operator=(const DB_Matrix& y); 23376: 23376: 23376: 23376: 23376: 23376: class const_iterator { 23376: private: 23376: typedef typename std::vector >::const_iterator Iter; 23376: 23376: Iter i; 23376: 23376: public: 23376: typedef std::forward_iterator_tag iterator_category; 23376: typedef typename std::iterator_traits::value_type value_type; 23376: typedef typename std::iterator_traits::difference_type 23376: difference_type; 23376: typedef typename std::iterator_traits::pointer pointer; 23376: typedef typename std::iterator_traits::reference reference; 23376: 23376: 23376: const_iterator(); 23376: 23376: 23376: 23376: 23376: 23376: explicit const_iterator(const Iter& b); 23376: 23376: 23376: const_iterator(const const_iterator& y); 23376: 23376: 23376: const_iterator& operator=(const const_iterator& y); 23376: 23376: 23376: reference operator*() const; 23376: 23376: 23376: pointer operator->() const; 23376: 23376: 23376: const_iterator& operator++(); 23376: 23376: 23376: const_iterator operator++(int); 23376: 23376: 23376: 23376: 23376: 23376: bool operator==(const const_iterator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const const_iterator& y) const; 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_iterator begin() const; 23376: 23376: 23376: const_iterator end() const; 23376: 23376: private: 23376: template friend class DB_Matrix; 23376: 23376: 23376: std::vector > rows; 23376: 23376: 23376: dimension_type row_size; 23376: 23376: 23376: 23376: 23376: 23376: dimension_type row_capacity; 23376: 23376: public: 23376: 23376: void m_swap(DB_Matrix& y); 23376: # 188 "../../src/DB_Matrix_defs.hh" 23376: void grow(dimension_type new_n_rows); 23376: # 198 "../../src/DB_Matrix_defs.hh" 23376: void resize_no_copy(dimension_type new_n_rows); 23376: 23376: 23376: dimension_type num_rows() const; 23376: 23376: 23376: 23376: 23376: DB_Row& operator[](dimension_type k); 23376: 23376: 23376: const DB_Row& operator[](dimension_type k) const; 23376: 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: bool OK() const; 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void swap(DB_Matrix& x, DB_Matrix& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator==(const DB_Matrix& x, const DB_Matrix& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator!=(const DB_Matrix& x, const DB_Matrix& y); 23376: # 267 "../../src/DB_Matrix_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const DB_Matrix& x, 23376: const DB_Matrix& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 289 "../../src/DB_Matrix_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const DB_Matrix& x, 23376: const DB_Matrix& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 311 "../../src/DB_Matrix_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const DB_Matrix& x, 23376: const DB_Matrix& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: 23376: } 23376: 23376: # 1 "../../src/DB_Matrix_inlines.hh" 1 23376: # 33 "../../src/DB_Matrix_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline void 23376: DB_Matrix::m_swap(DB_Matrix& y) { 23376: using std::swap; 23376: swap(rows, y.rows); 23376: swap(row_size, y.row_size); 23376: swap(row_capacity, y.row_capacity); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: DB_Matrix::max_num_rows() { 23376: return std::vector >().max_size(); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: DB_Matrix::max_num_columns() { 23376: return DB_Row::max_size(); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: DB_Matrix::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline 23376: DB_Matrix::const_iterator::const_iterator() 23376: : i(Iter()) { 23376: } 23376: 23376: template 23376: inline 23376: DB_Matrix::const_iterator::const_iterator(const Iter& b) 23376: : i(b) { 23376: } 23376: 23376: template 23376: inline 23376: DB_Matrix::const_iterator::const_iterator(const const_iterator& y) 23376: : i(y.i) { 23376: } 23376: 23376: template 23376: inline typename DB_Matrix::const_iterator& 23376: DB_Matrix::const_iterator::operator=(const const_iterator& y) { 23376: i = y.i; 23376: return *this; 23376: } 23376: 23376: template 23376: inline typename DB_Matrix::const_iterator::reference 23376: DB_Matrix::const_iterator::operator*() const { 23376: return *i; 23376: } 23376: 23376: template 23376: inline typename DB_Matrix::const_iterator::pointer 23376: DB_Matrix::const_iterator::operator->() const { 23376: return &*i; 23376: } 23376: 23376: template 23376: inline typename DB_Matrix::const_iterator& 23376: DB_Matrix::const_iterator::operator++() { 23376: ++i; 23376: return *this; 23376: } 23376: 23376: template 23376: inline typename DB_Matrix::const_iterator 23376: DB_Matrix::const_iterator::operator++(int) { 23376: return const_iterator(i++); 23376: } 23376: 23376: template 23376: inline bool 23376: DB_Matrix::const_iterator::operator==(const const_iterator& y) const { 23376: return i == y.i; 23376: } 23376: 23376: template 23376: inline bool 23376: DB_Matrix::const_iterator::operator!=(const const_iterator& y) const { 23376: return !operator==(y); 23376: } 23376: 23376: template 23376: inline typename DB_Matrix::const_iterator 23376: DB_Matrix::begin() const { 23376: return const_iterator(rows.begin()); 23376: } 23376: 23376: template 23376: inline typename DB_Matrix::const_iterator 23376: DB_Matrix::end() const { 23376: return const_iterator(rows.end()); 23376: } 23376: 23376: template 23376: inline 23376: DB_Matrix::DB_Matrix() 23376: : rows(), 23376: row_size(0), 23376: row_capacity(0) { 23376: } 23376: 23376: template 23376: inline 23376: DB_Matrix::~DB_Matrix() { 23376: } 23376: 23376: template 23376: inline DB_Row& 23376: DB_Matrix::operator[](const dimension_type k) { 23376: ((void) 0); 23376: return rows[k]; 23376: } 23376: 23376: template 23376: inline const DB_Row& 23376: DB_Matrix::operator[](const dimension_type k) const { 23376: ((void) 0); 23376: return rows[k]; 23376: } 23376: 23376: template 23376: inline dimension_type 23376: DB_Matrix::num_rows() const { 23376: return rows.size(); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const DB_Matrix& x, const DB_Matrix& y) { 23376: return !(x == y); 23376: } 23376: 23376: template 23376: inline 23376: DB_Matrix::DB_Matrix(const DB_Matrix& y) 23376: : rows(y.rows), 23376: row_size(y.row_size), 23376: row_capacity(compute_capacity(y.row_size, max_num_columns())) { 23376: } 23376: 23376: template 23376: inline DB_Matrix& 23376: DB_Matrix::operator=(const DB_Matrix& y) { 23376: 23376: 23376: 23376: 23376: if (this != &y) { 23376: 23376: rows = y.rows; 23376: row_size = y.row_size; 23376: 23376: 23376: row_capacity = compute_capacity(y.row_size, max_num_columns()); 23376: } 23376: return *this; 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: l_m_distance_assign(Checked_Number& r, 23376: const DB_Matrix& x, 23376: const DB_Matrix& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: const dimension_type x_num_rows = x.num_rows(); 23376: if (x_num_rows != y.num_rows()) { 23376: return false; 23376: } 23376: assign_r(tmp0, 0, ROUND_NOT_NEEDED); 23376: for (dimension_type i = x_num_rows; i-- > 0; ) { 23376: const DB_Row& x_i = x[i]; 23376: const DB_Row& y_i = y[i]; 23376: for (dimension_type j = x_num_rows; j-- > 0; ) { 23376: const T& x_i_j = x_i[j]; 23376: const T& y_i_j = y_i[j]; 23376: if (is_plus_infinity(x_i_j)) { 23376: if (is_plus_infinity(y_i_j)) { 23376: continue; 23376: } 23376: else { 23376: pinf: 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: return true; 23376: } 23376: } 23376: else if (is_plus_infinity(y_i_j)) { 23376: goto pinf; 23376: } 23376: const Temp* tmp1p; 23376: const Temp* tmp2p; 23376: if (x_i_j > y_i_j) { 23376: maybe_assign(tmp1p, tmp1, x_i_j, dir); 23376: maybe_assign(tmp2p, tmp2, y_i_j, inverse(dir)); 23376: } 23376: else { 23376: maybe_assign(tmp1p, tmp1, y_i_j, dir); 23376: maybe_assign(tmp2p, tmp2, x_i_j, inverse(dir)); 23376: } 23376: sub_assign_r(tmp1, *tmp1p, *tmp2p, dir); 23376: ((void) 0); 23376: Specialization::combine(tmp0, tmp1, dir); 23376: } 23376: } 23376: Specialization::finalize(tmp0, dir); 23376: assign_r(r, tmp0, dir); 23376: return true; 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const DB_Matrix& x, 23376: const DB_Matrix& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return 23376: l_m_distance_assign >(r, x, y, 23376: dir, 23376: tmp0, 23376: tmp1, 23376: tmp2); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const DB_Matrix& x, 23376: const DB_Matrix& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return 23376: l_m_distance_assign >(r, x, y, 23376: dir, 23376: tmp0, 23376: tmp1, 23376: tmp2); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const DB_Matrix& x, 23376: const DB_Matrix& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return 23376: l_m_distance_assign >(r, x, y, 23376: dir, 23376: tmp0, 23376: tmp1, 23376: tmp2); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline void 23376: swap(DB_Matrix& x, DB_Matrix& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 323 "../../src/DB_Matrix_defs.hh" 2 23376: # 1 "../../src/DB_Matrix_templates.hh" 1 23376: # 27 "../../src/DB_Matrix_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: DB_Matrix::DB_Matrix(const dimension_type n_rows) 23376: : rows(n_rows), 23376: row_size(n_rows), 23376: row_capacity(compute_capacity(n_rows, max_num_columns())) { 23376: 23376: for (dimension_type i = 0; i < n_rows; ++i) { 23376: rows[i].construct(n_rows, row_capacity); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: DB_Matrix::DB_Matrix(const DB_Matrix& y) 23376: : rows(y.rows.size()), 23376: row_size(y.row_size), 23376: row_capacity(compute_capacity(y.row_size, max_num_columns())) { 23376: 23376: for (dimension_type i = 0, n_rows = rows.size(); i < n_rows; ++i) { 23376: rows[i].construct_upward_approximation(y[i], row_capacity); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: DB_Matrix::grow(const dimension_type new_n_rows) { 23376: const dimension_type old_n_rows = rows.size(); 23376: ((void) 0); 23376: 23376: if (new_n_rows > old_n_rows) { 23376: if (new_n_rows <= row_capacity) { 23376: 23376: if (rows.capacity() < new_n_rows) { 23376: 23376: std::vector > new_rows; 23376: new_rows.reserve(compute_capacity(new_n_rows, max_num_rows())); 23376: new_rows.insert(new_rows.end(), new_n_rows, DB_Row()); 23376: 23376: dimension_type i = new_n_rows; 23376: while (i-- > old_n_rows) { 23376: new_rows[i].construct(new_n_rows, row_capacity); 23376: } 23376: 23376: ++i; 23376: while (i-- > 0) { 23376: swap(new_rows[i], rows[i]); 23376: } 23376: 23376: using std::swap; 23376: swap(rows, new_rows); 23376: } 23376: else { 23376: 23376: rows.insert(rows.end(), new_n_rows - old_n_rows, DB_Row()); 23376: for (dimension_type i = new_n_rows; i-- > old_n_rows; ) { 23376: rows[i].construct(new_n_rows, row_capacity); 23376: } 23376: } 23376: } 23376: else { 23376: 23376: DB_Matrix new_matrix; 23376: new_matrix.rows.reserve(compute_capacity(new_n_rows, max_num_rows())); 23376: new_matrix.rows.insert(new_matrix.rows.end(), new_n_rows, DB_Row()); 23376: 23376: new_matrix.row_size = new_n_rows; 23376: new_matrix.row_capacity = compute_capacity(new_n_rows, 23376: max_num_columns()); 23376: dimension_type i = new_n_rows; 23376: while (i-- > old_n_rows) { 23376: new_matrix.rows[i].construct(new_matrix.row_size, 23376: new_matrix.row_capacity); 23376: } 23376: 23376: ++i; 23376: while (i-- > 0) { 23376: 23376: DB_Row new_row(rows[i], 23376: new_matrix.row_size, 23376: new_matrix.row_capacity); 23376: swap(new_matrix.rows[i], new_row); 23376: } 23376: 23376: m_swap(new_matrix); 23376: return; 23376: } 23376: } 23376: 23376: if (new_n_rows > row_size) { 23376: 23376: if (new_n_rows <= row_capacity) { 23376: 23376: for (dimension_type i = old_n_rows; i-- > 0; ) { 23376: rows[i].expand_within_capacity(new_n_rows); 23376: } 23376: } 23376: else { 23376: 23376: 23376: const dimension_type new_row_capacity 23376: = compute_capacity(new_n_rows, max_num_columns()); 23376: for (dimension_type i = old_n_rows; i-- > 0; ) { 23376: 23376: DB_Row new_row(rows[i], new_n_rows, new_row_capacity); 23376: swap(rows[i], new_row); 23376: } 23376: row_capacity = new_row_capacity; 23376: } 23376: 23376: row_size = new_n_rows; 23376: } 23376: } 23376: 23376: template 23376: void 23376: DB_Matrix::resize_no_copy(const dimension_type new_n_rows) { 23376: dimension_type old_n_rows = rows.size(); 23376: 23376: if (new_n_rows > old_n_rows) { 23376: 23376: if (new_n_rows <= row_capacity) { 23376: 23376: if (rows.capacity() < new_n_rows) { 23376: 23376: std::vector > new_rows; 23376: new_rows.reserve(compute_capacity(new_n_rows, max_num_rows())); 23376: new_rows.insert(new_rows.end(), new_n_rows, DB_Row()); 23376: 23376: 23376: dimension_type i = new_n_rows; 23376: while (i-- > old_n_rows) { 23376: new_rows[i].construct(new_n_rows, row_capacity); 23376: 23376: } 23376: ++i; 23376: while (i-- > 0) { 23376: swap(new_rows[i], rows[i]); 23376: } 23376: 23376: using std::swap; 23376: swap(rows, new_rows); 23376: } 23376: else { 23376: 23376: rows.insert(rows.end(), new_n_rows - old_n_rows, DB_Row()); 23376: 23376: 23376: for (dimension_type i = new_n_rows; i-- > old_n_rows; ) { 23376: rows[i].construct(new_n_rows, row_capacity); 23376: } 23376: } 23376: } 23376: else { 23376: 23376: DB_Matrix new_matrix(new_n_rows); 23376: m_swap(new_matrix); 23376: return; 23376: } 23376: } 23376: else if (new_n_rows < old_n_rows) { 23376: 23376: rows.resize(new_n_rows); 23376: 23376: for (dimension_type i = new_n_rows; i-- > 0; ) { 23376: rows[i].shrink(new_n_rows); 23376: } 23376: old_n_rows = new_n_rows; 23376: } 23376: 23376: if (new_n_rows > row_size) { 23376: 23376: if (new_n_rows <= row_capacity) { 23376: 23376: for (dimension_type i = old_n_rows; i-- > 0; ) { 23376: rows[i].expand_within_capacity(new_n_rows); 23376: } 23376: } 23376: else { 23376: 23376: 23376: const dimension_type new_row_capacity 23376: = compute_capacity(new_n_rows, max_num_columns()); 23376: for (dimension_type i = old_n_rows; i-- > 0; ) { 23376: DB_Row new_row(new_n_rows, new_row_capacity); 23376: swap(rows[i], new_row); 23376: } 23376: row_capacity = new_row_capacity; 23376: } 23376: } 23376: 23376: row_size = new_n_rows; 23376: } 23376: 23376: template 23376: void 23376: DB_Matrix::ascii_dump(std::ostream& s) const { 23376: const DB_Matrix& x = *this; 23376: const char separator = ' '; 23376: const dimension_type nrows = x.num_rows(); 23376: s << nrows << separator << "\n"; 23376: for (dimension_type i = 0; i < nrows; ++i) { 23376: for (dimension_type j = 0; j < nrows; ++j) { 23376: using namespace IO_Operators; 23376: s << x[i][j] << separator; 23376: } 23376: s << "\n"; 23376: } 23376: } 23376: 23376: template void DB_Matrix::ascii_dump() const { ascii_dump(std::cerr); } template void DB_Matrix::print() const { using IO_Operators::operator<<; std::cerr << *this; } 23376: 23376: template 23376: bool 23376: DB_Matrix::ascii_load(std::istream& s) { 23376: dimension_type nrows; 23376: if (!(s >> nrows)) { 23376: return false; 23376: } 23376: resize_no_copy(nrows); 23376: DB_Matrix& x = *this; 23376: for (dimension_type i = 0; i < nrows; ++i) { 23376: for (dimension_type j = 0; j < nrows; ++j) { 23376: Result r = input(x[i][j], s, ROUND_CHECK); 23376: if (result_relation(r) != VR_EQ || is_minus_infinity(x[i][j])) { 23376: return false; 23376: } 23376: } 23376: } 23376: 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: bool 23376: operator==(const DB_Matrix& x, const DB_Matrix& y) { 23376: const dimension_type x_num_rows = x.num_rows(); 23376: if (x_num_rows != y.num_rows()) { 23376: return false; 23376: } 23376: for (dimension_type i = x_num_rows; i-- > 0; ) { 23376: if (x[i] != y[i]) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: memory_size_type 23376: DB_Matrix::external_memory_in_bytes() const { 23376: memory_size_type n = rows.capacity() * sizeof(DB_Row); 23376: for (dimension_type i = num_rows(); i-- > 0; ) { 23376: n += rows[i].external_memory_in_bytes(row_capacity); 23376: } 23376: return n; 23376: } 23376: 23376: template 23376: bool 23376: DB_Matrix::OK() const { 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (num_rows() != row_size) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: 23376: const DB_Matrix& x = *this; 23376: const dimension_type n_rows = x.num_rows(); 23376: for (dimension_type i = 0; i < n_rows; ++i) { 23376: if (!x[i].OK(row_size, row_capacity)) { 23376: return false; 23376: } 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: std::ostream& 23376: IO_Operators::operator<<(std::ostream& s, const DB_Matrix& c) { 23376: const dimension_type n = c.num_rows(); 23376: for (dimension_type i = 0; i < n; ++i) { 23376: for (dimension_type j = 0; j < n; ++j) { 23376: s << c[i][j] << " "; 23376: } 23376: s << "\n"; 23376: } 23376: return s; 23376: } 23376: 23376: } 23376: # 324 "../../src/DB_Matrix_defs.hh" 2 23376: # 45 "../../src/BD_Shape_defs.hh" 2 23376: 23376: 23376: # 1 "../../src/WRD_coefficient_types_defs.hh" 1 23376: # 29 "../../src/WRD_coefficient_types_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct WRD_Extended_Number_Policy { 23376: 23376: enum const_bool_value_check_overflow { check_overflow = (true) }; 23376: 23376: 23376: enum const_bool_value_check_inf_add_inf { check_inf_add_inf = (false) }; 23376: 23376: 23376: enum const_bool_value_check_inf_sub_inf { check_inf_sub_inf = (false) }; 23376: 23376: 23376: enum const_bool_value_check_inf_mul_zero { check_inf_mul_zero = (false) }; 23376: 23376: 23376: enum const_bool_value_check_div_zero { check_div_zero = (false) }; 23376: 23376: 23376: enum const_bool_value_check_inf_div_inf { check_inf_div_inf = (false) }; 23376: 23376: 23376: enum const_bool_value_check_inf_mod { check_inf_mod = (false) }; 23376: 23376: 23376: enum const_bool_value_check_sqrt_neg { check_sqrt_neg = (false) }; 23376: 23376: 23376: enum const_bool_value_has_nan { has_nan = (true) }; 23376: 23376: 23376: enum const_bool_value_has_infinity { has_infinity = (true) }; 23376: 23376: 23376: 23376: 23376: 23376: enum const_bool_value_fpu_check_inexact { fpu_check_inexact = (true) }; 23376: 23376: 23376: enum const_bool_value_fpu_check_nan_result { fpu_check_nan_result = (false) }; 23376: # 87 "../../src/WRD_coefficient_types_defs.hh" 23376: static void handle_result(Result r); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: struct Debug_WRD_Extended_Number_Policy { 23376: 23376: enum const_bool_value_check_overflow { check_overflow = (true) }; 23376: 23376: 23376: enum const_bool_value_check_inf_add_inf { check_inf_add_inf = (true) }; 23376: 23376: 23376: enum const_bool_value_check_inf_sub_inf { check_inf_sub_inf = (true) }; 23376: 23376: 23376: enum const_bool_value_check_inf_mul_zero { check_inf_mul_zero = (true) }; 23376: 23376: 23376: enum const_bool_value_check_div_zero { check_div_zero = (true) }; 23376: 23376: 23376: enum const_bool_value_check_inf_div_inf { check_inf_div_inf = (true) }; 23376: 23376: 23376: enum const_bool_value_check_inf_mod { check_inf_mod = (true) }; 23376: 23376: 23376: enum const_bool_value_check_sqrt_neg { check_sqrt_neg = (true) }; 23376: 23376: 23376: enum const_bool_value_has_nan { has_nan = (true) }; 23376: 23376: 23376: enum const_bool_value_has_infinity { has_infinity = (true) }; 23376: 23376: 23376: 23376: 23376: 23376: enum const_bool_value_fpu_check_inexact { fpu_check_inexact = (true) }; 23376: 23376: 23376: enum const_bool_value_fpu_check_nan_result { fpu_check_nan_result = (true) }; 23376: # 146 "../../src/WRD_coefficient_types_defs.hh" 23376: static void handle_result(Result r); 23376: }; 23376: 23376: } 23376: 23376: # 1 "../../src/WRD_coefficient_types_inlines.hh" 1 23376: # 27 "../../src/WRD_coefficient_types_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline void 23376: WRD_Extended_Number_Policy::handle_result(Result r) { 23376: if (result_class(r) == VC_NAN) { 23376: throw_result_exception(r); 23376: } 23376: } 23376: 23376: inline void 23376: Debug_WRD_Extended_Number_Policy::handle_result(Result r) { 23376: if (result_class(r) == VC_NAN) { 23376: throw_result_exception(r); 23376: } 23376: } 23376: 23376: } 23376: # 152 "../../src/WRD_coefficient_types_defs.hh" 2 23376: # 48 "../../src/BD_Shape_defs.hh" 2 23376: # 56 "../../src/BD_Shape_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: # 68 "../../src/BD_Shape_defs.hh" 23376: template 23376: std::ostream& 23376: operator<<(std::ostream& s, const BD_Shape& bds); 23376: 23376: } 23376: 23376: 23376: 23376: template 23376: void swap(BD_Shape& x, BD_Shape& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator==(const BD_Shape& x, const BD_Shape& y); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator!=(const BD_Shape& x, const BD_Shape& y); 23376: # 106 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: Rounding_Dir dir); 23376: # 123 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: Rounding_Dir dir); 23376: # 140 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 160 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: Rounding_Dir dir); 23376: # 177 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: Rounding_Dir dir); 23376: # 194 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 214 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: Rounding_Dir dir); 23376: # 231 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: Rounding_Dir dir); 23376: # 248 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: 23376: 23376: 23376: class BD_Shape_Helpers { 23376: public: 23376: # 294 "../../src/BD_Shape_defs.hh" 23376: static bool extract_bounded_difference(const Constraint& c, 23376: dimension_type& c_num_vars, 23376: dimension_type& c_first_var, 23376: dimension_type& c_second_var, 23376: Coefficient& c_coeff); 23376: }; 23376: 23376: 23376: 23376: 23376: 23376: void compute_leader_indices(const std::vector& predecessor, 23376: std::vector& indices); 23376: 23376: } 23376: # 411 "../../src/BD_Shape_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::BD_Shape { 23376: private: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef Checked_Number N; 23376: 23376: 23376: public: 23376: 23376: typedef T coefficient_type_base; 23376: 23376: 23376: 23376: 23376: 23376: typedef N coefficient_type; 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: 23376: 23376: static bool can_recycle_constraint_systems(); 23376: 23376: 23376: 23376: 23376: static bool can_recycle_congruence_systems(); 23376: # 458 "../../src/BD_Shape_defs.hh" 23376: explicit BD_Shape(dimension_type num_dimensions = 0, 23376: Degenerate_Element kind = UNIVERSE); 23376: 23376: 23376: 23376: 23376: 23376: BD_Shape(const BD_Shape& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: explicit BD_Shape(const BD_Shape& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 487 "../../src/BD_Shape_defs.hh" 23376: explicit BD_Shape(const Constraint_System& cs); 23376: # 500 "../../src/BD_Shape_defs.hh" 23376: explicit BD_Shape(const Congruence_System& cgs); 23376: # 510 "../../src/BD_Shape_defs.hh" 23376: explicit BD_Shape(const Generator_System& gs); 23376: # 519 "../../src/BD_Shape_defs.hh" 23376: explicit BD_Shape(const Polyhedron& ph, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 538 "../../src/BD_Shape_defs.hh" 23376: template 23376: explicit BD_Shape(const Box& box, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 558 "../../src/BD_Shape_defs.hh" 23376: explicit BD_Shape(const Grid& grid, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 577 "../../src/BD_Shape_defs.hh" 23376: template 23376: explicit BD_Shape(const Octagonal_Shape& os, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: BD_Shape& operator=(const BD_Shape& y); 23376: 23376: 23376: 23376: 23376: 23376: void m_swap(BD_Shape& y); 23376: 23376: 23376: ~BD_Shape(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type affine_dimension() const; 23376: 23376: 23376: Constraint_System constraints() const; 23376: 23376: 23376: Constraint_System minimized_constraints() const; 23376: 23376: 23376: Congruence_System congruences() const; 23376: 23376: 23376: 23376: 23376: 23376: Congruence_System minimized_congruences() const; 23376: # 633 "../../src/BD_Shape_defs.hh" 23376: bool bounds_from_above(const Linear_Expression& expr) const; 23376: # 642 "../../src/BD_Shape_defs.hh" 23376: bool bounds_from_below(const Linear_Expression& expr) const; 23376: # 668 "../../src/BD_Shape_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum) const; 23376: # 699 "../../src/BD_Shape_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum, 23376: Generator& g) const; 23376: # 727 "../../src/BD_Shape_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum) const; 23376: # 758 "../../src/BD_Shape_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum, 23376: Generator& g) const; 23376: # 790 "../../src/BD_Shape_defs.hh" 23376: bool frequency(const Linear_Expression& expr, 23376: Coefficient& freq_n, Coefficient& freq_d, 23376: Coefficient& val_n, Coefficient& val_d) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool contains(const BD_Shape& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool strictly_contains(const BD_Shape& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_disjoint_from(const BD_Shape& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Con_Relation relation_with(const Constraint& c) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Con_Relation relation_with(const Congruence& cg) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Gen_Relation relation_with(const Generator& g) const; 23376: 23376: 23376: bool is_empty() const; 23376: 23376: 23376: bool is_universe() const; 23376: 23376: 23376: bool is_discrete() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_topologically_closed() const; 23376: 23376: 23376: bool is_bounded() const; 23376: 23376: 23376: 23376: 23376: 23376: bool contains_integer_point() const; 23376: # 868 "../../src/BD_Shape_defs.hh" 23376: bool constrains(Variable var) const; 23376: 23376: 23376: 23376: 23376: 23376: bool OK() const; 23376: # 892 "../../src/BD_Shape_defs.hh" 23376: void add_constraint(const Constraint& c); 23376: # 904 "../../src/BD_Shape_defs.hh" 23376: void add_congruence(const Congruence& cg); 23376: # 918 "../../src/BD_Shape_defs.hh" 23376: void add_constraints(const Constraint_System& cs); 23376: # 937 "../../src/BD_Shape_defs.hh" 23376: void add_recycled_constraints(Constraint_System& cs); 23376: # 951 "../../src/BD_Shape_defs.hh" 23376: void add_congruences(const Congruence_System& cgs); 23376: # 969 "../../src/BD_Shape_defs.hh" 23376: void add_recycled_congruences(Congruence_System& cgs); 23376: # 981 "../../src/BD_Shape_defs.hh" 23376: void refine_with_constraint(const Constraint& c); 23376: # 994 "../../src/BD_Shape_defs.hh" 23376: void refine_with_congruence(const Congruence& cg); 23376: # 1007 "../../src/BD_Shape_defs.hh" 23376: void refine_with_constraints(const Constraint_System& cs); 23376: # 1020 "../../src/BD_Shape_defs.hh" 23376: void refine_with_congruences(const Congruence_System& cgs); 23376: # 1043 "../../src/BD_Shape_defs.hh" 23376: template 23376: void refine_with_linear_form_inequality( 23376: const Linear_Form >& left, 23376: const Linear_Form >& right); 23376: # 1076 "../../src/BD_Shape_defs.hh" 23376: template 23376: void generalized_refine_with_linear_form_inequality( 23376: const Linear_Form >& left, 23376: const Linear_Form >& right, 23376: Relation_Symbol relsym); 23376: # 1112 "../../src/BD_Shape_defs.hh" 23376: template 23376: void export_interval_constraints(U& dest) const; 23376: # 1125 "../../src/BD_Shape_defs.hh" 23376: void unconstrain(Variable var); 23376: # 1139 "../../src/BD_Shape_defs.hh" 23376: void unconstrain(const Variables_Set& vars); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void intersection_assign(const BD_Shape& y); 23376: # 1155 "../../src/BD_Shape_defs.hh" 23376: void upper_bound_assign(const BD_Shape& y); 23376: # 1165 "../../src/BD_Shape_defs.hh" 23376: bool upper_bound_assign_if_exact(const BD_Shape& y); 23376: # 1181 "../../src/BD_Shape_defs.hh" 23376: bool integer_upper_bound_assign_if_exact(const BD_Shape& y); 23376: # 1190 "../../src/BD_Shape_defs.hh" 23376: void difference_assign(const BD_Shape& y); 23376: # 1201 "../../src/BD_Shape_defs.hh" 23376: bool simplify_using_context_assign(const BD_Shape& y); 23376: # 1222 "../../src/BD_Shape_defs.hh" 23376: void affine_image(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1244 "../../src/BD_Shape_defs.hh" 23376: template 23376: void affine_form_image(Variable var, 23376: const Linear_Form >& lf); 23376: # 1267 "../../src/BD_Shape_defs.hh" 23376: void affine_preimage(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1296 "../../src/BD_Shape_defs.hh" 23376: void generalized_affine_image(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1321 "../../src/BD_Shape_defs.hh" 23376: void generalized_affine_image(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs); 23376: # 1349 "../../src/BD_Shape_defs.hh" 23376: void generalized_affine_preimage(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference 23376: denominator = Coefficient_one()); 23376: # 1374 "../../src/BD_Shape_defs.hh" 23376: void generalized_affine_preimage(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs); 23376: # 1404 "../../src/BD_Shape_defs.hh" 23376: void bounded_affine_image(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1436 "../../src/BD_Shape_defs.hh" 23376: void bounded_affine_preimage(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void time_elapse_assign(const BD_Shape& y); 23376: # 1496 "../../src/BD_Shape_defs.hh" 23376: void wrap_assign(const Variables_Set& vars, 23376: Bounded_Integer_Type_Width w, 23376: Bounded_Integer_Type_Representation r, 23376: Bounded_Integer_Type_Overflow o, 23376: const Constraint_System* cs_p = 0, 23376: unsigned complexity_threshold = 16, 23376: bool wrap_individually = true); 23376: # 1515 "../../src/BD_Shape_defs.hh" 23376: void drop_some_non_integer_points(Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: # 1533 "../../src/BD_Shape_defs.hh" 23376: void drop_some_non_integer_points(const Variables_Set& vars, 23376: Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: 23376: 23376: void topological_closure_assign(); 23376: # 1555 "../../src/BD_Shape_defs.hh" 23376: void CC76_extrapolation_assign(const BD_Shape& y, unsigned* tp = 0); 23376: # 1578 "../../src/BD_Shape_defs.hh" 23376: template 23376: void CC76_extrapolation_assign(const BD_Shape& y, 23376: Iterator first, Iterator last, 23376: unsigned* tp = 0); 23376: # 1598 "../../src/BD_Shape_defs.hh" 23376: void BHMZ05_widening_assign(const BD_Shape& y, unsigned* tp = 0); 23376: # 1620 "../../src/BD_Shape_defs.hh" 23376: void limited_BHMZ05_extrapolation_assign(const BD_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1643 "../../src/BD_Shape_defs.hh" 23376: void CC76_narrowing_assign(const BD_Shape& y); 23376: # 1665 "../../src/BD_Shape_defs.hh" 23376: void limited_CC76_extrapolation_assign(const BD_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1684 "../../src/BD_Shape_defs.hh" 23376: void H79_widening_assign(const BD_Shape& y, unsigned* tp = 0); 23376: 23376: 23376: void widening_assign(const BD_Shape& y, unsigned* tp = 0); 23376: # 1708 "../../src/BD_Shape_defs.hh" 23376: void limited_H79_extrapolation_assign(const BD_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1735 "../../src/BD_Shape_defs.hh" 23376: void add_space_dimensions_and_embed(dimension_type m); 23376: # 1758 "../../src/BD_Shape_defs.hh" 23376: void add_space_dimensions_and_project(dimension_type m); 23376: # 1768 "../../src/BD_Shape_defs.hh" 23376: void concatenate_assign(const BD_Shape& y); 23376: # 1779 "../../src/BD_Shape_defs.hh" 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: # 1789 "../../src/BD_Shape_defs.hh" 23376: void remove_higher_space_dimensions(dimension_type new_dimension); 23376: # 1828 "../../src/BD_Shape_defs.hh" 23376: template 23376: void map_space_dimensions(const Partial_Function& pfunc); 23376: # 1852 "../../src/BD_Shape_defs.hh" 23376: void expand_space_dimension(Variable var, dimension_type m); 23376: # 1877 "../../src/BD_Shape_defs.hh" 23376: void fold_space_dimensions(const Variables_Set& vars, Variable dest); 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void refine_fp_interval_abstract_store(Box >& 23376: store) const; 23376: 23376: 23376: 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: int32_t hash_code() const; 23376: 23376: friend bool operator==(const BD_Shape& x, const BD_Shape& y); 23376: 23376: template 23376: friend bool Parma_Polyhedra_Library 23376: ::rectilinear_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, const BD_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, Temp& tmp1, Temp& tmp2); 23376: template 23376: friend bool Parma_Polyhedra_Library 23376: ::euclidean_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, const BD_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, Temp& tmp1, Temp& tmp2); 23376: template 23376: friend bool Parma_Polyhedra_Library 23376: ::l_infinity_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, const BD_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, Temp& tmp1, Temp& tmp2); 23376: 23376: private: 23376: template friend class Parma_Polyhedra_Library::BD_Shape; 23376: template friend class Parma_Polyhedra_Library::Box; 23376: 23376: 23376: DB_Matrix dbm; 23376: 23376: 23376: # 1 "../../src/BDS_Status_idefs.hh" 1 23376: # 50 "../../src/BDS_Status_idefs.hh" 23376: class Status { 23376: public: 23376: 23376: Status(); 23376: 23376: 23376: 23376: bool test_zero_dim_univ() const; 23376: void reset_zero_dim_univ(); 23376: void set_zero_dim_univ(); 23376: 23376: bool test_empty() const; 23376: void reset_empty(); 23376: void set_empty(); 23376: 23376: bool test_shortest_path_closed() const; 23376: void reset_shortest_path_closed(); 23376: void set_shortest_path_closed(); 23376: 23376: bool test_shortest_path_reduced() const; 23376: void reset_shortest_path_reduced(); 23376: void set_shortest_path_reduced(); 23376: 23376: 23376: 23376: bool OK() const; 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: private: 23376: 23376: typedef unsigned int flags_t; 23376: 23376: 23376: 23376: static const flags_t ZERO_DIM_UNIV = 0U; 23376: static const flags_t EMPTY = 1U << 0; 23376: static const flags_t SHORTEST_PATH_CLOSED = 1U << 1; 23376: static const flags_t SHORTEST_PATH_REDUCED = 1U << 2; 23376: 23376: 23376: 23376: flags_t flags; 23376: 23376: 23376: Status(flags_t mask); 23376: 23376: 23376: bool test_all(flags_t mask) const; 23376: 23376: 23376: bool test_any(flags_t mask) const; 23376: 23376: 23376: void set(flags_t mask); 23376: 23376: 23376: void reset(flags_t mask); 23376: }; 23376: # 1944 "../../src/BD_Shape_defs.hh" 2 23376: 23376: 23376: 23376: Status status; 23376: 23376: 23376: Bit_Matrix redundancy_dbm; 23376: 23376: 23376: bool marked_zero_dim_univ() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool marked_empty() const; 23376: # 1970 "../../src/BD_Shape_defs.hh" 23376: bool marked_shortest_path_closed() const; 23376: # 1979 "../../src/BD_Shape_defs.hh" 23376: bool marked_shortest_path_reduced() const; 23376: 23376: 23376: void set_empty(); 23376: 23376: 23376: void set_zero_dim_univ(); 23376: 23376: 23376: void set_shortest_path_closed(); 23376: 23376: 23376: void set_shortest_path_reduced(); 23376: 23376: 23376: void reset_shortest_path_closed(); 23376: 23376: 23376: void reset_shortest_path_reduced(); 23376: 23376: 23376: void shortest_path_closure_assign() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: void shortest_path_reduction_assign() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_shortest_path_reduced() const; 23376: # 2027 "../../src/BD_Shape_defs.hh" 23376: void incremental_shortest_path_closure_assign(Variable var) const; 23376: # 2046 "../../src/BD_Shape_defs.hh" 23376: bool bounds(const Linear_Expression& expr, bool from_above) const; 23376: # 2079 "../../src/BD_Shape_defs.hh" 23376: bool max_min(const Linear_Expression& expr, 23376: bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, bool& included, 23376: Generator& g) const; 23376: # 2110 "../../src/BD_Shape_defs.hh" 23376: bool max_min(const Linear_Expression& expr, 23376: bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, bool& included) const; 23376: # 2128 "../../src/BD_Shape_defs.hh" 23376: bool BFT00_upper_bound_assign_if_exact(const BD_Shape& y); 23376: # 2146 "../../src/BD_Shape_defs.hh" 23376: template 23376: bool BHZ09_upper_bound_assign_if_exact(const BD_Shape& y); 23376: # 2159 "../../src/BD_Shape_defs.hh" 23376: void refine_no_check(const Constraint& c); 23376: # 2173 "../../src/BD_Shape_defs.hh" 23376: void refine_no_check(const Congruence& cg); 23376: 23376: 23376: void add_dbm_constraint(dimension_type i, dimension_type j, const N& k); 23376: 23376: 23376: void add_dbm_constraint(dimension_type i, dimension_type j, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void refine(Variable var, Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: 23376: 23376: void forget_all_dbm_constraints(dimension_type v); 23376: 23376: void forget_binary_dbm_constraints(dimension_type v); 23376: # 2214 "../../src/BD_Shape_defs.hh" 23376: void deduce_v_minus_u_bounds(dimension_type v, 23376: dimension_type last_v, 23376: const Linear_Expression& sc_expr, 23376: Coefficient_traits::const_reference sc_denom, 23376: const N& ub_v); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void inhomogeneous_affine_form_image(const dimension_type& var_id, 23376: const Interval& b); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: one_variable_affine_form_image(const dimension_type& var_id, 23376: const Interval& b, 23376: const Interval& w_coeff, 23376: const dimension_type& w_id, 23376: const dimension_type& space_dim); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: two_variables_affine_form_image(const dimension_type& var_id, 23376: const Linear_Form >& lf, 23376: const dimension_type& space_dim); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: left_inhomogeneous_refine(const dimension_type& right_t, 23376: const dimension_type& right_w_id, 23376: const Linear_Form >& left, 23376: const Linear_Form >& right); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void 23376: left_one_var_refine(const dimension_type& left_w_id, 23376: const dimension_type& right_t, 23376: const dimension_type& right_w_id, 23376: const Linear_Form >& left, 23376: const Linear_Form >& right); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void general_refine(const dimension_type& left_w_id, 23376: const dimension_type& right_w_id, 23376: const Linear_Form >& left, 23376: const Linear_Form >& right); 23376: 23376: template 23376: void linear_form_upper_bound(const Linear_Form >& 23376: lf, 23376: N& result) const; 23376: # 2304 "../../src/BD_Shape_defs.hh" 23376: void deduce_u_minus_v_bounds(dimension_type v, 23376: dimension_type last_v, 23376: const Linear_Expression& sc_expr, 23376: Coefficient_traits::const_reference sc_denom, 23376: const N& minus_lb_v); 23376: 23376: 23376: 23376: 23376: 23376: void get_limiting_shape(const Constraint_System& cs, 23376: BD_Shape& limiting_shape) const; 23376: 23376: 23376: 23376: 23376: 23376: void compute_predecessors(std::vector& predecessor) const; 23376: 23376: 23376: 23376: 23376: 23376: void compute_leaders(std::vector& leaders) const; 23376: 23376: void drop_some_non_integer_points_helper(N& elem); 23376: 23376: friend std::ostream& 23376: Parma_Polyhedra_Library::IO_Operators 23376: ::operator<<<>(std::ostream& s, const BD_Shape& c); 23376: 23376: 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const BD_Shape& y) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: dimension_type required_dim) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Constraint& c) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Congruence& cg) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Generator& g) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const char* le_name, 23376: const Linear_Expression& le) const; 23376: 23376: template 23376: void 23376: throw_dimension_incompatible(const char* method, 23376: const char* lf_name, 23376: const Linear_Form >& 23376: lf) const; 23376: 23376: static void throw_expression_too_complex(const char* method, 23376: const Linear_Expression& le); 23376: 23376: static void throw_invalid_argument(const char* method, const char* reason); 23376: 23376: }; 23376: 23376: # 1 "../../src/BDS_Status_inlines.hh" 1 23376: # 27 "../../src/BDS_Status_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline 23376: BD_Shape::Status::Status(flags_t mask) 23376: : flags(mask) { 23376: } 23376: 23376: template 23376: inline 23376: BD_Shape::Status::Status() 23376: : flags(ZERO_DIM_UNIV) { 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::Status::test_all(flags_t mask) const { 23376: return (flags & mask) == mask; 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::Status::test_any(flags_t mask) const { 23376: return (flags & mask) != 0; 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::set(flags_t mask) { 23376: flags |= mask; 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::reset(flags_t mask) { 23376: flags &= ~mask; 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::Status::test_zero_dim_univ() const { 23376: return flags == ZERO_DIM_UNIV; 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::reset_zero_dim_univ() { 23376: 23376: if (flags == ZERO_DIM_UNIV) { 23376: 23376: flags = EMPTY; 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::set_zero_dim_univ() { 23376: 23376: flags = ZERO_DIM_UNIV; 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::Status::test_empty() const { 23376: return test_any(EMPTY); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::reset_empty() { 23376: reset(EMPTY); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::set_empty() { 23376: flags = EMPTY; 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::Status::test_shortest_path_closed() const { 23376: return test_any(SHORTEST_PATH_CLOSED); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::reset_shortest_path_closed() { 23376: 23376: reset(SHORTEST_PATH_CLOSED | SHORTEST_PATH_REDUCED); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::set_shortest_path_closed() { 23376: set(SHORTEST_PATH_CLOSED); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::Status::test_shortest_path_reduced() const { 23376: return test_any(SHORTEST_PATH_REDUCED); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::reset_shortest_path_reduced() { 23376: reset(SHORTEST_PATH_REDUCED); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::Status::set_shortest_path_reduced() { 23376: ((void) 0); 23376: set(SHORTEST_PATH_REDUCED); 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::Status::OK() const { 23376: if (test_zero_dim_univ()) { 23376: 23376: return true; 23376: } 23376: 23376: if (test_empty()) { 23376: Status copy = *this; 23376: copy.reset_empty(); 23376: if (copy.test_zero_dim_univ()) { 23376: return true; 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: 23376: if (test_shortest_path_reduced()) { 23376: if (test_shortest_path_closed()) { 23376: return true; 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: 23376: namespace Implementation { 23376: 23376: namespace BD_Shapes { 23376: 23376: 23376: extern const char* zero_dim_univ; 23376: extern const char* empty; 23376: extern const char* sp_closed; 23376: extern const char* sp_reduced; 23376: const char yes = '+'; 23376: const char no = '-'; 23376: const char separator = ' '; 23376: # 207 "../../src/BDS_Status_inlines.hh" 23376: inline bool 23376: get_field(std::istream& s, const char* keyword, bool& positive) { 23376: std::string str; 23376: if (!(s >> str) 23376: || (str[0] != yes && str[0] != no) 23376: || str.substr(1) != keyword) { 23376: return false; 23376: } 23376: positive = (str[0] == yes); 23376: return true; 23376: } 23376: 23376: } 23376: 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::Status::ascii_dump(std::ostream& s) const { 23376: using namespace Implementation::BD_Shapes; 23376: s << (test_zero_dim_univ() ? yes : no) << zero_dim_univ << separator 23376: << (test_empty() ? yes : no) << empty << separator 23376: << separator 23376: << (test_shortest_path_closed() ? yes : no) << sp_closed << separator 23376: << (test_shortest_path_reduced() ? yes : no) << sp_reduced << separator; 23376: } 23376: 23376: template void BD_Shape::Status::ascii_dump() const { ascii_dump(std::cerr); } template void BD_Shape::Status::print() const { std::cerr << "No user level output operator defined " << "for " "BD_Shape::Status" << "." << std::endl; } 23376: 23376: template 23376: bool 23376: BD_Shape::Status::ascii_load(std::istream& s) { 23376: using namespace Implementation::BD_Shapes; 23376: bool positive = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: if (!get_field(s, zero_dim_univ, positive)) { 23376: return false; 23376: } 23376: if (positive) { 23376: set_zero_dim_univ(); 23376: } 23376: 23376: if (!get_field(s, empty, positive)) { 23376: return false; 23376: } 23376: if (positive) { 23376: set_empty(); 23376: } 23376: 23376: if (!get_field(s, sp_closed, positive)) { 23376: return false; 23376: } 23376: if (positive) { 23376: set_shortest_path_closed(); 23376: } 23376: else { 23376: reset_shortest_path_closed(); 23376: } 23376: 23376: if (!get_field(s, sp_reduced, positive)) { 23376: return false; 23376: } 23376: if (positive) { 23376: set_shortest_path_reduced(); 23376: } 23376: else { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: } 23376: # 2371 "../../src/BD_Shape_defs.hh" 2 23376: # 1 "../../src/BD_Shape_inlines.hh" 1 23376: # 29 "../../src/BD_Shape_inlines.hh" 23376: # 1 "../../src/C_Polyhedron_defs.hh" 1 23376: # 27 "../../src/C_Polyhedron_defs.hh" 23376: # 1 "../../src/C_Polyhedron_types.hh" 1 23376: # 16 "../../src/C_Polyhedron_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class C_Polyhedron; 23376: 23376: } 23376: # 28 "../../src/C_Polyhedron_defs.hh" 2 23376: # 1 "../../src/NNC_Polyhedron_types.hh" 1 23376: # 16 "../../src/NNC_Polyhedron_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: class NNC_Polyhedron; 23376: 23376: } 23376: # 29 "../../src/C_Polyhedron_defs.hh" 2 23376: # 59 "../../src/C_Polyhedron_defs.hh" 23376: class Parma_Polyhedra_Library::C_Polyhedron : public Polyhedron { 23376: public: 23376: # 75 "../../src/C_Polyhedron_defs.hh" 23376: explicit C_Polyhedron(dimension_type num_dimensions = 0, 23376: Degenerate_Element kind = UNIVERSE); 23376: # 88 "../../src/C_Polyhedron_defs.hh" 23376: explicit C_Polyhedron(const Constraint_System& cs); 23376: # 106 "../../src/C_Polyhedron_defs.hh" 23376: C_Polyhedron(Constraint_System& cs, Recycle_Input dummy); 23376: # 119 "../../src/C_Polyhedron_defs.hh" 23376: explicit C_Polyhedron(const Generator_System& gs); 23376: # 138 "../../src/C_Polyhedron_defs.hh" 23376: C_Polyhedron(Generator_System& gs, Recycle_Input dummy); 23376: # 147 "../../src/C_Polyhedron_defs.hh" 23376: explicit C_Polyhedron(const Congruence_System& cgs); 23376: # 163 "../../src/C_Polyhedron_defs.hh" 23376: C_Polyhedron(Congruence_System& cgs, Recycle_Input dummy); 23376: # 175 "../../src/C_Polyhedron_defs.hh" 23376: explicit C_Polyhedron(const NNC_Polyhedron& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 194 "../../src/C_Polyhedron_defs.hh" 23376: template 23376: explicit C_Polyhedron(const Box& box, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 210 "../../src/C_Polyhedron_defs.hh" 23376: template 23376: explicit C_Polyhedron(const BD_Shape& bd, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 226 "../../src/C_Polyhedron_defs.hh" 23376: template 23376: explicit C_Polyhedron(const Octagonal_Shape& os, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 242 "../../src/C_Polyhedron_defs.hh" 23376: explicit C_Polyhedron(const Grid& grid, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: C_Polyhedron(const C_Polyhedron& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: C_Polyhedron& operator=(const C_Polyhedron& y); 23376: 23376: 23376: C_Polyhedron& operator=(const NNC_Polyhedron& y); 23376: 23376: 23376: ~C_Polyhedron(); 23376: # 272 "../../src/C_Polyhedron_defs.hh" 23376: bool poly_hull_assign_if_exact(const C_Polyhedron& y); 23376: 23376: 23376: bool upper_bound_assign_if_exact(const C_Polyhedron& y); 23376: # 286 "../../src/C_Polyhedron_defs.hh" 23376: void positive_time_elapse_assign(const Polyhedron& y); 23376: }; 23376: 23376: # 1 "../../src/C_Polyhedron_inlines.hh" 1 23376: # 30 "../../src/C_Polyhedron_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: inline 23376: C_Polyhedron::~C_Polyhedron() { 23376: } 23376: 23376: inline 23376: C_Polyhedron::C_Polyhedron(dimension_type num_dimensions, 23376: Degenerate_Element kind) 23376: : Polyhedron(NECESSARILY_CLOSED, 23376: check_space_dimension_overflow(num_dimensions, 23376: NECESSARILY_CLOSED, 23376: "C_Polyhedron(n, k)", 23376: "n exceeds the maximum " 23376: "allowed space dimension"), 23376: kind) { 23376: } 23376: 23376: inline 23376: C_Polyhedron::C_Polyhedron(const Constraint_System& cs) 23376: : Polyhedron(NECESSARILY_CLOSED, 23376: check_obj_space_dimension_overflow(cs, NECESSARILY_CLOSED, 23376: "C_Polyhedron(cs)", 23376: "the space dimension of cs " 23376: "exceeds the maximum allowed " 23376: "space dimension")) { 23376: } 23376: 23376: inline 23376: C_Polyhedron::C_Polyhedron(Constraint_System& cs, Recycle_Input) 23376: : Polyhedron(NECESSARILY_CLOSED, 23376: check_obj_space_dimension_overflow(cs, NECESSARILY_CLOSED, 23376: "C_Polyhedron(cs, recycle)", 23376: "the space dimension of cs " 23376: "exceeds the maximum allowed " 23376: "space dimension"), 23376: Recycle_Input()) { 23376: } 23376: 23376: inline 23376: C_Polyhedron::C_Polyhedron(const Generator_System& gs) 23376: : Polyhedron(NECESSARILY_CLOSED, 23376: check_obj_space_dimension_overflow(gs, NECESSARILY_CLOSED, 23376: "C_Polyhedron(gs)", 23376: "the space dimension of gs " 23376: "exceeds the maximum allowed " 23376: "space dimension")) { 23376: } 23376: 23376: inline 23376: C_Polyhedron::C_Polyhedron(Generator_System& gs, Recycle_Input) 23376: : Polyhedron(NECESSARILY_CLOSED, 23376: check_obj_space_dimension_overflow(gs, NECESSARILY_CLOSED, 23376: "C_Polyhedron(gs, recycle)", 23376: "the space dimension of gs " 23376: "exceeds the maximum allowed " 23376: "space dimension"), 23376: Recycle_Input()) { 23376: } 23376: 23376: template 23376: inline 23376: C_Polyhedron::C_Polyhedron(const Box& box, Complexity_Class) 23376: : Polyhedron(NECESSARILY_CLOSED, 23376: check_obj_space_dimension_overflow(box, NECESSARILY_CLOSED, 23376: "C_Polyhedron(box)", 23376: "the space dimension of box " 23376: "exceeds the maximum allowed " 23376: "space dimension")) { 23376: } 23376: 23376: template 23376: inline 23376: C_Polyhedron::C_Polyhedron(const BD_Shape& bd, Complexity_Class) 23376: : Polyhedron(NECESSARILY_CLOSED, 23376: check_space_dimension_overflow(bd.space_dimension(), 23376: NECESSARILY_CLOSED, 23376: "C_Polyhedron(bd)", 23376: "the space dimension of bd " 23376: "exceeds the maximum allowed " 23376: "space dimension"), 23376: UNIVERSE) { 23376: add_constraints(bd.constraints()); 23376: } 23376: 23376: template 23376: inline 23376: C_Polyhedron::C_Polyhedron(const Octagonal_Shape& os, Complexity_Class) 23376: : Polyhedron(NECESSARILY_CLOSED, 23376: check_space_dimension_overflow(os.space_dimension(), 23376: NECESSARILY_CLOSED, 23376: "C_Polyhedron(os)", 23376: "the space dimension of os " 23376: "exceeds the maximum allowed " 23376: "space dimension"), 23376: UNIVERSE) { 23376: add_constraints(os.constraints()); 23376: } 23376: 23376: inline 23376: C_Polyhedron::C_Polyhedron(const C_Polyhedron& y, Complexity_Class) 23376: : Polyhedron(y) { 23376: } 23376: 23376: inline C_Polyhedron& 23376: C_Polyhedron::operator=(const C_Polyhedron& y) { 23376: Polyhedron::operator=(y); 23376: return *this; 23376: } 23376: 23376: inline C_Polyhedron& 23376: C_Polyhedron::operator=(const NNC_Polyhedron& y) { 23376: C_Polyhedron c_y(y); 23376: m_swap(c_y); 23376: return *this; 23376: } 23376: 23376: inline bool 23376: C_Polyhedron::upper_bound_assign_if_exact(const C_Polyhedron& y) { 23376: return poly_hull_assign_if_exact(y); 23376: } 23376: 23376: } 23376: # 290 "../../src/C_Polyhedron_defs.hh" 2 23376: # 30 "../../src/BD_Shape_inlines.hh" 2 23376: 23376: # 1 "../../src/Octagonal_Shape_defs.hh" 1 23376: # 36 "../../src/Octagonal_Shape_defs.hh" 23376: # 1 "../../src/OR_Matrix_defs.hh" 1 23376: # 27 "../../src/OR_Matrix_defs.hh" 23376: # 1 "../../src/OR_Matrix_types.hh" 1 23376: # 16 "../../src/OR_Matrix_types.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: class OR_Matrix; 23376: 23376: } 23376: # 28 "../../src/OR_Matrix_defs.hh" 2 23376: # 50 "../../src/OR_Matrix_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator==(const OR_Matrix& x, const OR_Matrix& y); 23376: 23376: namespace IO_Operators { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: std::ostream& 23376: operator<<(std::ostream& s, const OR_Matrix& m); 23376: 23376: } 23376: 23376: } 23376: # 104 "../../src/OR_Matrix_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::OR_Matrix { 23376: private: 23376: 23376: 23376: 23376: 23376: template 23376: class Pseudo_Row { 23376: public: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: Pseudo_Row(const Pseudo_Row& y); 23376: 23376: 23376: ~Pseudo_Row(); 23376: 23376: 23376: U& operator[](dimension_type k) const; 23376: 23376: 23376: Pseudo_Row(); 23376: 23376: 23376: Pseudo_Row& operator=(const Pseudo_Row& y); 23376: 23376: 23376: private: 23376: # 149 "../../src/OR_Matrix_defs.hh" 23376: explicit Pseudo_Row(U& y); 23376: 23376: 23376: 23376: 23376: U* first; 23376: # 181 "../../src/OR_Matrix_defs.hh" 23376: template friend class Pseudo_Row; 23376: template friend class any_row_iterator; 23376: 23376: 23376: friend class OR_Matrix; 23376: }; 23376: 23376: public: 23376: 23376: typedef Pseudo_Row row_reference_type; 23376: 23376: 23376: typedef Pseudo_Row const_row_reference_type; 23376: 23376: private: 23376: 23376: 23376: 23376: 23376: template 23376: class any_row_iterator { 23376: public: 23376: typedef std::random_access_iterator_tag iterator_category; 23376: typedef Pseudo_Row value_type; 23376: typedef long difference_type; 23376: typedef const Pseudo_Row* pointer; 23376: typedef const Pseudo_Row& reference; 23376: 23376: 23376: any_row_iterator(dimension_type n_rows); 23376: 23376: 23376: 23376: 23376: 23376: explicit any_row_iterator(U& base); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: any_row_iterator(const any_row_iterator& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: any_row_iterator& operator=(const any_row_iterator& y); 23376: 23376: 23376: reference operator*() const; 23376: 23376: 23376: pointer operator->() const; 23376: 23376: 23376: any_row_iterator& operator++(); 23376: 23376: 23376: any_row_iterator operator++(int); 23376: 23376: 23376: any_row_iterator& operator--(); 23376: 23376: 23376: any_row_iterator operator--(int); 23376: 23376: 23376: reference operator[](difference_type m) const; 23376: 23376: 23376: any_row_iterator& operator+=(difference_type m); 23376: 23376: 23376: template 23376: typename Enable_If<(static_cast(-1) > 0), any_row_iterator&>::type 23376: operator+=(Unsigned m); 23376: 23376: 23376: any_row_iterator& operator-=(difference_type m); 23376: 23376: 23376: difference_type operator-(const any_row_iterator& y) const; 23376: 23376: 23376: any_row_iterator operator+(difference_type m) const; 23376: 23376: 23376: template 23376: typename Enable_If<(static_cast(-1) > 0), any_row_iterator>::type 23376: operator+(Unsigned m) const; 23376: 23376: 23376: any_row_iterator operator-(difference_type m) const; 23376: 23376: 23376: bool operator==(const any_row_iterator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool operator!=(const any_row_iterator& y) const; 23376: 23376: 23376: bool operator<(const any_row_iterator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool operator<=(const any_row_iterator& y) const; 23376: 23376: 23376: bool operator>(const any_row_iterator& y) const; 23376: 23376: 23376: 23376: 23376: 23376: bool operator>=(const any_row_iterator& y) const; 23376: 23376: dimension_type row_size() const; 23376: 23376: dimension_type index() const; 23376: 23376: private: 23376: 23376: Pseudo_Row value; 23376: 23376: 23376: dimension_type e; 23376: 23376: 23376: dimension_type i; 23376: # 326 "../../src/OR_Matrix_defs.hh" 23376: template friend class any_row_iterator; 23376: 23376: }; 23376: 23376: public: 23376: 23376: typedef any_row_iterator row_iterator; 23376: 23376: 23376: typedef any_row_iterator const_row_iterator; 23376: 23376: 23376: typedef typename DB_Row::iterator element_iterator; 23376: 23376: 23376: typedef typename DB_Row::const_iterator const_element_iterator; 23376: 23376: public: 23376: 23376: static dimension_type max_num_rows(); 23376: # 355 "../../src/OR_Matrix_defs.hh" 23376: OR_Matrix(dimension_type num_dimensions); 23376: 23376: 23376: OR_Matrix(const OR_Matrix& y); 23376: 23376: 23376: template 23376: explicit OR_Matrix(const OR_Matrix& y); 23376: 23376: 23376: ~OR_Matrix(); 23376: 23376: 23376: OR_Matrix& operator=(const OR_Matrix& y); 23376: 23376: private: 23376: template friend class OR_Matrix; 23376: # 381 "../../src/OR_Matrix_defs.hh" 23376: DB_Row vec; 23376: 23376: 23376: dimension_type space_dim; 23376: 23376: 23376: dimension_type vec_capacity; 23376: 23376: 23376: OR_Matrix(); 23376: 23376: 23376: 23376: 23376: 23376: static dimension_type row_first_element_index(dimension_type k); 23376: 23376: public: 23376: 23376: static dimension_type row_size(dimension_type k); 23376: 23376: 23376: void m_swap(OR_Matrix& y); 23376: # 417 "../../src/OR_Matrix_defs.hh" 23376: void grow(dimension_type new_dim); 23376: # 427 "../../src/OR_Matrix_defs.hh" 23376: void shrink(dimension_type new_dim); 23376: # 441 "../../src/OR_Matrix_defs.hh" 23376: void resize_no_copy(dimension_type new_dim); 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: dimension_type num_rows() const; 23376: 23376: 23376: 23376: 23376: row_reference_type operator[](dimension_type k); 23376: 23376: 23376: const_row_reference_type operator[](dimension_type k) const; 23376: # 464 "../../src/OR_Matrix_defs.hh" 23376: row_iterator row_begin(); 23376: 23376: 23376: row_iterator row_end(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_row_iterator row_begin() const; 23376: 23376: 23376: const_row_iterator row_end() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: element_iterator element_begin(); 23376: 23376: 23376: element_iterator element_end(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: const_element_iterator element_begin() const; 23376: 23376: 23376: const_element_iterator element_end() const; 23376: 23376: 23376: void clear(); 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: friend bool operator==(const OR_Matrix& x, const OR_Matrix& y); 23376: 23376: 23376: bool OK() const; 23376: }; 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void swap(OR_Matrix& x, OR_Matrix& y); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: bool operator!=(const OR_Matrix& x, const OR_Matrix& y); 23376: # 552 "../../src/OR_Matrix_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const OR_Matrix& x, 23376: const OR_Matrix& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 574 "../../src/OR_Matrix_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const OR_Matrix& x, 23376: const OR_Matrix& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 596 "../../src/OR_Matrix_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const OR_Matrix& x, 23376: const OR_Matrix& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: 23376: } 23376: 23376: # 1 "../../src/OR_Matrix_inlines.hh" 1 23376: # 35 "../../src/OR_Matrix_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline dimension_type 23376: OR_Matrix::row_first_element_index(const dimension_type k) { 23376: return ((k + 1)*(k + 1))/2; 23376: } 23376: 23376: template 23376: inline dimension_type 23376: OR_Matrix::row_size(const dimension_type k) { 23376: return k + 2 - k % 2; 23376: } 23376: # 60 "../../src/OR_Matrix_inlines.hh" 23376: template 23376: template 23376: inline 23376: OR_Matrix::Pseudo_Row::Pseudo_Row() 23376: : first(0) 23376: 23376: 23376: 23376: { 23376: } 23376: 23376: template 23376: template 23376: inline 23376: OR_Matrix::Pseudo_Row::Pseudo_Row(U& y 23376: 23376: 23376: 23376: ) 23376: : first(&y) 23376: 23376: 23376: 23376: { 23376: } 23376: 23376: template 23376: template 23376: template 23376: inline 23376: OR_Matrix::Pseudo_Row::Pseudo_Row(const Pseudo_Row& y) 23376: : first(y.first) 23376: 23376: 23376: 23376: { 23376: } 23376: 23376: template 23376: template 23376: inline OR_Matrix::Pseudo_Row& 23376: OR_Matrix::Pseudo_Row::operator=(const Pseudo_Row& y) { 23376: first = y.first; 23376: 23376: 23376: 23376: return *this; 23376: } 23376: 23376: template 23376: template 23376: inline 23376: OR_Matrix::Pseudo_Row::~Pseudo_Row() { 23376: } 23376: 23376: template 23376: template 23376: inline U& 23376: OR_Matrix::Pseudo_Row::operator[](const dimension_type k) const { 23376: 23376: 23376: 23376: return *(first + k); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: OR_Matrix::any_row_iterator 23376: ::any_row_iterator(const dimension_type n_rows) 23376: : value(), 23376: e(n_rows) 23376: 23376: { 23376: 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: template 23376: inline 23376: OR_Matrix::any_row_iterator::any_row_iterator(U& base) 23376: : value(base 23376: 23376: 23376: 23376: ), 23376: e(0), 23376: i(0) { 23376: } 23376: 23376: template 23376: template 23376: template 23376: inline 23376: OR_Matrix::any_row_iterator 23376: ::any_row_iterator(const any_row_iterator& y) 23376: : value(y.value), 23376: e(y.e), 23376: i(y.i) { 23376: } 23376: 23376: template 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator& 23376: OR_Matrix::any_row_iterator::operator=(const any_row_iterator& y) { 23376: value = y.value; 23376: e = y.e; 23376: i = y.i; 23376: return *this; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator::reference 23376: OR_Matrix::any_row_iterator::operator*() const { 23376: return value; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator::pointer 23376: OR_Matrix::any_row_iterator::operator->() const { 23376: return &value; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator& 23376: OR_Matrix::any_row_iterator::operator++() { 23376: ++e; 23376: dimension_type increment = e; 23376: if (e % 2 != 0) { 23376: ++increment; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: i += increment; 23376: value.first += increment; 23376: return *this; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator 23376: OR_Matrix::any_row_iterator::operator++(int) { 23376: any_row_iterator old = *this; 23376: ++(*this); 23376: return old; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator& 23376: OR_Matrix::any_row_iterator::operator--() { 23376: dimension_type decrement = e + 1; 23376: --e; 23376: if (e % 2 != 0) { 23376: ++decrement; 23376: 23376: 23376: 23376: } 23376: i -= decrement; 23376: value.first -= decrement; 23376: return *this; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator 23376: OR_Matrix::any_row_iterator::operator--(int) { 23376: any_row_iterator old = *this; 23376: --(*this); 23376: return old; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator& 23376: OR_Matrix::any_row_iterator::operator+=(const difference_type m) { 23376: difference_type e_dt = static_cast(e); 23376: difference_type i_dt = static_cast(i); 23376: difference_type increment = m + (m * m) / 2 + m * e_dt; 23376: if (e_dt % 2 == 0 && m % 2 != 0) { 23376: ++increment; 23376: } 23376: e_dt += m; 23376: i_dt += increment; 23376: e = static_cast(e_dt); 23376: i = static_cast(i_dt); 23376: value.first += increment; 23376: 23376: 23376: 23376: 23376: 23376: return *this; 23376: } 23376: 23376: template 23376: template 23376: template 23376: inline typename 23376: Enable_If<(static_cast(-1) > 0), 23376: typename OR_Matrix::template any_row_iterator& >::type 23376: OR_Matrix::any_row_iterator::operator+=(Unsigned m) { 23376: dimension_type n = m; 23376: dimension_type increment = n + (n*n)/2 + n*e; 23376: if (e % 2 == 0 && n % 2 != 0) { 23376: ++increment; 23376: } 23376: e += n; 23376: i += increment; 23376: value.first += increment; 23376: 23376: 23376: 23376: return *this; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator& 23376: OR_Matrix::any_row_iterator::operator-=(difference_type m) { 23376: return *this += -m; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator::difference_type 23376: OR_Matrix::any_row_iterator::operator-(const any_row_iterator& y) const { 23376: return e - y.e; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator 23376: OR_Matrix::any_row_iterator::operator+(difference_type m) const { 23376: any_row_iterator r = *this; 23376: r += m; 23376: return r; 23376: } 23376: 23376: template 23376: template 23376: template 23376: inline typename 23376: Enable_If<(static_cast(-1) > 0), 23376: typename OR_Matrix::template any_row_iterator >::type 23376: OR_Matrix::any_row_iterator::operator+(Unsigned m) const { 23376: any_row_iterator r = *this; 23376: r += m; 23376: return r; 23376: } 23376: 23376: template 23376: template 23376: inline typename OR_Matrix::template any_row_iterator 23376: OR_Matrix::any_row_iterator::operator-(const difference_type m) const { 23376: any_row_iterator r = *this; 23376: r -= m; 23376: return r; 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: OR_Matrix::any_row_iterator 23376: ::operator==(const any_row_iterator& y) const { 23376: return e == y.e; 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: OR_Matrix::any_row_iterator 23376: ::operator!=(const any_row_iterator& y) const { 23376: return e != y.e; 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: OR_Matrix::any_row_iterator::operator<(const any_row_iterator& y) const { 23376: return e < y.e; 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: OR_Matrix::any_row_iterator 23376: ::operator<=(const any_row_iterator& y) const { 23376: return e <= y.e; 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: OR_Matrix::any_row_iterator::operator>(const any_row_iterator& y) const { 23376: return e > y.e; 23376: } 23376: 23376: template 23376: template 23376: inline bool 23376: OR_Matrix::any_row_iterator 23376: ::operator>=(const any_row_iterator& y) const { 23376: return e >= y.e; 23376: } 23376: 23376: template 23376: template 23376: inline dimension_type 23376: OR_Matrix::any_row_iterator::row_size() const { 23376: return OR_Matrix::row_size(e); 23376: } 23376: 23376: template 23376: template 23376: inline dimension_type 23376: OR_Matrix::any_row_iterator::index() const { 23376: return e; 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::row_iterator 23376: OR_Matrix::row_begin() { 23376: return num_rows() == 0 ? row_iterator(0) : row_iterator(vec[0]); 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::row_iterator 23376: OR_Matrix::row_end() { 23376: return row_iterator(num_rows()); 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::const_row_iterator 23376: OR_Matrix::row_begin() const { 23376: return num_rows() == 0 ? const_row_iterator(0) : const_row_iterator(vec[0]); 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::const_row_iterator 23376: OR_Matrix::row_end() const { 23376: return const_row_iterator(num_rows()); 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::element_iterator 23376: OR_Matrix::element_begin() { 23376: return vec.begin(); 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::element_iterator 23376: OR_Matrix::element_end() { 23376: return vec.end(); 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::const_element_iterator 23376: OR_Matrix::element_begin() const { 23376: return vec.begin(); 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::const_element_iterator 23376: OR_Matrix::element_end() const { 23376: return vec.end(); 23376: } 23376: 23376: template 23376: inline void 23376: OR_Matrix::m_swap(OR_Matrix& y) { 23376: using std::swap; 23376: swap(vec, y.vec); 23376: swap(space_dim, y.space_dim); 23376: swap(vec_capacity, y.vec_capacity); 23376: } 23376: 23376: 23376: 23376: 23376: inline dimension_type 23376: isqrt(dimension_type x) { 23376: dimension_type r = 0; 23376: const dimension_type FIRST_BIT_MASK = 0x40000000U; 23376: for (dimension_type t = FIRST_BIT_MASK; t != 0; t >>= 2) { 23376: const dimension_type s = r + t; 23376: if (s <= x) { 23376: x -= s; 23376: r = s + t; 23376: } 23376: r >>= 1; 23376: } 23376: return r; 23376: } 23376: 23376: template 23376: inline dimension_type 23376: OR_Matrix::max_num_rows() { 23376: 23376: 23376: const dimension_type k = isqrt(2*DB_Row::max_size() + 1); 23376: return (k - 1) - (k - 1) % 2; 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: OR_Matrix::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline 23376: OR_Matrix::OR_Matrix(const dimension_type num_dimensions) 23376: : vec(2*num_dimensions*(num_dimensions + 1)), 23376: space_dim(num_dimensions), 23376: vec_capacity(vec.size()) { 23376: } 23376: 23376: template 23376: inline 23376: OR_Matrix::~OR_Matrix() { 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::row_reference_type 23376: OR_Matrix::operator[](dimension_type k) { 23376: return row_reference_type(vec[row_first_element_index(k)] 23376: 23376: 23376: 23376: ); 23376: } 23376: 23376: template 23376: inline typename OR_Matrix::const_row_reference_type 23376: OR_Matrix::operator[](dimension_type k) const { 23376: return const_row_reference_type(vec[row_first_element_index(k)] 23376: 23376: 23376: 23376: ); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: OR_Matrix::space_dimension() const { 23376: return space_dim; 23376: } 23376: 23376: template 23376: inline dimension_type 23376: OR_Matrix::num_rows() const { 23376: return 2*space_dimension(); 23376: } 23376: 23376: template 23376: inline void 23376: OR_Matrix::clear() { 23376: OR_Matrix(0).m_swap(*this); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const OR_Matrix& x, const OR_Matrix& y) { 23376: return x.space_dim == y.space_dim && x.vec == y.vec; 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const OR_Matrix& x, const OR_Matrix& y) { 23376: return !(x == y); 23376: } 23376: 23376: template 23376: inline 23376: OR_Matrix::OR_Matrix(const OR_Matrix& y) 23376: : vec(y.vec), 23376: space_dim(y.space_dim), 23376: vec_capacity(compute_capacity(y.vec.size(), 23376: DB_Row::max_size())) { 23376: } 23376: 23376: template 23376: template 23376: inline 23376: OR_Matrix::OR_Matrix(const OR_Matrix& y) 23376: : vec(), 23376: space_dim(y.space_dim), 23376: vec_capacity(compute_capacity(y.vec.size(), 23376: DB_Row::max_size())) { 23376: vec.construct_upward_approximation(y.vec, vec_capacity); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline OR_Matrix& 23376: OR_Matrix::operator=(const OR_Matrix& y) { 23376: vec = y.vec; 23376: space_dim = y.space_dim; 23376: vec_capacity = compute_capacity(y.vec.size(), DB_Row::max_size()); 23376: return *this; 23376: } 23376: 23376: template 23376: inline void 23376: OR_Matrix::grow(const dimension_type new_dim) { 23376: ((void) 0); 23376: if (new_dim > space_dim) { 23376: const dimension_type new_size = 2*new_dim*(new_dim + 1); 23376: if (new_size <= vec_capacity) { 23376: 23376: vec.expand_within_capacity(new_size); 23376: space_dim = new_dim; 23376: } 23376: else { 23376: 23376: OR_Matrix new_matrix(new_dim); 23376: element_iterator j = new_matrix.element_begin(); 23376: for (element_iterator i = element_begin(), 23376: mend = element_end(); i != mend; ++i, ++j) { 23376: assign_or_swap(*j, *i); 23376: } 23376: m_swap(new_matrix); 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: OR_Matrix::shrink(const dimension_type new_dim) { 23376: ((void) 0); 23376: const dimension_type new_size = 2*new_dim*(new_dim + 1); 23376: vec.shrink(new_size); 23376: space_dim = new_dim; 23376: } 23376: 23376: template 23376: inline void 23376: OR_Matrix::resize_no_copy(const dimension_type new_dim) { 23376: if (new_dim > space_dim) { 23376: const dimension_type new_size = 2*new_dim*(new_dim + 1); 23376: if (new_size <= vec_capacity) { 23376: 23376: vec.expand_within_capacity(new_size); 23376: space_dim = new_dim; 23376: } 23376: else { 23376: 23376: OR_Matrix new_matrix(new_dim); 23376: m_swap(new_matrix); 23376: } 23376: } 23376: else if (new_dim < space_dim) { 23376: shrink(new_dim); 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: l_m_distance_assign(Checked_Number& r, 23376: const OR_Matrix& x, 23376: const OR_Matrix& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: if (x.num_rows() != y.num_rows()) { 23376: return false; 23376: } 23376: assign_r(tmp0, 0, ROUND_NOT_NEEDED); 23376: for (typename OR_Matrix::const_element_iterator 23376: i = x.element_begin(), j = y.element_begin(), 23376: mat_end = x.element_end(); i != mat_end; ++i, ++j) { 23376: const T& x_i = *i; 23376: const T& y_i = *j; 23376: if (is_plus_infinity(x_i)) { 23376: if (is_plus_infinity(y_i)) { 23376: continue; 23376: } 23376: else { 23376: pinf: 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: return true; 23376: } 23376: } 23376: else if (is_plus_infinity(y_i)) { 23376: goto pinf; 23376: } 23376: const Temp* tmp1p; 23376: const Temp* tmp2p; 23376: if (x_i > y_i) { 23376: maybe_assign(tmp1p, tmp1, x_i, dir); 23376: maybe_assign(tmp2p, tmp2, y_i, inverse(dir)); 23376: } 23376: else { 23376: maybe_assign(tmp1p, tmp1, y_i, dir); 23376: maybe_assign(tmp2p, tmp2, x_i, inverse(dir)); 23376: } 23376: sub_assign_r(tmp1, *tmp1p, *tmp2p, dir); 23376: ((void) 0); 23376: Specialization::combine(tmp0, tmp1, dir); 23376: } 23376: 23376: Specialization::finalize(tmp0, dir); 23376: assign_r(r, tmp0, dir); 23376: return true; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const OR_Matrix& x, 23376: const OR_Matrix& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return 23376: l_m_distance_assign >(r, x, y, 23376: dir, 23376: tmp0, 23376: tmp1, 23376: tmp2); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const OR_Matrix& x, 23376: const OR_Matrix& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return 23376: l_m_distance_assign >(r, x, y, 23376: dir, 23376: tmp0, 23376: tmp1, 23376: tmp2); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const OR_Matrix& x, 23376: const OR_Matrix& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: return 23376: l_m_distance_assign >(r, x, y, 23376: dir, 23376: tmp0, 23376: tmp1, 23376: tmp2); 23376: } 23376: 23376: 23376: template 23376: inline void 23376: swap(OR_Matrix& x, OR_Matrix& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 608 "../../src/OR_Matrix_defs.hh" 2 23376: # 1 "../../src/OR_Matrix_templates.hh" 1 23376: # 29 "../../src/OR_Matrix_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: memory_size_type 23376: OR_Matrix::external_memory_in_bytes() const{ 23376: return vec.external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: bool 23376: OR_Matrix::OK() const { 23376: 23376: 23376: 23376: 23376: 23376: const dimension_type dim = space_dimension(); 23376: if (vec.size() != 2*dim*(dim + 1)) { 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: 23376: 23376: if (!vec.OK(vec.size(), vec_capacity)) { 23376: return false; 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: OR_Matrix::ascii_dump(std::ostream& s) const { 23376: const OR_Matrix& x = *this; 23376: const char separator = ' '; 23376: dimension_type space = x.space_dimension(); 23376: s << space << separator << "\n"; 23376: for (const_row_iterator i = x.row_begin(), 23376: x_row_end = x.row_end(); i != x_row_end; ++i) { 23376: const_row_reference_type r = *i; 23376: dimension_type rs = i.row_size(); 23376: for (dimension_type j = 0; j < rs; ++j) { 23376: using namespace IO_Operators; 23376: s << r[j] << separator; 23376: } 23376: s << "\n"; 23376: } 23376: } 23376: 23376: template void OR_Matrix::ascii_dump() const { ascii_dump(std::cerr); } template void OR_Matrix::print() const { using IO_Operators::operator<<; std::cerr << *this; } 23376: 23376: template 23376: bool 23376: OR_Matrix::ascii_load(std::istream& s) { 23376: dimension_type space; 23376: if (!(s >> space)) { 23376: return false; 23376: } 23376: resize_no_copy(space); 23376: for (row_iterator i = row_begin(), 23376: this_row_end = row_end(); i != this_row_end; ++i) { 23376: row_reference_type r_i = *i; 23376: const dimension_type rs = i.row_size(); 23376: for (dimension_type j = 0; j < rs; ++j) { 23376: Result r = input(r_i[j], s, ROUND_CHECK); 23376: if (result_relation(r) != VR_EQ || is_minus_infinity(r_i[j])) { 23376: return false; 23376: } 23376: } 23376: } 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: std::ostream& 23376: IO_Operators::operator<<(std::ostream& s, const OR_Matrix& m) { 23376: for (typename OR_Matrix::const_row_iterator m_iter = m.row_begin(), 23376: m_end = m.row_end(); m_iter != m_end; ++m_iter) { 23376: typename OR_Matrix::const_row_reference_type r_m = *m_iter; 23376: const dimension_type mr_size = m_iter.row_size(); 23376: for (dimension_type j = 0; j < mr_size; ++j) { 23376: s << r_m[j] << " "; 23376: } 23376: s << "\n"; 23376: } 23376: return s; 23376: } 23376: 23376: } 23376: # 609 "../../src/OR_Matrix_defs.hh" 2 23376: # 37 "../../src/Octagonal_Shape_defs.hh" 2 23376: # 52 "../../src/Octagonal_Shape_defs.hh" 23376: # 1 "/usr/include/c++/8/climits" 1 3 23376: # 39 "/usr/include/c++/8/climits" 3 23376: 23376: # 40 "/usr/include/c++/8/climits" 3 23376: 23376: 23376: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 23376: # 43 "/usr/include/c++/8/climits" 2 3 23376: # 53 "../../src/Octagonal_Shape_defs.hh" 2 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace IO_Operators { 23376: # 67 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: std::ostream& 23376: operator<<(std::ostream& s, const Octagonal_Shape& oct); 23376: 23376: } 23376: 23376: 23376: 23376: template 23376: void swap(Octagonal_Shape& x, Octagonal_Shape& y); 23376: # 85 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool operator==(const Octagonal_Shape& x, const Octagonal_Shape& y); 23376: # 95 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool operator!=(const Octagonal_Shape& x, const Octagonal_Shape& y); 23376: # 109 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: Rounding_Dir dir); 23376: # 126 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: Rounding_Dir dir); 23376: # 143 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool rectilinear_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 163 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: Rounding_Dir dir); 23376: # 180 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: Rounding_Dir dir); 23376: # 197 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool euclidean_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: # 217 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: Rounding_Dir dir); 23376: # 234 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: Rounding_Dir dir); 23376: # 251 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: bool l_infinity_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2); 23376: 23376: 23376: 23376: class Octagonal_Shape_Helper { 23376: public: 23376: # 304 "../../src/Octagonal_Shape_defs.hh" 23376: static bool extract_octagonal_difference(const Constraint& c, 23376: dimension_type c_space_dim, 23376: dimension_type& c_num_vars, 23376: dimension_type& c_first_var, 23376: dimension_type& c_second_var, 23376: Coefficient& c_coeff, 23376: Coefficient& c_term); 23376: }; 23376: 23376: } 23376: # 419 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: class Parma_Polyhedra_Library::Octagonal_Shape { 23376: private: 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef Checked_Number N; 23376: 23376: 23376: public: 23376: 23376: 23376: typedef T coefficient_type_base; 23376: 23376: 23376: 23376: 23376: 23376: typedef N coefficient_type; 23376: 23376: 23376: static dimension_type max_space_dimension(); 23376: 23376: 23376: 23376: 23376: static bool can_recycle_constraint_systems(); 23376: 23376: 23376: 23376: 23376: static bool can_recycle_congruence_systems(); 23376: # 467 "../../src/Octagonal_Shape_defs.hh" 23376: explicit Octagonal_Shape(dimension_type num_dimensions = 0, 23376: Degenerate_Element kind = UNIVERSE); 23376: 23376: 23376: 23376: 23376: 23376: Octagonal_Shape(const Octagonal_Shape& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: template 23376: explicit Octagonal_Shape(const Octagonal_Shape& y, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 496 "../../src/Octagonal_Shape_defs.hh" 23376: explicit Octagonal_Shape(const Constraint_System& cs); 23376: # 509 "../../src/Octagonal_Shape_defs.hh" 23376: explicit Octagonal_Shape(const Congruence_System& cgs); 23376: # 519 "../../src/Octagonal_Shape_defs.hh" 23376: explicit Octagonal_Shape(const Generator_System& gs); 23376: # 528 "../../src/Octagonal_Shape_defs.hh" 23376: explicit Octagonal_Shape(const Polyhedron& ph, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 547 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: explicit Octagonal_Shape(const Box& box, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 567 "../../src/Octagonal_Shape_defs.hh" 23376: explicit Octagonal_Shape(const Grid& grid, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: # 586 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: explicit Octagonal_Shape(const BD_Shape& bd, 23376: Complexity_Class complexity = ANY_COMPLEXITY); 23376: 23376: 23376: 23376: 23376: 23376: Octagonal_Shape& operator=(const Octagonal_Shape& y); 23376: 23376: 23376: 23376: 23376: 23376: void m_swap(Octagonal_Shape& y); 23376: 23376: 23376: ~Octagonal_Shape(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type space_dimension() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: dimension_type affine_dimension() const; 23376: 23376: 23376: Constraint_System constraints() const; 23376: 23376: 23376: Constraint_System minimized_constraints() const; 23376: 23376: 23376: Congruence_System congruences() const; 23376: 23376: 23376: 23376: 23376: 23376: Congruence_System minimized_congruences() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool contains(const Octagonal_Shape& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool strictly_contains(const Octagonal_Shape& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool is_disjoint_from(const Octagonal_Shape& y) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Con_Relation relation_with(const Constraint& c) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Con_Relation relation_with(const Congruence& cg) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Poly_Gen_Relation relation_with(const Generator& g) const; 23376: 23376: 23376: bool is_empty() const; 23376: 23376: 23376: bool is_universe() const; 23376: 23376: 23376: bool is_discrete() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_bounded() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_topologically_closed() const; 23376: 23376: 23376: 23376: 23376: 23376: bool contains_integer_point() const; 23376: # 715 "../../src/Octagonal_Shape_defs.hh" 23376: bool constrains(Variable var) const; 23376: # 724 "../../src/Octagonal_Shape_defs.hh" 23376: bool bounds_from_above(const Linear_Expression& expr) const; 23376: # 733 "../../src/Octagonal_Shape_defs.hh" 23376: bool bounds_from_below(const Linear_Expression& expr) const; 23376: # 759 "../../src/Octagonal_Shape_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum) const; 23376: # 790 "../../src/Octagonal_Shape_defs.hh" 23376: bool maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum, 23376: Generator& g) const; 23376: # 818 "../../src/Octagonal_Shape_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum) const; 23376: # 849 "../../src/Octagonal_Shape_defs.hh" 23376: bool minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum, 23376: Generator& g) const; 23376: # 881 "../../src/Octagonal_Shape_defs.hh" 23376: bool frequency(const Linear_Expression& expr, 23376: Coefficient& freq_n, Coefficient& freq_d, 23376: Coefficient& val_n, Coefficient& val_d) const; 23376: 23376: 23376: bool OK() const; 23376: # 904 "../../src/Octagonal_Shape_defs.hh" 23376: void add_constraint(const Constraint& c); 23376: # 918 "../../src/Octagonal_Shape_defs.hh" 23376: void add_constraints(const Constraint_System& cs); 23376: # 937 "../../src/Octagonal_Shape_defs.hh" 23376: void add_recycled_constraints(Constraint_System& cs); 23376: # 949 "../../src/Octagonal_Shape_defs.hh" 23376: void add_congruence(const Congruence& cg); 23376: # 962 "../../src/Octagonal_Shape_defs.hh" 23376: void add_congruences(const Congruence_System& cgs); 23376: # 980 "../../src/Octagonal_Shape_defs.hh" 23376: void add_recycled_congruences(Congruence_System& cgs); 23376: # 992 "../../src/Octagonal_Shape_defs.hh" 23376: void refine_with_constraint(const Constraint& c); 23376: # 1005 "../../src/Octagonal_Shape_defs.hh" 23376: void refine_with_congruence(const Congruence& cg); 23376: # 1018 "../../src/Octagonal_Shape_defs.hh" 23376: void refine_with_constraints(const Constraint_System& cs); 23376: # 1031 "../../src/Octagonal_Shape_defs.hh" 23376: void refine_with_congruences(const Congruence_System& cgs); 23376: # 1054 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: void refine_with_linear_form_inequality( 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right); 23376: # 1087 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: void generalized_refine_with_linear_form_inequality( 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right, 23376: Relation_Symbol relsym); 23376: # 1103 "../../src/Octagonal_Shape_defs.hh" 23376: void unconstrain(Variable var); 23376: # 1117 "../../src/Octagonal_Shape_defs.hh" 23376: void unconstrain(const Variables_Set& vars); 23376: 23376: 23376: 23376: 23376: 23376: 23376: void intersection_assign(const Octagonal_Shape& y); 23376: # 1133 "../../src/Octagonal_Shape_defs.hh" 23376: void upper_bound_assign(const Octagonal_Shape& y); 23376: # 1145 "../../src/Octagonal_Shape_defs.hh" 23376: bool upper_bound_assign_if_exact(const Octagonal_Shape& y); 23376: # 1168 "../../src/Octagonal_Shape_defs.hh" 23376: bool integer_upper_bound_assign_if_exact(const Octagonal_Shape& y); 23376: # 1177 "../../src/Octagonal_Shape_defs.hh" 23376: void difference_assign(const Octagonal_Shape& y); 23376: # 1188 "../../src/Octagonal_Shape_defs.hh" 23376: bool simplify_using_context_assign(const Octagonal_Shape& y); 23376: # 1208 "../../src/Octagonal_Shape_defs.hh" 23376: void affine_image(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1234 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: void affine_form_image(Variable var, 23376: const Linear_Form< Interval >& lf); 23376: # 1256 "../../src/Octagonal_Shape_defs.hh" 23376: void affine_preimage(Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1285 "../../src/Octagonal_Shape_defs.hh" 23376: void generalized_affine_image(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1310 "../../src/Octagonal_Shape_defs.hh" 23376: void generalized_affine_image(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs); 23376: # 1340 "../../src/Octagonal_Shape_defs.hh" 23376: void bounded_affine_image(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1370 "../../src/Octagonal_Shape_defs.hh" 23376: void generalized_affine_preimage(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference 23376: denominator = Coefficient_one()); 23376: # 1395 "../../src/Octagonal_Shape_defs.hh" 23376: void generalized_affine_preimage(const Linear_Expression& lhs, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& rhs); 23376: # 1425 "../../src/Octagonal_Shape_defs.hh" 23376: void bounded_affine_preimage(Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: # 1438 "../../src/Octagonal_Shape_defs.hh" 23376: void time_elapse_assign(const Octagonal_Shape& y); 23376: # 1486 "../../src/Octagonal_Shape_defs.hh" 23376: void wrap_assign(const Variables_Set& vars, 23376: Bounded_Integer_Type_Width w, 23376: Bounded_Integer_Type_Representation r, 23376: Bounded_Integer_Type_Overflow o, 23376: const Constraint_System* cs_p = 0, 23376: unsigned complexity_threshold = 16, 23376: bool wrap_individually = true); 23376: # 1505 "../../src/Octagonal_Shape_defs.hh" 23376: void drop_some_non_integer_points(Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: # 1523 "../../src/Octagonal_Shape_defs.hh" 23376: void drop_some_non_integer_points(const Variables_Set& vars, 23376: Complexity_Class complexity 23376: = ANY_COMPLEXITY); 23376: 23376: 23376: void topological_closure_assign(); 23376: # 1545 "../../src/Octagonal_Shape_defs.hh" 23376: void CC76_extrapolation_assign(const Octagonal_Shape& y, unsigned* tp = 0); 23376: # 1568 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: void CC76_extrapolation_assign(const Octagonal_Shape& y, 23376: Iterator first, Iterator last, 23376: unsigned* tp = 0); 23376: # 1588 "../../src/Octagonal_Shape_defs.hh" 23376: void BHMZ05_widening_assign(const Octagonal_Shape& y, unsigned* tp = 0); 23376: 23376: 23376: void widening_assign(const Octagonal_Shape& y, unsigned* tp = 0); 23376: # 1613 "../../src/Octagonal_Shape_defs.hh" 23376: void limited_BHMZ05_extrapolation_assign(const Octagonal_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1627 "../../src/Octagonal_Shape_defs.hh" 23376: void CC76_narrowing_assign(const Octagonal_Shape& y); 23376: # 1649 "../../src/Octagonal_Shape_defs.hh" 23376: void limited_CC76_extrapolation_assign(const Octagonal_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp = 0); 23376: # 1676 "../../src/Octagonal_Shape_defs.hh" 23376: void add_space_dimensions_and_embed(dimension_type m); 23376: # 1699 "../../src/Octagonal_Shape_defs.hh" 23376: void add_space_dimensions_and_project(dimension_type m); 23376: # 1709 "../../src/Octagonal_Shape_defs.hh" 23376: void concatenate_assign(const Octagonal_Shape& y); 23376: # 1720 "../../src/Octagonal_Shape_defs.hh" 23376: void remove_space_dimensions(const Variables_Set& vars); 23376: # 1730 "../../src/Octagonal_Shape_defs.hh" 23376: void remove_higher_space_dimensions(dimension_type new_dimension); 23376: # 1768 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: void map_space_dimensions(const Partial_Function& pfunc); 23376: # 1792 "../../src/Octagonal_Shape_defs.hh" 23376: void expand_space_dimension(Variable var, dimension_type m); 23376: # 1817 "../../src/Octagonal_Shape_defs.hh" 23376: void fold_space_dimensions(const Variables_Set& vars, Variable dest); 23376: # 1849 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: void export_interval_constraints(U& dest) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: template 23376: void refine_fp_interval_abstract_store( 23376: Box< Interval >& store) const; 23376: 23376: 23376: 23376: void ascii_dump() const; void ascii_dump(std::ostream& s) const; void print() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: 23376: memory_size_type total_memory_in_bytes() const; 23376: 23376: 23376: memory_size_type external_memory_in_bytes() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: int32_t hash_code() const; 23376: 23376: friend bool 23376: operator==(const Octagonal_Shape& x, const Octagonal_Shape& y); 23376: 23376: template 23376: friend bool Parma_Polyhedra_Library 23376: ::rectilinear_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, Temp& tmp1, Temp& tmp2); 23376: template 23376: friend bool Parma_Polyhedra_Library 23376: ::euclidean_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, Temp& tmp1, Temp& tmp2); 23376: template 23376: friend bool Parma_Polyhedra_Library 23376: ::l_infinity_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, Temp& tmp1, Temp& tmp2); 23376: 23376: private: 23376: template friend class Parma_Polyhedra_Library::Octagonal_Shape; 23376: template friend class Parma_Polyhedra_Library::Box; 23376: 23376: 23376: OR_Matrix matrix; 23376: 23376: 23376: dimension_type space_dim; 23376: # 1928 "../../src/Octagonal_Shape_defs.hh" 23376: # 1 "../../src/Og_Status_idefs.hh" 1 23376: # 45 "../../src/Og_Status_idefs.hh" 23376: class Status { 23376: public: 23376: 23376: Status(); 23376: 23376: 23376: 23376: bool test_zero_dim_univ() const; 23376: void reset_zero_dim_univ(); 23376: void set_zero_dim_univ(); 23376: 23376: bool test_empty() const; 23376: void reset_empty(); 23376: void set_empty(); 23376: 23376: bool test_strongly_closed() const; 23376: void reset_strongly_closed(); 23376: void set_strongly_closed(); 23376: 23376: 23376: 23376: bool OK() const; 23376: 23376: 23376: 23376: 23376: 23376: void ascii_dump(std::ostream& s) const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool ascii_load(std::istream& s); 23376: 23376: private: 23376: 23376: typedef unsigned int flags_t; 23376: 23376: 23376: 23376: static const flags_t ZERO_DIM_UNIV = 0U; 23376: static const flags_t EMPTY = 1U << 0; 23376: static const flags_t STRONGLY_CLOSED = 1U << 1; 23376: 23376: 23376: 23376: flags_t flags; 23376: 23376: 23376: Status(flags_t mask); 23376: 23376: 23376: bool test_all(flags_t mask) const; 23376: 23376: 23376: bool test_any(flags_t mask) const; 23376: 23376: 23376: void set(flags_t mask); 23376: 23376: 23376: void reset(flags_t mask); 23376: 23376: }; 23376: # 1929 "../../src/Octagonal_Shape_defs.hh" 2 23376: 23376: 23376: 23376: Status status; 23376: 23376: 23376: bool marked_zero_dim_univ() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: bool marked_empty() const; 23376: # 1951 "../../src/Octagonal_Shape_defs.hh" 23376: bool marked_strongly_closed() const; 23376: 23376: 23376: void set_zero_dim_univ(); 23376: 23376: 23376: void set_empty(); 23376: 23376: 23376: void set_strongly_closed(); 23376: 23376: 23376: void reset_strongly_closed(); 23376: 23376: N& matrix_at(dimension_type i, dimension_type j); 23376: const N& matrix_at(dimension_type i, dimension_type j) const; 23376: # 1978 "../../src/Octagonal_Shape_defs.hh" 23376: template 23376: void linear_form_upper_bound( 23376: const Linear_Form< Interval >& lf, 23376: N& result) const; 23376: 23376: 23376: static void interval_coefficient_upper_bound(const N& var_ub, 23376: const N& minus_var_ub, 23376: const N& int_ub, const N& int_lb, 23376: N& result); 23376: # 1999 "../../src/Octagonal_Shape_defs.hh" 23376: void refine_no_check(const Constraint& c); 23376: # 2013 "../../src/Octagonal_Shape_defs.hh" 23376: void refine_no_check(const Congruence& cg); 23376: 23376: 23376: void add_octagonal_constraint(dimension_type i, 23376: dimension_type j, 23376: const N& k); 23376: 23376: 23376: void add_octagonal_constraint(dimension_type i, 23376: dimension_type j, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: void refine(Variable var, 23376: Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator 23376: = Coefficient_one()); 23376: 23376: 23376: void forget_all_octagonal_constraints(dimension_type v_id); 23376: 23376: 23376: void forget_binary_octagonal_constraints(dimension_type v_id); 23376: # 2071 "../../src/Octagonal_Shape_defs.hh" 23376: void deduce_v_pm_u_bounds(dimension_type v_id, 23376: dimension_type last_id, 23376: const Linear_Expression& sc_expr, 23376: Coefficient_traits::const_reference sc_denom, 23376: const N& ub_v); 23376: # 2105 "../../src/Octagonal_Shape_defs.hh" 23376: void deduce_minus_v_pm_u_bounds(dimension_type v_id, 23376: dimension_type last_id, 23376: const Linear_Expression& sc_expr, 23376: Coefficient_traits::const_reference sc_denom, 23376: const N& minus_lb_v); 23376: 23376: 23376: 23376: 23376: 23376: void get_limiting_octagon(const Constraint_System& cs, 23376: Octagonal_Shape& limiting_octagon) const; 23376: 23376: 23376: 23376: 23376: void compute_successors(std::vector& successor) const; 23376: 23376: 23376: 23376: 23376: 23376: void compute_leaders(std::vector& successor, 23376: std::vector& no_sing_leaders, 23376: bool& exist_sing_class, 23376: dimension_type& sing_leader) const; 23376: 23376: 23376: 23376: 23376: 23376: void compute_leaders(std::vector& leaders) const; 23376: # 2146 "../../src/Octagonal_Shape_defs.hh" 23376: void non_redundant_matrix_entries(std::vector& non_redundant) const; 23376: 23376: 23376: void strong_reduction_assign() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_strongly_reduced() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_strong_coherent() const; 23376: 23376: bool tight_coherence_would_make_empty() const; 23376: # 2172 "../../src/Octagonal_Shape_defs.hh" 23376: void strong_closure_assign() const; 23376: 23376: 23376: void strong_coherence_assign(); 23376: # 2185 "../../src/Octagonal_Shape_defs.hh" 23376: void tight_closure_assign(); 23376: # 2198 "../../src/Octagonal_Shape_defs.hh" 23376: void incremental_strong_closure_assign(Variable var) const; 23376: # 2217 "../../src/Octagonal_Shape_defs.hh" 23376: bool bounds(const Linear_Expression& expr, bool from_above) const; 23376: # 2245 "../../src/Octagonal_Shape_defs.hh" 23376: bool max_min(const Linear_Expression& expr, 23376: bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, bool& included) const; 23376: # 2280 "../../src/Octagonal_Shape_defs.hh" 23376: bool max_min(const Linear_Expression& expr, 23376: bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, bool& included, 23376: Generator& g) const; 23376: 23376: void drop_some_non_integer_points_helper(N& elem); 23376: 23376: friend std::ostream& 23376: Parma_Polyhedra_Library::IO_Operators 23376: ::operator<<<>(std::ostream& s, const Octagonal_Shape& c); 23376: 23376: 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Octagonal_Shape& y) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: dimension_type required_dim) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Constraint& c) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Congruence& cg) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const Generator& g) const; 23376: 23376: void throw_dimension_incompatible(const char* method, 23376: const char* le_name, 23376: const Linear_Expression& le) const; 23376: 23376: template 23376: void throw_dimension_incompatible(const char* method, 23376: const char* lf_name, 23376: const Linear_Form& lf) const; 23376: 23376: static void throw_constraint_incompatible(const char* method); 23376: 23376: static void throw_expression_too_complex(const char* method, 23376: const Linear_Expression& le); 23376: 23376: static void throw_invalid_argument(const char* method, const char* reason); 23376: 23376: }; 23376: 23376: # 1 "../../src/Og_Status_inlines.hh" 1 23376: # 27 "../../src/Og_Status_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline 23376: Octagonal_Shape::Status::Status(flags_t mask) 23376: : flags(mask) { 23376: } 23376: 23376: template 23376: inline 23376: Octagonal_Shape::Status::Status() 23376: : flags(ZERO_DIM_UNIV) { 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::Status::test_all(flags_t mask) const { 23376: return (flags & mask) == mask; 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::Status::test_any(flags_t mask) const { 23376: return (flags & mask) != 0; 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::Status::set(flags_t mask) { 23376: flags |= mask; 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::Status::reset(flags_t mask) { 23376: flags &= ~mask; 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::Status::test_zero_dim_univ() const { 23376: return flags == ZERO_DIM_UNIV; 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::Status::reset_zero_dim_univ() { 23376: 23376: if (flags == ZERO_DIM_UNIV) { 23376: 23376: flags = EMPTY; 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::Status::set_zero_dim_univ() { 23376: 23376: flags = ZERO_DIM_UNIV; 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::Status::test_empty() const { 23376: return test_any(EMPTY); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::Status::reset_empty() { 23376: reset(EMPTY); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::Status::set_empty() { 23376: flags = EMPTY; 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::Status::test_strongly_closed() const { 23376: return test_any(STRONGLY_CLOSED); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::Status::reset_strongly_closed() { 23376: reset(STRONGLY_CLOSED); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::Status::set_strongly_closed() { 23376: set(STRONGLY_CLOSED); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::Status::OK() const { 23376: if (test_zero_dim_univ()) { 23376: 23376: return true; 23376: } 23376: 23376: if (test_empty()) { 23376: Status copy = *this; 23376: copy.reset_empty(); 23376: if (copy.test_zero_dim_univ()) { 23376: return true; 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: 23376: namespace Implementation { 23376: 23376: namespace Octagonal_Shapes { 23376: 23376: extern const char* zero_dim_univ; 23376: extern const char* empty; 23376: extern const char* strong_closed; 23376: const char yes = '+'; 23376: const char no = '-'; 23376: const char separator = ' '; 23376: # 170 "../../src/Og_Status_inlines.hh" 23376: inline bool 23376: get_field(std::istream& s, const char* keyword, bool& positive) { 23376: std::string str; 23376: if (!(s >> str) 23376: || (str[0] != yes && str[0] != no) 23376: || str.substr(1) != keyword) { 23376: return false; 23376: } 23376: positive = (str[0] == yes); 23376: return true; 23376: } 23376: 23376: } 23376: 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::Status::ascii_dump(std::ostream& s) const { 23376: using namespace Implementation::Octagonal_Shapes; 23376: s << (test_zero_dim_univ() ? yes : no) << zero_dim_univ 23376: << separator 23376: << (test_empty() ? yes : no) << empty 23376: << separator 23376: << separator 23376: << (test_strongly_closed() ? yes : no) << strong_closed 23376: << separator; 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::Status::ascii_load(std::istream& s) { 23376: using namespace Implementation::Octagonal_Shapes; 23376: bool positive = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: if (!get_field(s, zero_dim_univ, positive)) { 23376: return false; 23376: } 23376: if (positive) { 23376: set_zero_dim_univ(); 23376: } 23376: 23376: if (!get_field(s, empty, positive)) { 23376: return false; 23376: } 23376: 23376: if (positive) { 23376: set_empty(); 23376: } 23376: 23376: if (!get_field(s, strong_closed, positive)) { 23376: return false; 23376: } 23376: if (positive) { 23376: set_strongly_closed(); 23376: } 23376: else { 23376: reset_strongly_closed(); 23376: } 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: } 23376: # 2327 "../../src/Octagonal_Shape_defs.hh" 2 23376: # 1 "../../src/Octagonal_Shape_inlines.hh" 1 23376: # 31 "../../src/Octagonal_Shape_inlines.hh" 23376: # 1 "../../src/BD_Shape_defs.hh" 1 23376: # 32 "../../src/Octagonal_Shape_inlines.hh" 2 23376: 23376: 23376: # 1 "../../src/wrap_assign.hh" 1 23376: # 33 "../../src/wrap_assign.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Implementation { 23376: 23376: struct Wrap_Dim_Translations { 23376: Variable var; 23376: Coefficient first_quadrant; 23376: Coefficient last_quadrant; 23376: Wrap_Dim_Translations(Variable v, 23376: Coefficient_traits::const_reference f, 23376: Coefficient_traits::const_reference l) 23376: : var(v), first_quadrant(f), last_quadrant(l) { 23376: } 23376: }; 23376: 23376: typedef std::vector Wrap_Translations; 23376: 23376: template 23376: void 23376: wrap_assign_ind(PSET& pointset, 23376: Variables_Set& vars, 23376: Wrap_Translations::const_iterator first, 23376: Wrap_Translations::const_iterator end, 23376: Bounded_Integer_Type_Width w, 23376: Coefficient_traits::const_reference min_value, 23376: Coefficient_traits::const_reference max_value, 23376: const Constraint_System& cs, 23376: Coefficient& tmp1, 23376: Coefficient& tmp2) { 23376: const dimension_type space_dim = pointset.space_dimension(); 23376: for (Wrap_Translations::const_iterator i = first; i != end; ++i) { 23376: const Wrap_Dim_Translations& wrap_dim_translations = *i; 23376: const Variable x(wrap_dim_translations.var); 23376: const Coefficient& first_quadrant = wrap_dim_translations.first_quadrant; 23376: const Coefficient& last_quadrant = wrap_dim_translations.last_quadrant; 23376: Coefficient& quadrant = tmp1; 23376: Coefficient& shift = tmp2; 23376: PSET hull(space_dim, EMPTY); 23376: for (quadrant = first_quadrant; quadrant <= last_quadrant; ++quadrant) { 23376: PSET p(pointset); 23376: if (quadrant != 0) { 23376: mul_2exp_assign(shift, quadrant, w); 23376: p.affine_image(x, x - shift, 1); 23376: } 23376: 23376: vars.erase(x.id()); 23376: 23376: 23376: 23376: if (vars.empty()) { 23376: p.refine_with_constraints(cs); 23376: } 23376: else { 23376: for (Constraint_System::const_iterator j = cs.begin(), 23376: cs_end = cs.end(); j != cs_end; ++j) { 23376: if (j->expression().all_zeroes(vars)) { 23376: 23376: p.refine_with_constraint(*j); 23376: } 23376: } 23376: } 23376: p.refine_with_constraint(min_value <= x); 23376: p.refine_with_constraint(x <= max_value); 23376: hull.upper_bound_assign(p); 23376: } 23376: pointset.m_swap(hull); 23376: } 23376: } 23376: 23376: template 23376: void 23376: wrap_assign_col(PSET& dest, 23376: const PSET& src, 23376: const Variables_Set& vars, 23376: Wrap_Translations::const_iterator first, 23376: Wrap_Translations::const_iterator end, 23376: Bounded_Integer_Type_Width w, 23376: Coefficient_traits::const_reference min_value, 23376: Coefficient_traits::const_reference max_value, 23376: const Constraint_System* cs_p, 23376: Coefficient& tmp) { 23376: if (first == end) { 23376: PSET p(src); 23376: if (cs_p != 0) { 23376: p.refine_with_constraints(*cs_p); 23376: } 23376: for (Variables_Set::const_iterator i = vars.begin(), 23376: vars_end = vars.end(); i != vars_end; ++i) { 23376: const Variable x(*i); 23376: p.refine_with_constraint(min_value <= x); 23376: p.refine_with_constraint(x <= max_value); 23376: } 23376: dest.upper_bound_assign(p); 23376: } 23376: else { 23376: const Wrap_Dim_Translations& wrap_dim_translations = *first; 23376: const Variable x(wrap_dim_translations.var); 23376: const Coefficient& first_quadrant = wrap_dim_translations.first_quadrant; 23376: const Coefficient& last_quadrant = wrap_dim_translations.last_quadrant; 23376: Coefficient& shift = tmp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_quadrant; Parma_Polyhedra_Library::Coefficient& quadrant = holder_quadrant.item(); 23376: for (quadrant = first_quadrant; quadrant <= last_quadrant; ++quadrant) { 23376: if (quadrant != 0) { 23376: mul_2exp_assign(shift, quadrant, w); 23376: PSET p(src); 23376: p.affine_image(x, x - shift, 1); 23376: wrap_assign_col(dest, p, vars, first+1, end, w, min_value, max_value, 23376: cs_p, tmp); 23376: } 23376: else { 23376: wrap_assign_col(dest, src, vars, first+1, end, w, min_value, max_value, 23376: cs_p, tmp); 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: wrap_assign(PSET& pointset, 23376: const Variables_Set& vars, 23376: const Bounded_Integer_Type_Width w, 23376: const Bounded_Integer_Type_Representation r, 23376: const Bounded_Integer_Type_Overflow o, 23376: const Constraint_System* cs_p, 23376: const unsigned complexity_threshold, 23376: const bool wrap_individually, 23376: const char* class_name) { 23376: 23376: 23376: 23376: 23376: if (cs_p != 0) { 23376: const dimension_type vars_space_dim = vars.space_dimension(); 23376: if (cs_p->space_dimension() > vars_space_dim) { 23376: std::ostringstream s; 23376: s << "PPL::" << class_name << "::wrap_assign(..., cs_p, ...):" 23376: << std::endl 23376: << "vars.space_dimension() == " << vars_space_dim 23376: << ", cs_p->space_dimension() == " << cs_p->space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: # 191 "../../src/wrap_assign.hh" 23376: } 23376: 23376: 23376: if (vars.empty()) { 23376: if (cs_p != 0) { 23376: pointset.refine_with_constraints(*cs_p); 23376: } 23376: return; 23376: } 23376: 23376: 23376: const dimension_type space_dim = pointset.space_dimension(); 23376: if (vars.space_dimension() > space_dim) { 23376: std::ostringstream s; 23376: s << "PPL::" << class_name << "::wrap_assign(vs, ...):" << std::endl 23376: << "this->space_dimension() == " << space_dim 23376: << ", required space dimension == " << vars.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: 23376: if (pointset.is_empty()) { 23376: return; 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_value; Parma_Polyhedra_Library::Coefficient& min_value = holder_min_value.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_value; Parma_Polyhedra_Library::Coefficient& max_value = holder_max_value.item(); 23376: if (r == UNSIGNED) { 23376: min_value = 0; 23376: mul_2exp_assign(max_value, Coefficient_one(), w); 23376: --max_value; 23376: } 23376: else { 23376: ((void) 0); 23376: mul_2exp_assign(max_value, Coefficient_one(), w-1); 23376: neg_assign(min_value, max_value); 23376: --max_value; 23376: } 23376: 23376: 23376: 23376: 23376: Wrap_Translations translations; 23376: 23376: 23376: 23376: Variables_Set dimensions_to_be_translated; 23376: 23376: 23376: 23376: 23376: 23376: 23376: unsigned collective_wrap_complexity = 1; 23376: 23376: 23376: 23376: bool collective_wrap_too_complex = false; 23376: 23376: if (!wrap_individually) { 23376: translations.reserve(space_dim); 23376: } 23376: 23376: 23376: 23376: Constraint_System full_range_bounds; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_l_n; Parma_Polyhedra_Library::Coefficient& l_n = holder_l_n.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_l_d; Parma_Polyhedra_Library::Coefficient& l_d = holder_l_d.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_u_n; Parma_Polyhedra_Library::Coefficient& u_n = holder_u_n.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_u_d; Parma_Polyhedra_Library::Coefficient& u_d = holder_u_d.item(); 23376: 23376: for (Variables_Set::const_iterator i = vars.begin(), 23376: vars_end = vars.end(); i != vars_end; ++i) { 23376: 23376: const Variable x(*i); 23376: 23376: bool extremum; 23376: 23376: if (!pointset.minimize(x, l_n, l_d, extremum)) { 23376: set_full_range: 23376: pointset.unconstrain(x); 23376: full_range_bounds.insert(min_value <= x); 23376: full_range_bounds.insert(x <= max_value); 23376: continue; 23376: } 23376: 23376: if (!pointset.maximize(x, u_n, u_d, extremum)) { 23376: goto set_full_range; 23376: } 23376: 23376: div_assign_r(l_n, l_n, l_d, ROUND_DOWN); 23376: div_assign_r(u_n, u_n, u_d, ROUND_DOWN); 23376: l_n -= min_value; 23376: u_n -= min_value; 23376: div_2exp_assign_r(l_n, l_n, w, ROUND_DOWN); 23376: div_2exp_assign_r(u_n, u_n, w, ROUND_DOWN); 23376: Coefficient& first_quadrant = l_n; 23376: const Coefficient& last_quadrant = u_n; 23376: 23376: 23376: if (first_quadrant == 0 && last_quadrant == 0) { 23376: continue; 23376: } 23376: 23376: 23376: if (o == OVERFLOW_IMPOSSIBLE) { 23376: if (first_quadrant < 0) { 23376: full_range_bounds.insert(min_value <= x); 23376: } 23376: if (last_quadrant > 0) { 23376: full_range_bounds.insert(x <= max_value); 23376: } 23376: continue; 23376: } 23376: 23376: if (o == OVERFLOW_UNDEFINED || collective_wrap_too_complex) { 23376: goto set_full_range; 23376: } 23376: 23376: Coefficient& quadrants = u_d; 23376: quadrants = last_quadrant - first_quadrant + 1; 23376: 23376: unsigned extension = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: Result res = assign_r(extension, quadrants, ROUND_IGNORE); 23376: if (result_overflow(res) != 0 || extension > complexity_threshold) { 23376: goto set_full_range; 23376: } 23376: 23376: if (!wrap_individually && !collective_wrap_too_complex) { 23376: res = mul_assign_r(collective_wrap_complexity, 23376: collective_wrap_complexity, extension, ROUND_IGNORE); 23376: if (result_overflow(res) != 0 23376: || collective_wrap_complexity > complexity_threshold) { 23376: collective_wrap_too_complex = true; 23376: } 23376: if (collective_wrap_too_complex) { 23376: 23376: for (Wrap_Translations::const_iterator j = translations.begin(), 23376: translations_end = translations.end(); 23376: j != translations_end; 23376: ++j) { 23376: const Variable y(j->var); 23376: pointset.unconstrain(y); 23376: full_range_bounds.insert(min_value <= y); 23376: full_range_bounds.insert(y <= max_value); 23376: } 23376: } 23376: } 23376: 23376: if (wrap_individually && cs_p == 0) { 23376: Coefficient& quadrant = first_quadrant; 23376: 23376: 23376: Coefficient& shift = l_d; 23376: PSET hull(space_dim, EMPTY); 23376: for ( ; quadrant <= last_quadrant; ++quadrant) { 23376: PSET p(pointset); 23376: if (quadrant != 0) { 23376: mul_2exp_assign(shift, quadrant, w); 23376: p.affine_image(x, x - shift, 1); 23376: } 23376: p.refine_with_constraint(min_value <= x); 23376: p.refine_with_constraint(x <= max_value); 23376: hull.upper_bound_assign(p); 23376: } 23376: pointset.m_swap(hull); 23376: } 23376: else if (wrap_individually || !collective_wrap_too_complex) { 23376: ((void) 0); 23376: dimensions_to_be_translated.insert(x); 23376: translations 23376: .push_back(Wrap_Dim_Translations(x, first_quadrant, last_quadrant)); 23376: } 23376: } 23376: 23376: if (!translations.empty()) { 23376: if (wrap_individually) { 23376: ((void) 0); 23376: wrap_assign_ind(pointset, dimensions_to_be_translated, 23376: translations.begin(), translations.end(), 23376: w, min_value, max_value, *cs_p, l_n, l_d); 23376: } 23376: else { 23376: PSET hull(space_dim, EMPTY); 23376: wrap_assign_col(hull, pointset, dimensions_to_be_translated, 23376: translations.begin(), translations.end(), 23376: w, min_value, max_value, cs_p, l_n); 23376: pointset.m_swap(hull); 23376: } 23376: } 23376: 23376: if (cs_p != 0) { 23376: pointset.refine_with_constraints(*cs_p); 23376: } 23376: pointset.refine_with_constraints(full_range_bounds); 23376: } 23376: 23376: } 23376: 23376: } 23376: # 35 "../../src/Octagonal_Shape_inlines.hh" 2 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: namespace Implementation { 23376: 23376: namespace Octagonal_Shapes { 23376: 23376: 23376: 23376: 23376: 23376: inline dimension_type 23376: coherent_index(const dimension_type i) { 23376: return (i % 2 != 0) ? (i-1) : (i+1); 23376: } 23376: 23376: } 23376: 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Octagonal_Shape::max_space_dimension() { 23376: return OR_Matrix::max_num_rows()/2; 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::marked_zero_dim_univ() const { 23376: return status.test_zero_dim_univ(); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::marked_strongly_closed() const { 23376: return status.test_strongly_closed(); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::marked_empty() const { 23376: return status.test_empty(); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::set_zero_dim_univ() { 23376: status.set_zero_dim_univ(); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::set_empty() { 23376: status.set_empty(); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::set_strongly_closed() { 23376: status.set_strongly_closed(); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::reset_strongly_closed() { 23376: status.reset_strongly_closed(); 23376: } 23376: 23376: template 23376: inline 23376: Octagonal_Shape::Octagonal_Shape(const dimension_type num_dimensions, 23376: const Degenerate_Element kind) 23376: : matrix(num_dimensions), space_dim(num_dimensions), status() { 23376: if (kind == EMPTY) { 23376: set_empty(); 23376: } 23376: else if (num_dimensions > 0) { 23376: 23376: set_strongly_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Octagonal_Shape::Octagonal_Shape(const Octagonal_Shape& y, Complexity_Class) 23376: : matrix(y.matrix), space_dim(y.space_dim), status(y.status) { 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Octagonal_Shape::Octagonal_Shape(const Octagonal_Shape& y, 23376: Complexity_Class) 23376: 23376: 23376: : matrix((y.strong_closure_assign(), y.matrix)), 23376: space_dim(y.space_dim), 23376: status() { 23376: 23376: if (y.marked_empty()) { 23376: set_empty(); 23376: } 23376: else if (y.marked_zero_dim_univ()) { 23376: set_zero_dim_univ(); 23376: } 23376: } 23376: 23376: template 23376: inline 23376: Octagonal_Shape::Octagonal_Shape(const Constraint_System& cs) 23376: : matrix(cs.space_dimension()), 23376: space_dim(cs.space_dimension()), 23376: status() { 23376: if (cs.space_dimension() > 0) { 23376: 23376: set_strongly_closed(); 23376: } 23376: add_constraints(cs); 23376: } 23376: 23376: template 23376: inline 23376: Octagonal_Shape::Octagonal_Shape(const Congruence_System& cgs) 23376: : matrix(cgs.space_dimension()), 23376: space_dim(cgs.space_dimension()), 23376: status() { 23376: if (cgs.space_dimension() > 0) { 23376: 23376: set_strongly_closed(); 23376: } 23376: add_congruences(cgs); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Octagonal_Shape::Octagonal_Shape(const Box& box, 23376: Complexity_Class) 23376: : matrix(box.space_dimension()), 23376: space_dim(box.space_dimension()), 23376: status() { 23376: 23376: if (box.is_empty()) { 23376: set_empty(); 23376: } 23376: else if (box.space_dimension() > 0) { 23376: 23376: set_strongly_closed(); 23376: refine_with_constraints(box.constraints()); 23376: } 23376: } 23376: 23376: template 23376: inline 23376: Octagonal_Shape::Octagonal_Shape(const Grid& grid, 23376: Complexity_Class) 23376: : matrix(grid.space_dimension()), 23376: space_dim(grid.space_dimension()), 23376: status() { 23376: if (grid.space_dimension() > 0) { 23376: 23376: set_strongly_closed(); 23376: } 23376: 23376: refine_with_congruences(grid.minimized_congruences()); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Octagonal_Shape::Octagonal_Shape(const BD_Shape& bd, 23376: Complexity_Class) 23376: : matrix(bd.space_dimension()), 23376: space_dim(bd.space_dimension()), 23376: status() { 23376: 23376: if (bd.is_empty()) { 23376: set_empty(); 23376: } 23376: else if (bd.space_dimension() > 0) { 23376: 23376: set_strongly_closed(); 23376: refine_with_constraints(bd.constraints()); 23376: } 23376: } 23376: 23376: template 23376: inline Congruence_System 23376: Octagonal_Shape::congruences() const { 23376: return minimized_congruences(); 23376: } 23376: 23376: template 23376: inline Octagonal_Shape& 23376: Octagonal_Shape::operator=(const Octagonal_Shape& y) { 23376: matrix = y.matrix; 23376: space_dim = y.space_dim; 23376: status = y.status; 23376: return *this; 23376: } 23376: 23376: template 23376: inline 23376: Octagonal_Shape::~Octagonal_Shape() { 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::m_swap(Octagonal_Shape& y) { 23376: using std::swap; 23376: swap(matrix, y.matrix); 23376: swap(space_dim, y.space_dim); 23376: swap(status, y.status); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: Octagonal_Shape::space_dimension() const { 23376: return space_dim; 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::is_discrete() const { 23376: return affine_dimension() == 0; 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::is_empty() const { 23376: strong_closure_assign(); 23376: return marked_empty(); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::bounds_from_above(const Linear_Expression& expr) const { 23376: return bounds(expr, true); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::bounds_from_below(const Linear_Expression& expr) const { 23376: return bounds(expr, false); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, 23376: bool& maximum) const { 23376: return max_min(expr, true, sup_n, sup_d, maximum); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, 23376: bool& maximum, 23376: Generator& g) const { 23376: return max_min(expr, true, sup_n, sup_d, maximum, g); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, 23376: bool& minimum) const { 23376: return max_min(expr, false, inf_n, inf_d, minimum); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, 23376: bool& minimum, 23376: Generator& g) const { 23376: return max_min(expr, false, inf_n, inf_d, minimum, g); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::is_topologically_closed() const { 23376: return true; 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::topological_closure_assign() { 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const Octagonal_Shape& x, const Octagonal_Shape& y) { 23376: if (x.space_dim != y.space_dim) { 23376: 23376: return false; 23376: } 23376: 23376: if (x.space_dim == 0) { 23376: if (x.marked_empty()) { 23376: return y.marked_empty(); 23376: } 23376: else { 23376: return !y.marked_empty(); 23376: } 23376: } 23376: 23376: x.strong_closure_assign(); 23376: y.strong_closure_assign(); 23376: 23376: 23376: if (x.marked_empty()) { 23376: return y.marked_empty(); 23376: } 23376: if (y.marked_empty()) { 23376: return false; 23376: } 23376: 23376: return x.matrix == y.matrix; 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const Octagonal_Shape& x, const Octagonal_Shape& y) { 23376: return !(x == y); 23376: } 23376: 23376: template 23376: inline const typename Octagonal_Shape::coefficient_type& 23376: Octagonal_Shape::matrix_at(const dimension_type i, 23376: const dimension_type j) const { 23376: ((void) 0); 23376: using namespace Implementation::Octagonal_Shapes; 23376: return (j < matrix.row_size(i)) 23376: ? matrix[i][j] 23376: : matrix[coherent_index(j)][coherent_index(i)]; 23376: } 23376: 23376: template 23376: inline typename Octagonal_Shape::coefficient_type& 23376: Octagonal_Shape::matrix_at(const dimension_type i, 23376: const dimension_type j) { 23376: ((void) 0); 23376: using namespace Implementation::Octagonal_Shapes; 23376: return (j < matrix.row_size(i)) 23376: ? matrix[i][j] 23376: : matrix[coherent_index(j)][coherent_index(i)]; 23376: } 23376: 23376: template 23376: inline Constraint_System 23376: Octagonal_Shape::minimized_constraints() const { 23376: strong_reduction_assign(); 23376: return constraints(); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::add_octagonal_constraint(const dimension_type i, 23376: const dimension_type j, 23376: const N& k) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: N& r_i_j = matrix[i][j]; 23376: if (r_i_j > k) { 23376: r_i_j = k; 23376: if (marked_strongly_closed()) { 23376: reset_strongly_closed(); 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape 23376: ::add_octagonal_constraint(const dimension_type i, 23376: const dimension_type j, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_k; N& k = holder_k.item(); 23376: div_round_up(k, numer, denom); 23376: add_octagonal_constraint(i, j, k); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::add_constraints(const Constraint_System& cs) { 23376: for (Constraint_System::const_iterator i = cs.begin(), 23376: i_end = cs.end(); i != i_end; ++i) { 23376: add_constraint(*i); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::add_recycled_constraints(Constraint_System& cs) { 23376: add_constraints(cs); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::add_recycled_congruences(Congruence_System& cgs) { 23376: add_congruences(cgs); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::add_congruences(const Congruence_System& cgs) { 23376: for (Congruence_System::const_iterator i = cgs.begin(), 23376: cgs_end = cgs.end(); i != cgs_end; ++i) { 23376: add_congruence(*i); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::refine_with_constraint(const Constraint& c) { 23376: 23376: if (c.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("refine_with_constraint(c)", c); 23376: } 23376: 23376: if (!marked_empty()) { 23376: refine_no_check(c); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::refine_with_constraints(const Constraint_System& cs) { 23376: 23376: if (cs.space_dimension() > space_dimension()) { 23376: throw_invalid_argument("refine_with_constraints(cs)", 23376: "cs and *this are space-dimension incompatible"); 23376: } 23376: 23376: for (Constraint_System::const_iterator i = cs.begin(), 23376: cs_end = cs.end(); !marked_empty() && i != cs_end; ++i) { 23376: refine_no_check(*i); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::refine_with_congruence(const Congruence& cg) { 23376: const dimension_type cg_space_dim = cg.space_dimension(); 23376: 23376: if (cg_space_dim > space_dimension()) { 23376: throw_dimension_incompatible("refine_with_congruence(cg)", cg); 23376: } 23376: if (!marked_empty()) { 23376: refine_no_check(cg); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::refine_with_congruences(const Congruence_System& cgs) { 23376: 23376: if (cgs.space_dimension() > space_dimension()) { 23376: throw_invalid_argument("refine_with_congruences(cgs)", 23376: "cgs and *this are space-dimension incompatible"); 23376: } 23376: 23376: for (Congruence_System::const_iterator i = cgs.begin(), 23376: cgs_end = cgs.end(); !marked_empty() && i != cgs_end; ++i) { 23376: refine_no_check(*i); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::refine_no_check(const Congruence& cg) { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: if (cg.is_proper_congruence()) { 23376: if (cg.is_inconsistent()) { 23376: set_empty(); 23376: } 23376: 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: Constraint c(cg); 23376: refine_no_check(c); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::can_recycle_constraint_systems() { 23376: return false; 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::can_recycle_congruence_systems() { 23376: return false; 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape 23376: ::remove_higher_space_dimensions(const dimension_type new_dimension) { 23376: 23376: if (new_dimension > space_dim) { 23376: throw_dimension_incompatible("remove_higher_space_dimension(nd)", 23376: new_dimension); 23376: } 23376: 23376: 23376: 23376: if (new_dimension == space_dim) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: strong_closure_assign(); 23376: matrix.shrink(new_dimension); 23376: 23376: 23376: if (new_dimension == 0 && !marked_empty()) { 23376: set_zero_dim_univ(); 23376: } 23376: space_dim = new_dimension; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::wrap_assign(const Variables_Set& vars, 23376: Bounded_Integer_Type_Width w, 23376: Bounded_Integer_Type_Representation r, 23376: Bounded_Integer_Type_Overflow o, 23376: const Constraint_System* cs_p, 23376: unsigned complexity_threshold, 23376: bool wrap_individually) { 23376: Implementation::wrap_assign(*this, 23376: vars, w, r, o, cs_p, 23376: complexity_threshold, wrap_individually, 23376: "Octagonal_Shape"); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::widening_assign(const Octagonal_Shape& y, unsigned* tp) { 23376: BHMZ05_widening_assign(y, tp); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::CC76_extrapolation_assign(const Octagonal_Shape& y, 23376: unsigned* tp) { 23376: static N stop_points[] = { 23376: N(-2, ROUND_UP), 23376: N(-1, ROUND_UP), 23376: N( 0, ROUND_UP), 23376: N( 1, ROUND_UP), 23376: N( 2, ROUND_UP) 23376: }; 23376: CC76_extrapolation_assign(y, 23376: stop_points, 23376: stop_points 23376: + sizeof(stop_points)/sizeof(stop_points[0]), 23376: tp); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::time_elapse_assign(const Octagonal_Shape& y) { 23376: 23376: if (space_dimension() != y.space_dimension()) { 23376: throw_dimension_incompatible("time_elapse_assign(y)", y); 23376: } 23376: 23376: 23376: C_Polyhedron ph_x(constraints()); 23376: C_Polyhedron ph_y(y.constraints()); 23376: ph_x.time_elapse_assign(ph_y); 23376: Octagonal_Shape x(ph_x); 23376: m_swap(x); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline bool 23376: Octagonal_Shape::strictly_contains(const Octagonal_Shape& y) const { 23376: const Octagonal_Shape& x = *this; 23376: return x.contains(y) && !y.contains(x); 23376: } 23376: 23376: template 23376: template 23376: inline void 23376: Octagonal_Shape::generalized_refine_with_linear_form_inequality( 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right, 23376: const Relation_Symbol relsym) { 23376: switch (relsym) { 23376: case EQUAL: 23376: 23376: refine_with_linear_form_inequality(left, right); 23376: refine_with_linear_form_inequality(right, left); 23376: break; 23376: case LESS_THAN: 23376: case LESS_OR_EQUAL: 23376: refine_with_linear_form_inequality(left, right); 23376: break; 23376: case GREATER_THAN: 23376: case GREATER_OR_EQUAL: 23376: refine_with_linear_form_inequality(right, left); 23376: break; 23376: case NOT_EQUAL: 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: 23376: template 23376: template 23376: inline void 23376: Octagonal_Shape:: 23376: refine_fp_interval_abstract_store( 23376: Box< Interval >& store) const { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_683 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: typedef Interval FP_Interval_Type; 23376: store.intersection_assign(Box(*this)); 23376: 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: 23376: if (x.space_dim != y.space_dim) { 23376: return false; 23376: } 23376: 23376: if (x.space_dim == 0) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: 23376: x.strong_closure_assign(); 23376: y.strong_closure_assign(); 23376: 23376: 23376: 23376: if (x.marked_empty() || y.marked_empty()) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: return rectilinear_distance_assign(r, x.matrix, y.matrix, dir, 23376: tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return rectilinear_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir) { 23376: return rectilinear_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: 23376: if (x.space_dim != y.space_dim) { 23376: return false; 23376: } 23376: 23376: 23376: if (x.space_dim == 0) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: 23376: x.strong_closure_assign(); 23376: y.strong_closure_assign(); 23376: 23376: 23376: 23376: if (x.marked_empty() || y.marked_empty()) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: return euclidean_distance_assign(r, x.matrix, y.matrix, dir, 23376: tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return euclidean_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir) { 23376: return euclidean_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: 23376: if (x.space_dim != y.space_dim) { 23376: return false; 23376: } 23376: 23376: if (x.space_dim == 0) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: 23376: x.strong_closure_assign(); 23376: y.strong_closure_assign(); 23376: 23376: 23376: 23376: if (x.marked_empty() || y.marked_empty()) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: return l_infinity_distance_assign(r, x.matrix, y.matrix, dir, 23376: tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return l_infinity_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const Octagonal_Shape& x, 23376: const Octagonal_Shape& y, 23376: const Rounding_Dir dir) { 23376: return l_infinity_distance_assign(r, x, y, dir); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Octagonal_Shape::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline int32_t 23376: Octagonal_Shape::hash_code() const { 23376: return hash_code_from_dimension(space_dimension()); 23376: } 23376: 23376: template 23376: inline void 23376: Octagonal_Shape::drop_some_non_integer_points_helper(N& elem) { 23376: if (!is_integer(elem)) { 23376: 23376: 23376: 23376: floor_assign_r(elem, elem, ROUND_DOWN); 23376: ((void) 0); 23376: reset_strongly_closed(); 23376: } 23376: } 23376: 23376: 23376: template 23376: inline void 23376: swap(Octagonal_Shape& x, Octagonal_Shape& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 2328 "../../src/Octagonal_Shape_defs.hh" 2 23376: # 1 "../../src/Octagonal_Shape_templates.hh" 1 23376: # 43 "../../src/Octagonal_Shape_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: Octagonal_Shape::Octagonal_Shape(const Polyhedron& ph, 23376: const Complexity_Class complexity) 23376: : matrix(0), space_dim(0), status() { 23376: const dimension_type num_dimensions = ph.space_dimension(); 23376: 23376: if (ph.marked_empty()) { 23376: *this = Octagonal_Shape(num_dimensions, EMPTY); 23376: return; 23376: } 23376: 23376: if (num_dimensions == 0) { 23376: *this = Octagonal_Shape(num_dimensions, UNIVERSE); 23376: return; 23376: } 23376: 23376: 23376: 23376: if (complexity == ANY_COMPLEXITY 23376: || (!ph.has_pending_constraints() && ph.generators_are_up_to_date())) { 23376: *this = Octagonal_Shape(ph.generators()); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: 23376: if (!ph.has_something_pending() && ph.constraints_are_minimized()) { 23376: 23376: 23376: if (ph.is_universe()) { 23376: *this = Octagonal_Shape(num_dimensions, UNIVERSE); 23376: return; 23376: } 23376: } 23376: 23376: 23376: for (Constraint_System::const_iterator i = ph.con_sys.begin(), 23376: cs_end = ph.con_sys.end(); i != cs_end; ++i) { 23376: if (i->is_inconsistent()) { 23376: *this = Octagonal_Shape(num_dimensions, EMPTY); 23376: return; 23376: } 23376: } 23376: 23376: 23376: 23376: if (complexity == SIMPLEX_COMPLEXITY) { 23376: MIP_Problem lp(num_dimensions); 23376: lp.set_optimization_mode(MAXIMIZATION); 23376: 23376: const Constraint_System& ph_cs = ph.constraints(); 23376: if (!ph_cs.has_strict_inequalities()) { 23376: lp.add_constraints(ph_cs); 23376: } 23376: else { 23376: 23376: for (Constraint_System::const_iterator i = ph_cs.begin(), 23376: ph_cs_end = ph_cs.end(); i != ph_cs_end; ++i) { 23376: const Constraint& c = *i; 23376: if (c.is_strict_inequality()) { 23376: Linear_Expression expr(c.expression()); 23376: lp.add_constraint(expr >= 0); 23376: } 23376: else { 23376: lp.add_constraint(c); 23376: } 23376: } 23376: } 23376: 23376: 23376: if (!lp.is_satisfiable()) { 23376: *this = Octagonal_Shape(num_dimensions, EMPTY); 23376: return; 23376: } 23376: 23376: 23376: *this = Octagonal_Shape(num_dimensions, UNIVERSE); 23376: 23376: Generator g(point()); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: for (dimension_type i = 0; i < num_dimensions; ++i) { 23376: Variable x(i); 23376: 23376: lp.set_objective_function(x); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, numer, denom); 23376: numer *= 2; 23376: div_round_up(matrix[2*i + 1][2*i], numer, denom); 23376: } 23376: 23376: for (dimension_type j = 0; j < i; ++j) { 23376: Variable y(j); 23376: lp.set_objective_function(x + y); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, numer, denom); 23376: div_round_up(matrix[2*i + 1][2*j], numer, denom); 23376: } 23376: } 23376: 23376: for (dimension_type j = 0; j < num_dimensions; ++j) { 23376: if (i == j) { 23376: continue; 23376: } 23376: Variable y(j); 23376: lp.set_objective_function(x - y); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, numer, denom); 23376: div_round_up(((i < j) ? 23376: matrix[2*j][2*i] 23376: : matrix[2*i + 1][2*j + 1]), 23376: numer, denom); 23376: } 23376: } 23376: 23376: for (dimension_type j = 0; j < num_dimensions; ++j) { 23376: if (i == j) { 23376: continue; 23376: } 23376: Variable y(j); 23376: lp.set_objective_function(x - y); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, numer, denom); 23376: div_round_up(((i < j) 23376: ? matrix[2*j][2*i] 23376: : matrix[2*i + 1][2*j + 1]), 23376: numer, denom); 23376: } 23376: } 23376: 23376: for (dimension_type j = 0; j < i; ++j) { 23376: Variable y(j); 23376: lp.set_objective_function(-x - y); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, numer, denom); 23376: div_round_up(matrix[2*i][2*j + 1], numer, denom); 23376: } 23376: } 23376: 23376: lp.set_objective_function(-x); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, numer, denom); 23376: numer *= 2; 23376: div_round_up(matrix[2*i][2*i + 1], numer, denom); 23376: } 23376: } 23376: set_strongly_closed(); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: ((void) 0); 23376: *this = Octagonal_Shape(num_dimensions, UNIVERSE); 23376: refine_with_constraints(ph.constraints()); 23376: } 23376: 23376: template 23376: Octagonal_Shape::Octagonal_Shape(const Generator_System& gs) 23376: : matrix(gs.space_dimension()), 23376: space_dim(gs.space_dimension()), 23376: status() { 23376: const Generator_System::const_iterator gs_begin = gs.begin(); 23376: const Generator_System::const_iterator gs_end = gs.end(); 23376: if (gs_begin == gs_end) { 23376: 23376: set_empty(); 23376: return; 23376: } 23376: 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: typename OR_Matrix::row_iterator mat_begin = matrix.row_begin(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; N& tmp = holder_tmp.item(); 23376: bool mat_initialized = false; 23376: bool point_seen = false; 23376: 23376: for (Generator_System::const_iterator k = gs_begin; k != gs_end; ++k) { 23376: const Generator& g = *k; 23376: switch (g.type()) { 23376: case Generator::POINT: 23376: point_seen = true; 23376: 23376: case Generator::CLOSURE_POINT: 23376: if (!mat_initialized) { 23376: 23376: mat_initialized = true; 23376: const Coefficient& d = g.divisor(); 23376: 23376: 23376: 23376: for (dimension_type i = 0; i < space_dim; ++i) { 23376: const Coefficient& g_i = g.coefficient(Variable(i)); 23376: const dimension_type di = 2*i; 23376: row_reference x_i = *(mat_begin + di); 23376: row_reference x_ii = *(mat_begin + (di + 1)); 23376: for (dimension_type j = 0; j < i; ++j) { 23376: const Coefficient& g_j = g.coefficient(Variable(j)); 23376: const dimension_type dj = 2*j; 23376: 23376: 23376: 23376: 23376: div_round_up(x_i[dj], g_j - g_i, d); 23376: div_round_up(x_ii[dj + 1], g_i - g_j, d); 23376: 23376: div_round_up(x_i[dj + 1], -g_j - g_i, d); 23376: div_round_up(x_ii[dj], g_i + g_j, d); 23376: } 23376: 23376: div_round_up(x_i[di + 1], -g_i - g_i, d); 23376: div_round_up(x_ii[di], g_i + g_i, d); 23376: } 23376: } 23376: else { 23376: 23376: 23376: const Coefficient& d = g.divisor(); 23376: 23376: 23376: 23376: for (dimension_type i = 0; i < space_dim; ++i) { 23376: const Coefficient& g_i = g.coefficient(Variable(i)); 23376: const dimension_type di = 2*i; 23376: row_reference x_i = *(mat_begin + di); 23376: row_reference x_ii = *(mat_begin + (di + 1)); 23376: for (dimension_type j = 0; j < i; ++j) { 23376: const Coefficient& g_j = g.coefficient(Variable(j)); 23376: const dimension_type dj = 2*j; 23376: 23376: 23376: 23376: 23376: div_round_up(tmp, g_j - g_i, d); 23376: max_assign(x_i[dj], tmp); 23376: div_round_up(tmp, g_i - g_j, d); 23376: max_assign(x_ii[dj + 1], tmp); 23376: 23376: div_round_up(tmp, -g_j - g_i, d); 23376: max_assign(x_i[dj + 1], tmp); 23376: div_round_up(tmp, g_i + g_j, d); 23376: max_assign(x_ii[dj], tmp); 23376: } 23376: 23376: div_round_up(tmp, -g_i - g_i, d); 23376: max_assign(x_i[di + 1], tmp); 23376: div_round_up(tmp, g_i + g_i, d); 23376: max_assign(x_ii[di], tmp); 23376: } 23376: } 23376: break; 23376: default: 23376: 23376: break; 23376: } 23376: } 23376: 23376: if (!point_seen) { 23376: 23376: throw_invalid_argument("Octagonal_Shape(gs)", 23376: "the non-empty generator system gs " 23376: "contains no points."); 23376: } 23376: 23376: 23376: for (Generator_System::const_iterator k = gs_begin; k != gs_end; ++k) { 23376: const Generator& g = *k; 23376: switch (g.type()) { 23376: case Generator::LINE: 23376: 23376: 23376: 23376: for (dimension_type i = 0; i < space_dim; ++i) { 23376: const Coefficient& g_i = g.coefficient(Variable(i)); 23376: const dimension_type di = 2*i; 23376: row_reference x_i = *(mat_begin + di); 23376: row_reference x_ii = *(mat_begin + (di + 1)); 23376: for (dimension_type j = 0; j < i; ++j) { 23376: const Coefficient& g_j = g.coefficient(Variable(j)); 23376: const dimension_type dj = 2*j; 23376: 23376: if (g_i != g_j) { 23376: 23376: assign_r(x_i[dj], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: assign_r(x_ii[dj + 1], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: if (g_i != -g_j) { 23376: 23376: assign_r(x_i[dj + 1], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: assign_r(x_ii[dj], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: if (g_i != 0) { 23376: 23376: assign_r(x_i[di + 1], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: assign_r(x_ii[di], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: break; 23376: case Generator::RAY: 23376: 23376: 23376: 23376: for (dimension_type i = 0; i < space_dim; ++i) { 23376: const Coefficient& g_i = g.coefficient(Variable(i)); 23376: const dimension_type di = 2*i; 23376: row_reference x_i = *(mat_begin + di); 23376: row_reference x_ii = *(mat_begin + (di + 1)); 23376: for (dimension_type j = 0; j < i; ++j) { 23376: const Coefficient& g_j = g.coefficient(Variable(j)); 23376: const dimension_type dj = 2*j; 23376: 23376: 23376: if (g_i < g_j) { 23376: 23376: assign_r(x_i[dj], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: if (g_i > g_j) { 23376: 23376: assign_r(x_ii[dj + 1], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: if (g_i < -g_j) { 23376: 23376: assign_r(x_i[dj + 1], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: if (g_i > -g_j) { 23376: 23376: assign_r(x_ii[dj], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: 23376: if (g_i < 0) { 23376: 23376: assign_r(x_i[di + 1], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: if (g_i > 0) { 23376: 23376: assign_r(x_ii[di], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: break; 23376: default: 23376: 23376: break; 23376: } 23376: } 23376: set_strongly_closed(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::add_constraint(const Constraint& c) { 23376: const dimension_type c_space_dim = c.space_dimension(); 23376: 23376: if (c_space_dim > space_dim) { 23376: throw_dimension_incompatible("add_constraint(c)", c); 23376: } 23376: 23376: if (c.is_strict_inequality()) { 23376: if (c.is_inconsistent()) { 23376: set_empty(); 23376: return; 23376: } 23376: if (c.is_tautological()) { 23376: return; 23376: } 23376: 23376: throw_invalid_argument("add_constraint(c)", 23376: "strict inequalities are not allowed"); 23376: } 23376: 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_term; Parma_Polyhedra_Library::Coefficient& term = holder_term.item(); 23376: 23376: if (!Octagonal_Shape_Helper 23376: ::extract_octagonal_difference(c, c_space_dim, num_vars, 23376: i, j, coeff, term)) { 23376: throw_invalid_argument("add_constraint(c)", 23376: "c is not an octagonal constraint"); 23376: } 23376: 23376: if (num_vars == 0) { 23376: 23376: if (c.inhomogeneous_term() < 0 23376: || (c.is_equality() && c.inhomogeneous_term() != 0)) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: 23376: typename OR_Matrix::row_iterator i_iter = matrix.row_begin() + i; 23376: typename OR_Matrix::row_reference_type m_i = *i_iter; 23376: N& m_i_j = m_i[j]; 23376: 23376: if (coeff < 0) { 23376: neg_assign(coeff); 23376: } 23376: 23376: bool is_oct_changed = false; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, term, coeff); 23376: if (m_i_j > d) { 23376: m_i_j = d; 23376: is_oct_changed = true; 23376: } 23376: 23376: if (c.is_equality()) { 23376: 23376: if (i % 2 == 0) { 23376: ++i_iter; 23376: } 23376: else { 23376: --i_iter; 23376: } 23376: 23376: typename OR_Matrix::row_reference_type m_ci = *i_iter; 23376: using namespace Implementation::Octagonal_Shapes; 23376: dimension_type cj = coherent_index(j); 23376: N& m_ci_cj = m_ci[cj]; 23376: 23376: neg_assign(term); 23376: div_round_up(d, term, coeff); 23376: if (m_ci_cj > d) { 23376: m_ci_cj = d; 23376: is_oct_changed = true; 23376: } 23376: } 23376: 23376: 23376: if (is_oct_changed && marked_strongly_closed()) { 23376: reset_strongly_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::add_congruence(const Congruence& cg) { 23376: const dimension_type cg_space_dim = cg.space_dimension(); 23376: 23376: 23376: if (space_dimension() < cg_space_dim) { 23376: throw_dimension_incompatible("add_congruence(cg)", cg); 23376: } 23376: 23376: 23376: if (cg.is_proper_congruence()) { 23376: if (cg.is_tautological()) { 23376: return; 23376: } 23376: if (cg.is_inconsistent()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: throw_invalid_argument("add_congruence(cg)", 23376: "cg is a non-trivial, proper congruence"); 23376: } 23376: 23376: ((void) 0); 23376: Constraint c(cg); 23376: add_constraint(c); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Octagonal_Shape::refine_with_linear_form_inequality( 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right) { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_534 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: const dimension_type left_space_dim = left.space_dimension(); 23376: if (space_dim < left_space_dim) { 23376: throw_dimension_incompatible( 23376: "refine_with_linear_form_inequality(left, right)", "left", left); 23376: } 23376: 23376: const dimension_type right_space_dim = right.space_dimension(); 23376: if (space_dim < right_space_dim) { 23376: throw_dimension_incompatible( 23376: "refine_with_linear_form_inequality(left, right)", "right", right); 23376: } 23376: 23376: 23376: dimension_type left_t = 0; 23376: 23376: dimension_type left_w_id = 0; 23376: 23376: 23376: dimension_type right_t = 0; 23376: 23376: dimension_type right_w_id = 0; 23376: 23376: 23376: for (dimension_type i = left_space_dim; i-- > 0; ) { 23376: if (left.coefficient(Variable(i)) != 0) { 23376: if (left_t++ == 1) { 23376: break; 23376: } 23376: else { 23376: left_w_id = i; 23376: } 23376: } 23376: } 23376: 23376: 23376: for (dimension_type i = right_space_dim; i-- > 0; ) { 23376: if (right.coefficient(Variable(i)) != 0) { 23376: if (right_t++ == 1) { 23376: break; 23376: } 23376: else { 23376: right_w_id = i; 23376: } 23376: } 23376: } 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: typedef Interval FP_Interval_Type; 23376: 23376: 23376: 23376: 23376: if (left_t == 0) { 23376: if (right_t == 0) { 23376: 23376: 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (right_t == 1) { 23376: 23376: 23376: const FP_Interval_Type& right_w_coeff = 23376: right.coefficient(Variable(right_w_id)); 23376: if (right_w_coeff == 1) { 23376: const dimension_type n_right = right_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_plus_minus_a_minus; N& b_plus_minus_a_minus = holder_b_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_b = right.inhomogeneous_term(); 23376: sub_assign_r(b_plus_minus_a_minus, right_b.upper(), left_a.lower(), 23376: ROUND_UP); 23376: mul_2exp_assign_r(b_plus_minus_a_minus, b_plus_minus_a_minus, 1, 23376: ROUND_UP); 23376: add_octagonal_constraint(n_right, n_right + 1, b_plus_minus_a_minus); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (right_w_coeff == -1) { 23376: const dimension_type n_right = right_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_plus_minus_a_minus; N& b_plus_minus_a_minus = holder_b_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_b = right.inhomogeneous_term(); 23376: sub_assign_r(b_plus_minus_a_minus, right_b.upper(), left_a.lower(), 23376: ROUND_UP); 23376: mul_2exp_assign_r(b_plus_minus_a_minus, b_plus_minus_a_minus, 1, 23376: ROUND_UP); 23376: add_octagonal_constraint(n_right + 1, n_right, b_plus_minus_a_minus); 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: } 23376: else if (left_t == 1) { 23376: if (right_t == 0) { 23376: 23376: 23376: const FP_Interval_Type& left_w_coeff = 23376: left.coefficient(Variable(left_w_id)); 23376: if (left_w_coeff == 1) { 23376: const dimension_type n_left = left_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: mul_2exp_assign_r(a_plus_minus_b_minus, a_plus_minus_b_minus, 1, 23376: ROUND_UP); 23376: add_octagonal_constraint(n_left + 1, n_left, a_plus_minus_b_minus); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (left_w_coeff == -1) { 23376: const dimension_type n_left = left_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: mul_2exp_assign_r(a_plus_minus_b_minus, a_plus_minus_b_minus, 1, 23376: ROUND_UP); 23376: add_octagonal_constraint(n_left, n_left + 1, a_plus_minus_b_minus); 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: 23376: if (right_t == 1) { 23376: 23376: 23376: 23376: 23376: const FP_Interval_Type& left_w_coeff = 23376: left.coefficient(Variable(left_w_id)); 23376: const FP_Interval_Type& right_w_coeff = 23376: right.coefficient(Variable(right_w_id)); 23376: bool is_left_coeff_one = (left_w_coeff == 1); 23376: bool is_left_coeff_minus_one = (left_w_coeff == -1); 23376: bool is_right_coeff_one = (right_w_coeff == 1); 23376: bool is_right_coeff_minus_one = (right_w_coeff == -1); 23376: if (left_w_id == right_w_id) { 23376: if ((is_left_coeff_one && is_right_coeff_one) 23376: || (is_left_coeff_minus_one && is_right_coeff_minus_one)) { 23376: 23376: ((void) 0); 23376: return; 23376: } 23376: if (is_left_coeff_one && is_right_coeff_minus_one) { 23376: 23376: 23376: const dimension_type n_left = left_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: add_octagonal_constraint(n_left + 1, n_left, a_plus_minus_b_minus); 23376: ((void) 0); 23376: return; 23376: } 23376: if (is_left_coeff_minus_one && is_right_coeff_one) { 23376: 23376: 23376: const dimension_type n_left = left_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: add_octagonal_constraint(n_left, n_left + 1, a_plus_minus_b_minus); 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: else if (is_left_coeff_one && is_right_coeff_one) { 23376: const dimension_type n_left = left_w_id * 2; 23376: const dimension_type n_right = right_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c_plus_minus_a_minus; N& c_plus_minus_a_minus = holder_c_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_c = right.inhomogeneous_term(); 23376: sub_assign_r(c_plus_minus_a_minus, right_c.upper(), left_a.lower(), 23376: ROUND_UP); 23376: if (left_w_id < right_w_id) { 23376: add_octagonal_constraint(n_right, n_left, c_plus_minus_a_minus); 23376: } 23376: else { 23376: add_octagonal_constraint(n_left + 1, n_right + 1, 23376: c_plus_minus_a_minus); 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: if (is_left_coeff_one && is_right_coeff_minus_one) { 23376: const dimension_type n_left = left_w_id * 2; 23376: const dimension_type n_right = right_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c_plus_minus_a_minus; N& c_plus_minus_a_minus = holder_c_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_c = right.inhomogeneous_term(); 23376: sub_assign_r(c_plus_minus_a_minus, right_c.upper(), left_a.lower(), 23376: ROUND_UP); 23376: if (left_w_id < right_w_id) { 23376: add_octagonal_constraint(n_right + 1, n_left, c_plus_minus_a_minus); 23376: } 23376: else { 23376: add_octagonal_constraint(n_left + 1, n_right, c_plus_minus_a_minus); 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: if (is_left_coeff_minus_one && is_right_coeff_one) { 23376: const dimension_type n_left = left_w_id * 2; 23376: const dimension_type n_right = right_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c_plus_minus_a_minus; N& c_plus_minus_a_minus = holder_c_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_c = right.inhomogeneous_term(); 23376: sub_assign_r(c_plus_minus_a_minus, right_c.upper(), left_a.lower(), 23376: ROUND_UP); 23376: if (left_w_id < right_w_id) { 23376: add_octagonal_constraint(n_right, n_left + 1, c_plus_minus_a_minus); 23376: } 23376: else { 23376: add_octagonal_constraint(n_left, n_right + 1, c_plus_minus_a_minus); 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: if (is_left_coeff_minus_one && is_right_coeff_minus_one) { 23376: const dimension_type n_left = left_w_id * 2; 23376: const dimension_type n_right = right_w_id * 2; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c_plus_minus_a_minus; N& c_plus_minus_a_minus = holder_c_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_c = right.inhomogeneous_term(); 23376: sub_assign_r(c_plus_minus_a_minus, right_c.upper(), left_a.lower(), 23376: ROUND_UP); 23376: if (left_w_id < right_w_id) { 23376: add_octagonal_constraint(n_right + 1, n_left + 1, 23376: c_plus_minus_a_minus); 23376: } 23376: else { 23376: add_octagonal_constraint(n_left, n_right, c_plus_minus_a_minus); 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_low_coeff; N& low_coeff = holder_low_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_high_coeff; N& high_coeff = holder_high_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_upper_bound; N& upper_bound = holder_upper_bound.item(); 23376: 23376: Linear_Form right_minus_left(right); 23376: right_minus_left -= left; 23376: 23376: dimension_type max_w_id = std::max(left_w_id, right_w_id); 23376: for (dimension_type first_v = 0; first_v < max_w_id; ++first_v) { 23376: for (dimension_type second_v = first_v + 1; 23376: second_v <= max_w_id; ++second_v) { 23376: const FP_Interval_Type& lfv_coefficient = 23376: left.coefficient(Variable(first_v)); 23376: const FP_Interval_Type& lsv_coefficient = 23376: left.coefficient(Variable(second_v)); 23376: const FP_Interval_Type& rfv_coefficient = 23376: right.coefficient(Variable(first_v)); 23376: const FP_Interval_Type& rsv_coefficient = 23376: right.coefficient(Variable(second_v)); 23376: 23376: 23376: bool do_update = false; 23376: assign_r(low_coeff, lfv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, lfv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: assign_r(low_coeff, lsv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, lsv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: else { 23376: assign_r(low_coeff, rsv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, rsv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: } 23376: } 23376: else { 23376: assign_r(low_coeff, rfv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, rfv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: assign_r(low_coeff, lsv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, lsv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: else { 23376: assign_r(low_coeff, rsv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, rsv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: } 23376: } 23376: } 23376: 23376: if (do_update) { 23376: Variable first(first_v); 23376: Variable second(second_v); 23376: dimension_type n_first_var = first_v * 2; 23376: dimension_type n_second_var = second_v * 2; 23376: linear_form_upper_bound(right_minus_left - first + second, 23376: upper_bound); 23376: add_octagonal_constraint(n_second_var + 1, n_first_var + 1, 23376: upper_bound); 23376: linear_form_upper_bound(right_minus_left + first + second, 23376: upper_bound); 23376: add_octagonal_constraint(n_second_var + 1, n_first_var, upper_bound); 23376: linear_form_upper_bound(right_minus_left - first - second, 23376: upper_bound); 23376: add_octagonal_constraint(n_second_var, n_first_var + 1, upper_bound); 23376: linear_form_upper_bound(right_minus_left + first - second, 23376: upper_bound); 23376: add_octagonal_constraint(n_second_var, n_first_var, upper_bound); 23376: } 23376: } 23376: } 23376: 23376: 23376: for (dimension_type v = 0; v <= max_w_id; ++v) { 23376: const FP_Interval_Type& lv_coefficient = 23376: left.coefficient(Variable(v)); 23376: const FP_Interval_Type& rv_coefficient = 23376: right.coefficient(Variable(v)); 23376: 23376: 23376: bool do_update = false; 23376: assign_r(low_coeff, lv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, lv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: else { 23376: assign_r(low_coeff, rv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, rv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: } 23376: 23376: if (do_update) { 23376: Variable var(v); 23376: dimension_type n_var = 2 * v; 23376: 23376: 23376: 23376: 23376: 23376: linear_form_upper_bound(right_minus_left + var, upper_bound); 23376: mul_2exp_assign_r(matrix[n_var + 1][n_var + 1], upper_bound, 1, 23376: ROUND_UP); 23376: linear_form_upper_bound(right_minus_left - var, upper_bound); 23376: mul_2exp_assign_r(matrix[n_var][n_var], upper_bound, 1, 23376: ROUND_UP); 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: row_iterator m_ite = matrix.row_begin(); 23376: row_iterator m_end = matrix.row_end(); 23376: for (dimension_type i = 0; m_ite != m_end; i += 2) { 23376: row_reference upper = *m_ite; 23376: N& ul = upper[i]; 23376: add_octagonal_constraint(i, i + 1, ul); 23376: assign_r(ul, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: ++m_ite; 23376: row_reference lower = *m_ite; 23376: N& lr = lower[i + 1]; 23376: add_octagonal_constraint(i + 1, i, lr); 23376: assign_r(lr, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: ++m_ite; 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::refine_no_check(const Constraint& c) { 23376: ((void) 0); 23376: const dimension_type c_space_dim = c.space_dimension(); 23376: ((void) 0); 23376: 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_term; Parma_Polyhedra_Library::Coefficient& term = holder_term.item(); 23376: 23376: if (!Octagonal_Shape_Helper 23376: ::extract_octagonal_difference(c, c_space_dim, num_vars, 23376: i, j, coeff, term)) { 23376: return; 23376: } 23376: 23376: if (num_vars == 0) { 23376: const Coefficient& c_inhomo = c.inhomogeneous_term(); 23376: 23376: if (c_inhomo < 0 23376: || (c_inhomo != 0 && c.is_equality()) 23376: || (c_inhomo == 0 && c.is_strict_inequality())) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: 23376: typename OR_Matrix::row_iterator i_iter = matrix.row_begin() + i; 23376: typename OR_Matrix::row_reference_type m_i = *i_iter; 23376: N& m_i_j = m_i[j]; 23376: 23376: if (coeff < 0) { 23376: neg_assign(coeff); 23376: } 23376: 23376: bool is_oct_changed = false; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, term, coeff); 23376: if (m_i_j > d) { 23376: m_i_j = d; 23376: is_oct_changed = true; 23376: } 23376: 23376: if (c.is_equality()) { 23376: 23376: if (i % 2 == 0) { 23376: ++i_iter; 23376: } 23376: else { 23376: --i_iter; 23376: } 23376: 23376: typename OR_Matrix::row_reference_type m_ci = *i_iter; 23376: using namespace Implementation::Octagonal_Shapes; 23376: dimension_type cj = coherent_index(j); 23376: N& m_ci_cj = m_ci[cj]; 23376: 23376: neg_assign(term); 23376: div_round_up(d, term, coeff); 23376: if (m_ci_cj > d) { 23376: m_ci_cj = d; 23376: is_oct_changed = true; 23376: } 23376: } 23376: 23376: 23376: if (is_oct_changed && marked_strongly_closed()) { 23376: reset_strongly_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: dimension_type 23376: Octagonal_Shape::affine_dimension() const { 23376: const dimension_type n_rows = matrix.num_rows(); 23376: 23376: if (n_rows == 0) { 23376: return 0; 23376: } 23376: 23376: 23376: 23376: strong_closure_assign(); 23376: if (marked_empty()) { 23376: return 0; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: std::vector leaders; 23376: compute_leaders(leaders); 23376: 23376: 23376: 23376: dimension_type affine_dim = 0; 23376: for (dimension_type i = 0; i < n_rows; i += 2) { 23376: 23376: if (leaders[i] == i && leaders[i + 1] == i + 1) { 23376: ++affine_dim; 23376: } 23376: } 23376: 23376: return affine_dim; 23376: } 23376: 23376: template 23376: Congruence_System 23376: Octagonal_Shape::minimized_congruences() const { 23376: 23376: 23376: strong_closure_assign(); 23376: Congruence_System cgs(space_dim); 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: cgs = Congruence_System::zero_dim_empty(); 23376: } 23376: return cgs; 23376: } 23376: 23376: if (marked_empty()) { 23376: cgs.insert(Congruence::zero_dim_false()); 23376: return cgs; 23376: } 23376: 23376: 23376: 23376: 23376: std::vector leaders; 23376: compute_leaders(leaders); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: for (dimension_type i = 0, i_end = 2*space_dim; i != i_end; i += 2) { 23376: const dimension_type lead_i = leaders[i]; 23376: if (i == lead_i) { 23376: if (leaders[i + 1] == i) { 23376: 23376: goto singular; 23376: } 23376: else { 23376: 23376: continue; 23376: } 23376: } 23376: else { 23376: 23376: if (leaders[i + 1] == lead_i) { 23376: 23376: goto singular; 23376: } 23376: else { 23376: 23376: goto non_singular; 23376: } 23376: } 23376: 23376: singular: 23376: 23376: 23376: { 23376: const Variable x(i/2); 23376: const N& c_ii_i = matrix[i + 1][i]; 23376: 23376: 23376: 23376: 23376: numer_denom(c_ii_i, numer, denom); 23376: denom *= 2; 23376: cgs.insert(denom*x == numer); 23376: } 23376: continue; 23376: 23376: non_singular: 23376: 23376: 23376: { 23376: const N& c_i_li = matrix[i][lead_i]; 23376: 23376: 23376: 23376: 23376: 23376: const Variable x(lead_i/2); 23376: const Variable y(i/2); 23376: numer_denom(c_i_li, numer, denom); 23376: if (lead_i % 2 == 0) { 23376: cgs.insert(denom*x - denom*y == numer); 23376: } 23376: else { 23376: cgs.insert(denom*x + denom*y + numer == 0); 23376: } 23376: } 23376: continue; 23376: } 23376: return cgs; 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::concatenate_assign(const Octagonal_Shape& y) { 23376: 23376: 23376: if (y.space_dim == 0) { 23376: if (y.marked_empty()) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: 23376: 23376: if (space_dim == 0 && marked_empty()) { 23376: add_space_dimensions_and_embed(y.space_dim); 23376: return; 23376: } 23376: 23376: 23376: 23376: dimension_type old_num_rows = matrix.num_rows(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: add_space_dimensions_and_embed(y.space_dim); 23376: typename OR_Matrix::const_element_iterator 23376: y_it = y.matrix.element_begin(); 23376: for (typename OR_Matrix::row_iterator 23376: i = matrix.row_begin() + old_num_rows, 23376: matrix_row_end = matrix.row_end(); i != matrix_row_end; ++i) { 23376: typename OR_Matrix::row_reference_type r = *i; 23376: dimension_type rs_i = i.row_size(); 23376: for (dimension_type j = old_num_rows; j < rs_i; ++j, ++y_it) { 23376: r[j] = *y_it; 23376: } 23376: } 23376: 23376: 23376: if (marked_strongly_closed()) { 23376: reset_strongly_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::contains(const Octagonal_Shape& y) const { 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("contains(y)", y); 23376: } 23376: 23376: if (space_dim == 0) { 23376: 23376: 23376: 23376: 23376: return marked_empty() ? y.marked_empty() : true; 23376: } 23376: 23376: 23376: y.strong_closure_assign(); 23376: 23376: if (y.marked_empty()) { 23376: return true; 23376: } 23376: 23376: 23376: if (is_empty()) { 23376: return false; 23376: } 23376: 23376: 23376: 23376: for (typename OR_Matrix::const_element_iterator 23376: i = matrix.element_begin(), j = y.matrix.element_begin(), 23376: matrix_element_end = matrix.element_end(); 23376: i != matrix_element_end; ++i, ++j) { 23376: if (*i < *j) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::is_disjoint_from(const Octagonal_Shape& y) const { 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("is_disjoint_from(y)", y); 23376: } 23376: 23376: 23376: strong_closure_assign(); 23376: if (marked_empty()) { 23376: return true; 23376: } 23376: y.strong_closure_assign(); 23376: if (y.marked_empty()) { 23376: return true; 23376: } 23376: # 1257 "../../src/Octagonal_Shape_templates.hh" 23376: const dimension_type n_rows = matrix.num_rows(); 23376: 23376: typedef typename OR_Matrix::const_row_iterator row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type row_reference; 23376: 23376: const row_iterator m_begin = matrix.row_begin(); 23376: const row_iterator m_end = matrix.row_end(); 23376: 23376: const row_iterator y_begin = y.matrix.row_begin(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_neg_y_ci_cj; N& neg_y_ci_cj = holder_neg_y_ci_cj.item(); 23376: for (row_iterator i_iter = m_begin; i_iter != m_end; ++i_iter) { 23376: using namespace Implementation::Octagonal_Shapes; 23376: const dimension_type i = i_iter.index(); 23376: const dimension_type ci = coherent_index(i); 23376: const dimension_type rs_i = i_iter.row_size(); 23376: row_reference m_i = *i_iter; 23376: for (dimension_type j = 0; j < n_rows; ++j) { 23376: const dimension_type cj = coherent_index(j); 23376: row_reference m_cj = *(m_begin + cj); 23376: const N& m_i_j = (j < rs_i) ? m_i[j] : m_cj[ci]; 23376: row_reference y_ci = *(y_begin + ci); 23376: row_reference y_j = *(y_begin + j); 23376: const N& y_ci_cj = (j < rs_i) ? y_ci[cj] : y_j[i]; 23376: neg_assign_r(neg_y_ci_cj, y_ci_cj, ROUND_UP); 23376: if (m_i_j < neg_y_ci_cj) { 23376: return true; 23376: } 23376: } 23376: } 23376: return false; 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::is_universe() const { 23376: 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return true; 23376: } 23376: 23376: 23376: for (typename OR_Matrix::const_element_iterator 23376: i = matrix.element_begin(), matrix_element_end = matrix.element_end(); 23376: i != matrix_element_end; 23376: ++i) { 23376: if (!is_plus_infinity(*i)) { 23376: return false; 23376: } 23376: } 23376: 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::is_bounded() const { 23376: strong_closure_assign(); 23376: 23376: if (marked_empty() || space_dim == 0) { 23376: return true; 23376: } 23376: 23376: 23376: for (typename OR_Matrix::const_row_iterator i = matrix.row_begin(), 23376: matrix_row_end = matrix.row_end(); i != matrix_row_end; ++i) { 23376: typename OR_Matrix::const_row_reference_type x_i = *i; 23376: const dimension_type i_index = i.index(); 23376: for (dimension_type j = i.row_size(); j-- > 0; ) { 23376: if (i_index != j) { 23376: if (is_plus_infinity(x_i[j])) { 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::contains_integer_point() const { 23376: 23376: if (is_empty()) { 23376: return false; 23376: } 23376: if (space_dim == 0) { 23376: return true; 23376: } 23376: 23376: 23376: if (std::numeric_limits::is_integer) { 23376: return !tight_coherence_would_make_empty(); 23376: } 23376: 23376: 23376: 23376: 23376: Octagonal_Shape oct_z(space_dim); 23376: oct_z.reset_strongly_closed(); 23376: 23376: typedef Octagonal_Shape::N Z; 23376: bool all_integers = true; 23376: typename OR_Matrix::const_element_iterator x_i = matrix.element_begin(); 23376: for (typename OR_Matrix::element_iterator 23376: z_i = oct_z.matrix.element_begin(), 23376: z_end = oct_z.matrix.element_end(); z_i != z_end; ++z_i, ++x_i) { 23376: const N& d = *x_i; 23376: if (is_plus_infinity(d)) { 23376: continue; 23376: } 23376: if (is_integer(d)) { 23376: assign_r(*z_i, d, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: all_integers = false; 23376: assign_r(*z_i, d, ROUND_DOWN); 23376: } 23376: } 23376: 23376: if (all_integers) { 23376: 23376: oct_z.set_strongly_closed(); 23376: } 23376: else { 23376: 23376: oct_z.strong_closure_assign(); 23376: if (oct_z.marked_empty()) { 23376: return false; 23376: } 23376: } 23376: return !oct_z.tight_coherence_would_make_empty(); 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::frequency(const Linear_Expression& expr, 23376: Coefficient& freq_n, Coefficient& freq_d, 23376: Coefficient& val_n, Coefficient& val_d) const { 23376: 23376: if (space_dim < expr.space_dimension()) { 23376: throw_dimension_incompatible("frequency(e, ...)", "e", expr); 23376: } 23376: # 1415 "../../src/Octagonal_Shape_templates.hh" 23376: if (space_dim == 0) { 23376: if (is_empty()) { 23376: return false; 23376: } 23376: freq_n = 0; 23376: freq_d = 1; 23376: val_n = expr.inhomogeneous_term(); 23376: val_d = 1; 23376: return true; 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_j; Parma_Polyhedra_Library::Coefficient& coeff_j = holder_coeff_j.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: Linear_Expression le = expr; 23376: 23376: 23376: 23376: bool constant_v = false; 23376: 23376: typedef typename OR_Matrix::const_row_iterator row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type row_reference; 23376: 23376: const row_iterator m_begin = matrix.row_begin(); 23376: const row_iterator m_end = matrix.row_end(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_val_denom; Parma_Polyhedra_Library::Coefficient& val_denom = holder_val_denom.item(); 23376: val_denom = 1; 23376: 23376: for (row_iterator i_iter = m_begin; i_iter != m_end; i_iter += 2) { 23376: constant_v = false; 23376: dimension_type i = i_iter.index(); 23376: const Variable v(i/2); 23376: coeff = le.coefficient(v); 23376: if (coeff == 0) { 23376: constant_v = true; 23376: continue; 23376: } 23376: 23376: row_reference m_i = *i_iter; 23376: row_reference m_ii = *(i_iter + 1); 23376: const N& m_i_ii = m_i[i + 1]; 23376: const N& m_ii_i = m_ii[i]; 23376: if ((!is_plus_infinity(m_i_ii) && !is_plus_infinity(m_ii_i)) 23376: && (is_additive_inverse(m_i_ii, m_ii_i))) { 23376: 23376: numer_denom(m_i_ii, numer, denom); 23376: denom *= 2; 23376: le -= coeff*v; 23376: le *= denom; 23376: le -= numer*coeff; 23376: val_denom *= denom; 23376: constant_v = true; 23376: continue; 23376: } 23376: 23376: 23376: else { 23376: ((void) 0); 23376: using namespace Implementation::Octagonal_Shapes; 23376: const dimension_type ci = coherent_index(i); 23376: for (row_iterator j_iter = i_iter; j_iter != m_end; j_iter += 2) { 23376: dimension_type j = j_iter.index(); 23376: const Variable vj(j/2); 23376: coeff_j = le.coefficient(vj); 23376: if (coeff_j == 0) { 23376: 23376: continue; 23376: } 23376: const dimension_type cj = coherent_index(j); 23376: const dimension_type cjj = coherent_index(j + 1); 23376: 23376: row_reference m_j = *(m_begin + j); 23376: row_reference m_cj = *(m_begin + cj); 23376: const N& m_j_i = m_j[i]; 23376: const N& m_i_j = m_cj[ci]; 23376: if ((!is_plus_infinity(m_i_j) && !is_plus_infinity(m_j_i)) 23376: && (is_additive_inverse(m_i_j, m_j_i))) { 23376: 23376: 23376: 23376: numer_denom(m_i_j, numer, denom); 23376: le -= coeff*v; 23376: le += coeff*vj; 23376: le *= denom; 23376: le -= numer*coeff; 23376: val_denom *= denom; 23376: constant_v = true; 23376: break; 23376: } 23376: 23376: m_j = *(m_begin + (j + 1)); 23376: m_cj = *(m_begin + cjj); 23376: const N& m_j_i1 = m_j[i]; 23376: const N& m_i_j1 = m_cj[ci]; 23376: if ((!is_plus_infinity(m_i_j1) && !is_plus_infinity(m_j_i1)) 23376: && (is_additive_inverse(m_i_j1, m_j_i1))) { 23376: 23376: 23376: 23376: numer_denom(m_i_j1, numer, denom); 23376: le -= coeff*v; 23376: le -= coeff*vj; 23376: le *= denom; 23376: le -= numer*coeff; 23376: val_denom *= denom; 23376: constant_v = true; 23376: break; 23376: } 23376: } 23376: if (!constant_v) { 23376: 23376: return false; 23376: } 23376: } 23376: } 23376: if (!constant_v) { 23376: 23376: return false; 23376: } 23376: 23376: 23376: freq_n = 0; 23376: freq_d = 1; 23376: 23376: 23376: normalize2(le.inhomogeneous_term(), val_denom, val_n, val_d); 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::constrains(const Variable var) const { 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dimension() < var_space_dim) { 23376: throw_dimension_incompatible("constrains(v)", "v", var); 23376: } 23376: 23376: 23376: 23376: if (marked_empty()) { 23376: return true; 23376: } 23376: 23376: 23376: const dimension_type n_v = 2*(var_space_dim - 1); 23376: typename OR_Matrix::const_row_iterator m_iter = matrix.row_begin() + n_v; 23376: typename OR_Matrix::const_row_reference_type r_v = *m_iter; 23376: typename OR_Matrix::const_row_reference_type r_cv = *(++m_iter); 23376: for (dimension_type h = m_iter.row_size(); h-- > 0; ) { 23376: if (!is_plus_infinity(r_v[h]) || !is_plus_infinity(r_cv[h])) { 23376: return true; 23376: } 23376: } 23376: ++m_iter; 23376: for (typename OR_Matrix::const_row_iterator m_end = matrix.row_end(); 23376: m_iter != m_end; ++m_iter) { 23376: typename OR_Matrix::const_row_reference_type r = *m_iter; 23376: if (!is_plus_infinity(r[n_v]) || !is_plus_infinity(r[n_v + 1])) { 23376: return true; 23376: } 23376: } 23376: 23376: 23376: 23376: return is_empty(); 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::is_strong_coherent() const { 23376: 23376: 23376: const dimension_type num_rows = matrix.num_rows(); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_semi_sum; N& semi_sum = holder_semi_sum.item(); 23376: 23376: 23376: 23376: 23376: 23376: for (dimension_type i = num_rows; i-- > 0; ) { 23376: typename OR_Matrix::const_row_iterator iter = matrix.row_begin() + i; 23376: typename OR_Matrix::const_row_reference_type m_i = *iter; 23376: using namespace Implementation::Octagonal_Shapes; 23376: const N& m_i_ci = m_i[coherent_index(i)]; 23376: for (dimension_type j = matrix.row_size(i); j-- > 0; ) { 23376: 23376: if (i != j) { 23376: const N& m_cj_j = matrix[coherent_index(j)][j]; 23376: if (!is_plus_infinity(m_i_ci) 23376: && !is_plus_infinity(m_cj_j)) { 23376: 23376: 23376: add_assign_r(semi_sum, m_i_ci, m_cj_j, ROUND_UP); 23376: div_2exp_assign_r(semi_sum, semi_sum, 1, ROUND_UP); 23376: if (m_i[j] > semi_sum) { 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::is_strongly_reduced() const { 23376: 23376: 23376: 23376: if (marked_empty()) { 23376: return true; 23376: } 23376: 23376: Octagonal_Shape x = *this; 23376: 23376: 23376: for (typename OR_Matrix::const_row_iterator iter = matrix.row_begin(), 23376: matrix_row_end = matrix.row_end(); iter != matrix_row_end; ++iter) { 23376: typename OR_Matrix::const_row_reference_type m_i = *iter; 23376: const dimension_type i = iter.index(); 23376: for (dimension_type j = iter.row_size(); j-- > 0; ) { 23376: if (!is_plus_infinity(m_i[j])) { 23376: Octagonal_Shape x_copy = *this; 23376: assign_r(x_copy.matrix[i][j], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: if (x == x_copy) { 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::bounds(const Linear_Expression& expr, 23376: const bool from_above) const { 23376: 23376: 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible((from_above 23376: ? "bounds_from_above(e)" 23376: : "bounds_from_below(e)"), "e", expr); 23376: } 23376: strong_closure_assign(); 23376: 23376: 23376: if (space_dim == 0 || marked_empty()) { 23376: return true; 23376: } 23376: 23376: 23376: 23376: const Constraint& c = (from_above) ? expr <= 0 : expr >= 0; 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_term; Parma_Polyhedra_Library::Coefficient& term = holder_term.item(); 23376: if (Octagonal_Shape_Helper 23376: ::extract_octagonal_difference(c, c.space_dimension(), num_vars, 23376: i, j, coeff, term)) { 23376: if (num_vars == 0) { 23376: return true; 23376: } 23376: 23376: typename OR_Matrix::const_row_iterator i_iter = matrix.row_begin() + i; 23376: typename OR_Matrix::const_row_reference_type m_i = *i_iter; 23376: return !is_plus_infinity(m_i[j]); 23376: } 23376: else { 23376: 23376: Optimization_Mode mode_bounds = 23376: from_above ? MAXIMIZATION : MINIMIZATION; 23376: MIP_Problem mip(space_dim, constraints(), expr, mode_bounds); 23376: return mip.solve() == OPTIMIZED_MIP_PROBLEM; 23376: } 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::max_min(const Linear_Expression& expr, 23376: const bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, 23376: bool& included) const { 23376: 23376: 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible((maximize 23376: ? "maximize(e, ...)" 23376: : "minimize(e, ...)"), "e", expr); 23376: } 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: else { 23376: ext_n = expr.inhomogeneous_term(); 23376: ext_d = 1; 23376: included = true; 23376: return true; 23376: } 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: 23376: 23376: 23376: const Constraint& c = (maximize) ? expr <= 0 : expr >= 0; 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_term; Parma_Polyhedra_Library::Coefficient& term = holder_term.item(); 23376: if (!Octagonal_Shape_Helper 23376: ::extract_octagonal_difference(c, c.space_dimension(), num_vars, 23376: i, j, coeff, term)) { 23376: 23376: Optimization_Mode max_min = (maximize) ? MAXIMIZATION : MINIMIZATION; 23376: MIP_Problem mip(space_dim, constraints(), expr, max_min); 23376: if (mip.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: mip.optimal_value(ext_n, ext_d); 23376: included = true; 23376: return true; 23376: } 23376: else { 23376: 23376: return false; 23376: } 23376: } 23376: else { 23376: 23376: if (num_vars == 0) { 23376: ext_n = expr.inhomogeneous_term(); 23376: ext_d = 1; 23376: included = true; 23376: return true; 23376: } 23376: 23376: 23376: typename OR_Matrix::const_row_iterator i_iter = matrix.row_begin() + i; 23376: typename OR_Matrix::const_row_reference_type m_i = *i_iter; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: if (!is_plus_infinity(m_i[j])) { 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign(minus_b, b); 23376: const Coefficient& sc_b = maximize ? b : minus_b; 23376: assign_r(d, sc_b, ROUND_UP); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_expr; N& coeff_expr = holder_coeff_expr.item(); 23376: const Coefficient& coeff_i = expr.coefficient(Variable(i/2)); 23376: const int sign_i = sgn(coeff_i); 23376: if (sign_i > 0) { 23376: assign_r(coeff_expr, coeff_i, ROUND_UP); 23376: } 23376: else { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_coeff_i; Parma_Polyhedra_Library::Coefficient& minus_coeff_i = holder_minus_coeff_i.item(); 23376: neg_assign(minus_coeff_i, coeff_i); 23376: assign_r(coeff_expr, minus_coeff_i, ROUND_UP); 23376: } 23376: 23376: if (num_vars == 1) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_m_i_j; N& m_i_j = holder_m_i_j.item(); 23376: div_2exp_assign_r(m_i_j, m_i[j], 1, ROUND_UP); 23376: add_mul_assign_r(d, coeff_expr, m_i_j, ROUND_UP); 23376: } 23376: else { 23376: add_mul_assign_r(d, coeff_expr, m_i[j], ROUND_UP); 23376: } 23376: numer_denom(d, ext_n, ext_d); 23376: if (!maximize) { 23376: neg_assign(ext_n); 23376: } 23376: included = true; 23376: return true; 23376: } 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::max_min(const Linear_Expression& expr, 23376: const bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, 23376: bool& included, Generator& g) const { 23376: 23376: 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible((maximize 23376: ? "maximize(e, ...)" 23376: : "minimize(e, ...)"), "e", expr); 23376: } 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: else { 23376: ext_n = expr.inhomogeneous_term(); 23376: ext_d = 1; 23376: included = true; 23376: g = point(); 23376: return true; 23376: } 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: if (!is_universe()) { 23376: 23376: 23376: Optimization_Mode max_min = (maximize) ? MAXIMIZATION : MINIMIZATION; 23376: MIP_Problem mip(space_dim, constraints(), expr, max_min); 23376: if (mip.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = mip.optimizing_point(); 23376: mip.evaluate_objective_function(g, ext_n, ext_d); 23376: included = true; 23376: return true; 23376: } 23376: } 23376: 23376: return false; 23376: } 23376: 23376: template 23376: Poly_Con_Relation 23376: Octagonal_Shape::relation_with(const Congruence& cg) const { 23376: dimension_type cg_space_dim = cg.space_dimension(); 23376: 23376: 23376: if (cg_space_dim > space_dim) { 23376: throw_dimension_incompatible("relation_with(cg)", cg); 23376: } 23376: 23376: 23376: 23376: if (cg.is_equality()) { 23376: Constraint c(cg); 23376: return relation_with(c); 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: 23376: if (space_dim == 0) { 23376: if (cg.is_inconsistent()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: 23376: 23376: Linear_Expression le(cg.expression()); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_numer; Parma_Polyhedra_Library::Coefficient& min_numer = holder_min_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_denom; Parma_Polyhedra_Library::Coefficient& min_denom = holder_min_denom.item(); 23376: bool min_included; 23376: bool bounded_below = minimize(le, min_numer, min_denom, min_included); 23376: 23376: 23376: 23376: if (!bounded_below) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_numer; Parma_Polyhedra_Library::Coefficient& max_numer = holder_max_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_denom; Parma_Polyhedra_Library::Coefficient& max_denom = holder_max_denom.item(); 23376: bool max_included; 23376: bool bounded_above = maximize(le, max_numer, max_denom, max_included); 23376: 23376: 23376: 23376: if (!bounded_above) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_signed_distance; Parma_Polyhedra_Library::Coefficient& signed_distance = holder_signed_distance.item(); 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_value; Parma_Polyhedra_Library::Coefficient& min_value = holder_min_value.item(); 23376: min_value = min_numer / min_denom; 23376: const Coefficient& modulus = cg.modulus(); 23376: signed_distance = min_value % modulus; 23376: min_value -= signed_distance; 23376: if (min_value * min_denom < min_numer) { 23376: min_value += modulus; 23376: } 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_value; Parma_Polyhedra_Library::Coefficient& max_value = holder_max_value.item(); 23376: max_value = max_numer / max_denom; 23376: signed_distance = max_value % modulus; 23376: max_value += signed_distance; 23376: if (max_value * max_denom > max_numer) { 23376: max_value -= modulus; 23376: } 23376: 23376: 23376: 23376: 23376: if (max_value < min_value) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: } 23376: 23376: template 23376: Poly_Con_Relation 23376: Octagonal_Shape::relation_with(const Constraint& c) const { 23376: dimension_type c_space_dim = c.space_dimension(); 23376: 23376: 23376: if (c_space_dim > space_dim) { 23376: throw_dimension_incompatible("relation_with(c)", c); 23376: } 23376: 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: 23376: if (space_dim == 0) { 23376: 23376: if ((c.is_equality() && c.inhomogeneous_term() != 0) 23376: || (c.is_inequality() && c.inhomogeneous_term() < 0)) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else if (c.is_strict_inequality() && c.inhomogeneous_term() == 0) { 23376: 23376: 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: 23376: 23376: else if (c.is_equality() || c.inhomogeneous_term() == 0) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: else { 23376: 23376: 23376: 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c_term; Parma_Polyhedra_Library::Coefficient& c_term = holder_c_term.item(); 23376: if (!Octagonal_Shape_Helper 23376: ::extract_octagonal_difference(c, c_space_dim, num_vars, 23376: i, j, coeff, c_term)) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression le; 23376: le.set_space_dimension(c.space_dimension()); 23376: le.linear_combine(c.expr, Coefficient_one(), Coefficient_one(), 23376: 1, c_space_dim + 1); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_numer; Parma_Polyhedra_Library::Coefficient& max_numer = holder_max_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_denom; Parma_Polyhedra_Library::Coefficient& max_denom = holder_max_denom.item(); 23376: bool max_included; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_numer; Parma_Polyhedra_Library::Coefficient& min_numer = holder_min_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_denom; Parma_Polyhedra_Library::Coefficient& min_denom = holder_min_denom.item(); 23376: bool min_included; 23376: bool bounded_above = maximize(le, max_numer, max_denom, max_included); 23376: bool bounded_below = minimize(le, min_numer, min_denom, min_included); 23376: if (!bounded_above) { 23376: if (!bounded_below) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: min_numer += c.inhomogeneous_term() * min_denom; 23376: switch (sgn(min_numer)) { 23376: case 1: 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: return Poly_Con_Relation::is_included(); 23376: case 0: 23376: if (c.is_strict_inequality() || c.is_equality()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: return Poly_Con_Relation::is_included(); 23376: case -1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: } 23376: if (!bounded_below) { 23376: max_numer += c.inhomogeneous_term() * max_denom; 23376: switch (sgn(max_numer)) { 23376: case 1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case 0: 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: else { 23376: max_numer += c.inhomogeneous_term() * max_denom; 23376: min_numer += c.inhomogeneous_term() * min_denom; 23376: switch (sgn(max_numer)) { 23376: case 1: 23376: switch (sgn(min_numer)) { 23376: case 1: 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: return Poly_Con_Relation::is_included(); 23376: case 0: 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: return Poly_Con_Relation::is_included(); 23376: case -1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: case 0: 23376: if (min_numer == 0) { 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint() 23376: && Poly_Con_Relation::saturates(); 23376: } 23376: return Poly_Con_Relation::is_included() 23376: && Poly_Con_Relation::saturates(); 23376: } 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: } 23376: 23376: if (num_vars == 0) { 23376: 23376: switch (sgn(c.inhomogeneous_term())) { 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: case 0: 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: case 1: 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: } 23376: 23376: 23376: typename OR_Matrix::const_row_iterator i_iter = matrix.row_begin() + i; 23376: typename OR_Matrix::const_row_reference_type m_i = *i_iter; 23376: const N& m_i_j = m_i[j]; 23376: 23376: if (coeff < 0) { 23376: neg_assign(coeff); 23376: } 23376: 23376: 23376: 23376: if (i % 2 == 0) { 23376: ++i_iter; 23376: } 23376: else { 23376: --i_iter; 23376: } 23376: typename OR_Matrix::const_row_reference_type m_ci = *i_iter; 23376: using namespace Implementation::Octagonal_Shapes; 23376: const N& m_ci_cj = m_ci[coherent_index(j)]; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_x; mpq_class& q_x = holder_q_x.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_y; mpq_class& q_y = holder_q_y.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; mpq_class& d = holder_d.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d1; mpq_class& d1 = holder_d1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c_denom; mpq_class& c_denom = holder_c_denom.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_denom; mpq_class& q_denom = holder_q_denom.item(); 23376: assign_r(c_denom, coeff, ROUND_NOT_NEEDED); 23376: assign_r(d, c_term, ROUND_NOT_NEEDED); 23376: neg_assign_r(d1, d, ROUND_NOT_NEEDED); 23376: div_assign_r(d, d, c_denom, ROUND_NOT_NEEDED); 23376: div_assign_r(d1, d1, c_denom, ROUND_NOT_NEEDED); 23376: 23376: if (is_plus_infinity(m_i_j)) { 23376: if (!is_plus_infinity(m_ci_cj)) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: numer_denom(m_ci_cj, numer, denom); 23376: assign_r(q_denom, denom, ROUND_NOT_NEEDED); 23376: assign_r(q_y, numer, ROUND_NOT_NEEDED); 23376: div_assign_r(q_y, q_y, q_denom, ROUND_NOT_NEEDED); 23376: if (q_y < d1) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: if (q_y == d1 && c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: 23376: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: 23376: 23376: numer_denom(m_i_j, numer, denom); 23376: assign_r(q_denom, denom, ROUND_NOT_NEEDED); 23376: assign_r(q_x, numer, ROUND_NOT_NEEDED); 23376: div_assign_r(q_x, q_x, q_denom, ROUND_NOT_NEEDED); 23376: 23376: if (!is_plus_infinity(m_ci_cj)) { 23376: numer_denom(m_ci_cj, numer, denom); 23376: assign_r(q_denom, denom, ROUND_NOT_NEEDED); 23376: assign_r(q_y, numer, ROUND_NOT_NEEDED); 23376: div_assign_r(q_y, q_y, q_denom, ROUND_NOT_NEEDED); 23376: if (q_x == d && q_y == d1) { 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: 23376: if (q_y < d1) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: if (q_y == d1 && c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: if (d > q_x) { 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: if (d == q_x && c.is_nonstrict_inequality()) { 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: 23376: template 23376: Poly_Gen_Relation 23376: Octagonal_Shape::relation_with(const Generator& g) const { 23376: const dimension_type g_space_dim = g.space_dimension(); 23376: 23376: 23376: if (space_dim < g_space_dim) { 23376: throw_dimension_incompatible("relation_with(g)", g); 23376: } 23376: 23376: 23376: 23376: strong_closure_assign(); 23376: 23376: 23376: if (marked_empty()) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return Poly_Gen_Relation::subsumes(); 23376: } 23376: 23376: const bool is_line = g.is_line(); 23376: const bool is_line_or_ray = g.is_line_or_ray(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: typedef typename OR_Matrix::const_row_iterator row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type row_reference; 23376: 23376: const row_iterator m_begin = matrix.row_begin(); 23376: const row_iterator m_end = matrix.row_end(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_product; Parma_Polyhedra_Library::Coefficient& product = holder_product.item(); 23376: 23376: 23376: for (row_iterator i_iter = m_begin; i_iter != m_end; i_iter += 2) { 23376: dimension_type i = i_iter.index(); 23376: row_reference m_i = *i_iter; 23376: row_reference m_ii = *(i_iter + 1); 23376: const N& m_i_ii = m_i[i + 1]; 23376: const N& m_ii_i = m_ii[i]; 23376: 23376: const Variable x(i/2); 23376: const Coefficient& g_coeff_x 23376: = (x.space_dimension() > g_space_dim) 23376: ? Coefficient_zero() 23376: : g.coefficient(x); 23376: if (is_additive_inverse(m_i_ii, m_ii_i)) { 23376: 23376: 23376: 23376: 23376: numer_denom(m_ii_i, numer, denom); 23376: denom *= 2; 23376: product = denom * g_coeff_x; 23376: 23376: 23376: if (!is_line_or_ray) { 23376: neg_assign(numer); 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: 23376: else { 23376: if (!is_plus_infinity(m_i_ii)) { 23376: 23376: 23376: 23376: numer_denom(m_i_ii, numer, denom); 23376: denom *= -2; 23376: product = denom * g_coeff_x; 23376: 23376: 23376: if (!is_line_or_ray) { 23376: neg_assign(numer); 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (is_line && product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: else 23376: 23376: 23376: 23376: 23376: if (product > 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: if (!is_plus_infinity(m_ii_i)) { 23376: 23376: numer_denom(m_ii_i, numer, denom); 23376: denom *= 2; 23376: product = denom * g_coeff_x; 23376: 23376: 23376: if (!is_line_or_ray) { 23376: neg_assign(numer); 23376: add_mul_assign(product, numer , g.divisor()); 23376: } 23376: if (is_line && product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: if (product > 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: for (row_iterator i_iter = m_begin ; i_iter != m_end; i_iter += 2) { 23376: dimension_type i = i_iter.index(); 23376: row_reference m_i = *i_iter; 23376: row_reference m_ii = *(i_iter + 1); 23376: for (dimension_type j = 0; j < i; j += 2) { 23376: const N& m_i_j = m_i[j]; 23376: const N& m_ii_jj = m_ii[j + 1]; 23376: const N& m_ii_j = m_ii[j]; 23376: const N& m_i_jj = m_i[j + 1]; 23376: const Variable x(j/2); 23376: const Variable y(i/2); 23376: const Coefficient& g_coeff_x 23376: = (x.space_dimension() > g_space_dim) 23376: ? Coefficient_zero() 23376: : g.coefficient(x); 23376: const Coefficient& g_coeff_y 23376: = (y.space_dimension() > g_space_dim) 23376: ? Coefficient_zero() 23376: : g.coefficient(y); 23376: 23376: const bool difference_is_equality = is_additive_inverse(m_ii_jj, m_i_j); 23376: if (difference_is_equality) { 23376: 23376: 23376: 23376: 23376: 23376: numer_denom(m_i_j, numer, denom); 23376: product = denom * g_coeff_x; 23376: neg_assign(denom); 23376: add_mul_assign(product, denom, g_coeff_y); 23376: 23376: 23376: if (!is_line_or_ray) { 23376: neg_assign(numer); 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: else { 23376: if (!is_plus_infinity(m_i_j)) { 23376: 23376: 23376: 23376: 23376: 23376: numer_denom(m_i_j, numer, denom); 23376: product = denom * g_coeff_x; 23376: neg_assign(denom); 23376: add_mul_assign(product, denom, g_coeff_y); 23376: 23376: 23376: if (!is_line_or_ray) { 23376: neg_assign(numer); 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (is_line && product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: else if (product > 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: if (!is_plus_infinity(m_ii_jj)) { 23376: 23376: 23376: 23376: 23376: 23376: numer_denom(m_ii_jj, numer, denom); 23376: product = denom * g_coeff_y; 23376: neg_assign(denom); 23376: add_mul_assign(product, denom, g_coeff_x); 23376: 23376: 23376: if (!is_line_or_ray) { 23376: neg_assign(numer); 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (is_line && product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: else if (product > 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: } 23376: 23376: const bool sum_is_equality = is_additive_inverse(m_i_jj, m_ii_j); 23376: if (sum_is_equality) { 23376: 23376: 23376: 23376: 23376: 23376: numer_denom(m_ii_j, numer, denom); 23376: product = denom * g_coeff_x; 23376: add_mul_assign(product, denom, g_coeff_y); 23376: 23376: 23376: if (!is_line_or_ray) { 23376: neg_assign(numer); 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: else { 23376: if (!is_plus_infinity(m_i_jj)) { 23376: 23376: 23376: 23376: 23376: 23376: numer_denom(m_i_jj, numer, denom); 23376: neg_assign(denom); 23376: product = denom * g_coeff_x; 23376: add_mul_assign(product, denom, g_coeff_y); 23376: 23376: 23376: if (!is_line_or_ray) { 23376: neg_assign(numer); 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (is_line && product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: else if (product > 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: if (!is_plus_infinity(m_ii_j)) { 23376: 23376: 23376: 23376: 23376: 23376: numer_denom(m_ii_j, numer, denom); 23376: product = denom * g_coeff_x; 23376: add_mul_assign(product, denom, g_coeff_y); 23376: 23376: 23376: if (!is_line_or_ray) { 23376: neg_assign(numer); 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (is_line && product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: else if (product > 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: return Poly_Gen_Relation::subsumes(); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::strong_closure_assign() const { 23376: 23376: if (marked_empty() || marked_strongly_closed() || space_dim == 0) { 23376: return; 23376: } 23376: 23376: 23376: Octagonal_Shape& x = const_cast&>(*this); 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: 23376: const dimension_type n_rows = x.matrix.num_rows(); 23376: const row_iterator m_begin = x.matrix.row_begin(); 23376: const row_iterator m_end = x.matrix.row_end(); 23376: 23376: 23376: for (row_iterator i = m_begin; i != m_end; ++i) { 23376: ((void) 0); 23376: assign_r((*i)[i.index()], 0, ROUND_NOT_NEEDED); 23376: } 23376: # 2581 "../../src/Octagonal_Shape_templates.hh" 23376: typename OR_Matrix::element_iterator iter_ij; 23376: std::vector vec_k(n_rows); 23376: std::vector vec_ck(n_rows); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_sum1; N& sum1 = holder_sum1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_sum2; N& sum2 = holder_sum2.item(); 23376: row_reference x_k; 23376: row_reference x_ck; 23376: row_reference x_i; 23376: row_reference x_ci; 23376: 23376: 23376: 23376: for (int twice = 0; twice < 2; ++twice) { 23376: 23376: row_iterator x_k_iter = m_begin; 23376: row_iterator x_i_iter = m_begin; 23376: for (dimension_type k = 0; k < n_rows; k += 2) { 23376: const dimension_type ck = k + 1; 23376: 23376: iter_ij = x.matrix.element_begin(); 23376: 23376: x_k = *x_k_iter; 23376: ++x_k_iter; 23376: x_ck = *x_k_iter; 23376: ++x_k_iter; 23376: 23376: for (dimension_type i = 0; i <= k; i += 2) { 23376: const dimension_type ci = i + 1; 23376: 23376: vec_k[i] = x_k[i]; 23376: 23376: vec_k[ci] = x_k[ci]; 23376: 23376: vec_ck[i] = x_ck[i]; 23376: 23376: vec_ck[ci] = x_ck[ci]; 23376: } 23376: x_i_iter = x_k_iter; 23376: for (dimension_type i = k + 2; i < n_rows; i += 2) { 23376: const dimension_type ci = i + 1; 23376: x_i = *x_i_iter; 23376: ++x_i_iter; 23376: x_ci = *x_i_iter; 23376: ++x_i_iter; 23376: 23376: vec_k[i] = x_ci[ck]; 23376: 23376: vec_k[ci] = x_i[ck]; 23376: 23376: vec_ck[i] = x_ci[k]; 23376: 23376: vec_ck[ci] = x_i[k]; 23376: } 23376: 23376: for (dimension_type i = 0; i < n_rows; ++i) { 23376: using namespace Implementation::Octagonal_Shapes; 23376: const dimension_type ci = coherent_index(i); 23376: const N& vec_k_ci = vec_k[ci]; 23376: const N& vec_ck_ci = vec_ck[ci]; 23376: 23376: 23376: for (dimension_type j = 0; j <= i; ) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: add_assign_r(sum1, vec_ck_ci, vec_k[j], ROUND_UP); 23376: add_assign_r(sum2, vec_k_ci, vec_ck[j], ROUND_UP); 23376: min_assign(sum1, sum2); 23376: min_assign(*iter_ij, sum1); 23376: 23376: ++j; 23376: ++iter_ij; 23376: 23376: add_assign_r(sum1, vec_ck_ci, vec_k[j], ROUND_UP); 23376: add_assign_r(sum2, vec_k_ci, vec_ck[j], ROUND_UP); 23376: min_assign(sum1, sum2); 23376: min_assign(*iter_ij, sum1); 23376: 23376: ++j; 23376: ++iter_ij; 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: for (row_iterator i = m_begin; i != m_end; ++i) { 23376: N& x_i_i = (*i)[i.index()]; 23376: if (sgn(x_i_i) < 0) { 23376: x.set_empty(); 23376: return; 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: assign_r(x_i_i, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: 23376: 23376: x.strong_coherence_assign(); 23376: 23376: x.set_strongly_closed(); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::strong_coherence_assign() { 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_semi_sum; N& semi_sum = holder_semi_sum.item(); 23376: for (typename OR_Matrix::row_iterator i_iter = matrix.row_begin(), 23376: i_end = matrix.row_end(); i_iter != i_end; ++i_iter) { 23376: typename OR_Matrix::row_reference_type x_i = *i_iter; 23376: const dimension_type i = i_iter.index(); 23376: using namespace Implementation::Octagonal_Shapes; 23376: const N& x_i_ci = x_i[coherent_index(i)]; 23376: 23376: if (!is_plus_infinity(x_i_ci)) { 23376: for (dimension_type j = 0, rs_i = i_iter.row_size(); 23376: j < rs_i; ++j) { 23376: if (i != j) { 23376: const N& x_cj_j = matrix[coherent_index(j)][j]; 23376: if (!is_plus_infinity(x_cj_j)) { 23376: add_assign_r(semi_sum, x_i_ci, x_cj_j, ROUND_UP); 23376: div_2exp_assign_r(semi_sum, semi_sum, 1, ROUND_UP); 23376: min_assign(x_i[j], semi_sum); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::tight_coherence_would_make_empty() const { 23376: ((void) 0); 23376: ((void) 0); 23376: for (dimension_type i = 0; i < 2*space_dim; i += 2) { 23376: const dimension_type ci = i + 1; 23376: const N& mat_i_ci = matrix[i][ci]; 23376: if (!is_plus_infinity(mat_i_ci) 23376: 23376: && !is_even(mat_i_ci) 23376: 23376: && is_additive_inverse(mat_i_ci, matrix[ci][i])) { 23376: return true; 23376: } 23376: } 23376: return false; 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::tight_closure_assign() { 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_2746 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(std::numeric_limits::is_integer)>) } 23376: 23376: ; 23376: 23376: 23376: strong_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: if (tight_coherence_would_make_empty()) { 23376: set_empty(); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp_one; N& temp_one = holder_temp_one.item(); 23376: assign_r(temp_one, 1, ROUND_NOT_NEEDED); 23376: for (dimension_type i = 0; i < 2*space_dim; i += 2) { 23376: const dimension_type ci = i + 1; 23376: N& mat_i_ci = matrix[i][ci]; 23376: if (!is_plus_infinity(mat_i_ci) && !is_even(mat_i_ci)) { 23376: sub_assign_r(mat_i_ci, mat_i_ci, temp_one, ROUND_UP); 23376: } 23376: N& mat_ci_i = matrix[ci][i]; 23376: if (!is_plus_infinity(mat_ci_i) && !is_even(mat_ci_i)) { 23376: sub_assign_r(mat_ci_i, mat_ci_i, temp_one, ROUND_UP); 23376: } 23376: } 23376: 23376: strong_coherence_assign(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::incremental_strong_closure_assign(const Variable var) const { 23376: 23376: if (var.id() >= space_dim) { 23376: throw_dimension_incompatible("incremental_strong_closure_assign(v)", 23376: var.id()); 23376: } 23376: 23376: 23376: if (marked_empty() || marked_strongly_closed()) { 23376: return; 23376: } 23376: 23376: Octagonal_Shape& x = const_cast&>(*this); 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: 23376: const row_iterator m_begin = x.matrix.row_begin(); 23376: const row_iterator m_end = x.matrix.row_end(); 23376: 23376: 23376: for (row_iterator i = m_begin; i != m_end; ++i) { 23376: ((void) 0); 23376: assign_r((*i)[i.index()], 0, ROUND_NOT_NEEDED); 23376: } 23376: 23376: 23376: 23376: const dimension_type v = 2*var.id(); 23376: const dimension_type cv = v + 1; 23376: row_iterator v_iter = m_begin + v; 23376: row_iterator cv_iter = v_iter + 1; 23376: row_reference x_v = *v_iter; 23376: row_reference x_cv = *cv_iter; 23376: const dimension_type rs_v = v_iter.row_size(); 23376: const dimension_type n_rows = x.matrix.num_rows(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_sum; N& sum = holder_sum.item(); 23376: using namespace Implementation::Octagonal_Shapes; 23376: for (row_iterator k_iter = m_begin; k_iter != m_end; ++k_iter) { 23376: const dimension_type k = k_iter.index(); 23376: const dimension_type ck = coherent_index(k); 23376: const dimension_type rs_k = k_iter.row_size(); 23376: row_reference x_k = *k_iter; 23376: row_reference x_ck = (k % 2 != 0) ? *(k_iter-1) : *(k_iter + 1); 23376: 23376: for (row_iterator i_iter = m_begin; i_iter != m_end; ++i_iter) { 23376: const dimension_type i = i_iter.index(); 23376: const dimension_type ci = coherent_index(i); 23376: const dimension_type rs_i = i_iter.row_size(); 23376: row_reference x_i = *i_iter; 23376: row_reference x_ci = (i % 2 != 0) ? *(i_iter-1) : *(i_iter + 1); 23376: 23376: const N& x_i_k = (k < rs_i) ? x_i[k] : x_ck[ci]; 23376: if (!is_plus_infinity(x_i_k)) { 23376: const N& x_k_v = (v < rs_k) ? x_k[v] : x_cv[ck]; 23376: if (!is_plus_infinity(x_k_v)) { 23376: add_assign_r(sum, x_i_k, x_k_v, ROUND_UP); 23376: N& x_i_v = (v < rs_i) ? x_i[v] : x_cv[ci]; 23376: min_assign(x_i_v, sum); 23376: } 23376: const N& x_k_cv = (cv < rs_k) ? x_k[cv] : x_v[ck]; 23376: if (!is_plus_infinity(x_k_cv)) { 23376: add_assign_r(sum, x_i_k, x_k_cv, ROUND_UP); 23376: N& x_i_cv = (cv < rs_i) ? x_i[cv] : x_v[ci]; 23376: min_assign(x_i_cv, sum); 23376: } 23376: } 23376: const N& x_k_i = (i < rs_k) ? x_k[i] : x_ci[ck]; 23376: if (!is_plus_infinity(x_k_i)) { 23376: const N& x_v_k = (k < rs_v) ? x_v[k] : x_ck[cv]; 23376: if (!is_plus_infinity(x_v_k)) { 23376: N& x_v_i = (i < rs_v) ? x_v[i] : x_ci[cv]; 23376: add_assign_r(sum, x_v_k, x_k_i, ROUND_UP); 23376: min_assign(x_v_i, sum); 23376: } 23376: const N& x_cv_k = (k < rs_v) ? x_cv[k] : x_ck[v]; 23376: if (!is_plus_infinity(x_cv_k)) { 23376: N& x_cv_i = (i < rs_v) ? x_cv[i] : x_ci[v]; 23376: add_assign_r(sum, x_cv_k, x_k_i, ROUND_UP); 23376: min_assign(x_cv_i, sum); 23376: } 23376: } 23376: 23376: } 23376: } 23376: 23376: 23376: 23376: for (row_iterator i_iter = m_begin; i_iter != m_end; ++i_iter) { 23376: const dimension_type i = i_iter.index(); 23376: const dimension_type ci = coherent_index(i); 23376: const dimension_type rs_i = i_iter.row_size(); 23376: row_reference x_i = *i_iter; 23376: const N& x_i_v = (v < rs_i) ? x_i[v] : x_cv[ci]; 23376: 23376: 23376: 23376: for (dimension_type j = 0; j < n_rows; ++j) { 23376: const dimension_type cj = coherent_index(j); 23376: row_reference x_cj = *(m_begin + cj); 23376: N& x_i_j = (j < rs_i) ? x_i[j] : x_cj[ci]; 23376: if (!is_plus_infinity(x_i_v)) { 23376: const N& x_v_j = (j < rs_v) ? x_v[j] : x_cj[cv]; 23376: if (!is_plus_infinity(x_v_j)) { 23376: add_assign_r(sum, x_i_v, x_v_j, ROUND_UP); 23376: min_assign(x_i_j, sum); 23376: } 23376: } 23376: const N& x_i_cv = (cv < rs_i) ? x_i[cv] : x_v[ci]; 23376: if (!is_plus_infinity(x_i_cv)) { 23376: const N& x_cv_j = (j < rs_v) ? x_cv[j] : x_cj[v]; 23376: if (!is_plus_infinity(x_cv_j)) { 23376: add_assign_r(sum, x_i_cv, x_cv_j, ROUND_UP); 23376: min_assign(x_i_j, sum); 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: for (row_iterator i = m_begin; i != m_end; ++i) { 23376: N& x_i_i = (*i)[i.index()]; 23376: if (sgn(x_i_i) < 0) { 23376: x.set_empty(); 23376: return; 23376: } 23376: else { 23376: 23376: ((void) 0); 23376: assign_r(x_i_i, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: 23376: 23376: x.strong_coherence_assign(); 23376: 23376: x.set_strongly_closed(); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::compute_successors(std::vector& successor) const { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: const dimension_type successor_size = matrix.num_rows(); 23376: 23376: successor.reserve(successor_size); 23376: for (dimension_type i = 0; i < successor_size; ++i) { 23376: successor.push_back(i); 23376: } 23376: 23376: for (dimension_type i = successor_size; i-- > 0; ) { 23376: typename OR_Matrix::const_row_iterator i_iter = matrix.row_begin() + i; 23376: typename OR_Matrix::const_row_reference_type m_i = *i_iter; 23376: typename OR_Matrix::const_row_reference_type m_ci 23376: = (i % 2 != 0) ? *(i_iter-1) : *(i_iter + 1); 23376: for (dimension_type j = 0; j < i; ++j) { 23376: 23376: 23376: using namespace Implementation::Octagonal_Shapes; 23376: dimension_type cj = coherent_index(j); 23376: if (is_additive_inverse(m_ci[cj], m_i[j])) { 23376: 23376: successor[j] = i; 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::compute_leaders(std::vector& leaders) const { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: const dimension_type leader_size = matrix.num_rows(); 23376: 23376: leaders.reserve(leader_size); 23376: for (dimension_type i = 0; i < leader_size; ++i) { 23376: leaders.push_back(i); 23376: } 23376: 23376: for (typename OR_Matrix::const_row_iterator i_iter = matrix.row_begin(), 23376: matrix_row_end = matrix.row_end(); 23376: i_iter != matrix_row_end; ++i_iter) { 23376: typename OR_Matrix::const_row_reference_type m_i = *i_iter; 23376: dimension_type i = i_iter.index(); 23376: typename OR_Matrix::const_row_reference_type m_ci 23376: = (i % 2 != 0) ? *(i_iter-1) : *(i_iter + 1); 23376: for (dimension_type j = 0; j < i; ++j) { 23376: using namespace Implementation::Octagonal_Shapes; 23376: dimension_type cj = coherent_index(j); 23376: if (is_additive_inverse(m_ci[cj], m_i[j])) { 23376: 23376: leaders[i] = leaders[j]; 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::compute_leaders(std::vector& successor, 23376: std::vector& no_sing_leaders, 23376: bool& exist_sing_class, 23376: dimension_type& sing_leader) const { 23376: ((void) 0); 23376: ((void) 0); 23376: dimension_type successor_size = successor.size(); 23376: std::deque dealt_with(successor_size, false); 23376: for (dimension_type i = 0; i < successor_size; ++i) { 23376: dimension_type next_i = successor[i]; 23376: if (!dealt_with[i]) { 23376: 23376: 23376: using namespace Implementation::Octagonal_Shapes; 23376: if (next_i == coherent_index(i)) { 23376: exist_sing_class = true; 23376: sing_leader = i; 23376: } 23376: else { 23376: no_sing_leaders.push_back(i); 23376: } 23376: } 23376: 23376: dealt_with[next_i] = true; 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::strong_reduction_assign() const { 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: std::vector non_red; 23376: non_redundant_matrix_entries(non_red); 23376: 23376: 23376: Octagonal_Shape& x = const_cast&>(*this); 23376: 23376: 23376: 23376: typename OR_Matrix::element_iterator x_i = x.matrix.element_begin(); 23376: for (dimension_type i = 0; i < 2 * space_dim; ++i) { 23376: const Bit_Row& non_red_i = non_red[i]; 23376: for (dimension_type j = 0, 23376: j_end = OR_Matrix::row_size(i); j < j_end; ++j, ++x_i) { 23376: if (!non_red_i[j]) { 23376: assign_r(*x_i, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: } 23376: x.reset_strongly_closed(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::non_redundant_matrix_entries(std::vector& non_redundant) const { 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: non_redundant.resize(2*space_dim); 23376: 23376: 23376: 23376: 23376: 23376: std::vector no_sing_leaders; 23376: dimension_type sing_leader = 0; 23376: bool exist_sing_class = false; 23376: std::vector successor; 23376: compute_successors(successor); 23376: compute_leaders(successor, no_sing_leaders, exist_sing_class, sing_leader); 23376: const dimension_type num_no_sing_leaders = no_sing_leaders.size(); 23376: 23376: 23376: 23376: 23376: for (dimension_type li = 0; li < num_no_sing_leaders; ++li) { 23376: const dimension_type i = no_sing_leaders[li]; 23376: using namespace Implementation::Octagonal_Shapes; 23376: const dimension_type ci = coherent_index(i); 23376: typename OR_Matrix::const_row_reference_type 23376: m_i = *(matrix.row_begin() + i); 23376: if (i % 2 == 0) { 23376: 23376: 23376: 23376: 23376: 23376: if (i != successor[i]) { 23376: dimension_type j = i; 23376: dimension_type next_j = successor[j]; 23376: while (j != next_j) { 23376: non_redundant[next_j].set(j); 23376: j = next_j; 23376: next_j = successor[j]; 23376: } 23376: const dimension_type cj = coherent_index(j); 23376: non_redundant[cj].set(ci); 23376: } 23376: } 23376: 23376: dimension_type rs_li = (li % 2 != 0) ? li : (li + 1); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; N& tmp = holder_tmp.item(); 23376: for (dimension_type lj = 0 ; lj <= rs_li; ++lj) { 23376: const dimension_type j = no_sing_leaders[lj]; 23376: const dimension_type cj = coherent_index(j); 23376: const N& m_i_j = m_i[j]; 23376: const N& m_i_ci = m_i[ci]; 23376: bool to_add = true; 23376: 23376: 23376: 23376: if (j != ci) { 23376: add_assign_r(tmp, m_i_ci, matrix[cj][j], ROUND_UP); 23376: div_2exp_assign_r(tmp, tmp, 1, ROUND_UP); 23376: if (m_i_j >= tmp) { 23376: 23376: continue; 23376: } 23376: } 23376: # 3140 "../../src/Octagonal_Shape_templates.hh" 23376: for (dimension_type lk = 0; lk < num_no_sing_leaders; ++lk) { 23376: const dimension_type k = no_sing_leaders[lk]; 23376: if (k != i && k != j) { 23376: dimension_type ck = coherent_index(k); 23376: if (k < j) { 23376: 23376: add_assign_r(tmp, m_i[k], matrix[cj][ck], ROUND_UP); 23376: } 23376: else if (k < i) { 23376: 23376: add_assign_r(tmp, m_i[k], matrix[k][j], ROUND_UP); 23376: } 23376: else { 23376: 23376: add_assign_r(tmp, matrix[ck][ci], matrix[k][j], ROUND_UP); 23376: } 23376: 23376: if (m_i_j >= tmp) { 23376: to_add = false; 23376: break; 23376: } 23376: } 23376: } 23376: 23376: if (to_add) { 23376: 23376: non_redundant[i].set(j); 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: if (exist_sing_class) { 23376: non_redundant[sing_leader].set(sing_leader + 1); 23376: if (successor[sing_leader + 1] != sing_leader + 1) { 23376: dimension_type j = sing_leader; 23376: dimension_type next_j = successor[j + 1]; 23376: while (next_j != j + 1) { 23376: non_redundant[next_j].set(j); 23376: j = next_j; 23376: next_j = successor[j + 1]; 23376: } 23376: non_redundant[j + 1].set(j); 23376: } 23376: else { 23376: non_redundant[sing_leader + 1].set(sing_leader); 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::upper_bound_assign(const Octagonal_Shape& y) { 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("upper_bound_assign(y)", y); 23376: } 23376: 23376: 23376: y.strong_closure_assign(); 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: strong_closure_assign(); 23376: if (marked_empty()) { 23376: *this = y; 23376: return; 23376: } 23376: 23376: 23376: typename OR_Matrix::const_element_iterator j = y.matrix.element_begin(); 23376: for (typename OR_Matrix::element_iterator i = matrix.element_begin(), 23376: matrix_element_end = matrix.element_end(); 23376: i != matrix_element_end; ++i, ++j) { 23376: max_assign(*i, *j); 23376: } 23376: 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::difference_assign(const Octagonal_Shape& y) { 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("difference_assign(y)", y); 23376: } 23376: 23376: Octagonal_Shape& x = *this; 23376: 23376: 23376: 23376: x.strong_closure_assign(); 23376: 23376: if (x.marked_empty()) { 23376: return; 23376: } 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: if (x.space_dim == 0) { 23376: x.set_empty(); 23376: return; 23376: } 23376: 23376: 23376: 23376: if (y.contains(x)) { 23376: x.set_empty(); 23376: return; 23376: } 23376: 23376: Octagonal_Shape new_oct(space_dim, EMPTY); 23376: 23376: 23376: 23376: const Constraint_System& y_cs = y.constraints(); 23376: for (Constraint_System::const_iterator i = y_cs.begin(), 23376: y_cs_end = y_cs.end(); i != y_cs_end; ++i) { 23376: const Constraint& c = *i; 23376: 23376: 23376: 23376: 23376: if (x.relation_with(c).implies(Poly_Con_Relation::is_included())) { 23376: continue; 23376: } 23376: Octagonal_Shape z = x; 23376: const Linear_Expression e(c.expression()); 23376: z.add_constraint(e <= 0); 23376: if (!z.is_empty()) { 23376: new_oct.upper_bound_assign(z); 23376: } 23376: if (c.is_equality()) { 23376: z = x; 23376: z.add_constraint(e >= 0); 23376: if (!z.is_empty()) { 23376: new_oct.upper_bound_assign(z); 23376: } 23376: } 23376: } 23376: *this = new_oct; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::simplify_using_context_assign(const Octagonal_Shape& y) { 23376: Octagonal_Shape& x = *this; 23376: const dimension_type dim = x.space_dimension(); 23376: 23376: if (dim != y.space_dimension()) { 23376: throw_dimension_incompatible("simplify_using_context_assign(y)", y); 23376: } 23376: 23376: 23376: if (dim == 0) { 23376: if (y.marked_empty()) { 23376: x.set_zero_dim_univ(); 23376: return false; 23376: } 23376: else { 23376: return !x.marked_empty(); 23376: } 23376: } 23376: 23376: 23376: 23376: if (x.contains(y)) { 23376: Octagonal_Shape res(dim, UNIVERSE); 23376: x.m_swap(res); 23376: return false; 23376: } 23376: 23376: 23376: x.strong_closure_assign(); 23376: if (x.marked_empty()) { 23376: 23376: dimension_type i; 23376: dimension_type j; 23376: 23376: for (i = 0; i < 2*dim; i += 2) { 23376: 23376: 23376: 23376: 23376: if (!is_plus_infinity(y.matrix_at(i, i + 1))) { 23376: j = i + 1; 23376: goto found; 23376: } 23376: 23376: if (!is_plus_infinity(y.matrix_at(i + 1, i))) { 23376: j = i; 23376: ++i; 23376: goto found; 23376: } 23376: } 23376: 23376: 23376: for (i = 2; i < 2*dim; ++i) { 23376: for (j = 0; j < i; ++j) { 23376: 23376: if (!is_plus_infinity(y.matrix_at(i, j))) { 23376: goto found; 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: return false; 23376: 23376: found: 23376: 23376: ((void) 0); 23376: Octagonal_Shape res(dim, UNIVERSE); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; N& tmp = holder_tmp.item(); 23376: assign_r(tmp, 1, ROUND_UP); 23376: add_assign_r(tmp, tmp, y.matrix_at(i, j), ROUND_UP); 23376: 23376: neg_assign_r(res.matrix_at(j, i), tmp, ROUND_DOWN); 23376: ((void) 0); 23376: x.m_swap(res); 23376: return false; 23376: } 23376: 23376: 23376: 23376: 23376: Octagonal_Shape target = x; 23376: target.intersection_assign(y); 23376: const bool bool_result = !target.is_empty(); 23376: 23376: 23376: 23376: std::vector x_non_redundant; 23376: x.non_redundant_matrix_entries(x_non_redundant); 23376: 23376: dimension_type x_num_non_redundant = 0; 23376: for (size_t i = x_non_redundant.size(); i-- > 0 ; ) { 23376: x_num_non_redundant += x_non_redundant[i].count_ones(); 23376: } 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: Octagonal_Shape yy = y; 23376: 23376: 23376: Octagonal_Shape res(dim, UNIVERSE); 23376: 23376: dimension_type res_num_non_redundant = 0; 23376: 23376: 23376: std::vector x_leaders; 23376: x.compute_leaders(x_leaders); 23376: 23376: 23376: 23376: dimension_type sing_leader; 23376: for (sing_leader = 0; sing_leader < 2*dim; sing_leader += 2) { 23376: if (sing_leader == x_leaders[sing_leader]) { 23376: const N& x_s_ss = x.matrix_at(sing_leader, sing_leader + 1); 23376: const N& x_ss_s = x.matrix_at(sing_leader + 1, sing_leader); 23376: if (is_additive_inverse(x_s_ss, x_ss_s)) { 23376: 23376: break; 23376: } 23376: } 23376: } 23376: 23376: 23376: for (dimension_type i = sing_leader; i < 2*dim; i += 2) { 23376: if (x_leaders[i] != sing_leader) { 23376: continue; 23376: } 23376: 23376: 23376: const N& x_i_ii = x.matrix_at(i, i + 1); 23376: N& yy_i_ii = yy.matrix_at(i, i + 1); 23376: if (x_i_ii < yy_i_ii) { 23376: 23376: res.matrix_at(i, i + 1) = x_i_ii; 23376: ++res_num_non_redundant; 23376: 23376: yy_i_ii = x_i_ii; 23376: yy.reset_strongly_closed(); 23376: } 23376: const N& x_ii_i = x.matrix_at(i + 1, i); 23376: N& yy_ii_i = yy.matrix_at(i + 1, i); 23376: if (x_ii_i < yy_ii_i) { 23376: 23376: res.matrix_at(i + 1, i) = x_ii_i; 23376: ++res_num_non_redundant; 23376: 23376: yy_ii_i = x_ii_i; 23376: yy.reset_strongly_closed(); 23376: } 23376: 23376: if (!yy.marked_strongly_closed()) { 23376: Variable var_i(i/2); 23376: yy.incremental_strong_closure_assign(var_i); 23376: if (target.contains(yy)) { 23376: 23376: if (res_num_non_redundant < x_num_non_redundant) { 23376: res.reset_strongly_closed(); 23376: x.m_swap(res); 23376: } 23376: return bool_result; 23376: } 23376: } 23376: } 23376: 23376: 23376: for (dimension_type i = 0; i < 2*dim; ++i) { 23376: const dimension_type j = x_leaders[i]; 23376: if (j == i || j == sing_leader) { 23376: continue; 23376: } 23376: const N& x_i_j = x.matrix_at(i, j); 23376: ((void) 0); 23376: N& yy_i_j = yy.matrix_at(i, j); 23376: if (x_i_j < yy_i_j) { 23376: res.matrix_at(i, j) = x_i_j; 23376: ++res_num_non_redundant; 23376: 23376: yy_i_j = x_i_j; 23376: yy.reset_strongly_closed(); 23376: } 23376: const N& x_j_i = x.matrix_at(j, i); 23376: N& yy_j_i = yy.matrix_at(j, i); 23376: ((void) 0); 23376: if (x_j_i < yy_j_i) { 23376: res.matrix_at(j, i) = x_j_i; 23376: ++res_num_non_redundant; 23376: 23376: yy_j_i = x_j_i; 23376: yy.reset_strongly_closed(); 23376: } 23376: 23376: if (!yy.marked_strongly_closed()) { 23376: Variable var_j(j/2); 23376: yy.incremental_strong_closure_assign(var_j); 23376: if (target.contains(yy)) { 23376: 23376: if (res_num_non_redundant < x_num_non_redundant) { 23376: res.reset_strongly_closed(); 23376: x.m_swap(res); 23376: } 23376: return bool_result; 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: for (dimension_type i = 0; i < 2*dim; ++i) { 23376: if (i != x_leaders[i]) { 23376: continue; 23376: } 23376: const Bit_Row& x_non_redundant_i = x_non_redundant[i]; 23376: for (dimension_type j = 0; j < 2*dim; ++j) { 23376: if (j != x_leaders[j]) { 23376: continue; 23376: } 23376: if (i >= j) { 23376: if (!x_non_redundant_i[j]) { 23376: continue; 23376: } 23376: } 23376: else if (!x_non_redundant[j][i]) { 23376: continue; 23376: } 23376: N& yy_i_j = yy.matrix_at(i, j); 23376: const N& x_i_j = x.matrix_at(i, j); 23376: if (x_i_j < yy_i_j) { 23376: res.matrix_at(i, j) = x_i_j; 23376: ++res_num_non_redundant; 23376: 23376: yy_i_j = x_i_j; 23376: yy.reset_strongly_closed(); 23376: Variable var(i/2); 23376: yy.incremental_strong_closure_assign(var); 23376: if (target.contains(yy)) { 23376: 23376: if (res_num_non_redundant < x_num_non_redundant) { 23376: res.reset_strongly_closed(); 23376: x.m_swap(res); 23376: } 23376: return bool_result; 23376: } 23376: } 23376: } 23376: } 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::add_space_dimensions_and_embed(dimension_type m) { 23376: 23376: if (m == 0) { 23376: return; 23376: } 23376: 23376: const dimension_type new_dim = space_dim + m; 23376: const bool was_zero_dim_univ = !marked_empty() && space_dim == 0; 23376: 23376: 23376: 23376: matrix.grow(new_dim); 23376: space_dim = new_dim; 23376: 23376: 23376: if (was_zero_dim_univ) { 23376: set_strongly_closed(); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::add_space_dimensions_and_project(dimension_type m) { 23376: 23376: if (m == 0) { 23376: return; 23376: } 23376: 23376: const dimension_type n = matrix.num_rows(); 23376: 23376: 23376: 23376: add_space_dimensions_and_embed(m); 23376: 23376: 23376: for (typename OR_Matrix::row_iterator i = matrix.row_begin() + n, 23376: matrix_row_end = matrix.row_end(); i != matrix_row_end; i += 2) { 23376: typename OR_Matrix::row_reference_type x_i = *i; 23376: typename OR_Matrix::row_reference_type x_ci = *(i + 1); 23376: const dimension_type ind = i.index(); 23376: assign_r(x_i[ind + 1], 0, ROUND_NOT_NEEDED); 23376: assign_r(x_ci[ind], 0, ROUND_NOT_NEEDED); 23376: } 23376: 23376: if (marked_strongly_closed()) { 23376: reset_strongly_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::remove_space_dimensions(const Variables_Set& vars) { 23376: 23376: 23376: 23376: if (vars.empty()) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: const dimension_type min_space_dim = vars.space_dimension(); 23376: if (space_dim < min_space_dim) { 23376: throw_dimension_incompatible("remove_space_dimensions(vs)", min_space_dim); 23376: } 23376: 23376: const dimension_type new_space_dim = space_dim - vars.size(); 23376: 23376: strong_closure_assign(); 23376: 23376: 23376: if (new_space_dim == 0) { 23376: matrix.shrink(0); 23376: if (!marked_empty()) { 23376: 23376: set_zero_dim_univ(); 23376: } 23376: space_dim = 0; 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: typedef typename OR_Matrix::element_iterator Elem_Iter; 23376: typedef typename std::iterator_traits::difference_type diff_t; 23376: 23376: dimension_type first = *vars.begin(); 23376: const dimension_type first_size = 2 * first * (first + 1); 23376: Elem_Iter iter = matrix.element_begin() + static_cast(first_size); 23376: 23376: for (dimension_type i = first + 1; i < space_dim; ++i) { 23376: if (vars.count(i) == 0) { 23376: typename OR_Matrix::row_iterator row_iter = matrix.row_begin() + 2*i; 23376: typename OR_Matrix::row_reference_type row_ref = *row_iter; 23376: typename OR_Matrix::row_reference_type row_ref1 = *(++row_iter); 23376: 23376: 23376: 23376: 23376: for (dimension_type j = 0; j <= i; ++j) { 23376: if (vars.count(j) == 0) { 23376: assign_or_swap(*(iter++), row_ref[2*j]); 23376: assign_or_swap(*(iter++), row_ref[2*j + 1]); 23376: } 23376: } 23376: for (dimension_type j = 0; j <= i; ++j) { 23376: if (vars.count(j) == 0) { 23376: assign_or_swap(*(iter++), row_ref1[2*j]); 23376: assign_or_swap(*(iter++), row_ref1[2*j + 1]); 23376: } 23376: } 23376: } 23376: } 23376: 23376: matrix.shrink(new_space_dim); 23376: space_dim = new_space_dim; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Octagonal_Shape::map_space_dimensions(const Partial_Function& pfunc) { 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: if (pfunc.has_empty_codomain()) { 23376: 23376: remove_higher_space_dimensions(0); 23376: return; 23376: } 23376: 23376: const dimension_type new_space_dim = pfunc.max_in_codomain() + 1; 23376: 23376: 23376: if (new_space_dim < space_dim) { 23376: strong_closure_assign(); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: remove_higher_space_dimensions(new_space_dim); 23376: return; 23376: } 23376: 23376: 23376: OR_Matrix x(new_space_dim); 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: 23376: row_iterator m_begin = x.row_begin(); 23376: 23376: for (row_iterator i_iter = matrix.row_begin(), i_end = matrix.row_end(); 23376: i_iter != i_end; i_iter += 2) { 23376: dimension_type new_i; 23376: dimension_type i = i_iter.index()/2; 23376: 23376: 23376: 23376: if (pfunc.maps(i, new_i)) { 23376: row_reference r_i = *i_iter; 23376: row_reference r_ii = *(i_iter + 1); 23376: dimension_type double_new_i = 2*new_i; 23376: row_iterator x_iter = m_begin + double_new_i; 23376: row_reference x_i = *x_iter; 23376: row_reference x_ii = *(x_iter + 1); 23376: for (dimension_type j = 0; j <= i; ++j) { 23376: dimension_type new_j; 23376: 23376: if (pfunc.maps(j, new_j)) { 23376: dimension_type dj = 2*j; 23376: dimension_type double_new_j = 2*new_j; 23376: 23376: 23376: 23376: 23376: if (new_i >= new_j) { 23376: assign_or_swap(x_i[double_new_j], r_i[dj]); 23376: assign_or_swap(x_ii[double_new_j], r_ii[dj]); 23376: assign_or_swap(x_ii[double_new_j + 1], r_ii[dj + 1]); 23376: assign_or_swap(x_i[double_new_j + 1], r_i[dj + 1]); 23376: } 23376: else { 23376: row_iterator x_j_iter = m_begin + double_new_j; 23376: row_reference x_j = *x_j_iter; 23376: row_reference x_jj = *(x_j_iter + 1); 23376: assign_or_swap(x_jj[double_new_i + 1], r_i[dj]); 23376: assign_or_swap(x_jj[double_new_i], r_ii[dj]); 23376: assign_or_swap(x_j[double_new_i + 1], r_i[dj + 1]); 23376: assign_or_swap(x_j[double_new_i], r_ii[dj + 1]); 23376: } 23376: 23376: } 23376: } 23376: } 23376: } 23376: 23376: using std::swap; 23376: swap(matrix, x); 23376: space_dim = new_space_dim; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::intersection_assign(const Octagonal_Shape& y) { 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("intersection_assign(y)", y); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: if (y.marked_empty()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: 23376: bool changed = false; 23376: 23376: typename OR_Matrix::const_element_iterator j = y.matrix.element_begin(); 23376: for (typename OR_Matrix::element_iterator i = matrix.element_begin(), 23376: matrix_element_end = matrix.element_end(); 23376: i != matrix_element_end; 23376: ++i, ++j) { 23376: N& elem = *i; 23376: const N& y_elem = *j; 23376: if (y_elem < elem) { 23376: elem = y_elem; 23376: changed = true; 23376: } 23376: } 23376: 23376: 23376: if (changed && marked_strongly_closed()) { 23376: reset_strongly_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Octagonal_Shape::CC76_extrapolation_assign(const Octagonal_Shape& y, 23376: Iterator first, Iterator last, 23376: unsigned* tp) { 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("CC76_extrapolation_assign(y)", y); 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: y.strong_closure_assign(); 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: if (tp != 0 && *tp > 0) { 23376: Octagonal_Shape x_tmp(*this); 23376: x_tmp.CC76_extrapolation_assign(y, first, last, 0); 23376: 23376: if (!contains(x_tmp)) { 23376: --(*tp); 23376: } 23376: return; 23376: } 23376: # 3858 "../../src/Octagonal_Shape_templates.hh" 23376: typename OR_Matrix::const_element_iterator j = y.matrix.element_begin(); 23376: for (typename OR_Matrix::element_iterator i = matrix.element_begin(), 23376: matrix_element_end = matrix.element_end(); 23376: i != matrix_element_end; 23376: ++i, ++j) { 23376: const N& y_elem = *j; 23376: N& elem = *i; 23376: if (y_elem < elem) { 23376: Iterator k = std::lower_bound(first, last, elem); 23376: if (k != last) { 23376: if (elem < *k) { 23376: assign_r(elem, *k, ROUND_UP); 23376: } 23376: } 23376: else { 23376: assign_r(elem, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: } 23376: 23376: reset_strongly_closed(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::get_limiting_octagon(const Constraint_System& cs, 23376: Octagonal_Shape& limiting_octagon) const { 23376: const dimension_type cs_space_dim = cs.space_dimension(); 23376: 23376: ((void) 0); 23376: 23376: strong_closure_assign(); 23376: bool is_oct_changed = false; 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_term; Parma_Polyhedra_Library::Coefficient& term = holder_term.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: 23376: for (Constraint_System::const_iterator cs_i = cs.begin(), 23376: cs_end = cs.end(); cs_i != cs_end; ++cs_i) { 23376: const Constraint& c = *cs_i; 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: 23376: if (!Octagonal_Shape_Helper 23376: ::extract_octagonal_difference(c, cs_space_dim, num_vars, i, j, 23376: coeff, term)) { 23376: continue; 23376: } 23376: 23376: typedef typename OR_Matrix::const_row_iterator Row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type Row_reference; 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: Row_iterator m_begin = matrix.row_begin(); 23376: 23376: Row_iterator i_iter = m_begin + i; 23376: Row_reference m_i = *i_iter; 23376: OR_Matrix& lo_mat = limiting_octagon.matrix; 23376: row_iterator lo_iter = lo_mat.row_begin() + i; 23376: row_reference lo_m_i = *lo_iter; 23376: N& lo_m_i_j = lo_m_i[j]; 23376: if (coeff < 0) { 23376: neg_assign(coeff); 23376: } 23376: 23376: div_round_up(d, term, coeff); 23376: if (m_i[j] <= d) { 23376: if (c.is_inequality()) { 23376: if (lo_m_i_j > d) { 23376: lo_m_i_j = d; 23376: is_oct_changed = true; 23376: } 23376: else { 23376: 23376: if (i % 2 == 0) { 23376: ++i_iter; 23376: ++lo_iter; 23376: } 23376: else { 23376: --i_iter; 23376: --lo_iter; 23376: } 23376: Row_reference m_ci = *i_iter; 23376: row_reference lo_m_ci = *lo_iter; 23376: 23376: using namespace Implementation::Octagonal_Shapes; 23376: dimension_type cj = coherent_index(j); 23376: N& lo_m_ci_cj = lo_m_ci[cj]; 23376: neg_assign(term); 23376: div_round_up(d, term, coeff); 23376: if (m_ci[cj] <= d && lo_m_ci_cj > d) { 23376: lo_m_ci_cj = d; 23376: is_oct_changed = true; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: if (is_oct_changed && limiting_octagon.marked_strongly_closed()) { 23376: limiting_octagon.reset_strongly_closed(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::limited_CC76_extrapolation_assign(const Octagonal_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp) { 23376: 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("limited_CC76_extrapolation_assign(y, cs)", 23376: y); 23376: } 23376: 23376: const dimension_type cs_space_dim = cs.space_dimension(); 23376: if (space_dim < cs_space_dim) { 23376: throw_constraint_incompatible("limited_CC76_extrapolation_assign(y, cs)"); 23376: } 23376: 23376: 23376: if (cs.has_strict_inequalities()) { 23376: throw_constraint_incompatible("limited_CC76_extrapolation_assign(y, cs)"); 23376: } 23376: 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: 23376: Octagonal_Shape limiting_octagon(space_dim, UNIVERSE); 23376: get_limiting_octagon(cs, limiting_octagon); 23376: CC76_extrapolation_assign(y, tp); 23376: intersection_assign(limiting_octagon); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::BHMZ05_widening_assign(const Octagonal_Shape& y, 23376: unsigned* tp) { 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("BHMZ05_widening_assign(y)", y); 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: const dimension_type y_affine_dim = y.affine_dimension(); 23376: 23376: 23376: 23376: if (y_affine_dim == 0) { 23376: return; 23376: } 23376: 23376: 23376: 23376: const dimension_type x_affine_dim = affine_dimension(); 23376: ((void) 0); 23376: if (x_affine_dim != y_affine_dim) { 23376: return; 23376: } 23376: 23376: if (tp != 0 && *tp > 0) { 23376: Octagonal_Shape x_tmp(*this); 23376: x_tmp.BHMZ05_widening_assign(y, 0); 23376: 23376: if (!contains(x_tmp)) { 23376: --(*tp); 23376: } 23376: return; 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: y.strong_reduction_assign(); 23376: 23376: 23376: typename OR_Matrix::const_element_iterator j = y.matrix.element_begin(); 23376: for (typename OR_Matrix::element_iterator i = matrix.element_begin(), 23376: matrix_element_end = matrix.element_end(); 23376: i != matrix_element_end; 23376: ++i, ++j) { 23376: N& elem = *i; 23376: 23376: 23376: 23376: if (*j != elem) { 23376: assign_r(elem, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: reset_strongly_closed(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::limited_BHMZ05_extrapolation_assign(const Octagonal_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp) { 23376: 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("limited_BHMZ05_extrapolation_assign(y, cs)", 23376: y); 23376: } 23376: 23376: 23376: const dimension_type cs_space_dim = cs.space_dimension(); 23376: if (space_dim < cs_space_dim) { 23376: throw_constraint_incompatible("limited_CH78_extrapolation_assign(y, cs)"); 23376: } 23376: 23376: 23376: if (cs.has_strict_inequalities()) { 23376: throw_constraint_incompatible("limited_CH78_extrapolation_assign(y, cs)"); 23376: } 23376: 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: 23376: Octagonal_Shape limiting_octagon(space_dim, UNIVERSE); 23376: get_limiting_octagon(cs, limiting_octagon); 23376: BHMZ05_widening_assign(y, tp); 23376: intersection_assign(limiting_octagon); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::CC76_narrowing_assign(const Octagonal_Shape& y) { 23376: 23376: if (space_dim != y.space_dim) { 23376: throw_dimension_incompatible("CC76_narrowing_assign(y)", y); 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: y.strong_closure_assign(); 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: bool is_oct_changed = false; 23376: typename OR_Matrix::const_element_iterator j = y.matrix.element_begin(); 23376: for (typename OR_Matrix::element_iterator i = matrix.element_begin(), 23376: matrix_element_end = matrix.element_end(); 23376: i != matrix_element_end; 23376: ++i, ++j) { 23376: if (!is_plus_infinity(*i) 23376: && !is_plus_infinity(*j) 23376: && *i != *j) { 23376: *i = *j; 23376: is_oct_changed = true; 23376: } 23376: } 23376: 23376: if (is_oct_changed && marked_strongly_closed()) { 23376: reset_strongly_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::deduce_v_pm_u_bounds(const dimension_type v_id, 23376: const dimension_type last_id, 23376: const Linear_Expression& sc_expr, 23376: Coefficient_traits::const_reference sc_denom, 23376: const N& ub_v) { 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_mpq_sc_denom; mpq_class& mpq_sc_denom = holder_mpq_sc_denom.item(); 23376: assign_r(mpq_sc_denom, sc_denom, ROUND_NOT_NEEDED); 23376: 23376: 23376: const dimension_type n_v = 2*v_id; 23376: typename OR_Matrix::row_reference_type m_cv = matrix[n_v + 1]; 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_half; N& half = holder_half.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_lb_u; mpq_class& minus_lb_u = holder_minus_lb_u.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_q; mpq_class& minus_q = holder_minus_q.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_ub_u; mpq_class& ub_u = holder_ub_u.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lb_u; mpq_class& lb_u = holder_lb_u.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_up_approx; N& up_approx = holder_up_approx.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_expr_u; Parma_Polyhedra_Library::Coefficient& minus_expr_u = holder_minus_expr_u.item(); 23376: 23376: for (Linear_Expression::const_iterator u = sc_expr.begin(), 23376: u_end = sc_expr.lower_bound(Variable(last_id + 1)); u != u_end; ++u) { 23376: const dimension_type u_id = u.variable().id(); 23376: 23376: if (u_id == v_id) { 23376: continue; 23376: } 23376: const Coefficient& expr_u = *u; 23376: 23376: const dimension_type n_u = u_id*2; 23376: 23376: if (expr_u > 0) { 23376: if (expr_u >= sc_denom) { 23376: 23376: 23376: 23376: 23376: div_2exp_assign_r(half, matrix[n_u + 1][n_u], 1, ROUND_UP); 23376: N& m_v_minus_u = (n_v < n_u) ? matrix[n_u][n_v] : m_cv[n_u + 1]; 23376: sub_assign_r(m_v_minus_u, ub_v, half, ROUND_UP); 23376: } 23376: else { 23376: 23376: typename OR_Matrix::row_reference_type m_u = matrix[n_u]; 23376: const N& m_u_cu = m_u[n_u + 1]; 23376: if (!is_plus_infinity(m_u_cu)) { 23376: 23376: 23376: 23376: 23376: assign_r(minus_lb_u, m_u_cu, ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(minus_lb_u, minus_lb_u, 1, ROUND_NOT_NEEDED); 23376: assign_r(q, expr_u, ROUND_NOT_NEEDED); 23376: div_assign_r(q, q, mpq_sc_denom, ROUND_NOT_NEEDED); 23376: assign_r(ub_u, matrix[n_u + 1][n_u], ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(ub_u, ub_u, 1, ROUND_NOT_NEEDED); 23376: 23376: add_assign_r(ub_u, ub_u, minus_lb_u, ROUND_NOT_NEEDED); 23376: 23376: sub_mul_assign_r(minus_lb_u, q, ub_u, ROUND_NOT_NEEDED); 23376: assign_r(up_approx, minus_lb_u, ROUND_UP); 23376: 23376: N& m_v_minus_u = (n_v < n_u) ? m_u[n_v] : m_cv[n_u + 1]; 23376: add_assign_r(m_v_minus_u, ub_v, up_approx, ROUND_UP); 23376: } 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: neg_assign(minus_expr_u, expr_u); 23376: if (minus_expr_u >= sc_denom) { 23376: 23376: 23376: 23376: 23376: div_2exp_assign_r(half, matrix[n_u][n_u + 1], 1, ROUND_UP); 23376: N& m_v_plus_u = (n_v < n_u) ? matrix[n_u + 1][n_v] : m_cv[n_u]; 23376: sub_assign_r(m_v_plus_u, ub_v, half, ROUND_UP); 23376: } 23376: else { 23376: 23376: typename OR_Matrix::row_reference_type m_cu = matrix[n_u + 1]; 23376: const N& m_cu_u = m_cu[n_u]; 23376: if (!is_plus_infinity(m_cu_u)) { 23376: 23376: 23376: 23376: 23376: assign_r(ub_u, m_cu[n_u], ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(ub_u, ub_u, 1, ROUND_NOT_NEEDED); 23376: assign_r(minus_q, minus_expr_u, ROUND_NOT_NEEDED); 23376: div_assign_r(minus_q, minus_q, mpq_sc_denom, ROUND_NOT_NEEDED); 23376: assign_r(lb_u, matrix[n_u][n_u + 1], ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(lb_u, lb_u, 1, ROUND_NOT_NEEDED); 23376: neg_assign_r(lb_u, lb_u, ROUND_NOT_NEEDED); 23376: 23376: sub_assign_r(lb_u, lb_u, ub_u, ROUND_NOT_NEEDED); 23376: 23376: add_mul_assign_r(ub_u, minus_q, lb_u, ROUND_NOT_NEEDED); 23376: assign_r(up_approx, ub_u, ROUND_UP); 23376: 23376: N& m_v_plus_u = (n_v < n_u) ? m_cu[n_v] : m_cv[n_u]; 23376: add_assign_r(m_v_plus_u, ub_v, up_approx, ROUND_UP); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::deduce_minus_v_pm_u_bounds(const dimension_type v_id, 23376: const dimension_type last_id, 23376: const Linear_Expression& sc_expr, 23376: Coefficient_traits::const_reference sc_denom, 23376: const N& minus_lb_v) { 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_mpq_sc_denom; mpq_class& mpq_sc_denom = holder_mpq_sc_denom.item(); 23376: assign_r(mpq_sc_denom, sc_denom, ROUND_NOT_NEEDED); 23376: 23376: 23376: const dimension_type n_v = 2*v_id; 23376: typename OR_Matrix::row_reference_type m_v = matrix[n_v]; 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_half; N& half = holder_half.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_ub_u; mpq_class& ub_u = holder_ub_u.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_lb_u; mpq_class& minus_lb_u = holder_minus_lb_u.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_up_approx; N& up_approx = holder_up_approx.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_expr_u; Parma_Polyhedra_Library::Coefficient& minus_expr_u = holder_minus_expr_u.item(); 23376: 23376: for (Linear_Expression::const_iterator u = sc_expr.begin(), 23376: u_end = sc_expr.lower_bound(Variable(last_id + 1)); u != u_end; ++u) { 23376: const dimension_type u_id = u.variable().id(); 23376: 23376: if (u_id == v_id) { 23376: continue; 23376: } 23376: const Coefficient& expr_u = *u; 23376: 23376: const dimension_type n_u = u_id*2; 23376: 23376: if (expr_u > 0) { 23376: if (expr_u >= sc_denom) { 23376: 23376: 23376: 23376: 23376: 23376: div_2exp_assign_r(half, matrix[n_u][n_u + 1], 1, ROUND_UP); 23376: N& m_u_minus_v = (n_v < n_u) ? matrix[n_u + 1][n_v + 1] : m_v[n_u]; 23376: sub_assign_r(m_u_minus_v, minus_lb_v, half, ROUND_UP); 23376: } 23376: else { 23376: 23376: typename OR_Matrix::row_reference_type m_cu = matrix[n_u + 1]; 23376: const N& m_cu_u = m_cu[n_u]; 23376: if (!is_plus_infinity(m_cu_u)) { 23376: 23376: 23376: 23376: 23376: assign_r(ub_u, m_cu[n_u], ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(ub_u, ub_u, 1, ROUND_NOT_NEEDED); 23376: assign_r(q, expr_u, ROUND_NOT_NEEDED); 23376: div_assign_r(q, q, mpq_sc_denom, ROUND_NOT_NEEDED); 23376: assign_r(minus_lb_u, matrix[n_u][n_u + 1], ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(minus_lb_u, minus_lb_u, 1, ROUND_NOT_NEEDED); 23376: 23376: add_assign_r(minus_lb_u, ub_u, minus_lb_u, ROUND_NOT_NEEDED); 23376: 23376: sub_mul_assign_r(ub_u, q, minus_lb_u, ROUND_NOT_NEEDED); 23376: assign_r(up_approx, ub_u, ROUND_UP); 23376: 23376: N& m_u_minus_v = (n_v < n_u) ? m_cu[n_v + 1] : m_v[n_u]; 23376: add_assign_r(m_u_minus_v, minus_lb_v, up_approx, ROUND_UP); 23376: } 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: neg_assign(minus_expr_u, expr_u); 23376: if (minus_expr_u >= sc_denom) { 23376: 23376: 23376: 23376: 23376: div_2exp_assign_r(half, matrix[n_u + 1][n_u], 1, ROUND_UP); 23376: N& m_minus_v_minus_u = (n_v < n_u) 23376: ? matrix[n_u][n_v + 1] 23376: : m_v[n_u + 1]; 23376: sub_assign_r(m_minus_v_minus_u, minus_lb_v, half, ROUND_UP); 23376: } 23376: else { 23376: 23376: typename OR_Matrix::row_reference_type m_u = matrix[n_u]; 23376: const N& m_u_cu = m_u[n_u + 1]; 23376: if (!is_plus_infinity(m_u_cu)) { 23376: 23376: 23376: 23376: 23376: assign_r(ub_u, matrix[n_u + 1][n_u], ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(ub_u, ub_u, 1, ROUND_NOT_NEEDED); 23376: assign_r(q, expr_u, ROUND_NOT_NEEDED); 23376: div_assign_r(q, q, mpq_sc_denom, ROUND_NOT_NEEDED); 23376: assign_r(minus_lb_u, m_u[n_u + 1], ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(minus_lb_u, minus_lb_u, 1, ROUND_NOT_NEEDED); 23376: 23376: add_assign_r(ub_u, ub_u, minus_lb_u, ROUND_NOT_NEEDED); 23376: 23376: add_mul_assign_r(minus_lb_u, q, ub_u, ROUND_NOT_NEEDED); 23376: assign_r(up_approx, minus_lb_u, ROUND_UP); 23376: 23376: N& m_minus_v_minus_u = (n_v < n_u) ? m_u[n_v + 1] : m_v[n_u + 1]; 23376: add_assign_r(m_minus_v_minus_u, minus_lb_v, up_approx, ROUND_UP); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::forget_all_octagonal_constraints(const dimension_type v_id) { 23376: ((void) 0); 23376: const dimension_type n_v = 2*v_id; 23376: typename OR_Matrix::row_iterator m_iter = matrix.row_begin() + n_v; 23376: typename OR_Matrix::row_reference_type r_v = *m_iter; 23376: typename OR_Matrix::row_reference_type r_cv = *(++m_iter); 23376: for (dimension_type h = m_iter.row_size(); h-- > 0; ) { 23376: assign_r(r_v[h], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: assign_r(r_cv[h], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: ++m_iter; 23376: for (typename OR_Matrix::row_iterator m_end = matrix.row_end(); 23376: m_iter != m_end; ++m_iter) { 23376: typename OR_Matrix::row_reference_type r = *m_iter; 23376: assign_r(r[n_v], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: assign_r(r[n_v + 1], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::forget_binary_octagonal_constraints(const dimension_type v_id) { 23376: ((void) 0); 23376: const dimension_type n_v = 2*v_id; 23376: typename OR_Matrix::row_iterator m_iter = matrix.row_begin() + n_v; 23376: typename OR_Matrix::row_reference_type r_v = *m_iter; 23376: typename OR_Matrix::row_reference_type r_cv = *(++m_iter); 23376: for (dimension_type k = n_v; k-- > 0; ) { 23376: assign_r(r_v[k], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: assign_r(r_cv[k], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: ++m_iter; 23376: for (typename OR_Matrix::row_iterator m_end = matrix.row_end(); 23376: m_iter != m_end; ++m_iter) { 23376: typename OR_Matrix::row_reference_type r = *m_iter; 23376: assign_r(r[n_v], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: assign_r(r[n_v + 1], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::unconstrain(const Variable var) { 23376: 23376: const dimension_type var_id = var.id(); 23376: if (space_dimension() < var_id + 1) { 23376: throw_dimension_incompatible("unconstrain(var)", var_id + 1); 23376: } 23376: 23376: 23376: strong_closure_assign(); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::unconstrain(const Variables_Set& vars) { 23376: 23376: 23376: if (vars.empty()) { 23376: return; 23376: } 23376: 23376: 23376: const dimension_type min_space_dim = vars.space_dimension(); 23376: if (space_dimension() < min_space_dim) { 23376: throw_dimension_incompatible("unconstrain(vs)", min_space_dim); 23376: } 23376: 23376: 23376: strong_closure_assign(); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: for (Variables_Set::const_iterator vsi = vars.begin(), 23376: vsi_end = vars.end(); vsi != vsi_end; ++vsi) { 23376: forget_all_octagonal_constraints(*vsi); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::refine(const Variable var, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator) { 23376: ((void) 0); 23376: ((void) 0); 23376: const dimension_type var_id = var.id(); 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: 23376: dimension_type w_id = expr.last_nonzero(); 23376: 23376: if (w_id != 0) { 23376: ++t; 23376: if (!expr.all_zeroes(1, w_id)) { 23376: ++t; 23376: } 23376: --w_id; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: typedef typename OR_Matrix::const_row_iterator Row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type Row_reference; 23376: 23376: const row_iterator m_begin = matrix.row_begin(); 23376: const dimension_type n_var = 2*var_id; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_denom; Parma_Polyhedra_Library::Coefficient& minus_denom = holder_minus_denom.item(); 23376: neg_assign(minus_denom, denominator); 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (t == 1 && expr.coefficient(Variable(w_id)) != denominator 23376: && expr.coefficient(Variable(w_id)) != minus_denom) { 23376: t = 2; 23376: } 23376: if (t == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_two_b; Parma_Polyhedra_Library::Coefficient& two_b = holder_two_b.item(); 23376: two_b = 2*b; 23376: switch (relsym) { 23376: case EQUAL: 23376: 23376: add_octagonal_constraint(n_var + 1, n_var, two_b, denominator); 23376: add_octagonal_constraint(n_var, n_var + 1, two_b, minus_denom); 23376: break; 23376: case LESS_OR_EQUAL: 23376: 23376: add_octagonal_constraint(n_var + 1, n_var, two_b, denominator); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: 23376: 23376: add_octagonal_constraint(n_var, n_var + 1, two_b, minus_denom); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: else if (t == 1) { 23376: 23376: const Coefficient& w_coeff = expr.coefficient(Variable(w_id)); 23376: const dimension_type n_w = 2*w_id; 23376: switch (relsym) { 23376: case EQUAL: 23376: if (w_coeff == denominator) { 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w, n_var, b, denominator); 23376: add_octagonal_constraint(n_w + 1, n_var + 1, b, minus_denom); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w + 1, b, denominator); 23376: add_octagonal_constraint(n_var, n_w, b, minus_denom); 23376: } 23376: } 23376: else { 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w + 1, n_var, b, denominator); 23376: add_octagonal_constraint(n_w, n_var + 1, b, minus_denom); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w, b, denominator); 23376: add_octagonal_constraint(n_var, n_w + 1, b, minus_denom); 23376: } 23376: } 23376: break; 23376: case LESS_OR_EQUAL: 23376: { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, b, denominator); 23376: 23376: 23376: if (w_coeff == denominator) { 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w, n_var, d); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w + 1, d); 23376: } 23376: } 23376: else if (w_coeff == minus_denom) { 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w + 1, n_var, d); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w, d); 23376: } 23376: } 23376: break; 23376: } 23376: 23376: case GREATER_OR_EQUAL: 23376: { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, b, minus_denom); 23376: 23376: 23376: if (w_coeff == denominator) { 23376: 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w + 1, n_var + 1, d); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var, n_w, d); 23376: } 23376: } 23376: else if (w_coeff == minus_denom) { 23376: 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w, n_var + 1, d); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var, n_w + 1, d); 23376: } 23376: } 23376: break; 23376: } 23376: 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: else { 23376: 23376: 23376: const bool is_sc = (denominator > 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign(minus_b, b); 23376: const Coefficient& sc_b = is_sc ? b : minus_b; 23376: const Coefficient& minus_sc_b = is_sc ? minus_b : b; 23376: const Coefficient& sc_denom = is_sc ? denominator : minus_denom; 23376: const Coefficient& minus_sc_denom = is_sc ? minus_denom : denominator; 23376: 23376: 23376: 23376: Linear_Expression minus_expr; 23376: if (!is_sc) { 23376: minus_expr = -expr; 23376: } 23376: const Linear_Expression& sc_expr = is_sc ? expr : minus_expr; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_sum; N& sum = holder_sum.item(); 23376: 23376: dimension_type pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type pinf_count = 0; 23376: 23376: switch (relsym) { 23376: case EQUAL: 23376: { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_neg_sum; N& neg_sum = holder_neg_sum.item(); 23376: 23376: dimension_type neg_pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type neg_pinf_count = 0; 23376: 23376: 23376: assign_r(sum, sc_b, ROUND_UP); 23376: assign_r(neg_sum, minus_sc_b, ROUND_UP); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_half; N& half = holder_half.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_coeff_i; N& minus_coeff_i = holder_minus_coeff_i.item(); 23376: 23376: 23376: for (Row_iterator m_iter = m_begin, 23376: m_iter_end = m_begin + (2 * w_id + 2); 23376: m_iter != m_iter_end; ) { 23376: const dimension_type n_i = m_iter.index(); 23376: const dimension_type id = n_i/2; 23376: Row_reference m_i = *m_iter; 23376: ++m_iter; 23376: Row_reference m_ci = *m_iter; 23376: ++m_iter; 23376: const Coefficient& sc_i = sc_expr.coefficient(Variable(id)); 23376: const int sign_i = sgn(sc_i); 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: 23376: if (pinf_count <= 1) { 23376: const N& double_approx_i = m_ci[n_i]; 23376: if (!is_plus_infinity(double_approx_i)) { 23376: 23376: div_2exp_assign_r(half, double_approx_i, 1, ROUND_UP); 23376: add_mul_assign_r(sum, coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++pinf_count; 23376: pinf_index = id; 23376: } 23376: } 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& double_approx_minus_i = m_i[n_i + 1]; 23376: if (!is_plus_infinity(double_approx_minus_i)) { 23376: 23376: div_2exp_assign_r(half, double_approx_minus_i, 1, ROUND_UP); 23376: add_mul_assign_r(neg_sum, coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = id; 23376: } 23376: } 23376: } 23376: else if (sign_i < 0) { 23376: neg_assign_r(minus_sc_i, sc_i, ROUND_NOT_NEEDED); 23376: assign_r(minus_coeff_i, minus_sc_i, ROUND_UP); 23376: 23376: if (pinf_count <= 1) { 23376: const N& double_approx_minus_i = m_i[n_i + 1]; 23376: if (!is_plus_infinity(double_approx_minus_i)) { 23376: 23376: div_2exp_assign_r(half, double_approx_minus_i, 1, ROUND_UP); 23376: add_mul_assign_r(sum, minus_coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++pinf_count; 23376: pinf_index = id; 23376: } 23376: } 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& double_approx_i = m_ci[n_i]; 23376: if (!is_plus_infinity(double_approx_i)) { 23376: 23376: div_2exp_assign_r(half, double_approx_i, 1, ROUND_UP); 23376: add_mul_assign_r(neg_sum, minus_coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = id; 23376: } 23376: } 23376: } 23376: } 23376: 23376: if (pinf_count > 1 && neg_pinf_count > 1) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: reset_strongly_closed(); 23376: 23376: 23376: if (pinf_count <= 1) { 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_double_sum; N& double_sum = holder_double_sum.item(); 23376: mul_2exp_assign_r(double_sum, sum, 1, ROUND_UP); 23376: matrix[n_var + 1][n_var] = double_sum; 23376: 23376: deduce_v_pm_u_bounds(var_id, w_id, sc_expr, sc_denom, sum); 23376: } 23376: else { 23376: 23376: if (pinf_index != var_id) { 23376: const Coefficient& ppi 23376: = sc_expr.coefficient(Variable(pinf_index)); 23376: if (ppi == sc_denom) { 23376: 23376: if (var_id < pinf_index) { 23376: matrix[2*pinf_index][n_var] = sum; 23376: } 23376: else { 23376: matrix[n_var + 1][2*pinf_index + 1] = sum; 23376: } 23376: } 23376: else { 23376: if (ppi == minus_sc_denom) { 23376: 23376: if (var_id < pinf_index) { 23376: matrix[2*pinf_index + 1][n_var] = sum; 23376: } 23376: else { 23376: matrix[n_var + 1][2*pinf_index] = sum; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: if (neg_pinf_count <= 1) { 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(neg_sum, neg_sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (neg_pinf_count == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_double_neg_sum; N& double_neg_sum = holder_double_neg_sum.item(); 23376: mul_2exp_assign_r(double_neg_sum, neg_sum, 1, ROUND_UP); 23376: matrix[n_var][n_var + 1] = double_neg_sum; 23376: 23376: deduce_minus_v_pm_u_bounds(var_id, w_id, sc_expr, sc_denom, 23376: neg_sum); 23376: } 23376: else { 23376: 23376: if (neg_pinf_index != var_id) { 23376: const Coefficient& npi 23376: = sc_expr.coefficient(Variable(neg_pinf_index)); 23376: if (npi == sc_denom) { 23376: 23376: 23376: if (neg_pinf_index < var_id) { 23376: matrix[n_var][2*neg_pinf_index] = neg_sum; 23376: } 23376: else { 23376: matrix[2*neg_pinf_index + 1][n_var + 1] = neg_sum; 23376: } 23376: } 23376: else { 23376: if (npi == minus_sc_denom) { 23376: 23376: 23376: if (neg_pinf_index < var_id) { 23376: matrix[n_var][2*neg_pinf_index + 1] = neg_sum; 23376: } 23376: else { 23376: matrix[2*neg_pinf_index][n_var + 1] = neg_sum; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: break; 23376: } 23376: 23376: case LESS_OR_EQUAL: 23376: { 23376: 23376: 23376: 23376: 23376: assign_r(sum, sc_b, ROUND_UP); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_approx_i; N& approx_i = holder_approx_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: 23376: 23376: for (row_iterator m_iter = m_begin, 23376: m_iter_end = m_begin + (2 * w_id + 2); 23376: m_iter != m_iter_end; ) { 23376: const dimension_type n_i = m_iter.index(); 23376: const dimension_type id = n_i/2; 23376: row_reference m_i = *m_iter; 23376: ++m_iter; 23376: row_reference m_ci = *m_iter; 23376: ++m_iter; 23376: const Coefficient& sc_i = sc_expr.coefficient(Variable(id)); 23376: const int sign_i = sgn(sc_i); 23376: if (sign_i == 0) { 23376: continue; 23376: } 23376: 23376: const N& double_approx_i = (sign_i > 0) ? m_ci[n_i] : m_i[n_i + 1]; 23376: if (is_plus_infinity(double_approx_i)) { 23376: if (++pinf_count > 1) { 23376: break; 23376: } 23376: pinf_index = id; 23376: continue; 23376: } 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: } 23376: else { 23376: neg_assign(minus_sc_i, sc_i); 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: } 23376: div_2exp_assign_r(approx_i, double_approx_i, 1, ROUND_UP); 23376: add_mul_assign_r(sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_double_sum; N& double_sum = holder_double_sum.item(); 23376: mul_2exp_assign_r(double_sum, sum, 1, ROUND_UP); 23376: add_octagonal_constraint(n_var + 1, n_var, double_sum); 23376: 23376: deduce_v_pm_u_bounds(var_id, w_id, sc_expr, sc_denom, sum); 23376: } 23376: else if (pinf_count == 1) { 23376: dimension_type pinf_ind = 2*pinf_index; 23376: if (expr.coefficient(Variable(pinf_index)) == denominator ) { 23376: 23376: if (var_id < pinf_index) { 23376: add_octagonal_constraint(pinf_ind, n_var, sum); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, pinf_ind + 1, sum); 23376: } 23376: } 23376: else { 23376: if (expr.coefficient(Variable(pinf_index)) == minus_denom) { 23376: 23376: if (var_id < pinf_index) { 23376: add_octagonal_constraint(pinf_ind + 1, n_var, sum); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, pinf_ind, sum); 23376: } 23376: } 23376: } 23376: } 23376: break; 23376: } 23376: 23376: case GREATER_OR_EQUAL: 23376: { 23376: 23376: 23376: 23376: 23376: 23376: assign_r(sum, minus_sc_b, ROUND_UP); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_approx_i; N& approx_i = holder_approx_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: for (row_iterator m_iter = m_begin, 23376: m_iter_end = m_begin + (2 * w_id + 2); 23376: m_iter != m_iter_end; ) { 23376: const dimension_type n_i = m_iter.index(); 23376: const dimension_type id = n_i/2; 23376: row_reference m_i = *m_iter; 23376: ++m_iter; 23376: row_reference m_ci = *m_iter; 23376: ++m_iter; 23376: const Coefficient& sc_i = sc_expr.coefficient(Variable(id)); 23376: const int sign_i = sgn(sc_i); 23376: if (sign_i == 0) { 23376: continue; 23376: } 23376: 23376: const N& double_approx_i = (sign_i > 0) ? m_i[n_i + 1] : m_ci[n_i]; 23376: if (is_plus_infinity(double_approx_i)) { 23376: if (++pinf_count > 1) { 23376: break; 23376: } 23376: pinf_index = id; 23376: continue; 23376: } 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: } 23376: else { 23376: neg_assign(minus_sc_i, sc_i); 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: } 23376: div_2exp_assign_r(approx_i, double_approx_i, 1, ROUND_UP); 23376: add_mul_assign_r(sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_double_sum; N& double_sum = holder_double_sum.item(); 23376: mul_2exp_assign_r(double_sum, sum, 1, ROUND_UP); 23376: add_octagonal_constraint(n_var, n_var + 1, double_sum); 23376: 23376: deduce_minus_v_pm_u_bounds(var_id, pinf_index, sc_expr, sc_denom, 23376: sum); 23376: } 23376: else if (pinf_count == 1) { 23376: dimension_type pinf_ind = 2*pinf_index; 23376: if (expr.coefficient(Variable(pinf_index)) == denominator) { 23376: 23376: 23376: if (pinf_index < var_id) { 23376: add_octagonal_constraint(n_var, pinf_ind, sum); 23376: } 23376: else { 23376: add_octagonal_constraint(pinf_ind + 1, n_var, sum); 23376: } 23376: } 23376: else { 23376: if (expr.coefficient(Variable(pinf_index)) == minus_denom) { 23376: 23376: 23376: if (pinf_index < var_id) { 23376: add_octagonal_constraint(n_var, pinf_ind + 1, sum); 23376: } 23376: else { 23376: add_octagonal_constraint(pinf_ind, n_var + 1, sum); 23376: } 23376: } 23376: } 23376: } 23376: break; 23376: } 23376: 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::affine_image(const Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference 23376: denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("affine_image(v, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: 23376: 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("affine_image(v, e, d)", "e", expr); 23376: } 23376: 23376: 23376: const dimension_type var_id = var.id(); 23376: if (space_dim < var_id + 1) { 23376: throw_dimension_incompatible("affine_image(v, e, d)", var_id + 1); 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type w_id = expr.last_nonzero(); 23376: 23376: if (w_id != 0) { 23376: ++t; 23376: if (!expr.all_zeroes(1, w_id)) { 23376: ++t; 23376: } 23376: --w_id; 23376: } 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: typedef typename OR_Matrix::const_row_iterator Row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type Row_reference; 23376: using std::swap; 23376: 23376: const dimension_type n_var = 2*var_id; 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_denom; Parma_Polyhedra_Library::Coefficient& minus_denom = holder_minus_denom.item(); 23376: neg_assign_r(minus_denom, denominator, ROUND_NOT_NEEDED); 23376: # 5179 "../../src/Octagonal_Shape_templates.hh" 23376: if (t == 0) { 23376: 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_two_b; Parma_Polyhedra_Library::Coefficient& two_b = holder_two_b.item(); 23376: two_b = 2*b; 23376: 23376: add_octagonal_constraint(n_var + 1, n_var, two_b, denominator); 23376: add_octagonal_constraint(n_var, n_var + 1, two_b, minus_denom); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (t == 1) { 23376: 23376: const Coefficient& w_coeff = expr.coefficient(Variable(w_id)); 23376: if (w_coeff == denominator || w_coeff == minus_denom) { 23376: 23376: if (w_id == var_id) { 23376: 23376: const bool sign_symmetry = (w_coeff != denominator); 23376: if (!sign_symmetry && b == 0) { 23376: 23376: return; 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, b, denominator); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_d; N& minus_d = holder_minus_d.item(); 23376: div_round_up(minus_d, b, minus_denom); 23376: if (sign_symmetry) { 23376: swap(d, minus_d); 23376: } 23376: const row_iterator m_begin = matrix.row_begin(); 23376: const row_iterator m_end = matrix.row_end(); 23376: row_iterator m_iter = m_begin + n_var; 23376: row_reference m_v = *m_iter; 23376: ++m_iter; 23376: row_reference m_cv = *m_iter; 23376: ++m_iter; 23376: 23376: for (dimension_type j = n_var; j-- > 0; ) { 23376: N& m_v_j = m_v[j]; 23376: add_assign_r(m_v_j, m_v_j, minus_d, ROUND_UP); 23376: N& m_cv_j = m_cv[j]; 23376: add_assign_r(m_cv_j, m_cv_j, d, ROUND_UP); 23376: if (sign_symmetry) { 23376: swap(m_v_j, m_cv_j); 23376: } 23376: } 23376: for ( ; m_iter != m_end; ++m_iter) { 23376: row_reference m_i = *m_iter; 23376: N& m_i_v = m_i[n_var]; 23376: add_assign_r(m_i_v, m_i_v, d, ROUND_UP); 23376: N& m_i_cv = m_i[n_var + 1]; 23376: add_assign_r(m_i_cv, m_i_cv, minus_d, ROUND_UP); 23376: if (sign_symmetry) { 23376: swap(m_i_v, m_i_cv); 23376: } 23376: } 23376: 23376: mul_2exp_assign_r(d, d, 1, ROUND_UP); 23376: N& m_cv_v = m_cv[n_var]; 23376: add_assign_r(m_cv_v, m_cv_v, d, ROUND_UP); 23376: mul_2exp_assign_r(minus_d, minus_d, 1, ROUND_UP); 23376: N& m_v_cv = m_v[n_var + 1]; 23376: add_assign_r(m_v_cv, m_v_cv, minus_d, ROUND_UP); 23376: if (sign_symmetry) { 23376: swap(m_cv_v, m_v_cv); 23376: } 23376: 23376: } 23376: else { 23376: 23376: 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: const dimension_type n_w = 2*w_id; 23376: 23376: if (w_coeff == denominator) { 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w, n_var, b, denominator); 23376: add_octagonal_constraint(n_w + 1, n_var + 1, b, minus_denom); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w + 1, b, denominator); 23376: add_octagonal_constraint(n_var, n_w, b, minus_denom); 23376: } 23376: } 23376: else { 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w + 1, n_var, b, denominator); 23376: add_octagonal_constraint(n_w, n_var + 1, b, minus_denom); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w, b, denominator); 23376: add_octagonal_constraint(n_var, n_w + 1, b, minus_denom); 23376: } 23376: } 23376: incremental_strong_closure_assign(var); 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: # 5299 "../../src/Octagonal_Shape_templates.hh" 23376: const bool is_sc = (denominator > 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign_r(minus_b, b, ROUND_NOT_NEEDED); 23376: 23376: const Coefficient& sc_b = is_sc ? b : minus_b; 23376: const Coefficient& minus_sc_b = is_sc ? minus_b : b; 23376: const Coefficient& sc_denom = is_sc ? denominator : minus_denom; 23376: const Coefficient& minus_sc_denom = is_sc ? minus_denom : denominator; 23376: 23376: 23376: 23376: Linear_Expression minus_expr; 23376: if (!is_sc) { 23376: minus_expr = -expr; 23376: } 23376: const Linear_Expression& sc_expr = is_sc ? expr : minus_expr; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_pos_sum; N& pos_sum = holder_pos_sum.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_neg_sum; N& neg_sum = holder_neg_sum.item(); 23376: 23376: dimension_type pos_pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: dimension_type neg_pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type pos_pinf_count = 0; 23376: dimension_type neg_pinf_count = 0; 23376: 23376: 23376: assign_r(pos_sum, sc_b, ROUND_UP); 23376: assign_r(neg_sum, minus_sc_b, ROUND_UP); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_coeff_i; N& minus_coeff_i = holder_minus_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_half; N& half = holder_half.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: 23376: 23376: const row_iterator m_begin = matrix.row_begin(); 23376: for (Row_iterator m_iter = m_begin, m_iter_end = m_begin + (2 * w_id + 2); 23376: m_iter != m_iter_end; ) { 23376: const dimension_type n_i = m_iter.index(); 23376: const dimension_type id = n_i/2; 23376: Row_reference m_i = *m_iter; 23376: ++m_iter; 23376: Row_reference m_ci = *m_iter; 23376: ++m_iter; 23376: const Coefficient& sc_i = sc_expr.coefficient(Variable(id)); 23376: const int sign_i = sgn(sc_i); 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: 23376: if (pos_pinf_count <= 1) { 23376: const N& double_up_approx_i = m_ci[n_i]; 23376: if (!is_plus_infinity(double_up_approx_i)) { 23376: 23376: div_2exp_assign_r(half, double_up_approx_i, 1, ROUND_UP); 23376: add_mul_assign_r(pos_sum, coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++pos_pinf_count; 23376: pos_pinf_index = id; 23376: } 23376: } 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& double_up_approx_minus_i = m_i[n_i + 1]; 23376: if (!is_plus_infinity(double_up_approx_minus_i)) { 23376: 23376: div_2exp_assign_r(half, double_up_approx_minus_i, 1, ROUND_UP); 23376: add_mul_assign_r(neg_sum, coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = id; 23376: } 23376: } 23376: } 23376: else if (sign_i < 0) { 23376: neg_assign_r(minus_sc_i, sc_i, ROUND_NOT_NEEDED); 23376: assign_r(minus_coeff_i, minus_sc_i, ROUND_UP); 23376: 23376: if (pos_pinf_count <= 1) { 23376: const N& double_up_approx_minus_i = m_i[n_i + 1]; 23376: if (!is_plus_infinity(double_up_approx_minus_i)) { 23376: 23376: div_2exp_assign_r(half, double_up_approx_minus_i, 1, ROUND_UP); 23376: add_mul_assign_r(pos_sum, minus_coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++pos_pinf_count; 23376: pos_pinf_index = id; 23376: } 23376: } 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& double_up_approx_i = m_ci[n_i]; 23376: if (!is_plus_infinity(double_up_approx_i)) { 23376: 23376: div_2exp_assign_r(half, double_up_approx_i, 1, ROUND_UP); 23376: add_mul_assign_r(neg_sum, minus_coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = id; 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: 23376: if (pos_pinf_count > 1 && neg_pinf_count > 1) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: reset_strongly_closed(); 23376: 23376: 23376: if (pos_pinf_count <= 1) { 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(pos_sum, pos_sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pos_pinf_count == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_double_pos_sum; N& double_pos_sum = holder_double_pos_sum.item(); 23376: mul_2exp_assign_r(double_pos_sum, pos_sum, 1, ROUND_UP); 23376: matrix[n_var + 1][n_var] = double_pos_sum; 23376: 23376: deduce_v_pm_u_bounds(var_id, w_id, sc_expr, sc_denom, pos_sum); 23376: } 23376: else { 23376: 23376: if (pos_pinf_index != var_id) { 23376: const Coefficient& ppi = sc_expr.coefficient(Variable(pos_pinf_index)); 23376: if (ppi == sc_denom) { 23376: 23376: if (var_id < pos_pinf_index) { 23376: matrix[2*pos_pinf_index][n_var] = pos_sum; 23376: } 23376: else { 23376: matrix[n_var + 1][2*pos_pinf_index + 1] = pos_sum; 23376: } 23376: } 23376: else { 23376: if (ppi == minus_sc_denom) { 23376: 23376: if (var_id < pos_pinf_index) { 23376: matrix[2*pos_pinf_index + 1][n_var] = pos_sum; 23376: } 23376: else { 23376: matrix[n_var + 1][2*pos_pinf_index] = pos_sum; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: if (neg_pinf_count <= 1) { 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(neg_sum, neg_sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (neg_pinf_count == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_double_neg_sum; N& double_neg_sum = holder_double_neg_sum.item(); 23376: mul_2exp_assign_r(double_neg_sum, neg_sum, 1, ROUND_UP); 23376: matrix[n_var][n_var + 1] = double_neg_sum; 23376: 23376: deduce_minus_v_pm_u_bounds(var_id, w_id, sc_expr, sc_denom, neg_sum); 23376: } 23376: else { 23376: 23376: if (neg_pinf_index != var_id) { 23376: const Coefficient& npi = sc_expr.coefficient(Variable(neg_pinf_index)); 23376: if (npi == sc_denom) { 23376: 23376: 23376: if (neg_pinf_index < var_id) { 23376: matrix[n_var][2*neg_pinf_index] = neg_sum; 23376: } 23376: else { 23376: matrix[2*neg_pinf_index + 1][n_var + 1] = neg_sum; 23376: } 23376: } 23376: else { 23376: if (npi == minus_sc_denom) { 23376: 23376: 23376: if (neg_pinf_index < var_id) { 23376: matrix[n_var][2*neg_pinf_index + 1] = neg_sum; 23376: } 23376: else { 23376: matrix[2*neg_pinf_index][n_var + 1] = neg_sum; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: incremental_strong_closure_assign(var); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Octagonal_Shape::affine_form_image(const Variable var, 23376: const Linear_Form< Interval >& lf) { 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_5533 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: 23376: 23376: 23376: const dimension_type lf_space_dim = lf.space_dimension(); 23376: if (space_dim < lf_space_dim) { 23376: throw_dimension_incompatible("affine_form_image(v, l)", "l", lf); 23376: } 23376: 23376: 23376: const dimension_type var_id = var.id(); 23376: if (space_dim < var_id + 1) { 23376: throw_dimension_incompatible("affine_form_image(v, l)", var.id() + 1); 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type w_id = 0; 23376: 23376: 23376: for (dimension_type i = lf_space_dim; i-- > 0; ) { 23376: if (lf.coefficient(Variable(i)) != 0) { 23376: if (t++ == 1) { 23376: break; 23376: } 23376: else { 23376: w_id = i; 23376: } 23376: } 23376: } 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: typedef Interval FP_Interval_Type; 23376: using std::swap; 23376: 23376: const dimension_type n_var = 2*var_id; 23376: const FP_Interval_Type& b = lf.inhomogeneous_term(); 23376: # 5588 "../../src/Octagonal_Shape_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_ub; N& b_ub = holder_b_ub.item(); 23376: assign_r(b_ub, b.upper(), ROUND_NOT_NEEDED); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_mlb; N& b_mlb = holder_b_mlb.item(); 23376: neg_assign_r(b_mlb, b.lower(), ROUND_NOT_NEEDED); 23376: 23376: if (t == 0) { 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: mul_2exp_assign_r(b_mlb, b_mlb, 1, ROUND_UP); 23376: mul_2exp_assign_r(b_ub, b_ub, 1, ROUND_UP); 23376: 23376: add_octagonal_constraint(n_var + 1, n_var, b_ub); 23376: add_octagonal_constraint(n_var, n_var + 1, b_mlb); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: bool is_b_zero = (b_mlb == 0 && b_ub == 0); 23376: 23376: if (t == 1) { 23376: 23376: const FP_Interval_Type& w_coeff = lf.coefficient(Variable(w_id)); 23376: 23376: bool is_w_coeff_one = (w_coeff == 1); 23376: 23376: bool is_w_coeff_minus_one = (w_coeff == -1); 23376: if (is_w_coeff_one || is_w_coeff_minus_one) { 23376: 23376: if (w_id == var_id) { 23376: 23376: if (is_w_coeff_one && is_b_zero) { 23376: 23376: return; 23376: } 23376: 23376: 23376: if (is_w_coeff_minus_one) { 23376: swap(b_ub, b_mlb); 23376: } 23376: const row_iterator m_begin = matrix.row_begin(); 23376: const row_iterator m_end = matrix.row_end(); 23376: row_iterator m_iter = m_begin + n_var; 23376: row_reference m_v = *m_iter; 23376: ++m_iter; 23376: row_reference m_cv = *m_iter; 23376: ++m_iter; 23376: 23376: for (dimension_type j = n_var; j-- > 0; ) { 23376: N& m_v_j = m_v[j]; 23376: add_assign_r(m_v_j, m_v_j, b_mlb, ROUND_UP); 23376: N& m_cv_j = m_cv[j]; 23376: add_assign_r(m_cv_j, m_cv_j, b_ub, ROUND_UP); 23376: if (is_w_coeff_minus_one) { 23376: swap(m_v_j, m_cv_j); 23376: } 23376: } 23376: for ( ; m_iter != m_end; ++m_iter) { 23376: row_reference m_i = *m_iter; 23376: N& m_i_v = m_i[n_var]; 23376: add_assign_r(m_i_v, m_i_v, b_ub, ROUND_UP); 23376: N& m_i_cv = m_i[n_var + 1]; 23376: add_assign_r(m_i_cv, m_i_cv, b_mlb, ROUND_UP); 23376: if (is_w_coeff_minus_one) { 23376: swap(m_i_v, m_i_cv); 23376: } 23376: } 23376: 23376: mul_2exp_assign_r(b_ub, b_ub, 1, ROUND_UP); 23376: N& m_cv_v = m_cv[n_var]; 23376: add_assign_r(m_cv_v, m_cv_v, b_ub, ROUND_UP); 23376: mul_2exp_assign_r(b_mlb, b_mlb, 1, ROUND_UP); 23376: N& m_v_cv = m_v[n_var + 1]; 23376: add_assign_r(m_v_cv, m_v_cv, b_mlb, ROUND_UP); 23376: if (is_w_coeff_minus_one) { 23376: swap(m_cv_v, m_v_cv); 23376: } 23376: 23376: } 23376: else { 23376: 23376: 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: const dimension_type n_w = 2*w_id; 23376: if (is_w_coeff_one) { 23376: 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w, n_var, b_ub); 23376: add_octagonal_constraint(n_w + 1, n_var + 1, b_mlb); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w + 1, b_ub); 23376: add_octagonal_constraint(n_var, n_w, b_mlb); 23376: } 23376: } 23376: else { 23376: 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w + 1, n_var, b_ub); 23376: add_octagonal_constraint(n_w, n_var + 1, b_mlb); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w, b_ub); 23376: add_octagonal_constraint(n_var, n_w + 1, b_mlb); 23376: } 23376: } 23376: incremental_strong_closure_assign(var); 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: reset_strongly_closed(); 23376: 23376: Linear_Form minus_lf(lf); 23376: minus_lf.negate(); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_upper_bound; N& upper_bound = holder_upper_bound.item(); 23376: 23376: row_iterator m_iter = matrix.row_begin(); 23376: m_iter += n_var; 23376: row_reference var_ite = *m_iter; 23376: ++m_iter; 23376: row_reference var_cv_ite = *m_iter; 23376: ++m_iter; 23376: row_iterator m_end = matrix.row_end(); 23376: 23376: 23376: for (dimension_type curr_var = var_id, 23376: n_curr_var = n_var - 2; curr_var-- > 0; ) { 23376: Variable current(curr_var); 23376: linear_form_upper_bound(lf + current, upper_bound); 23376: assign_r(var_cv_ite[n_curr_var], upper_bound, ROUND_NOT_NEEDED); 23376: linear_form_upper_bound(lf - current, upper_bound); 23376: assign_r(var_cv_ite[n_curr_var + 1], upper_bound, ROUND_NOT_NEEDED); 23376: linear_form_upper_bound(minus_lf + current, upper_bound); 23376: assign_r(var_ite[n_curr_var], upper_bound, ROUND_NOT_NEEDED); 23376: linear_form_upper_bound(minus_lf - current, upper_bound); 23376: assign_r(var_ite[n_curr_var + 1], upper_bound, ROUND_NOT_NEEDED); 23376: n_curr_var -= 2; 23376: } 23376: for (dimension_type curr_var = var_id + 1; m_iter != m_end; ++m_iter) { 23376: row_reference m_v_ite = *m_iter; 23376: ++m_iter; 23376: row_reference m_cv_ite = *m_iter; 23376: Variable current(curr_var); 23376: linear_form_upper_bound(lf + current, upper_bound); 23376: assign_r(m_cv_ite[n_var], upper_bound, ROUND_NOT_NEEDED); 23376: linear_form_upper_bound(lf - current, upper_bound); 23376: assign_r(m_v_ite[n_var], upper_bound, ROUND_NOT_NEEDED); 23376: linear_form_upper_bound(minus_lf + current, upper_bound); 23376: assign_r(m_cv_ite[n_var + 1], upper_bound, ROUND_NOT_NEEDED); 23376: linear_form_upper_bound(minus_lf - current, upper_bound); 23376: assign_r(m_v_ite[n_var + 1], upper_bound, ROUND_NOT_NEEDED); 23376: ++curr_var; 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lf_ub; N& lf_ub = holder_lf_ub.item(); 23376: linear_form_upper_bound(lf, lf_ub); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_lf_ub; N& minus_lf_ub = holder_minus_lf_ub.item(); 23376: linear_form_upper_bound(minus_lf, minus_lf_ub); 23376: mul_2exp_assign_r(lf_ub, lf_ub, 1, ROUND_UP); 23376: assign_r(matrix[n_var + 1][n_var], lf_ub, ROUND_NOT_NEEDED); 23376: mul_2exp_assign_r(minus_lf_ub, minus_lf_ub, 1, ROUND_UP); 23376: assign_r(matrix[n_var][n_var + 1], minus_lf_ub, ROUND_NOT_NEEDED); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Octagonal_Shape:: 23376: linear_form_upper_bound(const Linear_Form< Interval >& lf, 23376: N& result) const { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_5779 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: const dimension_type lf_space_dimension = lf.space_dimension(); 23376: ((void) 0); 23376: 23376: typedef Interval FP_Interval_Type; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_curr_lb; N& curr_lb = holder_curr_lb.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_curr_ub; N& curr_ub = holder_curr_ub.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_curr_var_ub; N& curr_var_ub = holder_curr_var_ub.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_curr_minus_var_ub; N& curr_minus_var_ub = holder_curr_minus_var_ub.item(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_first_comparison_term; N& first_comparison_term = holder_first_comparison_term.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_second_comparison_term; N& second_comparison_term = holder_second_comparison_term.item(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_negator; N& negator = holder_negator.item(); 23376: 23376: assign_r(result, lf.inhomogeneous_term().upper(), ROUND_NOT_NEEDED); 23376: 23376: for (dimension_type curr_var = 0, n_var = 0; curr_var < lf_space_dimension; 23376: ++curr_var) { 23376: const FP_Interval_Type& curr_coefficient = 23376: lf.coefficient(Variable(curr_var)); 23376: assign_r(curr_lb, curr_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(curr_ub, curr_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (curr_lb != 0 || curr_ub != 0) { 23376: assign_r(curr_var_ub, matrix[n_var + 1][n_var], ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(curr_var_ub, curr_var_ub, 1, ROUND_UP); 23376: neg_assign_r(curr_minus_var_ub, matrix[n_var][n_var + 1], 23376: ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(curr_minus_var_ub, curr_minus_var_ub, 1, ROUND_DOWN); 23376: 23376: if (curr_lb == 1 && curr_ub == 1) { 23376: add_assign_r(result, result, std::max(curr_var_ub, curr_minus_var_ub), 23376: ROUND_UP); 23376: } 23376: else if (curr_lb == -1 && curr_ub == -1) { 23376: neg_assign_r(negator, std::min(curr_var_ub, curr_minus_var_ub), 23376: ROUND_NOT_NEEDED); 23376: add_assign_r(result, result, negator, ROUND_UP); 23376: } 23376: else { 23376: 23376: assign_r(first_comparison_term, 0, ROUND_NOT_NEEDED); 23376: assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED); 23376: add_mul_assign_r(first_comparison_term, curr_var_ub, curr_ub, 23376: ROUND_UP); 23376: add_mul_assign_r(second_comparison_term, curr_var_ub, curr_lb, 23376: ROUND_UP); 23376: assign_r(first_comparison_term, std::max(first_comparison_term, 23376: second_comparison_term), 23376: ROUND_NOT_NEEDED); 23376: assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED); 23376: add_mul_assign_r(second_comparison_term, curr_minus_var_ub, curr_ub, 23376: ROUND_UP); 23376: assign_r(first_comparison_term, std::max(first_comparison_term, 23376: second_comparison_term), 23376: ROUND_NOT_NEEDED); 23376: assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED); 23376: add_mul_assign_r(second_comparison_term, curr_minus_var_ub, curr_lb, 23376: ROUND_UP); 23376: assign_r(first_comparison_term, std::max(first_comparison_term, 23376: second_comparison_term), 23376: ROUND_NOT_NEEDED); 23376: 23376: add_assign_r(result, result, first_comparison_term, ROUND_UP); 23376: } 23376: } 23376: 23376: n_var += 2; 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape:: 23376: interval_coefficient_upper_bound(const N& var_ub, const N& minus_var_ub, 23376: const N& int_ub, const N& int_lb, 23376: N& result) { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_5862 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_second_comparison_term; N& second_comparison_term = holder_second_comparison_term.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_third_comparison_term; N& third_comparison_term = holder_third_comparison_term.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_fourth_comparison_term; N& fourth_comparison_term = holder_fourth_comparison_term.item(); 23376: 23376: assign_r(result, 0, ROUND_NOT_NEEDED); 23376: assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED); 23376: assign_r(third_comparison_term, 0, ROUND_NOT_NEEDED); 23376: assign_r(fourth_comparison_term, 0, ROUND_NOT_NEEDED); 23376: 23376: add_mul_assign_r(result, var_ub, int_ub, ROUND_UP); 23376: add_mul_assign_r(second_comparison_term, minus_var_ub, int_ub, ROUND_UP); 23376: add_mul_assign_r(third_comparison_term, var_ub, int_lb, ROUND_UP); 23376: add_mul_assign_r(fourth_comparison_term, minus_var_ub, int_lb, ROUND_UP); 23376: 23376: assign_r(result, std::max(result, second_comparison_term), ROUND_NOT_NEEDED); 23376: assign_r(result, std::max(result, third_comparison_term), ROUND_NOT_NEEDED); 23376: assign_r(result, std::max(result, fourth_comparison_term), ROUND_NOT_NEEDED); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::affine_preimage(const Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference 23376: denominator) { 23376: 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("affine_preimage(v, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: 23376: 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("affine_preimage(v, e, d)", "e", expr); 23376: } 23376: 23376: 23376: dimension_type var_id = var.id(); 23376: if (space_dim < var_id + 1) { 23376: throw_dimension_incompatible("affine_preimage(v, e, d)", var_id + 1); 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: 23376: dimension_type w_id = expr.last_nonzero(); 23376: 23376: if (w_id != 0) { 23376: ++t; 23376: if (!expr.all_zeroes(1, w_id)) { 23376: ++t; 23376: } 23376: --w_id; 23376: } 23376: # 5942 "../../src/Octagonal_Shape_templates.hh" 23376: if (t == 0) { 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (t == 1) { 23376: 23376: const Coefficient& w_coeff = expr.coefficient(Variable(w_id)); 23376: if (w_coeff == denominator || w_coeff == -denominator) { 23376: 23376: if (w_id == var_id) { 23376: 23376: affine_image(var, denominator*var - b, w_coeff); 23376: } 23376: else { 23376: 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: ((void) 0); 23376: } 23376: return; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: const Coefficient& coeff_v = expr.coefficient(var); 23376: if (coeff_v != 0) { 23376: if (coeff_v > 0) { 23376: 23376: Linear_Expression inverse = ((coeff_v + denominator)*var); 23376: inverse -= expr; 23376: affine_image(var, inverse, coeff_v); 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_coeff_v; Parma_Polyhedra_Library::Coefficient& minus_coeff_v = holder_minus_coeff_v.item(); 23376: neg_assign(minus_coeff_v, coeff_v); 23376: Linear_Expression inverse = ((minus_coeff_v - denominator)*var); 23376: inverse += expr; 23376: affine_image(var, inverse, minus_coeff_v); 23376: } 23376: } 23376: else { 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: ((void) 0); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::generalized_affine_image(const Variable var, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& expr , 23376: Coefficient_traits::const_reference denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("generalized_affine_image(v, r, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: 23376: 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(v, r, e, d)", "e", 23376: expr); 23376: } 23376: 23376: 23376: dimension_type var_id = var.id(); 23376: if (space_dim < var_id + 1) { 23376: throw_dimension_incompatible("generalized_affine_image(v, r, e, d)", 23376: var_id + 1); 23376: } 23376: 23376: 23376: if (relsym == LESS_THAN || relsym == GREATER_THAN) { 23376: throw_invalid_argument("generalized_affine_image(v, r, e, d)", 23376: "r is a strict relation symbol"); 23376: } 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_image(v, r, e, d)", 23376: "r is the disequality relation symbol"); 23376: } 23376: 23376: if (relsym == EQUAL) { 23376: 23376: 23376: affine_image(var, expr, denominator); 23376: return; 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type w_id = expr.last_nonzero(); 23376: 23376: if (w_id != 0) { 23376: ++t; 23376: if (!expr.all_zeroes(1, w_id)) { 23376: ++t; 23376: } 23376: --w_id; 23376: } 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: typedef typename OR_Matrix::const_row_iterator Row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type Row_reference; 23376: 23376: const row_iterator m_begin = matrix.row_begin(); 23376: const row_iterator m_end = matrix.row_end(); 23376: const dimension_type n_var = 2*var_id; 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_denom; Parma_Polyhedra_Library::Coefficient& minus_denom = holder_minus_denom.item(); 23376: neg_assign_r(minus_denom, denominator, ROUND_NOT_NEEDED); 23376: # 6082 "../../src/Octagonal_Shape_templates.hh" 23376: if (t == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_two_b; Parma_Polyhedra_Library::Coefficient& two_b = holder_two_b.item(); 23376: two_b = 2*b; 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: 23376: reset_strongly_closed(); 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: 23376: add_octagonal_constraint(n_var + 1, n_var, two_b, denominator); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: 23376: 23376: add_octagonal_constraint(n_var, n_var + 1, two_b, minus_denom); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (t == 1) { 23376: 23376: const Coefficient& w_coeff = expr.coefficient(Variable(w_id)); 23376: if (w_coeff == denominator || w_coeff == minus_denom) { 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, b, denominator); 23376: if (w_id == var_id) { 23376: 23376: 23376: reset_strongly_closed(); 23376: if (w_coeff == denominator) { 23376: 23376: 23376: 23376: row_iterator m_iter = m_begin + n_var; 23376: row_reference m_v = *m_iter; 23376: N& m_v_cv = m_v[n_var + 1]; 23376: ++m_iter; 23376: row_reference m_cv = *m_iter; 23376: N& m_cv_v = m_cv[n_var]; 23376: ++m_iter; 23376: 23376: for ( ; m_iter != m_end; ++m_iter) { 23376: row_reference m_i = *m_iter; 23376: N& m_i_v = m_i[n_var]; 23376: add_assign_r(m_i_v, m_i_v, d, ROUND_UP); 23376: assign_r(m_i[n_var + 1], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: for (dimension_type k = n_var; k-- > 0; ) { 23376: assign_r(m_v[k], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: add_assign_r(m_cv[k], m_cv[k], d, ROUND_UP); 23376: } 23376: mul_2exp_assign_r(d, d, 1, ROUND_UP); 23376: add_assign_r(m_cv_v, m_cv_v, d, ROUND_UP); 23376: assign_r(m_v_cv, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: 23376: 23376: N& m_v_cv = matrix[n_var][n_var + 1]; 23376: mul_2exp_assign_r(d, d, 1, ROUND_UP); 23376: add_assign_r(matrix[n_var + 1][n_var], m_v_cv, d, ROUND_UP); 23376: assign_r(m_v_cv, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: forget_binary_octagonal_constraints(var_id); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: const dimension_type n_w = 2*w_id; 23376: if (w_coeff == denominator) { 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w, n_var, b, denominator); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w + 1, b, denominator); 23376: } 23376: } 23376: else { 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w + 1, n_var, b, denominator); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var + 1, n_w, b, denominator); 23376: } 23376: } 23376: } 23376: break; 23376: } 23376: 23376: case GREATER_OR_EQUAL: 23376: { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, b, minus_denom); 23376: if (w_id == var_id) { 23376: 23376: 23376: reset_strongly_closed(); 23376: if (w_coeff == denominator) { 23376: 23376: 23376: 23376: row_iterator m_iter = m_begin + n_var; 23376: row_reference m_v = *m_iter; 23376: N& m_v_cv = m_v[n_var + 1]; 23376: ++m_iter; 23376: row_reference m_cv = *m_iter; 23376: N& m_cv_v = m_cv[n_var]; 23376: ++m_iter; 23376: 23376: for ( ; m_iter != m_end; ++m_iter) { 23376: row_reference m_i = *m_iter; 23376: assign_r(m_i[n_var], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: add_assign_r(m_i[n_var + 1], m_i[n_var + 1], d, ROUND_UP); 23376: } 23376: for (dimension_type k = n_var; k-- > 0; ) { 23376: add_assign_r(m_v[k], m_v[k], d, ROUND_UP); 23376: assign_r(m_cv[k], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: mul_2exp_assign_r(d, d, 1, ROUND_UP); 23376: add_assign_r(m_v_cv, m_v_cv, d, ROUND_UP); 23376: assign_r(m_cv_v, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: 23376: 23376: N& m_cv_v = matrix[n_var + 1][n_var]; 23376: mul_2exp_assign_r(d, d, 1, ROUND_UP); 23376: add_assign_r(matrix[n_var][n_var + 1], m_cv_v, d, ROUND_UP); 23376: assign_r(m_cv_v, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: forget_binary_octagonal_constraints(var_id); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: const dimension_type n_w = 2*w_id; 23376: 23376: 23376: 23376: 23376: if (w_coeff == denominator) { 23376: 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w + 1, n_var + 1, b, minus_denom); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var, n_w, b, minus_denom); 23376: } 23376: } 23376: else { 23376: 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w, n_var + 1, b, minus_denom); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var, n_w + 1, b, minus_denom); 23376: } 23376: } 23376: } 23376: break; 23376: } 23376: 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: # 6281 "../../src/Octagonal_Shape_templates.hh" 23376: const bool is_sc = (denominator > 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign(minus_b, b); 23376: const Coefficient& sc_b = is_sc ? b : minus_b; 23376: const Coefficient& minus_sc_b = is_sc ? minus_b : b; 23376: const Coefficient& sc_denom = is_sc ? denominator : minus_denom; 23376: const Coefficient& minus_sc_denom = is_sc ? minus_denom : denominator; 23376: 23376: 23376: 23376: Linear_Expression minus_expr; 23376: if (!is_sc) { 23376: minus_expr = -expr; 23376: } 23376: const Linear_Expression& sc_expr = is_sc ? expr : minus_expr; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_sum; N& sum = holder_sum.item(); 23376: 23376: dimension_type pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type pinf_count = 0; 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: { 23376: 23376: 23376: 23376: assign_r(sum, sc_b, ROUND_UP); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_approx_i; N& approx_i = holder_approx_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: 23376: 23376: for (Row_iterator m_iter = m_begin, m_iter_end = m_begin + (2 * w_id + 2); 23376: m_iter != m_iter_end; ) { 23376: const dimension_type n_i = m_iter.index(); 23376: const dimension_type id = n_i/2; 23376: Row_reference m_i = *m_iter; 23376: ++m_iter; 23376: Row_reference m_ci = *m_iter; 23376: ++m_iter; 23376: const Coefficient& sc_i = sc_expr.coefficient(Variable(id)); 23376: const int sign_i = sgn(sc_i); 23376: if (sign_i == 0) { 23376: continue; 23376: } 23376: 23376: const N& double_approx_i = (sign_i > 0) ? m_ci[n_i] : m_i[n_i + 1]; 23376: if (is_plus_infinity(double_approx_i)) { 23376: if (++pinf_count > 1) { 23376: break; 23376: } 23376: pinf_index = id; 23376: continue; 23376: } 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: } 23376: else { 23376: neg_assign(minus_sc_i, sc_i); 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: } 23376: div_2exp_assign_r(approx_i, double_approx_i, 1, ROUND_UP); 23376: add_mul_assign_r(sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: reset_strongly_closed(); 23376: 23376: if (pinf_count > 1) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_double_sum; N& double_sum = holder_double_sum.item(); 23376: mul_2exp_assign_r(double_sum, sum, 1, ROUND_UP); 23376: matrix[n_var + 1][n_var] = double_sum; 23376: 23376: deduce_v_pm_u_bounds(var_id, w_id, sc_expr, sc_denom, sum); 23376: } 23376: else if (pinf_count == 1) { 23376: if (pinf_index != var_id) { 23376: const Coefficient& pi = expr.coefficient(Variable(pinf_index)); 23376: if (pi == denominator ) { 23376: 23376: if (var_id < pinf_index) { 23376: matrix[2*pinf_index][n_var] = sum; 23376: } 23376: else { 23376: matrix[n_var + 1][2*pinf_index + 1] = sum; 23376: } 23376: } 23376: else { 23376: if (pi == minus_denom) { 23376: 23376: if (var_id < pinf_index) { 23376: matrix[2*pinf_index + 1][n_var] = sum; 23376: } 23376: else { 23376: matrix[n_var + 1][2*pinf_index] = sum; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: break; 23376: } 23376: 23376: case GREATER_OR_EQUAL: 23376: { 23376: 23376: 23376: 23376: 23376: 23376: assign_r(sum, minus_sc_b, ROUND_UP); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_approx_i; N& approx_i = holder_approx_i.item(); 23376: 23376: for (Row_iterator m_iter = m_begin, m_iter_end = m_begin + (2 * w_id + 2); 23376: m_iter != m_iter_end; ) { 23376: const dimension_type n_i = m_iter.index(); 23376: const dimension_type id = n_i/2; 23376: Row_reference m_i = *m_iter; 23376: ++m_iter; 23376: Row_reference m_ci = *m_iter; 23376: ++m_iter; 23376: const Coefficient& sc_i = sc_expr.coefficient(Variable(id)); 23376: const int sign_i = sgn(sc_i); 23376: if (sign_i == 0) { 23376: continue; 23376: } 23376: 23376: const N& double_approx_i = (sign_i > 0) ? m_i[n_i + 1] : m_ci[n_i]; 23376: if (is_plus_infinity(double_approx_i)) { 23376: if (++pinf_count > 1) { 23376: break; 23376: } 23376: pinf_index = id; 23376: continue; 23376: } 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: } 23376: else { 23376: neg_assign(minus_sc_i, sc_i); 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: } 23376: div_2exp_assign_r(approx_i, double_approx_i, 1, ROUND_UP); 23376: add_mul_assign_r(sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: reset_strongly_closed(); 23376: 23376: if (pinf_count > 1) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_double_sum; N& double_sum = holder_double_sum.item(); 23376: mul_2exp_assign_r(double_sum, sum, 1, ROUND_UP); 23376: matrix[n_var][n_var + 1] = double_sum; 23376: 23376: deduce_minus_v_pm_u_bounds(var_id, pinf_index, sc_expr, sc_denom, sum); 23376: } 23376: else if (pinf_count == 1) { 23376: if (pinf_index != var_id) { 23376: const Coefficient& pi = expr.coefficient(Variable(pinf_index)); 23376: if (pi == denominator) { 23376: 23376: 23376: if (pinf_index < var_id) { 23376: matrix[n_var][2*pinf_index] = sum; 23376: } 23376: else { 23376: matrix[2*pinf_index + 1][n_var + 1] = sum; 23376: } 23376: } 23376: else { 23376: if (pi == minus_denom) { 23376: 23376: 23376: if (pinf_index < var_id) { 23376: matrix[n_var][2*pinf_index + 1] = sum; 23376: } 23376: else { 23376: matrix[2*pinf_index][n_var + 1] = sum; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: break; 23376: } 23376: 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: incremental_strong_closure_assign(var); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::generalized_affine_image(const Linear_Expression& lhs, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& rhs) { 23376: 23376: 23376: 23376: dimension_type lhs_space_dim = lhs.space_dimension(); 23376: if (space_dim < lhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(e1, r, e2)", 23376: "e1", lhs); 23376: } 23376: 23376: 23376: const dimension_type rhs_space_dim = rhs.space_dimension(); 23376: if (space_dim < rhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(e1, r, e2)", 23376: "e2", rhs); 23376: } 23376: 23376: 23376: if (relsym == LESS_THAN || relsym == GREATER_THAN) { 23376: throw_invalid_argument("generalized_affine_image(e1, r, e2)", 23376: "r is a strict relation symbol"); 23376: } 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_image(e1, r, e2)", 23376: "r is the disequality relation symbol"); 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: dimension_type t_lhs = 0; 23376: 23376: dimension_type j_lhs = lhs.last_nonzero(); 23376: 23376: if (j_lhs != 0) { 23376: ++t_lhs; 23376: if (!lhs.all_zeroes(1, j_lhs)) { 23376: ++t_lhs; 23376: } 23376: --j_lhs; 23376: } 23376: 23376: const Coefficient& b_lhs = lhs.inhomogeneous_term(); 23376: 23376: if (t_lhs == 0) { 23376: # 6583 "../../src/Octagonal_Shape_templates.hh" 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: refine_no_check(lhs <= rhs); 23376: break; 23376: case EQUAL: 23376: refine_no_check(lhs == rhs); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_no_check(lhs >= rhs); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: 23376: else if (t_lhs == 1) { 23376: 23376: 23376: 23376: Variable v(j_lhs); 23376: 23376: const Coefficient& denom = lhs.coefficient(v); 23376: Relation_Symbol new_relsym = relsym; 23376: if (denom < 0) { 23376: if (relsym == LESS_OR_EQUAL) { 23376: new_relsym = GREATER_OR_EQUAL; 23376: } 23376: else if (relsym == GREATER_OR_EQUAL) { 23376: new_relsym = LESS_OR_EQUAL; 23376: } 23376: } 23376: Linear_Expression expr = rhs - b_lhs; 23376: generalized_affine_image(v, new_relsym, expr, denom); 23376: } 23376: else { 23376: 23376: 23376: std::vector lhs_vars; 23376: for (Linear_Expression::const_iterator i = lhs.begin(), i_end = lhs.end(); 23376: i != i_end; ++i) { 23376: lhs_vars.push_back(i.variable()); 23376: } 23376: 23376: const dimension_type num_common_dims = std::min(lhs_space_dim, rhs_space_dim); 23376: if (!lhs.have_a_common_variable(rhs, Variable(0), Variable(num_common_dims))) { 23376: 23376: 23376: for (dimension_type i = lhs_vars.size(); i-- > 0; ) { 23376: dimension_type lhs_vars_i = lhs_vars[i].id(); 23376: forget_all_octagonal_constraints(lhs_vars_i); 23376: } 23376: 23376: 23376: 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: refine_no_check(lhs <= rhs); 23376: break; 23376: case EQUAL: 23376: refine_no_check(lhs == rhs); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_no_check(lhs >= rhs); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: for (dimension_type i = lhs_vars.size(); i-- > 0; ) { 23376: dimension_type lhs_vars_i = lhs_vars[i].id(); 23376: forget_all_octagonal_constraints(lhs_vars_i); 23376: } 23376: # 6711 "../../src/Octagonal_Shape_templates.hh" 23376: } 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::bounded_affine_image(const Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference 23376: denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("bounded_affine_image(v, lb, ub, d)", "d == 0"); 23376: } 23376: 23376: 23376: const dimension_type var_id = var.id(); 23376: if (space_dim < var_id + 1) { 23376: throw_dimension_incompatible("bounded_affine_image(v, lb, ub, d)", 23376: var_id + 1); 23376: } 23376: 23376: 23376: 23376: const dimension_type lb_space_dim = lb_expr.space_dimension(); 23376: if (space_dim < lb_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_image(v, lb, ub, d)", 23376: "lb", lb_expr); 23376: } 23376: const dimension_type ub_space_dim = ub_expr.space_dimension(); 23376: if (space_dim < ub_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_image(v, lb, ub, d)", 23376: "ub", ub_expr); 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type w_id = lb_expr.last_nonzero(); 23376: 23376: if (w_id != 0) { 23376: ++t; 23376: if (!lb_expr.all_zeroes(1, w_id)) { 23376: ++t; 23376: } 23376: --w_id; 23376: } 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::const_row_iterator Row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type Row_reference; 23376: 23376: const row_iterator m_begin = matrix.row_begin(); 23376: const dimension_type n_var = 2*var_id; 23376: const Coefficient& b = lb_expr.inhomogeneous_term(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_denom; Parma_Polyhedra_Library::Coefficient& minus_denom = holder_minus_denom.item(); 23376: neg_assign_r(minus_denom, denominator, ROUND_NOT_NEEDED); 23376: # 6788 "../../src/Octagonal_Shape_templates.hh" 23376: if (t == 0) { 23376: 23376: generalized_affine_image(var, 23376: LESS_OR_EQUAL, 23376: ub_expr, 23376: denominator); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_two_b; Parma_Polyhedra_Library::Coefficient& two_b = holder_two_b.item(); 23376: two_b = 2*b; 23376: 23376: add_octagonal_constraint(n_var, n_var + 1, two_b, minus_denom); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (t == 1) { 23376: 23376: const Coefficient& w_coeff = lb_expr.coefficient(Variable(w_id)); 23376: if (w_coeff == denominator || w_coeff == minus_denom) { 23376: 23376: if (w_id == var_id) { 23376: 23376: 23376: const Variable new_var(space_dim); 23376: add_space_dimensions_and_embed(1); 23376: 23376: 23376: affine_image(new_var, lb_expr, denominator); 23376: 23376: strong_closure_assign(); 23376: ((void) 0); 23376: 23376: generalized_affine_image(var, 23376: LESS_OR_EQUAL, 23376: ub_expr, 23376: denominator); 23376: 23376: refine_no_check(var >= new_var); 23376: 23376: remove_higher_space_dimensions(space_dim-1); 23376: return; 23376: } 23376: else { 23376: 23376: generalized_affine_image(var, 23376: LESS_OR_EQUAL, 23376: ub_expr, 23376: denominator); 23376: 23376: 23376: const dimension_type n_w = 2*w_id; 23376: 23376: if (w_coeff == denominator) { 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w + 1, n_var + 1, b, minus_denom); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var, n_w, b, minus_denom); 23376: } 23376: } 23376: else { 23376: 23376: if (var_id < w_id) { 23376: add_octagonal_constraint(n_w, n_var + 1, b, minus_denom); 23376: } 23376: else { 23376: add_octagonal_constraint(n_var, n_w + 1, b, minus_denom); 23376: } 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: } 23376: # 6874 "../../src/Octagonal_Shape_templates.hh" 23376: const bool is_sc = (denominator > 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign_r(minus_b, b, ROUND_NOT_NEEDED); 23376: 23376: const Coefficient& minus_sc_b = is_sc ? minus_b : b; 23376: const Coefficient& sc_denom = is_sc ? denominator : minus_denom; 23376: const Coefficient& minus_sc_denom = is_sc ? minus_denom : denominator; 23376: 23376: 23376: 23376: Linear_Expression minus_expr; 23376: if (!is_sc) { 23376: minus_expr = -lb_expr; 23376: } 23376: const Linear_Expression& sc_expr = is_sc ? lb_expr : minus_expr; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_neg_sum; N& neg_sum = holder_neg_sum.item(); 23376: 23376: dimension_type neg_pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type neg_pinf_count = 0; 23376: 23376: 23376: assign_r(neg_sum, minus_sc_b, ROUND_UP); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_coeff_i; N& minus_coeff_i = holder_minus_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_half; N& half = holder_half.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: 23376: 23376: for (Row_iterator m_iter = m_begin, m_iter_end = m_begin + (2 * w_id + 2); 23376: m_iter != m_iter_end; ) { 23376: const dimension_type n_i = m_iter.index(); 23376: const dimension_type id = n_i/2; 23376: Row_reference m_i = *m_iter; 23376: ++m_iter; 23376: Row_reference m_ci = *m_iter; 23376: ++m_iter; 23376: const Coefficient& sc_i = sc_expr.coefficient(Variable(id)); 23376: const int sign_i = sgn(sc_i); 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& double_up_approx_minus_i = m_i[n_i + 1]; 23376: if (!is_plus_infinity(double_up_approx_minus_i)) { 23376: 23376: div_2exp_assign_r(half, double_up_approx_minus_i, 1, ROUND_UP); 23376: add_mul_assign_r(neg_sum, coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = id; 23376: } 23376: } 23376: } 23376: else if (sign_i < 0) { 23376: neg_assign_r(minus_sc_i, sc_i, ROUND_NOT_NEEDED); 23376: assign_r(minus_coeff_i, minus_sc_i, ROUND_UP); 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& double_up_approx_i = m_ci[n_i]; 23376: if (!is_plus_infinity(double_up_approx_i)) { 23376: 23376: div_2exp_assign_r(half, double_up_approx_i, 1, ROUND_UP); 23376: add_mul_assign_r(neg_sum, minus_coeff_i, half, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = id; 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: generalized_affine_image(var, 23376: LESS_OR_EQUAL, 23376: ub_expr, 23376: denominator); 23376: 23376: 23376: if (neg_pinf_count > 1) { 23376: return; 23376: } 23376: 23376: 23376: reset_strongly_closed(); 23376: 23376: 23376: if (neg_pinf_count <= 1) { 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(neg_sum, neg_sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (neg_pinf_count == 0) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_double_neg_sum; N& double_neg_sum = holder_double_neg_sum.item(); 23376: mul_2exp_assign_r(double_neg_sum, neg_sum, 1, ROUND_UP); 23376: matrix[n_var][n_var + 1] = double_neg_sum; 23376: 23376: deduce_minus_v_pm_u_bounds(var_id, w_id, sc_expr, sc_denom, neg_sum); 23376: } 23376: else 23376: 23376: if (neg_pinf_index != var_id) { 23376: const Coefficient& npi = sc_expr.coefficient(Variable(neg_pinf_index)); 23376: if (npi == sc_denom) { 23376: 23376: 23376: if (neg_pinf_index < var_id) { 23376: matrix[n_var][2*neg_pinf_index] = neg_sum; 23376: } 23376: else { 23376: matrix[2*neg_pinf_index + 1][n_var + 1] = neg_sum; 23376: } 23376: } 23376: else { 23376: if (npi == minus_sc_denom) { 23376: 23376: 23376: if (neg_pinf_index < var_id) { 23376: matrix[n_var][2*neg_pinf_index + 1] = neg_sum; 23376: } 23376: else { 23376: matrix[2*neg_pinf_index][n_var + 1] = neg_sum; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::generalized_affine_preimage(const Variable var, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference 23376: denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("generalized_affine_preimage(v, r, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: 23376: 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_preimage(v, r, e, d)", 23376: "e", expr); 23376: } 23376: 23376: 23376: const dimension_type var_id = var.id(); 23376: if (space_dim < var_id + 1) { 23376: throw_dimension_incompatible("generalized_affine_preimage(v, r, e, d)", 23376: var_id + 1); 23376: } 23376: 23376: 23376: if (relsym == LESS_THAN || relsym == GREATER_THAN) { 23376: throw_invalid_argument("generalized_affine_preimage(v, r, e, d)", 23376: "r is a strict relation symbol"); 23376: } 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_preimage(v, r, e, d)", 23376: "r is the disequality relation symbol"); 23376: } 23376: 23376: if (relsym == EQUAL) { 23376: 23376: 23376: affine_preimage(var, expr, denominator); 23376: return; 23376: } 23376: 23376: 23376: strong_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: const Coefficient& expr_v = expr.coefficient(var); 23376: if (expr_v != 0) { 23376: const Relation_Symbol reversed_relsym = (relsym == LESS_OR_EQUAL) 23376: ? GREATER_OR_EQUAL : LESS_OR_EQUAL; 23376: const Linear_Expression inverse 23376: = expr - (expr_v + denominator)*var; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_inverse_denom; Parma_Polyhedra_Library::Coefficient& inverse_denom = holder_inverse_denom.item(); 23376: neg_assign(inverse_denom, expr_v); 23376: const Relation_Symbol inverse_relsym 23376: = (sgn(denominator) == sgn(inverse_denom)) ? relsym : reversed_relsym; 23376: generalized_affine_image(var, inverse_relsym, inverse, inverse_denom); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: refine(var, relsym, expr, denominator); 23376: 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: 23376: forget_all_octagonal_constraints(var_id); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::generalized_affine_preimage(const Linear_Expression& lhs, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& rhs) { 23376: 23376: 23376: 23376: dimension_type lhs_space_dim = lhs.space_dimension(); 23376: if (space_dim < lhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_preimage(e1, r, e2)", 23376: "e1", lhs); 23376: } 23376: 23376: 23376: 23376: const dimension_type rhs_space_dim = rhs.space_dimension(); 23376: if (space_dim < rhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_preimage(e1, r, e2)", 23376: "e2", rhs); 23376: } 23376: 23376: 23376: if (relsym == LESS_THAN || relsym == GREATER_THAN) { 23376: throw_invalid_argument("generalized_affine_preimage(e1, r, e2)", 23376: "r is a strict relation symbol"); 23376: } 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_preimage(e1, r, e2)", 23376: "r is the disequality relation symbol"); 23376: } 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: dimension_type t_lhs = 0; 23376: 23376: dimension_type j_lhs = lhs.last_nonzero(); 23376: 23376: if (j_lhs != 0) { 23376: ++t_lhs; 23376: if (!lhs.all_zeroes(1, j_lhs)) { 23376: ++t_lhs; 23376: } 23376: --j_lhs; 23376: } 23376: 23376: const Coefficient& b_lhs = lhs.inhomogeneous_term(); 23376: 23376: 23376: 23376: if (t_lhs == 0) { 23376: generalized_affine_image(lhs, relsym, rhs); 23376: return; 23376: } 23376: 23376: else if (t_lhs == 1) { 23376: 23376: 23376: 23376: Variable v(j_lhs); 23376: 23376: const Coefficient& denom = lhs.coefficient(v); 23376: Relation_Symbol new_relsym = relsym; 23376: if (denom < 0) { 23376: if (relsym == LESS_OR_EQUAL) { 23376: new_relsym = GREATER_OR_EQUAL; 23376: } 23376: else if (relsym == GREATER_OR_EQUAL) { 23376: new_relsym = LESS_OR_EQUAL; 23376: } 23376: } 23376: Linear_Expression expr = rhs - b_lhs; 23376: generalized_affine_preimage(v, new_relsym, expr, denom); 23376: } 23376: 23376: else { 23376: 23376: 23376: std::vector lhs_vars; 23376: for (Linear_Expression::const_iterator i = lhs.begin(), i_end = lhs.end(); 23376: i != i_end; ++i) { 23376: lhs_vars.push_back(i.variable()); 23376: } 23376: 23376: const dimension_type num_common_dims = std::min(lhs_space_dim, rhs_space_dim); 23376: if (!lhs.have_a_common_variable(rhs, Variable(0), Variable(num_common_dims))) { 23376: 23376: 23376: 23376: 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: refine_no_check(lhs <= rhs); 23376: break; 23376: case EQUAL: 23376: refine_no_check(lhs == rhs); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_no_check(lhs >= rhs); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: for (dimension_type i = lhs_vars.size(); i-- > 0; ) { 23376: dimension_type lhs_vars_i = lhs_vars[i].id(); 23376: forget_all_octagonal_constraints(lhs_vars_i); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: 23376: 23376: const Variable new_var(space_dim); 23376: add_space_dimensions_and_embed(1); 23376: 23376: 23376: 23376: 23376: affine_image(new_var, lhs); 23376: 23376: 23376: strong_closure_assign(); 23376: ((void) 0); 23376: for (dimension_type i = lhs_vars.size(); i-- > 0; ) { 23376: dimension_type lhs_vars_i = lhs_vars[i].id(); 23376: forget_all_octagonal_constraints(lhs_vars_i); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: refine_no_check(new_var <= rhs); 23376: break; 23376: case EQUAL: 23376: refine_no_check(new_var == rhs); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_no_check(new_var >= rhs); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: remove_higher_space_dimensions(space_dim-1); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::bounded_affine_preimage(const Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference 23376: denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("bounded_affine_preimage(v, lb, ub, d)", "d == 0"); 23376: } 23376: 23376: 23376: const dimension_type var_id = var.id(); 23376: if (space_dim < var_id + 1) { 23376: throw_dimension_incompatible("bounded_affine_preimage(v, lb, ub, d)", 23376: var_id + 1); 23376: } 23376: 23376: 23376: 23376: const dimension_type lb_space_dim = lb_expr.space_dimension(); 23376: if (space_dim < lb_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_preimage(v, lb, ub, d)", 23376: "lb", lb_expr); 23376: } 23376: const dimension_type ub_space_dim = ub_expr.space_dimension(); 23376: if (space_dim < ub_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_preimage(v, lb, ub, d)", 23376: "ub", ub_expr); 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: if (ub_expr.coefficient(var) == 0) { 23376: refine(var, LESS_OR_EQUAL, ub_expr, denominator); 23376: generalized_affine_preimage(var, GREATER_OR_EQUAL, 23376: lb_expr, denominator); 23376: return; 23376: } 23376: if (lb_expr.coefficient(var) == 0) { 23376: refine(var, GREATER_OR_EQUAL, lb_expr, denominator); 23376: generalized_affine_preimage(var, LESS_OR_EQUAL, 23376: ub_expr, denominator); 23376: return; 23376: } 23376: 23376: const Coefficient& expr_v = lb_expr.coefficient(var); 23376: 23376: 23376: const Variable new_var(space_dim); 23376: add_space_dimensions_and_embed(1); 23376: const Linear_Expression lb_inverse 23376: = lb_expr - (expr_v + denominator)*var; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_inverse_denom; Parma_Polyhedra_Library::Coefficient& inverse_denom = holder_inverse_denom.item(); 23376: neg_assign(inverse_denom, expr_v); 23376: affine_image(new_var, lb_inverse, inverse_denom); 23376: strong_closure_assign(); 23376: ((void) 0); 23376: generalized_affine_preimage(var, LESS_OR_EQUAL, 23376: ub_expr, denominator); 23376: if (sgn(denominator) == sgn(inverse_denom)) { 23376: refine_no_check(var >= new_var) ; 23376: } 23376: else { 23376: refine_no_check(var <= new_var); 23376: } 23376: 23376: remove_higher_space_dimensions(space_dim-1); 23376: } 23376: 23376: template 23376: Constraint_System 23376: Octagonal_Shape::constraints() const { 23376: Constraint_System cs; 23376: cs.set_space_dimension(space_dim); 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: cs = Constraint_System::zero_dim_empty(); 23376: } 23376: return cs; 23376: } 23376: 23376: if (marked_empty()) { 23376: cs.insert(Constraint::zero_dim_false()); 23376: return cs; 23376: } 23376: 23376: typedef typename OR_Matrix::const_row_iterator row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type row_reference; 23376: 23376: row_iterator m_begin = matrix.row_begin(); 23376: row_iterator m_end = matrix.row_end(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a; Parma_Polyhedra_Library::Coefficient& a = holder_a.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b; Parma_Polyhedra_Library::Coefficient& b = holder_b.item(); 23376: 23376: 23376: for (row_iterator i_iter = m_begin; i_iter != m_end; ) { 23376: const dimension_type i = i_iter.index(); 23376: const Variable x(i/2); 23376: const N& c_i_ii = (*i_iter)[i + 1]; 23376: ++i_iter; 23376: const N& c_ii_i = (*i_iter)[i]; 23376: ++i_iter; 23376: 23376: if (is_additive_inverse(c_i_ii, c_ii_i)) { 23376: 23376: numer_denom(c_ii_i, b, a); 23376: a *= 2; 23376: cs.insert(a*x == b); 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(c_i_ii)) { 23376: numer_denom(c_i_ii, b, a); 23376: a *= 2; 23376: cs.insert(-a*x <= b); 23376: } 23376: if (!is_plus_infinity(c_ii_i)) { 23376: numer_denom(c_ii_i, b, a); 23376: a *= 2; 23376: cs.insert(a*x <= b); 23376: } 23376: } 23376: } 23376: 23376: for (row_iterator i_iter = m_begin; i_iter != m_end; ) { 23376: const dimension_type i = i_iter.index(); 23376: row_reference r_i = *i_iter; 23376: ++i_iter; 23376: row_reference r_ii = *i_iter; 23376: ++i_iter; 23376: const Variable y(i/2); 23376: for (dimension_type j = 0; j < i; j += 2) { 23376: const N& c_i_j = r_i[j]; 23376: const N& c_ii_jj = r_ii[j + 1]; 23376: const Variable x(j/2); 23376: if (is_additive_inverse(c_ii_jj, c_i_j)) { 23376: 23376: numer_denom(c_i_j, b, a); 23376: cs.insert(a*x - a*y == b); 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(c_i_j)) { 23376: numer_denom(c_i_j, b, a); 23376: cs.insert(a*x - a*y <= b); 23376: } 23376: if (!is_plus_infinity(c_ii_jj)) { 23376: numer_denom(c_ii_jj, b, a); 23376: cs.insert(a*y - a*x <= b); 23376: } 23376: } 23376: 23376: const N& c_ii_j = r_ii[j]; 23376: const N& c_i_jj = r_i[j + 1]; 23376: if (is_additive_inverse(c_i_jj, c_ii_j)) { 23376: 23376: numer_denom(c_ii_j, b, a); 23376: cs.insert(a*x + a*y == b); 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(c_i_jj)) { 23376: numer_denom(c_i_jj, b, a); 23376: cs.insert(-a*x - a*y <= b); 23376: } 23376: if (!is_plus_infinity(c_ii_j)) { 23376: numer_denom(c_ii_j, b, a); 23376: cs.insert(a*x + a*y <= b); 23376: } 23376: } 23376: } 23376: } 23376: return cs; 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::expand_space_dimension(Variable var, dimension_type m) { 23376: 23376: const dimension_type var_id = var.id(); 23376: if (var_id + 1 > space_dim) { 23376: throw_dimension_incompatible("expand_space_dimension(v, m)", var_id + 1); 23376: } 23376: 23376: 23376: 23376: if (m > max_space_dimension() - space_dim) { 23376: throw_invalid_argument("expand_dimension(v, m)", 23376: "adding m new space dimensions exceeds " 23376: "the maximum allowed space dimension"); 23376: } 23376: 23376: if (m == 0) { 23376: return; 23376: } 23376: 23376: const dimension_type old_num_rows = matrix.num_rows(); 23376: 23376: 23376: add_space_dimensions_and_embed(m); 23376: 23376: 23376: 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: typedef typename OR_Matrix::const_row_iterator Row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type Row_reference; 23376: 23376: const row_iterator m_begin = matrix.row_begin(); 23376: const row_iterator m_end = matrix.row_end(); 23376: const dimension_type n_var = 2*var_id; 23376: Row_iterator v_iter = m_begin + n_var; 23376: Row_reference m_v = *v_iter; 23376: Row_reference m_cv = *(v_iter + 1); 23376: 23376: for (row_iterator i_iter = m_begin + old_num_rows; i_iter != m_end; 23376: i_iter += 2) { 23376: row_reference m_i = *i_iter; 23376: row_reference m_ci = *(i_iter + 1); 23376: const dimension_type i = i_iter.index(); 23376: const dimension_type ci = i + 1; 23376: m_i[ci] = m_v[n_var + 1]; 23376: m_ci[i] = m_cv[n_var]; 23376: for (dimension_type j = 0; j < n_var; ++j) { 23376: m_i[j] = m_v[j]; 23376: m_ci[j] = m_cv[j]; 23376: } 23376: for (dimension_type j = n_var + 2; j < old_num_rows; ++j) { 23376: row_iterator j_iter = m_begin + j; 23376: row_reference m_cj = (j % 2 != 0) ? *(j_iter-1) : *(j_iter + 1); 23376: m_i[j] = m_cj[n_var + 1]; 23376: m_ci[j] = m_cj[n_var]; 23376: } 23376: } 23376: 23376: 23376: if (marked_strongly_closed()) { 23376: reset_strongly_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::fold_space_dimensions(const Variables_Set& vars, 23376: Variable dest) { 23376: 23376: if (dest.space_dimension() > space_dim) { 23376: throw_dimension_incompatible("fold_space_dimensions(vs, v)", "v", dest); 23376: } 23376: 23376: if (vars.empty()) { 23376: return; 23376: } 23376: 23376: if (vars.space_dimension() > space_dim) { 23376: throw_dimension_incompatible("fold_space_dimensions(vs, v)", 23376: vars.space_dimension()); 23376: } 23376: 23376: 23376: if (vars.find(dest.id()) != vars.end()) { 23376: throw_invalid_argument("fold_space_dimensions(vs, v)", 23376: "v should not occur in vs"); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: typedef typename OR_Matrix::row_iterator row_iterator; 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: 23376: const row_iterator m_begin = matrix.row_begin(); 23376: 23376: strong_closure_assign(); 23376: const dimension_type n_rows = matrix.num_rows(); 23376: const dimension_type n_dest = 2*dest.id(); 23376: row_iterator v_iter = m_begin + n_dest; 23376: row_reference m_v = *v_iter; 23376: row_reference m_cv = *(v_iter + 1); 23376: for (Variables_Set::const_iterator i = vars.begin(), 23376: vs_end = vars.end(); i != vs_end; ++i) { 23376: const dimension_type tbf_id = *i; 23376: const dimension_type tbf_var = 2*tbf_id; 23376: row_iterator tbf_iter = m_begin + tbf_var; 23376: row_reference m_tbf = *tbf_iter; 23376: row_reference m_ctbf = *(tbf_iter + 1); 23376: max_assign(m_v[n_dest + 1], m_tbf[tbf_var + 1]); 23376: max_assign(m_cv[n_dest], m_ctbf[tbf_var]); 23376: 23376: const dimension_type min_id = std::min(n_dest, tbf_var); 23376: const dimension_type max_id = std::max(n_dest, tbf_var); 23376: 23376: using namespace Implementation::Octagonal_Shapes; 23376: for (dimension_type j = 0; j < min_id; ++j) { 23376: const dimension_type cj = coherent_index(j); 23376: max_assign(m_v[j], m_tbf[j]); 23376: max_assign(m_cv[j], m_ctbf[j]); 23376: max_assign(m_cv[cj], m_ctbf[cj]); 23376: max_assign(m_v[cj], m_tbf[cj]); 23376: } 23376: for (dimension_type j = min_id + 2; j < max_id; ++j) { 23376: const dimension_type cj = coherent_index(j); 23376: row_iterator j_iter = m_begin + j; 23376: row_reference m_j = *j_iter; 23376: row_reference m_cj = (j % 2 != 0) ? *(j_iter-1) : *(j_iter + 1); 23376: if (n_dest == min_id) { 23376: max_assign(m_cj[n_dest + 1], m_tbf[j]); 23376: max_assign(m_cj[n_dest], m_ctbf[j]); 23376: max_assign(m_j[n_dest], m_ctbf[cj]); 23376: max_assign(m_j[n_dest + 1], m_tbf[cj]); 23376: } 23376: else { 23376: max_assign(m_v[j], m_cj[tbf_var + 1]); 23376: max_assign(m_cv[j], m_cj[tbf_var]); 23376: max_assign(m_cv[cj], m_j[tbf_var]); 23376: max_assign(m_v[cj], m_j[tbf_var + 1]); 23376: } 23376: } 23376: for (dimension_type j = max_id + 2; j < n_rows; ++j) { 23376: row_iterator j_iter = m_begin + j; 23376: row_reference m_j = *j_iter; 23376: row_reference m_cj = (j % 2 != 0) ? *(j_iter-1) : *(j_iter + 1); 23376: max_assign(m_cj[n_dest + 1], m_cj[tbf_var + 1]); 23376: max_assign(m_cj[n_dest], m_cj[tbf_var]); 23376: max_assign(m_j[n_dest], m_j[tbf_var]); 23376: max_assign(m_j[n_dest + 1], m_j[tbf_var + 1]); 23376: } 23376: } 23376: remove_space_dimensions(vars); 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::upper_bound_assign_if_exact(const Octagonal_Shape& y) { 23376: 23376: 23376: 23376: const Octagonal_Shape& x = *this; 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("upper_bound_assign_if_exact(y)", y); 23376: } 23376: 23376: 23376: if (x_space_dim == 0) { 23376: upper_bound_assign(y); 23376: return true; 23376: } 23376: 23376: if (x.marked_empty()) { 23376: *this = y; 23376: return true; 23376: } 23376: else if (y.is_empty()) { 23376: return true; 23376: } 23376: else if (x.is_empty()) { 23376: *this = y; 23376: return true; 23376: } 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: Octagonal_Shape ub(x); 23376: ub.upper_bound_assign(y); 23376: 23376: 23376: 23376: std::vector x_non_red; 23376: x.non_redundant_matrix_entries(x_non_red); 23376: std::vector y_non_red; 23376: y.non_redundant_matrix_entries(y_non_red); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lhs; N& lhs = holder_lhs.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lhs_copy; N& lhs_copy = holder_lhs_copy.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_rhs; N& rhs = holder_rhs.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp_zero; N& temp_zero = holder_temp_zero.item(); 23376: assign_r(temp_zero, 0, ROUND_NOT_NEEDED); 23376: 23376: typedef typename OR_Matrix::const_row_iterator row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type row_reference; 23376: const dimension_type n_rows = x.matrix.num_rows(); 23376: const row_iterator x_m_begin = x.matrix.row_begin(); 23376: const row_iterator y_m_begin = y.matrix.row_begin(); 23376: const row_iterator ub_m_begin = ub.matrix.row_begin(); 23376: 23376: for (dimension_type i = n_rows; i-- > 0; ) { 23376: const Bit_Row& x_non_red_i = x_non_red[i]; 23376: using namespace Implementation::Octagonal_Shapes; 23376: const dimension_type ci = coherent_index(i); 23376: const dimension_type row_size_i = OR_Matrix::row_size(i); 23376: row_reference x_i = *(x_m_begin + i); 23376: row_reference y_i = *(y_m_begin + i); 23376: row_reference ub_i = *(ub_m_begin + i); 23376: const N& ub_i_ci = ub_i[ci]; 23376: for (dimension_type j = row_size_i; j-- > 0; ) { 23376: 23376: if (!x_non_red_i[j]) { 23376: continue; 23376: } 23376: const N& x_i_j = x_i[j]; 23376: 23376: if (x_i_j >= y_i[j]) { 23376: continue; 23376: } 23376: 23376: const dimension_type cj = coherent_index(j); 23376: const dimension_type row_size_cj = OR_Matrix::row_size(cj); 23376: row_reference ub_cj = *(ub_m_begin + cj); 23376: const N& ub_cj_j = ub_cj[j]; 23376: for (dimension_type k = 0; k < n_rows; ++k) { 23376: const Bit_Row& y_non_red_k = y_non_red[k]; 23376: const dimension_type ck = coherent_index(k); 23376: const dimension_type row_size_k = OR_Matrix::row_size(k); 23376: row_reference x_k = *(x_m_begin + k); 23376: row_reference y_k = *(y_m_begin + k); 23376: row_reference ub_k = *(ub_m_begin + k); 23376: const N& ub_k_ck = ub_k[ck]; 23376: 23376: 23376: 23376: const N& ub_k_j 23376: = (k == j) 23376: ? temp_zero 23376: : ((j < row_size_k) ? ub_k[j] : ub_cj[ck]); 23376: const N& ub_i_ck 23376: = (i == ck) 23376: ? temp_zero 23376: : ((ck < row_size_i) ? ub_i[ck] : ub_k[ci]); 23376: 23376: for (dimension_type ell = row_size_k; ell-- > 0; ) { 23376: 23376: if (!y_non_red_k[ell]) { 23376: continue; 23376: } 23376: const N& y_k_ell = y_k[ell]; 23376: 23376: if (y_k_ell >= x_k[ell]) { 23376: continue; 23376: } 23376: const dimension_type cell = coherent_index(ell); 23376: row_reference ub_cell = *(ub_m_begin + cell); 23376: const N& ub_i_ell 23376: = (i == ell) 23376: ? temp_zero 23376: : ((ell < row_size_i) ? ub_i[ell] : ub_cell[ci]); 23376: const N& ub_cj_ell 23376: = (cj == ell) 23376: ? temp_zero 23376: : ((ell < row_size_cj) ? ub_cj[ell] : ub_cell[j]); 23376: 23376: add_assign_r(lhs, x_i_j, y_k_ell, ROUND_UP); 23376: add_assign_r(rhs, ub_i_ell, ub_k_j, ROUND_UP); 23376: if (lhs >= rhs) { 23376: continue; 23376: } 23376: 23376: add_assign_r(rhs, ub_i_ck, ub_cj_ell, ROUND_UP); 23376: if (lhs >= rhs) { 23376: continue; 23376: } 23376: 23376: assign_r(lhs_copy, lhs, ROUND_NOT_NEEDED); 23376: add_assign_r(lhs, lhs_copy, x_i_j, ROUND_UP); 23376: add_assign_r(rhs, ub_i_ell, ub_i_ck, ROUND_UP); 23376: add_assign_r(rhs, rhs, ub_cj_j, ROUND_UP); 23376: if (lhs >= rhs) { 23376: continue; 23376: } 23376: 23376: add_assign_r(rhs, ub_k_j, ub_cj_ell, ROUND_UP); 23376: add_assign_r(rhs, rhs, ub_i_ci, ROUND_UP); 23376: if (lhs >= rhs) { 23376: continue; 23376: } 23376: 23376: add_assign_r(lhs, lhs_copy, y_k_ell, ROUND_UP); 23376: add_assign_r(rhs, ub_i_ell, ub_cj_ell, ROUND_UP); 23376: add_assign_r(rhs, rhs, ub_k_ck, ROUND_UP); 23376: if (lhs >= rhs) { 23376: continue; 23376: } 23376: 23376: add_assign_r(rhs, ub_k_j, ub_i_ck, ROUND_UP); 23376: add_assign_r(rhs, rhs, ub_cell[ell], ROUND_UP); 23376: if (lhs < rhs) { 23376: 23376: 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: m_swap(ub); 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape 23376: ::integer_upper_bound_assign_if_exact(const Octagonal_Shape& y) { 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_7801 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(std::numeric_limits::is_integer)>) } 23376: 23376: 23376: ; 23376: 23376: const Octagonal_Shape& x = *this; 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("integer_upper_bound_assign_if_exact(y)", y); 23376: } 23376: 23376: if (x_space_dim == 0) { 23376: upper_bound_assign(y); 23376: return true; 23376: } 23376: 23376: 23376: 23376: if (x.marked_empty()) { 23376: *this = y; 23376: tight_closure_assign(); 23376: return true; 23376: } 23376: else if (y.marked_empty()) { 23376: tight_closure_assign(); 23376: return true; 23376: } 23376: else if (x.is_empty() || x.tight_coherence_would_make_empty()) { 23376: *this = y; 23376: tight_closure_assign(); 23376: return true; 23376: } 23376: else if (y.is_empty() || y.tight_coherence_would_make_empty()) { 23376: tight_closure_assign(); 23376: return true; 23376: } 23376: 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: Octagonal_Shape tx(x); 23376: tx.tight_closure_assign(); 23376: Octagonal_Shape ty(y); 23376: ty.tight_closure_assign(); 23376: Octagonal_Shape ub(tx); 23376: ub.upper_bound_assign(ty); 23376: 23376: 23376: 23376: 23376: 23376: std::vector tx_non_red; 23376: tx.non_redundant_matrix_entries(tx_non_red); 23376: std::vector ty_non_red; 23376: ty.non_redundant_matrix_entries(ty_non_red); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lhs_i_j; N& lhs_i_j = holder_lhs_i_j.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lhs_k_ell; N& lhs_k_ell = holder_lhs_k_ell.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lhs; N& lhs = holder_lhs.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lhs_copy; N& lhs_copy = holder_lhs_copy.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_rhs; N& rhs = holder_rhs.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp_zero; N& temp_zero = holder_temp_zero.item(); 23376: assign_r(temp_zero, 0, ROUND_NOT_NEEDED); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp_one; N& temp_one = holder_temp_one.item(); 23376: assign_r(temp_one, 1, ROUND_NOT_NEEDED); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp_two; N& temp_two = holder_temp_two.item(); 23376: assign_r(temp_two, 2, ROUND_NOT_NEEDED); 23376: 23376: typedef typename OR_Matrix::const_row_iterator row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type row_reference; 23376: const dimension_type n_rows = tx.matrix.num_rows(); 23376: const row_iterator tx_m_begin = tx.matrix.row_begin(); 23376: const row_iterator ty_m_begin = ty.matrix.row_begin(); 23376: const row_iterator ub_m_begin = ub.matrix.row_begin(); 23376: 23376: for (dimension_type i = n_rows; i-- > 0; ) { 23376: const Bit_Row& tx_non_red_i = tx_non_red[i]; 23376: using namespace Implementation::Octagonal_Shapes; 23376: const dimension_type ci = coherent_index(i); 23376: const dimension_type row_size_i = OR_Matrix::row_size(i); 23376: row_reference tx_i = *(tx_m_begin + i); 23376: row_reference ty_i = *(ty_m_begin + i); 23376: row_reference ub_i = *(ub_m_begin + i); 23376: const N& ub_i_ci = ub_i[ci]; 23376: for (dimension_type j = row_size_i; j-- > 0; ) { 23376: 23376: if (!tx_non_red_i[j]) { 23376: continue; 23376: } 23376: const N& tx_i_j = tx_i[j]; 23376: const dimension_type cj = coherent_index(j); 23376: const N& eps_i_j = (i == cj) ? temp_two : temp_one; 23376: 23376: add_assign_r(lhs_i_j, tx_i_j, eps_i_j, ROUND_NOT_NEEDED); 23376: if (lhs_i_j > ty_i[j]) { 23376: continue; 23376: } 23376: const dimension_type row_size_cj = OR_Matrix::row_size(cj); 23376: row_reference ub_cj = *(ub_m_begin + cj); 23376: const N& ub_cj_j = ub_cj[j]; 23376: for (dimension_type k = 0; k < n_rows; ++k) { 23376: const Bit_Row& ty_non_red_k = ty_non_red[k]; 23376: const dimension_type ck = coherent_index(k); 23376: const dimension_type row_size_k = OR_Matrix::row_size(k); 23376: row_reference tx_k = *(tx_m_begin + k); 23376: row_reference ty_k = *(ty_m_begin + k); 23376: row_reference ub_k = *(ub_m_begin + k); 23376: const N& ub_k_ck = ub_k[ck]; 23376: 23376: 23376: 23376: const N& ub_k_j 23376: = (k == j) 23376: ? temp_zero 23376: : ((j < row_size_k) ? ub_k[j] : ub_cj[ck]); 23376: const N& ub_i_ck 23376: = (i == ck) 23376: ? temp_zero 23376: : ((ck < row_size_i) ? ub_i[ck] : ub_k[ci]); 23376: 23376: for (dimension_type ell = row_size_k; ell-- > 0; ) { 23376: 23376: if (!ty_non_red_k[ell]) { 23376: continue; 23376: } 23376: const N& ty_k_ell = ty_k[ell]; 23376: const dimension_type cell = coherent_index(ell); 23376: const N& eps_k_ell = (k == cell) ? temp_two : temp_one; 23376: 23376: add_assign_r(lhs_k_ell, ty_k_ell, eps_k_ell, ROUND_NOT_NEEDED); 23376: if (lhs_k_ell > tx_k[ell]) { 23376: continue; 23376: } 23376: row_reference ub_cell = *(ub_m_begin + cell); 23376: const N& ub_i_ell 23376: = (i == ell) 23376: ? temp_zero 23376: : ((ell < row_size_i) ? ub_i[ell] : ub_cell[ci]); 23376: const N& ub_cj_ell 23376: = (cj == ell) 23376: ? temp_zero 23376: : ((ell < row_size_cj) ? ub_cj[ell] : ub_cell[j]); 23376: 23376: add_assign_r(lhs, lhs_i_j, lhs_k_ell, ROUND_NOT_NEEDED); 23376: add_assign_r(rhs, ub_i_ell, ub_k_j, ROUND_NOT_NEEDED); 23376: if (lhs > rhs) { 23376: continue; 23376: } 23376: 23376: add_assign_r(rhs, ub_i_ck, ub_cj_ell, ROUND_NOT_NEEDED); 23376: if (lhs > rhs) { 23376: continue; 23376: } 23376: 23376: assign_r(lhs_copy, lhs, ROUND_NOT_NEEDED); 23376: add_assign_r(lhs, lhs, lhs_i_j, ROUND_NOT_NEEDED); 23376: add_assign_r(rhs, ub_i_ell, ub_i_ck, ROUND_NOT_NEEDED); 23376: add_assign_r(rhs, rhs, ub_cj_j, ROUND_NOT_NEEDED); 23376: if (lhs > rhs) { 23376: continue; 23376: } 23376: 23376: add_assign_r(rhs, ub_k_j, ub_cj_ell, ROUND_NOT_NEEDED); 23376: add_assign_r(rhs, rhs, ub_i_ci, ROUND_NOT_NEEDED); 23376: if (lhs > rhs) { 23376: continue; 23376: } 23376: 23376: add_assign_r(lhs, lhs_copy, lhs_k_ell, ROUND_NOT_NEEDED); 23376: add_assign_r(rhs, ub_i_ell, ub_cj_ell, ROUND_NOT_NEEDED); 23376: add_assign_r(rhs, rhs, ub_k_ck, ROUND_NOT_NEEDED); 23376: if (lhs > rhs) { 23376: continue; 23376: } 23376: 23376: add_assign_r(rhs, ub_k_j, ub_i_ck, ROUND_NOT_NEEDED); 23376: add_assign_r(rhs, rhs, ub_cell[ell], ROUND_NOT_NEEDED); 23376: if (lhs <= rhs) { 23376: 23376: 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: m_swap(ub); 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::drop_some_non_integer_points(Complexity_Class) { 23376: if (std::numeric_limits::is_integer) { 23376: return; 23376: } 23376: 23376: strong_closure_assign(); 23376: if (space_dim == 0 || marked_empty()) { 23376: return; 23376: } 23376: 23376: for (typename OR_Matrix::element_iterator i = matrix.element_begin(), 23376: i_end = matrix.element_end(); i != i_end; ++i) { 23376: drop_some_non_integer_points_helper(*i); 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp_one; N& temp_one = holder_temp_one.item(); 23376: assign_r(temp_one, 1, ROUND_NOT_NEEDED); 23376: for (dimension_type i = 0; i < 2*space_dim; i += 2) { 23376: const dimension_type ci = i + 1; 23376: N& mat_i_ci = matrix[i][ci]; 23376: if (!is_plus_infinity(mat_i_ci) && !is_even(mat_i_ci)) { 23376: sub_assign_r(mat_i_ci, mat_i_ci, temp_one, ROUND_UP); 23376: reset_strongly_closed(); 23376: } 23376: N& mat_ci_i = matrix[ci][i]; 23376: if (!is_plus_infinity(mat_ci_i) && !is_even(mat_ci_i)) { 23376: sub_assign_r(mat_ci_i, mat_ci_i, temp_one, ROUND_UP); 23376: reset_strongly_closed(); 23376: } 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::drop_some_non_integer_points(const Variables_Set& vars, 23376: Complexity_Class) { 23376: 23376: const dimension_type min_space_dim = vars.space_dimension(); 23376: if (space_dimension() < min_space_dim) { 23376: throw_dimension_incompatible("drop_some_non_integer_points(vs, cmpl)", 23376: min_space_dim); 23376: } 23376: 23376: if (std::numeric_limits::is_integer || min_space_dim == 0) { 23376: return; 23376: } 23376: 23376: strong_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp_one; N& temp_one = holder_temp_one.item(); 23376: assign_r(temp_one, 1, ROUND_NOT_NEEDED); 23376: 23376: const Variables_Set::const_iterator v_begin = vars.begin(); 23376: const Variables_Set::const_iterator v_end = vars.end(); 23376: ((void) 0); 23376: typedef typename OR_Matrix::row_reference_type row_reference; 23376: for (Variables_Set::const_iterator v_i = v_begin; v_i != v_end; ++v_i) { 23376: const dimension_type i = 2 * (*v_i); 23376: const dimension_type ci = i + 1; 23376: row_reference m_i = matrix[i]; 23376: row_reference m_ci = matrix[ci]; 23376: 23376: 23376: N& m_i_ci = m_i[ci]; 23376: if (!is_plus_infinity(m_i_ci)) { 23376: drop_some_non_integer_points_helper(m_i_ci); 23376: if (!is_even(m_i_ci)) { 23376: sub_assign_r(m_i_ci, m_i_ci, temp_one, ROUND_UP); 23376: reset_strongly_closed(); 23376: } 23376: } 23376: N& m_ci_i = m_ci[i]; 23376: if (!is_plus_infinity(m_ci_i)) { 23376: drop_some_non_integer_points_helper(m_ci_i); 23376: if (!is_even(m_ci_i)) { 23376: sub_assign_r(m_ci_i, m_ci_i, temp_one, ROUND_UP); 23376: reset_strongly_closed(); 23376: } 23376: } 23376: 23376: 23376: for (Variables_Set::const_iterator v_j = v_begin; v_j != v_i; ++v_j) { 23376: const dimension_type j = 2 * (*v_j); 23376: const dimension_type cj = j + 1; 23376: drop_some_non_integer_points_helper(m_i[j]); 23376: drop_some_non_integer_points_helper(m_i[cj]); 23376: drop_some_non_integer_points_helper(m_ci[j]); 23376: drop_some_non_integer_points_helper(m_ci[cj]); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Octagonal_Shape 23376: ::export_interval_constraints(U& dest) const { 23376: if (space_dim > dest.space_dimension()) { 23376: throw std::invalid_argument( 23376: "Octagonal_Shape::export_interval_constraints"); 23376: } 23376: 23376: strong_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: dest.set_empty(); 23376: return; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lb; N& lb = holder_lb.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_ub; N& ub = holder_ub.item(); 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: const dimension_type ii = 2*i; 23376: const dimension_type cii = ii + 1; 23376: 23376: 23376: const N& twice_ub = matrix[cii][ii]; 23376: if (!is_plus_infinity(twice_ub)) { 23376: assign_r(ub, twice_ub, ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(ub, ub, 1, ROUND_UP); 23376: 23376: if (!dest.restrict_upper(i, ub.raw_value())) { 23376: return; 23376: } 23376: } 23376: 23376: 23376: const N& twice_lb = matrix[ii][cii]; 23376: if (!is_plus_infinity(twice_lb)) { 23376: assign_r(lb, twice_lb, ROUND_NOT_NEEDED); 23376: neg_assign_r(lb, lb, ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(lb, lb, 1, ROUND_DOWN); 23376: 23376: if (!dest.restrict_lower(i, lb.raw_value())) { 23376: return; 23376: } 23376: } 23376: } 23376: 23376: } 23376: 23376: 23376: template 23376: std::ostream& 23376: IO_Operators::operator<<(std::ostream& s, const Octagonal_Shape& oct) { 23376: 23376: if (oct.marked_empty()) { 23376: s << "false"; 23376: return s; 23376: } 23376: if (oct.is_universe()) { 23376: s << "true"; 23376: return s; 23376: } 23376: 23376: typedef typename Octagonal_Shape::coefficient_type N; 23376: typedef typename OR_Matrix::const_row_iterator row_iterator; 23376: typedef typename OR_Matrix::const_row_reference_type row_reference; 23376: 23376: 23376: bool first = true; 23376: 23376: row_iterator m_begin = oct.matrix.row_begin(); 23376: row_iterator m_end = oct.matrix.row_end(); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_negation; N& negation = holder_negation.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_half; N& half = holder_half.item(); 23376: 23376: 23376: for (row_iterator i_iter = m_begin; i_iter != m_end; ) { 23376: const dimension_type i = i_iter.index(); 23376: const Variable v_i(i/2); 23376: const N& c_i_ii = (*i_iter)[i + 1]; 23376: ++i_iter; 23376: const N& c_ii_i = (*i_iter)[i]; 23376: ++i_iter; 23376: 23376: if (is_additive_inverse(c_i_ii, c_ii_i)) { 23376: 23376: ((void) 0); 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: 23376: 23376: if (div_2exp_assign_r(half, c_ii_i, 1, 23376: ROUND_UP | ROUND_STRICT_RELATION) 23376: == V_EQ) { 23376: s << v_i << " = " << half; 23376: } 23376: else { 23376: s << "2*" << v_i << " = " << c_ii_i; 23376: } 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(c_i_ii)) { 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: neg_assign_r(negation, c_i_ii, ROUND_NOT_NEEDED); 23376: 23376: 23376: if (div_2exp_assign_r(half, negation, 1, 23376: ROUND_UP | ROUND_STRICT_RELATION) 23376: == V_EQ) { 23376: s << v_i << " >= " << half; 23376: } 23376: else { 23376: s << "2*" << v_i << " >= " << negation; 23376: } 23376: } 23376: if (!is_plus_infinity(c_ii_i)) { 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: 23376: 23376: if (div_2exp_assign_r(half, c_ii_i, 1, 23376: ROUND_UP | ROUND_STRICT_RELATION) 23376: == V_EQ) { 23376: s << v_i << " <= " << half; 23376: } 23376: else { 23376: s << "2*" << v_i << " <= " << c_ii_i; 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: for (row_iterator i_iter = m_begin; i_iter != m_end; ) { 23376: const dimension_type i = i_iter.index(); 23376: const Variable v_i(i/2); 23376: row_reference r_i = *i_iter; 23376: ++i_iter; 23376: row_reference r_ii = *i_iter; 23376: ++i_iter; 23376: 23376: for (dimension_type j = 0; j < i; j += 2) { 23376: const Variable v_j(j/2); 23376: 23376: const N& c_ii_jj = r_ii[j + 1]; 23376: const N& c_i_j = r_i[j]; 23376: 23376: if (is_additive_inverse(c_ii_jj, c_i_j)) { 23376: 23376: ((void) 0); 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: if (sgn(c_i_j) >= 0) { 23376: s << v_j << " - " << v_i << " = " << c_i_j; 23376: } 23376: else { 23376: s << v_i << " - " << v_j << " = " << c_ii_jj; 23376: } 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(c_i_j)) { 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: if (sgn(c_i_j) >= 0) { 23376: s << v_j << " - " << v_i << " <= " << c_i_j; 23376: } 23376: else { 23376: neg_assign_r(negation, c_i_j, ROUND_DOWN); 23376: s << v_i << " - " << v_j << " >= " << negation; 23376: } 23376: } 23376: if (!is_plus_infinity(c_ii_jj)) { 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: if (sgn(c_ii_jj) >= 0) { 23376: s << v_i << " - " << v_j << " <= " << c_ii_jj; 23376: } 23376: else { 23376: neg_assign_r(negation, c_ii_jj, ROUND_DOWN); 23376: s << v_j << " - " << v_i << " >= " << negation; 23376: } 23376: } 23376: } 23376: 23376: const N& c_i_jj = r_i[j + 1]; 23376: const N& c_ii_j = r_ii[j]; 23376: 23376: if (is_additive_inverse(c_i_jj, c_ii_j)) { 23376: 23376: ((void) 0); 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: s << v_j << " + " << v_i << " = " << c_ii_j; 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(c_i_jj)) { 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: neg_assign_r(negation, c_i_jj, ROUND_DOWN); 23376: s << v_j << " + " << v_i << " >= " << negation; 23376: } 23376: if (!is_plus_infinity(c_ii_j)) { 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: s << v_j << " + " << v_i << " <= " << c_ii_j; 23376: } 23376: } 23376: } 23376: } 23376: return s; 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::ascii_dump(std::ostream& s) const { 23376: s << "space_dim " 23376: << space_dim 23376: << "\n"; 23376: status.ascii_dump(s); 23376: s << "\n"; 23376: matrix.ascii_dump(s); 23376: } 23376: 23376: template void Octagonal_Shape::ascii_dump() const { ascii_dump(std::cerr); } template void Octagonal_Shape::print() const { using IO_Operators::operator<<; std::cerr << *this; } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::ascii_load(std::istream& s) { 23376: std::string str; 23376: 23376: if (!(s >> str) || str != "space_dim") { 23376: return false; 23376: } 23376: 23376: if (!(s >> space_dim)) { 23376: return false; 23376: } 23376: 23376: if (!status.ascii_load(s)) { 23376: return false; 23376: } 23376: 23376: if (!matrix.ascii_load(s)) { 23376: return false; 23376: } 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: memory_size_type 23376: Octagonal_Shape::external_memory_in_bytes() const { 23376: return matrix.external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: bool 23376: Octagonal_Shape::OK() const { 23376: 23376: if (!matrix.OK()) { 23376: return false; 23376: } 23376: 23376: 23376: if (!status.OK()) { 23376: return false; 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return true; 23376: } 23376: 23376: 23376: if (space_dim == 0) { 23376: return true; 23376: } 23376: 23376: 23376: for (typename OR_Matrix::const_row_iterator i = matrix.row_begin(), 23376: matrix_row_end = matrix.row_end(); i != matrix_row_end; ++i) { 23376: typename OR_Matrix::const_row_reference_type x_i = *i; 23376: for (dimension_type j = i.row_size(); j-- > 0; ) { 23376: if (is_minus_infinity(x_i[j])) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: } 23376: 23376: 23376: for (typename OR_Matrix::const_row_iterator i = matrix.row_begin(), 23376: m_end = matrix.row_end(); i != m_end; ++i) { 23376: typename OR_Matrix::const_row_reference_type r = *i; 23376: const N& m_i_i = r[i.index()]; 23376: if (!is_plus_infinity(m_i_i)) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: if (std::numeric_limits::is_exact) { 23376: 23376: 23376: if (marked_strongly_closed()) { 23376: Octagonal_Shape x = *this; 23376: x.reset_strongly_closed(); 23376: x.strong_closure_assign(); 23376: if (x.matrix != matrix) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: 23376: if (marked_strongly_closed()) { 23376: if (!is_strong_coherent()) { 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::throw_dimension_incompatible(const char* method, 23376: const Octagonal_Shape& y) const { 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", y->space_dimension() == " << y.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::throw_dimension_incompatible(const char* method, 23376: dimension_type required_dim) const { 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", required dimension == " << required_dim << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::throw_dimension_incompatible(const char* method, 23376: const Constraint& c) const { 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", c->space_dimension == " << c.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::throw_dimension_incompatible(const char* method, 23376: const Congruence& cg) const { 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", cg->space_dimension == " << cg.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::throw_dimension_incompatible(const char* method, 23376: const Generator& g) const { 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", g->space_dimension == " << g.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::throw_constraint_incompatible(const char* method) { 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << "the constraint is incompatible."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::throw_expression_too_complex(const char* method, 23376: const Linear_Expression& le) { 23376: using namespace IO_Operators; 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << le << " is too complex."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape 23376: ::throw_dimension_incompatible(const char* method, 23376: const char* le_name, 23376: const Linear_Expression& le) const { 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", " << le_name << "->space_dimension() == " 23376: << le.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Octagonal_Shape 23376: ::throw_dimension_incompatible(const char* method, 23376: const char* lf_name, 23376: const Linear_Form& lf) const { 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", " << lf_name << "->space_dimension() == " 23376: << lf.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Octagonal_Shape::throw_invalid_argument(const char* method, 23376: const char* reason) { 23376: std::ostringstream s; 23376: s << "PPL::Octagonal_Shape::" << method << ":\n" 23376: << reason << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: } 23376: # 2329 "../../src/Octagonal_Shape_defs.hh" 2 23376: # 32 "../../src/BD_Shape_inlines.hh" 2 23376: # 42 "../../src/BD_Shape_inlines.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline dimension_type 23376: BD_Shape::max_space_dimension() { 23376: 23376: 23376: return std::min(DB_Matrix::max_num_rows() - 1, 23376: DB_Matrix::max_num_columns() - 1); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::marked_zero_dim_univ() const { 23376: return status.test_zero_dim_univ(); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::marked_empty() const { 23376: return status.test_empty(); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::marked_shortest_path_closed() const { 23376: return status.test_shortest_path_closed(); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::marked_shortest_path_reduced() const { 23376: return status.test_shortest_path_reduced(); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::set_zero_dim_univ() { 23376: status.set_zero_dim_univ(); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::set_empty() { 23376: status.set_empty(); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::set_shortest_path_closed() { 23376: status.set_shortest_path_closed(); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::set_shortest_path_reduced() { 23376: status.set_shortest_path_reduced(); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::reset_shortest_path_closed() { 23376: status.reset_shortest_path_closed(); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::reset_shortest_path_reduced() { 23376: status.reset_shortest_path_reduced(); 23376: } 23376: 23376: template 23376: inline 23376: BD_Shape::BD_Shape(const dimension_type num_dimensions, 23376: const Degenerate_Element kind) 23376: : dbm(num_dimensions + 1), status(), redundancy_dbm() { 23376: if (kind == EMPTY) { 23376: set_empty(); 23376: } 23376: else { 23376: if (num_dimensions > 0) { 23376: 23376: set_shortest_path_closed(); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: BD_Shape::BD_Shape(const BD_Shape& y, Complexity_Class) 23376: : dbm(y.dbm), status(y.status), redundancy_dbm() { 23376: if (y.marked_shortest_path_reduced()) { 23376: redundancy_dbm = y.redundancy_dbm; 23376: } 23376: } 23376: 23376: template 23376: template 23376: inline 23376: BD_Shape::BD_Shape(const BD_Shape& y, Complexity_Class) 23376: 23376: 23376: : dbm((y.shortest_path_closure_assign(), y.dbm)), 23376: status(), 23376: redundancy_dbm() { 23376: 23376: if (y.marked_empty()) { 23376: set_empty(); 23376: } 23376: else if (y.marked_zero_dim_univ()) { 23376: set_zero_dim_univ(); 23376: } 23376: } 23376: 23376: template 23376: inline Congruence_System 23376: BD_Shape::congruences() const { 23376: return minimized_congruences(); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::add_constraints(const Constraint_System& cs) { 23376: for (Constraint_System::const_iterator i = cs.begin(), 23376: cs_end = cs.end(); i != cs_end; ++i) { 23376: add_constraint(*i); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::add_recycled_constraints(Constraint_System& cs) { 23376: add_constraints(cs); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::add_congruences(const Congruence_System& cgs) { 23376: for (Congruence_System::const_iterator i = cgs.begin(), 23376: cgs_end = cgs.end(); i != cgs_end; ++i) { 23376: add_congruence(*i); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::add_recycled_congruences(Congruence_System& cgs) { 23376: add_congruences(cgs); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::refine_with_constraint(const Constraint& c) { 23376: const dimension_type c_space_dim = c.space_dimension(); 23376: 23376: if (c_space_dim > space_dimension()) { 23376: throw_dimension_incompatible("refine_with_constraint(c)", c); 23376: } 23376: 23376: if (!marked_empty()) { 23376: refine_no_check(c); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::refine_with_constraints(const Constraint_System& cs) { 23376: 23376: if (cs.space_dimension() > space_dimension()) { 23376: throw_invalid_argument("refine_with_constraints(cs)", 23376: "cs and *this are space-dimension incompatible"); 23376: } 23376: 23376: for (Constraint_System::const_iterator i = cs.begin(), 23376: cs_end = cs.end(); !marked_empty() && i != cs_end; ++i) { 23376: refine_no_check(*i); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::refine_with_congruence(const Congruence& cg) { 23376: const dimension_type cg_space_dim = cg.space_dimension(); 23376: 23376: if (cg_space_dim > space_dimension()) { 23376: throw_dimension_incompatible("refine_with_congruence(cg)", cg); 23376: } 23376: 23376: if (!marked_empty()) { 23376: refine_no_check(cg); 23376: } 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::refine_with_congruences(const Congruence_System& cgs) { 23376: 23376: if (cgs.space_dimension() > space_dimension()) { 23376: throw_invalid_argument("refine_with_congruences(cgs)", 23376: "cgs and *this are space-dimension incompatible"); 23376: } 23376: 23376: for (Congruence_System::const_iterator i = cgs.begin(), 23376: cgs_end = cgs.end(); !marked_empty() && i != cgs_end; ++i) { 23376: refine_no_check(*i); 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::refine_no_check(const Congruence& cg) { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: if (cg.is_proper_congruence()) { 23376: if (cg.is_inconsistent()) { 23376: set_empty(); 23376: } 23376: 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: Constraint c(cg); 23376: refine_no_check(c); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::can_recycle_constraint_systems() { 23376: return false; 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: BD_Shape::can_recycle_congruence_systems() { 23376: return false; 23376: } 23376: 23376: template 23376: inline 23376: BD_Shape::BD_Shape(const Constraint_System& cs) 23376: : dbm(cs.space_dimension() + 1), status(), redundancy_dbm() { 23376: if (cs.space_dimension() > 0) { 23376: 23376: set_shortest_path_closed(); 23376: } 23376: add_constraints(cs); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: BD_Shape::BD_Shape(const Box& box, 23376: Complexity_Class) 23376: : dbm(box.space_dimension() + 1), status(), redundancy_dbm() { 23376: 23376: if (box.is_empty()) { 23376: set_empty(); 23376: } 23376: else if (box.space_dimension() > 0) { 23376: 23376: set_shortest_path_closed(); 23376: refine_with_constraints(box.constraints()); 23376: } 23376: } 23376: 23376: template 23376: inline 23376: BD_Shape::BD_Shape(const Grid& grid, 23376: Complexity_Class) 23376: : dbm(grid.space_dimension() + 1), status(), redundancy_dbm() { 23376: if (grid.space_dimension() > 0) { 23376: 23376: set_shortest_path_closed(); 23376: } 23376: 23376: refine_with_congruences(grid.minimized_congruences()); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: BD_Shape::BD_Shape(const Octagonal_Shape& os, 23376: Complexity_Class) 23376: : dbm(os.space_dimension() + 1), status(), redundancy_dbm() { 23376: 23376: if (os.is_empty()) { 23376: set_empty(); 23376: } 23376: else if (os.space_dimension() > 0) { 23376: 23376: set_shortest_path_closed(); 23376: refine_with_constraints(os.constraints()); 23376: 23376: 23376: 23376: } 23376: } 23376: 23376: template 23376: inline BD_Shape& 23376: BD_Shape::operator=(const BD_Shape& y) { 23376: dbm = y.dbm; 23376: status = y.status; 23376: if (y.marked_shortest_path_reduced()) { 23376: redundancy_dbm = y.redundancy_dbm; 23376: } 23376: return *this; 23376: } 23376: 23376: template 23376: inline 23376: BD_Shape::~BD_Shape() { 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::m_swap(BD_Shape& y) { 23376: using std::swap; 23376: swap(dbm, y.dbm); 23376: swap(status, y.status); 23376: swap(redundancy_dbm, y.redundancy_dbm); 23376: } 23376: 23376: template 23376: inline dimension_type 23376: BD_Shape::space_dimension() const { 23376: return dbm.num_rows() - 1; 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::is_empty() const { 23376: shortest_path_closure_assign(); 23376: return marked_empty(); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::bounds_from_above(const Linear_Expression& expr) const { 23376: return bounds(expr, true); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::bounds_from_below(const Linear_Expression& expr) const { 23376: return bounds(expr, false); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, 23376: bool& maximum) const { 23376: return max_min(expr, true, sup_n, sup_d, maximum); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::maximize(const Linear_Expression& expr, 23376: Coefficient& sup_n, Coefficient& sup_d, bool& maximum, 23376: Generator& g) const { 23376: return max_min(expr, true, sup_n, sup_d, maximum, g); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, 23376: bool& minimum) const { 23376: return max_min(expr, false, inf_n, inf_d, minimum); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::minimize(const Linear_Expression& expr, 23376: Coefficient& inf_n, Coefficient& inf_d, bool& minimum, 23376: Generator& g) const { 23376: return max_min(expr, false, inf_n, inf_d, minimum, g); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::is_topologically_closed() const { 23376: return true; 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::is_discrete() const { 23376: return affine_dimension() == 0; 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::topological_closure_assign() { 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const BD_Shape& x, const BD_Shape& y) { 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: return false; 23376: } 23376: 23376: 23376: if (x_space_dim == 0) { 23376: if (x.marked_empty()) { 23376: return y.marked_empty(); 23376: } 23376: else { 23376: return !y.marked_empty(); 23376: } 23376: } 23376: 23376: 23376: x.shortest_path_closure_assign(); 23376: y.shortest_path_closure_assign(); 23376: 23376: 23376: 23376: if (x.marked_empty()) { 23376: return y.marked_empty(); 23376: } 23376: if (y.marked_empty()) { 23376: return false; 23376: } 23376: 23376: 23376: return x.dbm == y.dbm; 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: operator!=(const BD_Shape& x, const BD_Shape& y) { 23376: return !(x == y); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: return false; 23376: } 23376: 23376: 23376: if (x_space_dim == 0) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: 23376: x.shortest_path_closure_assign(); 23376: y.shortest_path_closure_assign(); 23376: 23376: 23376: 23376: if (x.marked_empty() || y.marked_empty()) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: return rectilinear_distance_assign(r, x.dbm, y.dbm, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return rectilinear_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: rectilinear_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: const Rounding_Dir dir) { 23376: return rectilinear_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: return false; 23376: } 23376: 23376: 23376: if (x_space_dim == 0) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: 23376: x.shortest_path_closure_assign(); 23376: y.shortest_path_closure_assign(); 23376: 23376: 23376: 23376: if (x.marked_empty() || y.marked_empty()) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: return euclidean_distance_assign(r, x.dbm, y.dbm, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return euclidean_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: euclidean_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: const Rounding_Dir dir) { 23376: return euclidean_distance_assign(r, x, y, dir); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, 23376: Temp& tmp1, 23376: Temp& tmp2) { 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: return false; 23376: } 23376: 23376: if (x_space_dim == 0) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: 23376: x.shortest_path_closure_assign(); 23376: y.shortest_path_closure_assign(); 23376: 23376: 23376: 23376: if (x.marked_empty() || y.marked_empty()) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: return l_infinity_distance_assign(r, x.dbm, y.dbm, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: const Rounding_Dir dir) { 23376: typedef Checked_Number Checked_Temp; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp0; Checked_Temp& tmp0 = holder_tmp0.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp1; Checked_Temp& tmp1 = holder_tmp1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp2; Checked_Temp& tmp2 = holder_tmp2.item(); 23376: return l_infinity_distance_assign(r, x, y, dir, tmp0, tmp1, tmp2); 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: l_infinity_distance_assign(Checked_Number& r, 23376: const BD_Shape& x, 23376: const BD_Shape& y, 23376: const Rounding_Dir dir) { 23376: return l_infinity_distance_assign(r, x, y, dir); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::add_dbm_constraint(const dimension_type i, 23376: const dimension_type j, 23376: const N& k) { 23376: 23376: ((void) 0); 23376: N& dbm_ij = dbm[i][j]; 23376: if (dbm_ij > k) { 23376: dbm_ij = k; 23376: if (marked_shortest_path_closed()) { 23376: reset_shortest_path_closed(); 23376: } 23376: } 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::add_dbm_constraint(const dimension_type i, 23376: const dimension_type j, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom) { 23376: 23376: ((void) 0); 23376: ((void) 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_k; N& k = holder_k.item(); 23376: div_round_up(k, numer, denom); 23376: add_dbm_constraint(i, j, k); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::time_elapse_assign(const BD_Shape& y) { 23376: 23376: if (space_dimension() != y.space_dimension()) { 23376: throw_dimension_incompatible("time_elapse_assign(y)", y); 23376: } 23376: 23376: 23376: C_Polyhedron ph_x(constraints()); 23376: C_Polyhedron ph_y(y.constraints()); 23376: ph_x.time_elapse_assign(ph_y); 23376: BD_Shape x(ph_x); 23376: m_swap(x); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::strictly_contains(const BD_Shape& y) const { 23376: const BD_Shape& x = *this; 23376: return x.contains(y) && !y.contains(x); 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::upper_bound_assign_if_exact(const BD_Shape& y) { 23376: if (space_dimension() != y.space_dimension()) { 23376: throw_dimension_incompatible("upper_bound_assign_if_exact(y)", y); 23376: } 23376: 23376: 23376: 23376: const bool integer_upper_bound = false; 23376: return BHZ09_upper_bound_assign_if_exact(y); 23376: 23376: } 23376: 23376: template 23376: inline bool 23376: BD_Shape::integer_upper_bound_assign_if_exact(const BD_Shape& y) { 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_769 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(std::numeric_limits::is_integer)>) } 23376: 23376: ; 23376: if (space_dimension() != y.space_dimension()) { 23376: throw_dimension_incompatible("integer_upper_bound_assign_if_exact(y)", y); 23376: } 23376: const bool integer_upper_bound = true; 23376: return BHZ09_upper_bound_assign_if_exact(y); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape 23376: ::remove_higher_space_dimensions(const dimension_type new_dimension) { 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: if (new_dimension > space_dim) { 23376: throw_dimension_incompatible("remove_higher_space_dimensions(nd)", 23376: new_dimension); 23376: } 23376: 23376: 23376: 23376: 23376: if (new_dimension == space_dim) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: shortest_path_closure_assign(); 23376: dbm.resize_no_copy(new_dimension + 1); 23376: 23376: 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: 23376: 23376: if (new_dimension == 0 && !marked_empty()) { 23376: set_zero_dim_univ(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::wrap_assign(const Variables_Set& vars, 23376: Bounded_Integer_Type_Width w, 23376: Bounded_Integer_Type_Representation r, 23376: Bounded_Integer_Type_Overflow o, 23376: const Constraint_System* cs_p, 23376: unsigned complexity_threshold, 23376: bool wrap_individually) { 23376: Implementation::wrap_assign(*this, 23376: vars, w, r, o, cs_p, 23376: complexity_threshold, wrap_individually, 23376: "BD_Shape"); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::CC76_extrapolation_assign(const BD_Shape& y, unsigned* tp) { 23376: static N stop_points[] = { 23376: N(-2, ROUND_UP), 23376: N(-1, ROUND_UP), 23376: N( 0, ROUND_UP), 23376: N( 1, ROUND_UP), 23376: N( 2, ROUND_UP) 23376: }; 23376: CC76_extrapolation_assign(y, 23376: stop_points, 23376: stop_points 23376: + sizeof(stop_points)/sizeof(stop_points[0]), 23376: tp); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::H79_widening_assign(const BD_Shape& y, unsigned* tp) { 23376: 23376: 23376: C_Polyhedron ph_x(constraints()); 23376: C_Polyhedron ph_y(y.constraints()); 23376: ph_x.H79_widening_assign(ph_y, tp); 23376: BD_Shape x(ph_x); 23376: m_swap(x); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::widening_assign(const BD_Shape& y, unsigned* tp) { 23376: H79_widening_assign(y, tp); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::limited_H79_extrapolation_assign(const BD_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp) { 23376: 23376: 23376: C_Polyhedron ph_x(constraints()); 23376: C_Polyhedron ph_y(y.constraints()); 23376: ph_x.limited_H79_extrapolation_assign(ph_y, cs, tp); 23376: BD_Shape x(ph_x); 23376: m_swap(x); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: BD_Shape::total_memory_in_bytes() const { 23376: return sizeof(*this) + external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: inline int32_t 23376: BD_Shape::hash_code() const { 23376: return hash_code_from_dimension(space_dimension()); 23376: } 23376: 23376: template 23376: template 23376: inline void 23376: BD_Shape::generalized_refine_with_linear_form_inequality( 23376: const Linear_Form >& left, 23376: const Linear_Form >& right, 23376: const Relation_Symbol relsym) { 23376: switch (relsym) { 23376: case EQUAL: 23376: 23376: refine_with_linear_form_inequality(left, right); 23376: refine_with_linear_form_inequality(right, left); 23376: break; 23376: case LESS_THAN: 23376: case LESS_OR_EQUAL: 23376: refine_with_linear_form_inequality(left, right); 23376: break; 23376: case GREATER_THAN: 23376: case GREATER_OR_EQUAL: 23376: refine_with_linear_form_inequality(right, left); 23376: break; 23376: case NOT_EQUAL: 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: } 23376: } 23376: 23376: template 23376: template 23376: inline void 23376: BD_Shape 23376: ::refine_fp_interval_abstract_store(Box >& 23376: store) const { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_931 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: typedef Interval FP_Interval_Type; 23376: store.intersection_assign(Box(*this)); 23376: } 23376: 23376: template 23376: inline void 23376: BD_Shape::drop_some_non_integer_points_helper(N& elem) { 23376: if (!is_integer(elem)) { 23376: Result r = floor_assign_r(elem, elem, ROUND_DOWN); 23376: (void)(r); 23376: ((void) 0); 23376: reset_shortest_path_closed(); 23376: } 23376: } 23376: 23376: 23376: template 23376: inline void 23376: swap(BD_Shape& x, BD_Shape& y) { 23376: x.m_swap(y); 23376: } 23376: 23376: } 23376: # 2372 "../../src/BD_Shape_defs.hh" 2 23376: # 1 "../../src/BD_Shape_templates.hh" 1 23376: # 47 "../../src/BD_Shape_templates.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: BD_Shape::BD_Shape(const Congruence_System& cgs) 23376: : dbm(cgs.space_dimension() + 1), 23376: status(), 23376: redundancy_dbm() { 23376: add_congruences(cgs); 23376: } 23376: 23376: template 23376: BD_Shape::BD_Shape(const Generator_System& gs) 23376: : dbm(gs.space_dimension() + 1), status(), redundancy_dbm() { 23376: const Generator_System::const_iterator gs_begin = gs.begin(); 23376: const Generator_System::const_iterator gs_end = gs.end(); 23376: if (gs_begin == gs_end) { 23376: 23376: set_empty(); 23376: return; 23376: } 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: DB_Row& dbm_0 = dbm[0]; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; N& tmp = holder_tmp.item(); 23376: 23376: bool dbm_initialized = false; 23376: bool point_seen = false; 23376: 23376: for (Generator_System::const_iterator gs_i = gs_begin; 23376: gs_i != gs_end; ++gs_i) { 23376: const Generator& g = *gs_i; 23376: switch (g.type()) { 23376: case Generator::POINT: 23376: point_seen = true; 23376: 23376: case Generator::CLOSURE_POINT: 23376: if (!dbm_initialized) { 23376: 23376: dbm_initialized = true; 23376: const Coefficient& d = g.divisor(); 23376: 23376: 23376: for (dimension_type i = space_dim; i > 0; --i) { 23376: const Coefficient& g_i = g.expression().get(Variable(i - 1)); 23376: DB_Row& dbm_i = dbm[i]; 23376: for (dimension_type j = space_dim; j > 0; --j) { 23376: if (i != j) { 23376: const Coefficient& g_j = g.expression().get(Variable(j - 1)); 23376: div_round_up(dbm_i[j], g_j - g_i, d); 23376: } 23376: } 23376: div_round_up(dbm_i[0], -g_i, d); 23376: } 23376: for (dimension_type j = space_dim; j > 0; --j) { 23376: const Coefficient& g_j = g.expression().get(Variable(j - 1)); 23376: div_round_up(dbm_0[j], g_j, d); 23376: } 23376: 23376: } 23376: else { 23376: 23376: 23376: const Coefficient& d = g.divisor(); 23376: 23376: 23376: for (dimension_type i = space_dim; i > 0; --i) { 23376: const Coefficient& g_i = g.expression().get(Variable(i - 1)); 23376: DB_Row& dbm_i = dbm[i]; 23376: 23376: for (dimension_type j = space_dim; j > 0; --j) { 23376: const Coefficient& g_j = g.expression().get(Variable(j - 1)); 23376: div_round_up(tmp, g_j - g_i, d); 23376: max_assign(dbm_i[j], tmp); 23376: } 23376: div_round_up(tmp, -g_i, d); 23376: max_assign(dbm_i[0], tmp); 23376: } 23376: for (dimension_type j = space_dim; j > 0; --j) { 23376: const Coefficient& g_j = g.expression().get(Variable(j - 1)); 23376: div_round_up(tmp, g_j, d); 23376: max_assign(dbm_0[j], tmp); 23376: } 23376: } 23376: break; 23376: default: 23376: 23376: break; 23376: } 23376: } 23376: 23376: if (!point_seen) { 23376: 23376: throw_invalid_argument("BD_Shape(gs)", 23376: "the non-empty generator system gs " 23376: "contains no points."); 23376: } 23376: 23376: 23376: for (Generator_System::const_iterator gs_i = gs_begin; 23376: gs_i != gs_end; ++gs_i) { 23376: const Generator& g = *gs_i; 23376: switch (g.type()) { 23376: case Generator::LINE: 23376: 23376: 23376: for (dimension_type i = space_dim; i > 0; --i) { 23376: const Coefficient& g_i = g.expression().get(Variable(i - 1)); 23376: DB_Row& dbm_i = dbm[i]; 23376: 23376: for (dimension_type j = space_dim; j > 0; --j) { 23376: if (g_i != g.expression().get(Variable(j - 1))) { 23376: assign_r(dbm_i[j], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: if (g_i != 0) { 23376: assign_r(dbm_i[0], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: for (Generator::expr_type::const_iterator i = g.expression().begin(), 23376: i_end = g.expression().end(); i != i_end; ++i) { 23376: assign_r(dbm_0[i.variable().space_dimension()], 23376: PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: break; 23376: case Generator::RAY: 23376: 23376: 23376: for (dimension_type i = space_dim; i > 0; --i) { 23376: const Coefficient& g_i = g.expression().get(Variable(i - 1)); 23376: DB_Row& dbm_i = dbm[i]; 23376: 23376: for (dimension_type j = space_dim; j > 0; --j) { 23376: if (g_i < g.expression().get(Variable(j - 1))) { 23376: assign_r(dbm_i[j], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: if (g_i < 0) { 23376: assign_r(dbm_i[0], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: for (Generator::expr_type::const_iterator i = g.expression().begin(), 23376: i_end = g.expression().end(); i != i_end; ++i) { 23376: if (*i > 0) { 23376: assign_r(dbm_0[i.variable().space_dimension()], 23376: PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: break; 23376: default: 23376: 23376: break; 23376: } 23376: } 23376: set_shortest_path_closed(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: BD_Shape::BD_Shape(const Polyhedron& ph, const Complexity_Class complexity) 23376: : dbm(), status(), redundancy_dbm() { 23376: const dimension_type num_dimensions = ph.space_dimension(); 23376: 23376: if (ph.marked_empty()) { 23376: *this = BD_Shape(num_dimensions, EMPTY); 23376: return; 23376: } 23376: 23376: if (num_dimensions == 0) { 23376: *this = BD_Shape(num_dimensions, UNIVERSE); 23376: return; 23376: } 23376: 23376: 23376: 23376: if (complexity == ANY_COMPLEXITY 23376: || (!ph.has_pending_constraints() && ph.generators_are_up_to_date())) { 23376: *this = BD_Shape(ph.generators()); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: ((void) 0); 23376: 23376: if (!ph.has_something_pending() && ph.constraints_are_minimized()) { 23376: 23376: 23376: if (ph.is_universe()) { 23376: *this = BD_Shape(num_dimensions, UNIVERSE); 23376: return; 23376: } 23376: } 23376: 23376: 23376: for (Constraint_System::const_iterator i = ph.con_sys.begin(), 23376: cs_end = ph.con_sys.end(); i != cs_end; ++i) { 23376: if (i->is_inconsistent()) { 23376: *this = BD_Shape(num_dimensions, EMPTY); 23376: return; 23376: } 23376: } 23376: 23376: 23376: 23376: if (complexity == SIMPLEX_COMPLEXITY) { 23376: MIP_Problem lp(num_dimensions); 23376: lp.set_optimization_mode(MAXIMIZATION); 23376: 23376: const Constraint_System& ph_cs = ph.constraints(); 23376: if (!ph_cs.has_strict_inequalities()) { 23376: lp.add_constraints(ph_cs); 23376: } 23376: else { 23376: 23376: for (Constraint_System::const_iterator i = ph_cs.begin(), 23376: ph_cs_end = ph_cs.end(); i != ph_cs_end; ++i) { 23376: const Constraint& c = *i; 23376: if (c.is_strict_inequality()) { 23376: Linear_Expression expr(c.expression()); 23376: lp.add_constraint(expr >= 0); 23376: } 23376: else { 23376: lp.add_constraint(c); 23376: } 23376: } 23376: } 23376: 23376: 23376: if (!lp.is_satisfiable()) { 23376: *this = BD_Shape(num_dimensions, EMPTY); 23376: return; 23376: } 23376: 23376: 23376: *this = BD_Shape(num_dimensions, UNIVERSE); 23376: 23376: Generator g(point()); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: for (dimension_type i = 1; i <= num_dimensions; ++i) { 23376: Variable x(i-1); 23376: 23376: lp.set_objective_function(x); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, numer, denom); 23376: div_round_up(dbm[0][i], numer, denom); 23376: } 23376: 23376: for (dimension_type j = 1; j <= num_dimensions; ++j) { 23376: if (i == j) { 23376: continue; 23376: } 23376: Variable y(j-1); 23376: lp.set_objective_function(x - y); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, numer, denom); 23376: div_round_up(dbm[j][i], numer, denom); 23376: } 23376: } 23376: 23376: lp.set_objective_function(-x); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, numer, denom); 23376: div_round_up(dbm[i][0], numer, denom); 23376: } 23376: } 23376: set_shortest_path_closed(); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: ((void) 0); 23376: *this = BD_Shape(num_dimensions, UNIVERSE); 23376: refine_with_constraints(ph.constraints()); 23376: } 23376: 23376: template 23376: dimension_type 23376: BD_Shape::affine_dimension() const { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: if (space_dim == 0) { 23376: return 0; 23376: } 23376: 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return 0; 23376: } 23376: 23376: 23376: 23376: std::vector predecessor; 23376: compute_predecessors(predecessor); 23376: 23376: 23376: 23376: dimension_type affine_dim = 0; 23376: 23376: for (dimension_type i = 1; i <= space_dim; ++i) { 23376: if (predecessor[i] == i) { 23376: ++affine_dim; 23376: } 23376: } 23376: return affine_dim; 23376: } 23376: 23376: template 23376: Congruence_System 23376: BD_Shape::minimized_congruences() const { 23376: 23376: 23376: shortest_path_closure_assign(); 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: Congruence_System cgs(space_dim); 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: cgs = Congruence_System::zero_dim_empty(); 23376: } 23376: return cgs; 23376: } 23376: 23376: if (marked_empty()) { 23376: cgs.insert(Congruence::zero_dim_false()); 23376: return cgs; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: 23376: 23376: std::vector leaders; 23376: compute_leaders(leaders); 23376: 23376: 23376: const DB_Row& dbm_0 = dbm[0]; 23376: for (dimension_type i = 1; i <= space_dim; ++i) { 23376: const dimension_type leader = leaders[i]; 23376: if (i != leader) { 23376: 23376: if (leader == 0) { 23376: 23376: ((void) 0); 23376: numer_denom(dbm_0[i], numer, denom); 23376: cgs.insert(denom*Variable(i-1) == numer); 23376: } 23376: else { 23376: 23376: ((void) 0); 23376: numer_denom(dbm[i][leader], numer, denom); 23376: cgs.insert(denom*Variable(leader-1) - denom*Variable(i-1) == numer); 23376: } 23376: } 23376: } 23376: return cgs; 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::add_constraint(const Constraint& c) { 23376: 23376: if (c.space_dimension() > space_dimension()) { 23376: throw_dimension_incompatible("add_constraint(c)", c); 23376: } 23376: 23376: if (c.is_strict_inequality()) { 23376: if (c.is_inconsistent()) { 23376: set_empty(); 23376: return; 23376: } 23376: if (c.is_tautological()) { 23376: return; 23376: } 23376: 23376: throw_invalid_argument("add_constraint(c)", 23376: "strict inequalities are not allowed"); 23376: } 23376: 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: 23376: if (!BD_Shape_Helpers::extract_bounded_difference(c, num_vars, i, j, coeff)) { 23376: throw_invalid_argument("add_constraint(c)", 23376: "c is not a bounded difference constraint"); 23376: } 23376: const Coefficient& inhomo = c.inhomogeneous_term(); 23376: if (num_vars == 0) { 23376: 23376: if (inhomo < 0 23376: || (inhomo != 0 && c.is_equality())) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: 23376: 23376: const bool negative = (coeff < 0); 23376: if (negative) { 23376: neg_assign(coeff); 23376: } 23376: bool changed = false; 23376: N& x = negative ? dbm[i][j] : dbm[j][i]; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, inhomo, coeff); 23376: if (x > d) { 23376: x = d; 23376: changed = true; 23376: } 23376: 23376: if (c.is_equality()) { 23376: N& y = negative ? dbm[j][i] : dbm[i][j]; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_c_term; Parma_Polyhedra_Library::Coefficient& minus_c_term = holder_minus_c_term.item(); 23376: neg_assign(minus_c_term, inhomo); 23376: div_round_up(d, minus_c_term, coeff); 23376: if (y > d) { 23376: y = d; 23376: changed = true; 23376: } 23376: } 23376: 23376: 23376: 23376: if (changed && marked_shortest_path_closed()) { 23376: reset_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::add_congruence(const Congruence& cg) { 23376: const dimension_type cg_space_dim = cg.space_dimension(); 23376: 23376: 23376: if (space_dimension() < cg_space_dim) { 23376: throw_dimension_incompatible("add_congruence(cg)", cg); 23376: } 23376: 23376: if (cg.is_proper_congruence()) { 23376: if (cg.is_tautological()) { 23376: return; 23376: } 23376: if (cg.is_inconsistent()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: throw_invalid_argument("add_congruence(cg)", 23376: "cg is a non-trivial, proper congruence"); 23376: } 23376: 23376: ((void) 0); 23376: Constraint c(cg); 23376: add_constraint(c); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::refine_no_check(const Constraint& c) { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: 23376: if (!BD_Shape_Helpers::extract_bounded_difference(c, num_vars, i, j, coeff)) { 23376: return; 23376: } 23376: const Coefficient& inhomo = c.inhomogeneous_term(); 23376: if (num_vars == 0) { 23376: 23376: if (inhomo < 0 23376: || (c.is_equality() && inhomo != 0) 23376: || (c.is_strict_inequality() && inhomo == 0)) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: 23376: 23376: const bool negative = (coeff < 0); 23376: N& x = negative ? dbm[i][j] : dbm[j][i]; 23376: N& y = negative ? dbm[j][i] : dbm[i][j]; 23376: if (negative) { 23376: neg_assign(coeff); 23376: } 23376: bool changed = false; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, inhomo, coeff); 23376: if (x > d) { 23376: x = d; 23376: changed = true; 23376: } 23376: 23376: if (c.is_equality()) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_c_term; Parma_Polyhedra_Library::Coefficient& minus_c_term = holder_minus_c_term.item(); 23376: neg_assign(minus_c_term, inhomo); 23376: div_round_up(d, minus_c_term, coeff); 23376: if (y > d) { 23376: y = d; 23376: changed = true; 23376: } 23376: } 23376: 23376: 23376: 23376: if (changed && marked_shortest_path_closed()) { 23376: reset_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::concatenate_assign(const BD_Shape& y) { 23376: BD_Shape& x = *this; 23376: 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: const dimension_type y_space_dim = y.space_dimension(); 23376: 23376: 23376: 23376: if (y_space_dim == 0 && y.marked_empty()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: 23376: 23376: if (x_space_dim == 0 && marked_empty()) { 23376: dbm.grow(y_space_dim + 1); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: add_space_dimensions_and_embed(y_space_dim); 23376: const dimension_type new_space_dim = x_space_dim + y_space_dim; 23376: for (dimension_type i = x_space_dim + 1; i <= new_space_dim; ++i) { 23376: DB_Row& dbm_i = dbm[i]; 23376: dbm_i[0] = y.dbm[i - x_space_dim][0]; 23376: dbm[0][i] = y.dbm[0][i - x_space_dim]; 23376: for (dimension_type j = x_space_dim + 1; j <= new_space_dim; ++j) { 23376: dbm_i[j] = y.dbm[i - x_space_dim][j - x_space_dim]; 23376: } 23376: } 23376: 23376: if (marked_shortest_path_closed()) { 23376: reset_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::contains(const BD_Shape& y) const { 23376: const BD_Shape& x = *this; 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("contains(y)", y); 23376: } 23376: if (x_space_dim == 0) { 23376: 23376: 23376: 23376: 23376: return marked_empty() ? y.marked_empty() : true; 23376: } 23376: # 663 "../../src/BD_Shape_templates.hh" 23376: y.shortest_path_closure_assign(); 23376: 23376: if (y.marked_empty()) { 23376: return true; 23376: } 23376: 23376: if (x.is_empty()) { 23376: return false; 23376: } 23376: 23376: 23376: for (dimension_type i = x_space_dim + 1; i-- > 0; ) { 23376: const DB_Row& x_dbm_i = x.dbm[i]; 23376: const DB_Row& y_dbm_i = y.dbm[i]; 23376: for (dimension_type j = x_space_dim + 1; j-- > 0; ) { 23376: if (x_dbm_i[j] < y_dbm_i[j]) { 23376: return false; 23376: } 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::is_disjoint_from(const BD_Shape& y) const { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("is_disjoint_from(y)", y); 23376: } 23376: 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return true; 23376: } 23376: y.shortest_path_closure_assign(); 23376: if (y.marked_empty()) { 23376: return true; 23376: } 23376: # 716 "../../src/BD_Shape_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; N& tmp = holder_tmp.item(); 23376: for (dimension_type i = space_dim+1; i-- > 0; ) { 23376: const DB_Row& x_i = dbm[i]; 23376: for (dimension_type j = space_dim+1; j-- > 0; ) { 23376: neg_assign_r(tmp, y.dbm[j][i], ROUND_UP); 23376: if (x_i[j] < tmp) { 23376: return true; 23376: } 23376: } 23376: } 23376: 23376: return false; 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::is_universe() const { 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim == 0) { 23376: return true; 23376: } 23376: 23376: 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: const DB_Row& dbm_i = dbm[i]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: if (!is_plus_infinity(dbm_i[j])) { 23376: return false; 23376: } 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::is_bounded() const { 23376: shortest_path_closure_assign(); 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: if (marked_empty() || space_dim == 0) { 23376: return true; 23376: } 23376: 23376: 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: const DB_Row& dbm_i = dbm[i]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: if (i != j) { 23376: if (is_plus_infinity(dbm_i[j])) { 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::contains_integer_point() const { 23376: 23376: if (is_empty()) { 23376: return false; 23376: } 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim == 0) { 23376: return true; 23376: } 23376: 23376: 23376: if (std::numeric_limits::is_integer) { 23376: return true; 23376: } 23376: 23376: 23376: BD_Shape bds_z(space_dim); 23376: typedef BD_Shape::N Z; 23376: bds_z.reset_shortest_path_closed(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; N& tmp = holder_tmp.item(); 23376: bool all_integers = true; 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: DB_Row& z_i = bds_z.dbm[i]; 23376: const DB_Row& dbm_i = dbm[i]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: const N& dbm_i_j = dbm_i[j]; 23376: if (is_plus_infinity(dbm_i_j)) { 23376: continue; 23376: } 23376: if (is_integer(dbm_i_j)) { 23376: assign_r(z_i[j], dbm_i_j, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: all_integers = false; 23376: Z& z_i_j = z_i[j]; 23376: 23376: neg_assign_r(tmp, dbm_i_j, ROUND_NOT_NEEDED); 23376: assign_r(z_i_j, tmp, ROUND_UP); 23376: neg_assign_r(z_i_j, z_i_j, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: } 23376: return all_integers || !bds_z.is_empty(); 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::frequency(const Linear_Expression& expr, 23376: Coefficient& freq_n, Coefficient& freq_d, 23376: Coefficient& val_n, Coefficient& val_d) const { 23376: dimension_type space_dim = space_dimension(); 23376: 23376: if (space_dim < expr.space_dimension()) { 23376: throw_dimension_incompatible("frequency(e, ...)", "e", expr); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: if (is_empty()) { 23376: return false; 23376: } 23376: freq_n = 0; 23376: freq_d = 1; 23376: val_n = expr.inhomogeneous_term(); 23376: val_d = 1; 23376: return true; 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; N& tmp = holder_tmp.item(); 23376: Linear_Expression le = expr; 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_val_denom; Parma_Polyhedra_Library::Coefficient& val_denom = holder_val_denom.item(); 23376: val_denom = 1; 23376: 23376: 23376: 23376: for (dimension_type i = dbm.num_rows(); i-- > 1; ) { 23376: const Variable v(i-1); 23376: coeff = le.coefficient(v); 23376: if (coeff == 0) { 23376: continue; 23376: } 23376: const DB_Row& dbm_i = dbm[i]; 23376: 23376: assign_r(tmp, dbm_i[0], ROUND_NOT_NEEDED); 23376: if (is_additive_inverse(dbm[0][i], tmp)) { 23376: 23376: numer_denom(tmp, numer, denom); 23376: sub_mul_assign(le, coeff, v); 23376: le *= denom; 23376: le -= numer*coeff; 23376: val_denom *= denom; 23376: continue; 23376: } 23376: 23376: 23376: else { 23376: bool constant_v = false; 23376: for (Linear_Expression::const_iterator j = le.begin(), 23376: j_end = le.lower_bound(Variable(i - 1)); j != j_end; ++j) { 23376: const Variable vj = j.variable(); 23376: const dimension_type j_dim = vj.space_dimension(); 23376: assign_r(tmp, dbm_i[j_dim], ROUND_NOT_NEEDED); 23376: if (is_additive_inverse(dbm[j_dim][i], tmp)) { 23376: 23376: 23376: 23376: numer_denom(tmp, numer, denom); 23376: 23376: 23376: sub_mul_assign(le, coeff, v); 23376: add_mul_assign(le, coeff, vj); 23376: le *= denom; 23376: le -= numer*coeff; 23376: val_denom *= denom; 23376: constant_v = true; 23376: break; 23376: } 23376: } 23376: if (!constant_v) { 23376: 23376: return false; 23376: } 23376: } 23376: } 23376: 23376: 23376: freq_n = 0; 23376: freq_d = 1; 23376: 23376: 23376: normalize2(le.inhomogeneous_term(), val_denom, val_n, val_d); 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::constrains(const Variable var) const { 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dimension() < var_space_dim) { 23376: throw_dimension_incompatible("constrains(v)", "v", var); 23376: } 23376: shortest_path_closure_assign(); 23376: 23376: 23376: if (marked_empty()) { 23376: return true; 23376: } 23376: 23376: const DB_Row& dbm_v = dbm[var_space_dim]; 23376: for (dimension_type i = dbm.num_rows(); i-- > 0; ) { 23376: if (!is_plus_infinity(dbm_v[i]) 23376: || !is_plus_infinity(dbm[i][var_space_dim])) { 23376: return true; 23376: } 23376: } 23376: 23376: 23376: 23376: return is_empty(); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape 23376: ::compute_predecessors(std::vector& predecessor) const { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: 23376: const dimension_type predecessor_size = dbm.num_rows(); 23376: 23376: predecessor.reserve(predecessor_size); 23376: for (dimension_type i = 0; i < predecessor_size; ++i) { 23376: predecessor.push_back(i); 23376: } 23376: 23376: for (dimension_type i = predecessor_size; i-- > 1; ) { 23376: if (i == predecessor[i]) { 23376: const DB_Row& dbm_i = dbm[i]; 23376: for (dimension_type j = i; j-- > 0; ) { 23376: if (j == predecessor[j] 23376: && is_additive_inverse(dbm[j][i], dbm_i[j])) { 23376: 23376: predecessor[i] = j; 23376: break; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::compute_leaders(std::vector& leaders) const { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: compute_predecessors(leaders); 23376: 23376: ((void) 0); 23376: for (dimension_type i = 1, l_size = leaders.size(); i != l_size; ++i) { 23376: const dimension_type leaders_i = leaders[i]; 23376: ((void) 0); 23376: if (leaders_i != i) { 23376: const dimension_type leaders_leaders_i = leaders[leaders_i]; 23376: ((void) 0); 23376: leaders[i] = leaders_leaders_i; 23376: } 23376: } 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::is_shortest_path_reduced() const { 23376: 23376: if (marked_empty()) { 23376: return true; 23376: } 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: if (space_dim == 0) { 23376: return true; 23376: } 23376: 23376: 23376: 23376: if (!marked_shortest_path_reduced()) { 23376: return false; 23376: } 23376: 23376: const BD_Shape x_copy = *this; 23376: x_copy.shortest_path_closure_assign(); 23376: 23376: if (x_copy.marked_empty()) { 23376: return false; 23376: } 23376: 23376: std::vector leader(space_dim + 1); 23376: 23376: 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: leader[i] = i; 23376: } 23376: 23376: 23376: 23376: 23376: for (dimension_type i = 0; i < space_dim; ++i) { 23376: const DB_Row& x_copy_dbm_i = x_copy.dbm[i]; 23376: for (dimension_type j = i + 1; j <= space_dim; ++j) { 23376: if (is_additive_inverse(x_copy.dbm[j][i], x_copy_dbm_i[j])) { 23376: 23376: 23376: leader[j] = leader[i]; 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c; N& c = holder_c.item(); 23376: for (dimension_type k = 0; k <= space_dim; ++k) { 23376: if (leader[k] == k) { 23376: const DB_Row& x_k = x_copy.dbm[k]; 23376: for (dimension_type i = 0; i <= space_dim; ++i) { 23376: if (leader[i] == i) { 23376: const DB_Row& x_i = x_copy.dbm[i]; 23376: const Bit_Row& redundancy_i = redundancy_dbm[i]; 23376: const N& x_i_k = x_i[k]; 23376: for (dimension_type j = 0; j <= space_dim; ++j) { 23376: if (leader[j] == j) { 23376: const N& x_i_j = x_i[j]; 23376: if (!is_plus_infinity(x_i_j)) { 23376: add_assign_r(c, x_i_k, x_k[j], ROUND_UP); 23376: if (x_i_j >= c && !redundancy_i[j]) { 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: std::vector var_conn(space_dim + 1); 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: var_conn[i] = space_dim + 1; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: for (dimension_type i = 0; i <= space_dim; ++i) { 23376: 23376: 23376: dimension_type t = 0; 23376: dimension_type leader_i = leader[i]; 23376: 23376: if (leader_i == i) { 23376: for (dimension_type j = 0; j <= space_dim; ++j) { 23376: dimension_type leader_j = leader[j]; 23376: 23376: 23376: if (j != leader_j) { 23376: if (!redundancy_dbm[i][j]) { 23376: if (t == 1) { 23376: 23376: return false; 23376: } 23376: else { 23376: if (leader_j != i) { 23376: 23376: return false; 23376: } 23376: else { 23376: ++t; 23376: var_conn[i] = j; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: else { 23376: for (dimension_type j = 0; j <= space_dim; ++j) { 23376: if (!redundancy_dbm[i][j]) { 23376: dimension_type leader_j = leader[j]; 23376: if (leader_i != leader_j) { 23376: 23376: return false; 23376: } 23376: else { 23376: if (t == 1) { 23376: 23376: return false; 23376: } 23376: else { 23376: ++t; 23376: var_conn[i] = j; 23376: } 23376: } 23376: 23376: 23376: if (t == 0) { 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: std::vector just_checked(space_dim + 1); 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: just_checked[i] = false; 23376: } 23376: 23376: 23376: for (dimension_type i = 0; i <= space_dim; ++i) { 23376: 23376: if (!just_checked[i]) { 23376: dimension_type v_con = var_conn[i]; 23376: 23376: 23376: if (v_con != space_dim + 1) { 23376: 23376: 23376: while (v_con != i) { 23376: just_checked[v_con] = true; 23376: v_con = var_conn[v_con]; 23376: 23376: 23376: if (just_checked[v_con]) { 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: just_checked[i] = true; 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::bounds(const Linear_Expression& expr, 23376: const bool from_above) const { 23376: 23376: 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible((from_above 23376: ? "bounds_from_above(e)" 23376: : "bounds_from_below(e)"), "e", expr); 23376: } 23376: shortest_path_closure_assign(); 23376: 23376: if (space_dim == 0 || marked_empty()) { 23376: return true; 23376: } 23376: 23376: 23376: const Constraint& c = from_above ? expr <= 0 : expr >= 0; 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: 23376: if (BD_Shape_Helpers::extract_bounded_difference(c, num_vars, i, j, coeff)) { 23376: if (num_vars == 0) { 23376: 23376: return true; 23376: } 23376: 23376: const N& x = (coeff < 0) ? dbm[i][j] : dbm[j][i]; 23376: return !is_plus_infinity(x); 23376: } 23376: else { 23376: 23376: Optimization_Mode mode_bounds 23376: = from_above ? MAXIMIZATION : MINIMIZATION; 23376: MIP_Problem mip(space_dim, constraints(), expr, mode_bounds); 23376: 23376: return mip.solve() == OPTIMIZED_MIP_PROBLEM; 23376: } 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::max_min(const Linear_Expression& expr, 23376: const bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, 23376: bool& included) const { 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible((maximize 23376: ? "maximize(e, ...)" 23376: : "minimize(e, ...)"), "e", expr); 23376: } 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: else { 23376: ext_n = expr.inhomogeneous_term(); 23376: ext_d = 1; 23376: included = true; 23376: return true; 23376: } 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: 23376: 23376: const Constraint& c = maximize ? expr <= 0 : expr >= 0; 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: 23376: if (!BD_Shape_Helpers::extract_bounded_difference(c, num_vars, i, j, coeff)) { 23376: Optimization_Mode mode_max_min 23376: = maximize ? MAXIMIZATION : MINIMIZATION; 23376: MIP_Problem mip(space_dim, constraints(), expr, mode_max_min); 23376: if (mip.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: mip.optimal_value(ext_n, ext_d); 23376: included = true; 23376: return true; 23376: } 23376: else { 23376: 23376: return false; 23376: } 23376: } 23376: else { 23376: 23376: if (num_vars == 0) { 23376: 23376: ext_n = expr.inhomogeneous_term(); 23376: ext_d = 1; 23376: included = true; 23376: return true; 23376: } 23376: 23376: 23376: const N& x = (coeff < 0) ? dbm[i][j] : dbm[j][i]; 23376: if (!is_plus_infinity(x)) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign(minus_b, b); 23376: const Coefficient& sc_b = maximize ? b : minus_b; 23376: assign_r(d, sc_b, ROUND_UP); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_expr; N& coeff_expr = holder_coeff_expr.item(); 23376: ((void) 0); 23376: const Coefficient& coeff_i = expr.get(Variable(i - 1)); 23376: const int sign_i = sgn(coeff_i); 23376: if (sign_i > 0) { 23376: assign_r(coeff_expr, coeff_i, ROUND_UP); 23376: } 23376: else { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_coeff_i; Parma_Polyhedra_Library::Coefficient& minus_coeff_i = holder_minus_coeff_i.item(); 23376: neg_assign(minus_coeff_i, coeff_i); 23376: assign_r(coeff_expr, minus_coeff_i, ROUND_UP); 23376: } 23376: 23376: add_mul_assign_r(d, coeff_expr, x, ROUND_UP); 23376: numer_denom(d, ext_n, ext_d); 23376: if (!maximize) { 23376: neg_assign(ext_n); 23376: } 23376: included = true; 23376: return true; 23376: } 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::max_min(const Linear_Expression& expr, 23376: const bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, 23376: bool& included, 23376: Generator& g) const { 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible((maximize 23376: ? "maximize(e, ...)" 23376: : "minimize(e, ...)"), "e", expr); 23376: } 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: else { 23376: ext_n = expr.inhomogeneous_term(); 23376: ext_d = 1; 23376: included = true; 23376: g = point(); 23376: return true; 23376: } 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: Optimization_Mode mode_max_min 23376: = maximize ? MAXIMIZATION : MINIMIZATION; 23376: MIP_Problem mip(space_dim, constraints(), expr, mode_max_min); 23376: if (mip.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = mip.optimizing_point(); 23376: mip.evaluate_objective_function(g, ext_n, ext_d); 23376: included = true; 23376: return true; 23376: } 23376: 23376: return false; 23376: } 23376: 23376: template 23376: Poly_Con_Relation 23376: BD_Shape::relation_with(const Congruence& cg) const { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (cg.space_dimension() > space_dim) { 23376: throw_dimension_incompatible("relation_with(cg)", cg); 23376: } 23376: 23376: 23376: if (cg.is_equality()) { 23376: Constraint c(cg); 23376: return relation_with(c); 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: if (space_dim == 0) { 23376: if (cg.is_inconsistent()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: 23376: 23376: Linear_Expression le = Linear_Expression(cg.expression()); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_numer; Parma_Polyhedra_Library::Coefficient& min_numer = holder_min_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_denom; Parma_Polyhedra_Library::Coefficient& min_denom = holder_min_denom.item(); 23376: bool min_included; 23376: bool bounded_below = minimize(le, min_numer, min_denom, min_included); 23376: 23376: 23376: 23376: if (!bounded_below) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_numer; Parma_Polyhedra_Library::Coefficient& max_numer = holder_max_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_denom; Parma_Polyhedra_Library::Coefficient& max_denom = holder_max_denom.item(); 23376: bool max_included; 23376: bool bounded_above = maximize(le, max_numer, max_denom, max_included); 23376: 23376: 23376: 23376: if (!bounded_above) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: Parma_Polyhedra_Library::Dirty_Temp holder_signed_distance; Parma_Polyhedra_Library::Coefficient& signed_distance = holder_signed_distance.item(); 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_value; Parma_Polyhedra_Library::Coefficient& min_value = holder_min_value.item(); 23376: min_value = min_numer / min_denom; 23376: const Coefficient& modulus = cg.modulus(); 23376: signed_distance = min_value % modulus; 23376: min_value -= signed_distance; 23376: if (min_value * min_denom < min_numer) { 23376: min_value += modulus; 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_value; Parma_Polyhedra_Library::Coefficient& max_value = holder_max_value.item(); 23376: max_value = max_numer / max_denom; 23376: signed_distance = max_value % modulus; 23376: max_value += signed_distance; 23376: if (max_value * max_denom > max_numer) { 23376: max_value -= modulus; 23376: } 23376: 23376: 23376: 23376: if (max_value < min_value) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: } 23376: 23376: 23376: template 23376: Poly_Con_Relation 23376: BD_Shape::relation_with(const Constraint& c) const { 23376: const dimension_type c_space_dim = c.space_dimension(); 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (c_space_dim > space_dim) { 23376: throw_dimension_incompatible("relation_with(c)", c); 23376: } 23376: shortest_path_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: if (space_dim == 0) { 23376: if ((c.is_equality() && c.inhomogeneous_term() != 0) 23376: || (c.is_inequality() && c.inhomogeneous_term() < 0)) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else if (c.is_strict_inequality() && c.inhomogeneous_term() == 0) { 23376: 23376: 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: else if (c.is_equality() || c.inhomogeneous_term() == 0) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: else { 23376: 23376: 23376: 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: if (!BD_Shape_Helpers::extract_bounded_difference(c, num_vars, i, j, coeff)) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: Linear_Expression le(c.expression()); 23376: le.set_inhomogeneous_term(Coefficient_zero()); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_numer; Parma_Polyhedra_Library::Coefficient& max_numer = holder_max_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_denom; Parma_Polyhedra_Library::Coefficient& max_denom = holder_max_denom.item(); 23376: bool max_included; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_numer; Parma_Polyhedra_Library::Coefficient& min_numer = holder_min_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_denom; Parma_Polyhedra_Library::Coefficient& min_denom = holder_min_denom.item(); 23376: bool min_included; 23376: bool bounded_above = maximize(le, max_numer, max_denom, max_included); 23376: bool bounded_below = minimize(le, min_numer, min_denom, min_included); 23376: if (!bounded_above) { 23376: if (!bounded_below) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: min_numer += c.inhomogeneous_term() * min_denom; 23376: switch (sgn(min_numer)) { 23376: case 1: 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: return Poly_Con_Relation::is_included(); 23376: case 0: 23376: if (c.is_strict_inequality() || c.is_equality()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: return Poly_Con_Relation::is_included(); 23376: case -1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: } 23376: if (!bounded_below) { 23376: max_numer += c.inhomogeneous_term() * max_denom; 23376: switch (sgn(max_numer)) { 23376: case 1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case 0: 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: else { 23376: max_numer += c.inhomogeneous_term() * max_denom; 23376: min_numer += c.inhomogeneous_term() * min_denom; 23376: switch (sgn(max_numer)) { 23376: case 1: 23376: switch (sgn(min_numer)) { 23376: case 1: 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: return Poly_Con_Relation::is_included(); 23376: case 0: 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: return Poly_Con_Relation::is_included(); 23376: case -1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: case 0: 23376: if (min_numer == 0) { 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint() 23376: && Poly_Con_Relation::saturates(); 23376: } 23376: return Poly_Con_Relation::is_included() 23376: && Poly_Con_Relation::saturates(); 23376: } 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: } 23376: 23376: 23376: if (num_vars == 0) { 23376: 23376: switch (sgn(c.inhomogeneous_term())) { 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: case 0: 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: case 1: 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: const bool negative = (coeff < 0); 23376: const N& x = negative ? dbm[i][j] : dbm[j][i]; 23376: const N& y = negative ? dbm[j][i] : dbm[i][j]; 23376: if (negative) { 23376: neg_assign(coeff); 23376: } 23376: # 1672 "../../src/BD_Shape_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_x; mpq_class& q_x = holder_q_x.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_y; mpq_class& q_y = holder_q_y.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; mpq_class& d = holder_d.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d1; mpq_class& d1 = holder_d1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c_denom; mpq_class& c_denom = holder_c_denom.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_denom; mpq_class& q_denom = holder_q_denom.item(); 23376: assign_r(c_denom, coeff, ROUND_NOT_NEEDED); 23376: assign_r(d, c.inhomogeneous_term(), ROUND_NOT_NEEDED); 23376: neg_assign_r(d1, d, ROUND_NOT_NEEDED); 23376: div_assign_r(d, d, c_denom, ROUND_NOT_NEEDED); 23376: div_assign_r(d1, d1, c_denom, ROUND_NOT_NEEDED); 23376: 23376: if (is_plus_infinity(x)) { 23376: if (!is_plus_infinity(y)) { 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: numer_denom(y, numer, denom); 23376: assign_r(q_denom, denom, ROUND_NOT_NEEDED); 23376: assign_r(q_y, numer, ROUND_NOT_NEEDED); 23376: div_assign_r(q_y, q_y, q_denom, ROUND_NOT_NEEDED); 23376: if (q_y < d1) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: if (q_y == d1 && c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: 23376: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: numer_denom(x, numer, denom); 23376: assign_r(q_denom, denom, ROUND_NOT_NEEDED); 23376: assign_r(q_x, numer, ROUND_NOT_NEEDED); 23376: div_assign_r(q_x, q_x, q_denom, ROUND_NOT_NEEDED); 23376: 23376: if (!is_plus_infinity(y)) { 23376: numer_denom(y, numer, denom); 23376: assign_r(q_denom, denom, ROUND_NOT_NEEDED); 23376: assign_r(q_y, numer, ROUND_NOT_NEEDED); 23376: div_assign_r(q_y, q_y, q_denom, ROUND_NOT_NEEDED); 23376: if (q_x == d && q_y == d1) { 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: 23376: 23376: if (q_y < d1) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: if (q_y == d1 && c.is_strict_inequality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: if (d > q_x) { 23376: if (c.is_equality()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: if (d == q_x && c.is_nonstrict_inequality()) { 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: 23376: template 23376: Poly_Gen_Relation 23376: BD_Shape::relation_with(const Generator& g) const { 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type g_space_dim = g.space_dimension(); 23376: 23376: 23376: if (space_dim < g_space_dim) { 23376: throw_dimension_incompatible("relation_with(g)", g); 23376: } 23376: shortest_path_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: 23376: 23376: if (space_dim == 0) { 23376: return Poly_Gen_Relation::subsumes(); 23376: } 23376: const bool is_line = g.is_line(); 23376: const bool is_line_or_ray = g.is_line_or_ray(); 23376: # 1792 "../../src/BD_Shape_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_product; Parma_Polyhedra_Library::Coefficient& product = holder_product.item(); 23376: 23376: 23376: for (dimension_type i = 0; i <= space_dim; ++i) { 23376: const Coefficient& g_coeff_y = (i > g_space_dim || i == 0) 23376: ? Coefficient_zero() : g.coefficient(Variable(i-1)); 23376: const DB_Row& dbm_i = dbm[i]; 23376: for (dimension_type j = i + 1; j <= space_dim; ++j) { 23376: const Coefficient& g_coeff_x = (j > g_space_dim) 23376: ? Coefficient_zero() : g.coefficient(Variable(j-1)); 23376: const N& dbm_ij = dbm_i[j]; 23376: const N& dbm_ji = dbm[j][i]; 23376: if (is_additive_inverse(dbm_ji, dbm_ij)) { 23376: 23376: 23376: numer_denom(dbm_ij, numer, denom); 23376: product = g_coeff_y; 23376: product -= g_coeff_x; 23376: product *= denom; 23376: if (!is_line_or_ray) { 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (product != 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(dbm_ij)) { 23376: 23376: 23376: 23376: numer_denom(dbm_ij, numer, denom); 23376: product = g_coeff_y; 23376: product -= g_coeff_x; 23376: product *= denom; 23376: if (!is_line_or_ray) { 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (is_line) { 23376: if (product != 0) { 23376: 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: else { 23376: 23376: if (product < 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: } 23376: 23376: if (!is_plus_infinity(dbm_ji)) { 23376: 23376: 23376: numer_denom(dbm_ji, numer, denom); 23376: product = 0; 23376: add_mul_assign(product, denom, g_coeff_x); 23376: add_mul_assign(product, -denom, g_coeff_y); 23376: if (!is_line_or_ray) { 23376: add_mul_assign(product, numer, g.divisor()); 23376: } 23376: if (is_line) { 23376: if (product != 0) { 23376: 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: else { 23376: 23376: if (product < 0) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: return Poly_Gen_Relation::subsumes(); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::shortest_path_closure_assign() const { 23376: 23376: if (marked_empty() || marked_shortest_path_closed()) { 23376: return; 23376: } 23376: const dimension_type num_dimensions = space_dimension(); 23376: 23376: if (num_dimensions == 0) { 23376: return; 23376: } 23376: 23376: 23376: BD_Shape& x = const_cast&>(*this); 23376: 23376: 23376: for (dimension_type h = num_dimensions + 1; h-- > 0; ) { 23376: ((void) 0); 23376: assign_r(x.dbm[h][h], 0, ROUND_NOT_NEEDED); 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_sum; N& sum = holder_sum.item(); 23376: for (dimension_type k = num_dimensions + 1; k-- > 0; ) { 23376: const DB_Row& x_dbm_k = x.dbm[k]; 23376: for (dimension_type i = num_dimensions + 1; i-- > 0; ) { 23376: DB_Row& x_dbm_i = x.dbm[i]; 23376: const N& x_dbm_i_k = x_dbm_i[k]; 23376: if (!is_plus_infinity(x_dbm_i_k)) { 23376: for (dimension_type j = num_dimensions + 1; j-- > 0; ) { 23376: const N& x_dbm_k_j = x_dbm_k[j]; 23376: if (!is_plus_infinity(x_dbm_k_j)) { 23376: 23376: add_assign_r(sum, x_dbm_i_k, x_dbm_k_j, ROUND_UP); 23376: min_assign(x_dbm_i[j], sum); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: for (dimension_type h = num_dimensions + 1; h-- > 0; ) { 23376: N& x_dbm_hh = x.dbm[h][h]; 23376: if (sgn(x_dbm_hh) < 0) { 23376: x.set_empty(); 23376: return; 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: assign_r(x_dbm_hh, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: 23376: 23376: x.set_shortest_path_closed(); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::incremental_shortest_path_closure_assign(Variable var) const { 23376: 23376: if (marked_empty() || marked_shortest_path_closed()) { 23376: return; 23376: } 23376: const dimension_type num_dimensions = space_dimension(); 23376: ((void) 0); 23376: 23376: 23376: 23376: BD_Shape& x = const_cast(*this); 23376: 23376: 23376: for (dimension_type h = num_dimensions + 1; h-- > 0; ) { 23376: ((void) 0); 23376: assign_r(x.dbm[h][h], 0, ROUND_NOT_NEEDED); 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_sum; N& sum = holder_sum.item(); 23376: const dimension_type v = var.id() + 1; 23376: DB_Row& x_v = x.dbm[v]; 23376: 23376: for (dimension_type k = num_dimensions + 1; k-- > 0; ) { 23376: DB_Row& x_k = x.dbm[k]; 23376: const N& x_v_k = x_v[k]; 23376: const N& x_k_v = x_k[v]; 23376: const bool x_v_k_finite = !is_plus_infinity(x_v_k); 23376: const bool x_k_v_finite = !is_plus_infinity(x_k_v); 23376: 23376: if (x_v_k_finite) { 23376: if (x_k_v_finite) { 23376: 23376: for (dimension_type i = num_dimensions + 1; i-- > 0; ) { 23376: DB_Row& x_i = x.dbm[i]; 23376: const N& x_i_k = x_i[k]; 23376: if (!is_plus_infinity(x_i_k)) { 23376: add_assign_r(sum, x_i_k, x_k_v, ROUND_UP); 23376: min_assign(x_i[v], sum); 23376: } 23376: const N& x_k_i = x_k[i]; 23376: if (!is_plus_infinity(x_k_i)) { 23376: add_assign_r(sum, x_v_k, x_k_i, ROUND_UP); 23376: min_assign(x_v[i], sum); 23376: } 23376: } 23376: } 23376: else { 23376: 23376: for (dimension_type i = num_dimensions + 1; i-- > 0; ) { 23376: const N& x_k_i = x_k[i]; 23376: if (!is_plus_infinity(x_k_i)) { 23376: add_assign_r(sum, x_v_k, x_k_i, ROUND_UP); 23376: min_assign(x_v[i], sum); 23376: } 23376: } 23376: } 23376: } 23376: else if (x_k_v_finite) { 23376: 23376: for (dimension_type i = num_dimensions + 1; i-- > 0; ) { 23376: DB_Row& x_i = x.dbm[i]; 23376: const N& x_i_k = x_i[k]; 23376: if (!is_plus_infinity(x_i_k)) { 23376: add_assign_r(sum, x_i_k, x_k_v, ROUND_UP); 23376: min_assign(x_i[v], sum); 23376: } 23376: } 23376: } 23376: else { 23376: 23376: continue; 23376: } 23376: } 23376: 23376: 23376: 23376: for (dimension_type i = num_dimensions + 1; i-- > 0; ) { 23376: DB_Row& x_i = x.dbm[i]; 23376: const N& x_i_v = x_i[v]; 23376: if (!is_plus_infinity(x_i_v)) { 23376: for (dimension_type j = num_dimensions + 1; j-- > 0; ) { 23376: const N& x_v_j = x_v[j]; 23376: if (!is_plus_infinity(x_v_j)) { 23376: add_assign_r(sum, x_i_v, x_v_j, ROUND_UP); 23376: min_assign(x_i[j], sum); 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: for (dimension_type h = num_dimensions + 1; h-- > 0; ) { 23376: N& x_dbm_hh = x.dbm[h][h]; 23376: if (sgn(x_dbm_hh) < 0) { 23376: x.set_empty(); 23376: return; 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: assign_r(x_dbm_hh, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: 23376: 23376: x.set_shortest_path_closed(); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::shortest_path_reduction_assign() const { 23376: 23376: if (marked_shortest_path_reduced()) { 23376: return; 23376: } 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: std::vector predecessor; 23376: compute_predecessors(predecessor); 23376: std::vector leaders; 23376: compute_leader_indices(predecessor, leaders); 23376: const dimension_type num_leaders = leaders.size(); 23376: 23376: Bit_Matrix redundancy(space_dim + 1, space_dim + 1); 23376: 23376: 23376: Bit_Row& red_0 = redundancy[0]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: red_0.set(j); 23376: } 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: redundancy[i] = red_0; 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c; N& c = holder_c.item(); 23376: for (dimension_type l_i = 0; l_i < num_leaders; ++l_i) { 23376: const dimension_type i = leaders[l_i]; 23376: const DB_Row& dbm_i = dbm[i]; 23376: Bit_Row& redundancy_i = redundancy[i]; 23376: for (dimension_type l_j = 0; l_j < num_leaders; ++l_j) { 23376: const dimension_type j = leaders[l_j]; 23376: if (redundancy_i[j]) { 23376: const N& dbm_i_j = dbm_i[j]; 23376: redundancy_i.clear(j); 23376: for (dimension_type l_k = 0; l_k < num_leaders; ++l_k) { 23376: const dimension_type k = leaders[l_k]; 23376: add_assign_r(c, dbm_i[k], dbm[k][j], ROUND_UP); 23376: if (dbm_i_j >= c) { 23376: redundancy_i.set(j); 23376: break; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: std::deque dealt_with(space_dim + 1, false); 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: 23376: 23376: if (i != predecessor[i] && !dealt_with[i]) { 23376: dimension_type j = i; 23376: while (true) { 23376: const dimension_type predecessor_j = predecessor[j]; 23376: if (j == predecessor_j) { 23376: 23376: ((void) 0); 23376: redundancy[i].clear(j); 23376: 23376: 23376: break; 23376: } 23376: 23376: ((void) 0); 23376: redundancy[predecessor_j].clear(j); 23376: dealt_with[predecessor_j] = true; 23376: j = predecessor_j; 23376: } 23376: } 23376: } 23376: 23376: 23376: BD_Shape& x = const_cast&>(*this); 23376: using std::swap; 23376: swap(x.redundancy_dbm, redundancy); 23376: x.set_shortest_path_reduced(); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::upper_bound_assign(const BD_Shape& y) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("upper_bound_assign(y)", y); 23376: } 23376: 23376: y.shortest_path_closure_assign(); 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: *this = y; 23376: return; 23376: } 23376: 23376: 23376: 23376: ((void) 0); 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: const DB_Row& y_dbm_i = y.dbm[i]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: N& dbm_ij = dbm_i[j]; 23376: const N& y_dbm_ij = y_dbm_i[j]; 23376: if (dbm_ij < y_dbm_ij) { 23376: dbm_ij = y_dbm_ij; 23376: } 23376: } 23376: } 23376: 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::BFT00_upper_bound_assign_if_exact(const BD_Shape& y) { 23376: 23376: const BD_Shape& x = *this; 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: if (x_space_dim == 0) { 23376: upper_bound_assign(y); 23376: return true; 23376: } 23376: 23376: if (x.marked_empty()) { 23376: *this = y; 23376: return true; 23376: } 23376: else if (y.is_empty()) { 23376: return true; 23376: } 23376: else if (x.is_empty()) { 23376: *this = y; 23376: return true; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: Variable epsilon(x_space_dim); 23376: Linear_Expression zero_expr; 23376: zero_expr.set_space_dimension(x_space_dim + 1); 23376: Linear_Expression db_expr; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: 23376: 23376: 23376: 23376: 23376: Constraint_System env_cs; 23376: Constraint_System x_cs_removed; 23376: Constraint_System y_cs_removed; 23376: x.shortest_path_reduction_assign(); 23376: y.shortest_path_reduction_assign(); 23376: for (dimension_type i = x_space_dim + 1; i-- > 0; ) { 23376: const Bit_Row& x_red_i = x.redundancy_dbm[i]; 23376: const Bit_Row& y_red_i = y.redundancy_dbm[i]; 23376: const DB_Row& x_dbm_i = x.dbm[i]; 23376: const DB_Row& y_dbm_i = y.dbm[i]; 23376: for (dimension_type j = x_space_dim + 1; j-- > 0; ) { 23376: if (x_red_i[j] && y_red_i[j]) { 23376: continue; 23376: } 23376: if (!x_red_i[j]) { 23376: const N& x_dbm_ij = x_dbm_i[j]; 23376: ((void) 0); 23376: numer_denom(x_dbm_ij, numer, denom); 23376: 23376: db_expr = zero_expr; 23376: if (i > 0) { 23376: db_expr += Variable(i-1); 23376: } 23376: if (j > 0) { 23376: db_expr -= Variable(j-1); 23376: } 23376: if (denom != 1) { 23376: db_expr *= denom; 23376: } 23376: db_expr += numer; 23376: if (x_dbm_ij >= y_dbm_i[j]) { 23376: env_cs.insert(db_expr >= 0); 23376: } 23376: else { 23376: db_expr += epsilon; 23376: x_cs_removed.insert(db_expr == 0); 23376: } 23376: } 23376: if (!y_red_i[j]) { 23376: const N& y_dbm_ij = y_dbm_i[j]; 23376: const N& x_dbm_ij = x_dbm_i[j]; 23376: ((void) 0); 23376: numer_denom(y_dbm_ij, numer, denom); 23376: 23376: db_expr = zero_expr; 23376: if (i > 0) { 23376: db_expr += Variable(i-1); 23376: } 23376: if (j > 0) { 23376: db_expr -= Variable(j-1); 23376: } 23376: if (denom != 1) { 23376: db_expr *= denom; 23376: } 23376: db_expr += numer; 23376: if (y_dbm_ij >= x_dbm_ij) { 23376: 23376: if (!x_red_i[j] && x_dbm_ij == y_dbm_ij) { 23376: continue; 23376: } 23376: env_cs.insert(db_expr >= 0); 23376: } 23376: else { 23376: db_expr += epsilon; 23376: y_cs_removed.insert(db_expr == 0); 23376: } 23376: } 23376: } 23376: } 23376: 23376: if (x_cs_removed.empty()) { 23376: 23376: return true; 23376: } 23376: if (y_cs_removed.empty()) { 23376: 23376: *this = y; 23376: return true; 23376: } 23376: 23376: 23376: 23376: 23376: MIP_Problem env_lp(x_space_dim + 1, env_cs, epsilon, MAXIMIZATION); 23376: 23376: env_lp.solve(); 23376: ((void) 0); 23376: 23376: 23376: for (Constraint_System::const_iterator i = x_cs_removed.begin(), 23376: i_end = x_cs_removed.end(); i != i_end; ++i) { 23376: MIP_Problem lp_i(env_lp); 23376: lp_i.add_constraint(*i); 23376: 23376: if (lp_i.solve() == UNFEASIBLE_MIP_PROBLEM) { 23376: continue; 23376: } 23376: for (Constraint_System::const_iterator j = y_cs_removed.begin(), 23376: j_end = y_cs_removed.end(); j != j_end; ++j) { 23376: MIP_Problem lp_ij(lp_i); 23376: lp_ij.add_constraint(*j); 23376: 23376: switch (lp_ij.solve()) { 23376: case UNFEASIBLE_MIP_PROBLEM: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: case UNBOUNDED_MIP_PROBLEM: 23376: return false; 23376: case OPTIMIZED_MIP_PROBLEM: 23376: lp_ij.optimal_value(numer, denom); 23376: if (numer > 0) { 23376: return false; 23376: } 23376: break; 23376: } 23376: } 23376: } 23376: 23376: 23376: upper_bound_assign(y); 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: template 23376: bool 23376: BD_Shape::BHZ09_upper_bound_assign_if_exact(const BD_Shape& y) { 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_2368 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!integer_upper_bound || std::numeric_limits::is_integer)>) } 23376: 23376: 23376: 23376: ; 23376: 23376: 23376: 23376: const BD_Shape& x = *this; 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: if (x_space_dim == 0) { 23376: upper_bound_assign(y); 23376: return true; 23376: } 23376: 23376: if (x.marked_empty()) { 23376: *this = y; 23376: return true; 23376: } 23376: else if (y.is_empty()) { 23376: return true; 23376: } 23376: else if (x.is_empty()) { 23376: *this = y; 23376: return true; 23376: } 23376: 23376: 23376: x.shortest_path_reduction_assign(); 23376: y.shortest_path_reduction_assign(); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: BD_Shape ub(x); 23376: ub.upper_bound_assign(y); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lhs; N& lhs = holder_lhs.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_rhs; N& rhs = holder_rhs.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp_zero; N& temp_zero = holder_temp_zero.item(); 23376: assign_r(temp_zero, 0, ROUND_NOT_NEEDED); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_temp_one; N& temp_one = holder_temp_one.item(); 23376: if (integer_upper_bound) { 23376: assign_r(temp_one, 1, ROUND_NOT_NEEDED); 23376: } 23376: for (dimension_type i = x_space_dim + 1; i-- > 0; ) { 23376: const DB_Row& x_i = x.dbm[i]; 23376: const Bit_Row& x_red_i = x.redundancy_dbm[i]; 23376: const DB_Row& y_i = y.dbm[i]; 23376: const DB_Row& ub_i = ub.dbm[i]; 23376: for (dimension_type j = x_space_dim + 1; j-- > 0; ) { 23376: 23376: if (x_red_i[j]) { 23376: continue; 23376: } 23376: 23376: ((void) 0); 23376: const N& x_i_j = x_i[j]; 23376: if (x_i_j < y_i[j]) { 23376: for (dimension_type k = x_space_dim + 1; k-- > 0; ) { 23376: const DB_Row& x_k = x.dbm[k]; 23376: const DB_Row& y_k = y.dbm[k]; 23376: const Bit_Row& y_red_k = y.redundancy_dbm[k]; 23376: const DB_Row& ub_k = ub.dbm[k]; 23376: const N& ub_k_j = (k == j) ? temp_zero : ub_k[j]; 23376: for (dimension_type ell = x_space_dim + 1; ell-- > 0; ) { 23376: 23376: if (y_red_k[ell]) { 23376: continue; 23376: } 23376: 23376: ((void) 0); 23376: const N& y_k_ell = y_k[ell]; 23376: if (y_k_ell < x_k[ell]) { 23376: 23376: 23376: add_assign_r(lhs, x_i_j, y_k_ell, ROUND_UP); 23376: const N& ub_i_ell = (i == ell) ? temp_zero : ub_i[ell]; 23376: add_assign_r(rhs, ub_i_ell, ub_k_j, ROUND_UP); 23376: if (integer_upper_bound) { 23376: 23376: 23376: add_assign_r(lhs, lhs, temp_one, ROUND_NOT_NEEDED); 23376: } 23376: 23376: if (lhs < rhs) { 23376: return false; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: m_swap(ub); 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::difference_assign(const BD_Shape& y) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("difference_assign(y)", y); 23376: } 23376: BD_Shape new_bd_shape(space_dim, EMPTY); 23376: 23376: BD_Shape& x = *this; 23376: 23376: x.shortest_path_closure_assign(); 23376: 23376: 23376: if (x.marked_empty()) { 23376: return; 23376: } 23376: y.shortest_path_closure_assign(); 23376: 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: x.set_empty(); 23376: return; 23376: } 23376: 23376: 23376: 23376: if (y.contains(x)) { 23376: x.set_empty(); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: const Constraint_System& y_cs = y.constraints(); 23376: for (Constraint_System::const_iterator i = y_cs.begin(), 23376: y_cs_end = y_cs.end(); i != y_cs_end; ++i) { 23376: const Constraint& c = *i; 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (x.relation_with(c).implies(Poly_Con_Relation::is_included())) { 23376: continue; 23376: } 23376: BD_Shape z = x; 23376: const Linear_Expression e(c.expression()); 23376: z.add_constraint(e <= 0); 23376: if (!z.is_empty()) { 23376: new_bd_shape.upper_bound_assign(z); 23376: } 23376: if (c.is_equality()) { 23376: z = x; 23376: z.add_constraint(e >= 0); 23376: if (!z.is_empty()) { 23376: new_bd_shape.upper_bound_assign(z); 23376: } 23376: } 23376: } 23376: *this = new_bd_shape; 23376: ((void) 0); 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::simplify_using_context_assign(const BD_Shape& y) { 23376: BD_Shape& x = *this; 23376: const dimension_type dim = x.space_dimension(); 23376: 23376: if (dim != y.space_dimension()) { 23376: throw_dimension_incompatible("simplify_using_context_assign(y)", y); 23376: } 23376: 23376: if (dim == 0) { 23376: if (y.marked_empty()) { 23376: x.set_zero_dim_univ(); 23376: return false; 23376: } 23376: else { 23376: return !x.marked_empty(); 23376: } 23376: } 23376: 23376: 23376: 23376: y.shortest_path_closure_assign(); 23376: if (x.contains(y)) { 23376: BD_Shape res(dim, UNIVERSE); 23376: x.m_swap(res); 23376: return false; 23376: } 23376: 23376: 23376: x.shortest_path_closure_assign(); 23376: if (x.marked_empty()) { 23376: 23376: dimension_type i; 23376: dimension_type j; 23376: 23376: i = 0; 23376: const DB_Row& y_dbm_0 = y.dbm[0]; 23376: for (j = 1; j <= dim; ++j) { 23376: if (!is_plus_infinity(y_dbm_0[j])) { 23376: 23376: 23376: 23376: goto found; 23376: } 23376: } 23376: j = 0; 23376: for (i = 1; i <= dim; ++i) { 23376: if (!is_plus_infinity(y.dbm[i][0])) { 23376: 23376: 23376: 23376: goto found; 23376: } 23376: } 23376: 23376: for (i = 1; i <= dim; ++i) { 23376: const DB_Row& y_dbm_i = y.dbm[i]; 23376: for (j = 1; j <= dim; ++j) { 23376: if (!is_plus_infinity(y_dbm_i[j])) { 23376: 23376: 23376: 23376: goto found; 23376: } 23376: } 23376: } 23376: 23376: 23376: return false; 23376: 23376: found: 23376: 23376: ((void) 0); 23376: BD_Shape res(dim, UNIVERSE); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; N& tmp = holder_tmp.item(); 23376: assign_r(tmp, 1, ROUND_UP); 23376: add_assign_r(tmp, tmp, y.dbm[i][j], ROUND_UP); 23376: ((void) 0); 23376: 23376: neg_assign_r(res.dbm[j][i], tmp, ROUND_DOWN); 23376: x.m_swap(res); 23376: return false; 23376: } 23376: 23376: 23376: 23376: 23376: BD_Shape target = x; 23376: target.intersection_assign(y); 23376: const bool bool_result = !target.is_empty(); 23376: 23376: 23376: x.shortest_path_reduction_assign(); 23376: 23376: dimension_type x_num_non_redundant = (dim+1)*(dim+1); 23376: for (dimension_type i = dim + 1; i-- > 0; ) { 23376: x_num_non_redundant -= x.redundancy_dbm[i].count_ones(); 23376: } 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: BD_Shape yy = y; 23376: 23376: 23376: BD_Shape res(dim, UNIVERSE); 23376: 23376: dimension_type res_num_non_redundant = 0; 23376: 23376: 23376: std::vector x_leaders; 23376: x.compute_leaders(x_leaders); 23376: 23376: 23376: const DB_Row& x_dbm_0 = x.dbm[0]; 23376: DB_Row& yy_dbm_0 = yy.dbm[0]; 23376: DB_Row& res_dbm_0 = res.dbm[0]; 23376: for (dimension_type j = 1; j <= dim; ++j) { 23376: 23376: 23376: if (x_leaders[j] != 0) { 23376: continue; 23376: } 23376: ((void) 0); 23376: if (x_dbm_0[j] < yy_dbm_0[j]) { 23376: res_dbm_0[j] = x_dbm_0[j]; 23376: ++res_num_non_redundant; 23376: 23376: yy_dbm_0[j] = x_dbm_0[j]; 23376: yy.reset_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: if (x.dbm[j][0] < yy.dbm[j][0]) { 23376: res.dbm[j][0] = x.dbm[j][0]; 23376: ++res_num_non_redundant; 23376: 23376: yy.dbm[j][0] = x.dbm[j][0]; 23376: yy.reset_shortest_path_closed(); 23376: } 23376: 23376: if (!yy.marked_shortest_path_closed()) { 23376: Variable var_j(j-1); 23376: yy.incremental_shortest_path_closure_assign(var_j); 23376: if (target.contains(yy)) { 23376: 23376: if (res_num_non_redundant < x_num_non_redundant) { 23376: res.reset_shortest_path_closed(); 23376: x.m_swap(res); 23376: } 23376: return bool_result; 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: for (dimension_type i = 2; i <= dim; ++i) { 23376: const dimension_type j = x_leaders[i]; 23376: if (j == i || j == 0) { 23376: continue; 23376: } 23376: ((void) 0); 23376: if (x.dbm[i][j] < yy.dbm[i][j]) { 23376: res.dbm[i][j] = x.dbm[i][j]; 23376: ++res_num_non_redundant; 23376: 23376: yy.dbm[i][j] = x.dbm[i][j]; 23376: yy.reset_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: if (x.dbm[j][i] < yy.dbm[j][i]) { 23376: res.dbm[j][i] = x.dbm[j][i]; 23376: ++res_num_non_redundant; 23376: 23376: yy.dbm[j][i] = x.dbm[j][i]; 23376: yy.reset_shortest_path_closed(); 23376: } 23376: 23376: if (!yy.marked_shortest_path_closed()) { 23376: Variable var_j(j-1); 23376: yy.incremental_shortest_path_closure_assign(var_j); 23376: if (target.contains(yy)) { 23376: 23376: if (res_num_non_redundant < x_num_non_redundant) { 23376: res.reset_shortest_path_closed(); 23376: x.m_swap(res); 23376: } 23376: return bool_result; 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: for (dimension_type i = 0; i <= dim; ++i) { 23376: if (i != x_leaders[i]) { 23376: continue; 23376: } 23376: const DB_Row& x_dbm_i = x.dbm[i]; 23376: const Bit_Row& x_redundancy_dbm_i = x.redundancy_dbm[i]; 23376: DB_Row& yy_dbm_i = yy.dbm[i]; 23376: DB_Row& res_dbm_i = res.dbm[i]; 23376: for (dimension_type j = 0; j <= dim; ++j) { 23376: if (j != x_leaders[j] || x_redundancy_dbm_i[j]) { 23376: continue; 23376: } 23376: N& yy_dbm_ij = yy_dbm_i[j]; 23376: const N& x_dbm_ij = x_dbm_i[j]; 23376: if (x_dbm_ij < yy_dbm_ij) { 23376: res_dbm_i[j] = x_dbm_ij; 23376: ++res_num_non_redundant; 23376: 23376: yy_dbm_ij = x_dbm_ij; 23376: yy.reset_shortest_path_closed(); 23376: ((void) 0); 23376: Variable var(((i > 0) ? i : j) - 1); 23376: yy.incremental_shortest_path_closure_assign(var); 23376: if (target.contains(yy)) { 23376: 23376: if (res_num_non_redundant < x_num_non_redundant) { 23376: res.reset_shortest_path_closed(); 23376: x.m_swap(res); 23376: } 23376: return bool_result; 23376: } 23376: } 23376: } 23376: } 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return false; 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::add_space_dimensions_and_embed(const dimension_type m) { 23376: 23376: if (m == 0) { 23376: return; 23376: } 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type new_space_dim = space_dim + m; 23376: const bool was_zero_dim_univ = (!marked_empty() && space_dim == 0); 23376: 23376: 23376: 23376: 23376: dbm.grow(new_space_dim + 1); 23376: 23376: 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: 23376: if (was_zero_dim_univ) { 23376: set_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::add_space_dimensions_and_project(const dimension_type m) { 23376: 23376: if (m == 0) { 23376: return; 23376: } 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: dbm.grow(m + 1); 23376: if (!marked_empty()) { 23376: for (dimension_type i = m + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: for (dimension_type j = m + 1; j-- > 0; ) { 23376: if (i != j) { 23376: assign_r(dbm_i[j], 0, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: } 23376: set_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const dimension_type new_space_dim = space_dim + m; 23376: dbm.grow(new_space_dim + 1); 23376: 23376: 23376: DB_Row& dbm_0 = dbm[0]; 23376: for (dimension_type i = space_dim + 1; i <= new_space_dim; ++i) { 23376: assign_r(dbm[i][0], 0, ROUND_NOT_NEEDED); 23376: assign_r(dbm_0[i], 0, ROUND_NOT_NEEDED); 23376: } 23376: 23376: if (marked_shortest_path_closed()) { 23376: reset_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::remove_space_dimensions(const Variables_Set& vars) { 23376: 23376: 23376: 23376: if (vars.empty()) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: const dimension_type old_space_dim = space_dimension(); 23376: 23376: 23376: const dimension_type min_space_dim = vars.space_dimension(); 23376: if (old_space_dim < min_space_dim) { 23376: throw_dimension_incompatible("remove_space_dimensions(vs)", min_space_dim); 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: 23376: 23376: 23376: const dimension_type new_space_dim = old_space_dim - vars.size(); 23376: if (new_space_dim == 0) { 23376: dbm.resize_no_copy(1); 23376: if (!marked_empty()) { 23376: 23376: set_zero_dim_univ(); 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: dbm.resize_no_copy(new_space_dim + 1); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: 23376: 23376: Variables_Set::const_iterator vsi = vars.begin(); 23376: Variables_Set::const_iterator vsi_end = vars.end(); 23376: dimension_type dst = *vsi + 1; 23376: dimension_type src = dst + 1; 23376: for (++vsi; vsi != vsi_end; ++vsi) { 23376: const dimension_type vsi_next = *vsi + 1; 23376: 23376: 23376: while (src < vsi_next) { 23376: using std::swap; 23376: swap(dbm[dst], dbm[src]); 23376: for (dimension_type i = old_space_dim + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: assign_or_swap(dbm_i[dst], dbm_i[src]); 23376: } 23376: ++dst; 23376: ++src; 23376: } 23376: ++src; 23376: } 23376: 23376: 23376: while (src <= old_space_dim) { 23376: using std::swap; 23376: swap(dbm[dst], dbm[src]); 23376: for (dimension_type i = old_space_dim + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: assign_or_swap(dbm_i[dst], dbm_i[src]); 23376: } 23376: ++src; 23376: ++dst; 23376: } 23376: 23376: 23376: dbm.resize_no_copy(new_space_dim + 1); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: BD_Shape::map_space_dimensions(const Partial_Function& pfunc) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: if (pfunc.has_empty_codomain()) { 23376: 23376: remove_higher_space_dimensions(0); 23376: return; 23376: } 23376: 23376: const dimension_type new_space_dim = pfunc.max_in_codomain() + 1; 23376: 23376: 23376: if (new_space_dim < space_dim) { 23376: shortest_path_closure_assign(); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: remove_higher_space_dimensions(new_space_dim); 23376: return; 23376: } 23376: 23376: 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: DB_Matrix x(new_space_dim+1); 23376: 23376: 23376: 23376: DB_Row& dbm_0 = dbm[0]; 23376: DB_Row& x_0 = x[0]; 23376: for (dimension_type j = 1; j <= space_dim; ++j) { 23376: dimension_type new_j; 23376: if (pfunc.maps(j - 1, new_j)) { 23376: assign_or_swap(x_0[new_j + 1], dbm_0[j]); 23376: assign_or_swap(x[new_j + 1][0], dbm[j][0]); 23376: } 23376: } 23376: 23376: for (dimension_type i = 1; i <= space_dim; ++i) { 23376: dimension_type new_i; 23376: if (pfunc.maps(i - 1, new_i)) { 23376: DB_Row& dbm_i = dbm[i]; 23376: ++new_i; 23376: DB_Row& x_new_i = x[new_i]; 23376: for (dimension_type j = i+1; j <= space_dim; ++j) { 23376: dimension_type new_j; 23376: if (pfunc.maps(j - 1, new_j)) { 23376: ++new_j; 23376: assign_or_swap(x_new_i[new_j], dbm_i[j]); 23376: assign_or_swap(x[new_j][new_i], dbm[j][i]); 23376: } 23376: } 23376: } 23376: } 23376: 23376: using std::swap; 23376: swap(dbm, x); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::intersection_assign(const BD_Shape& y) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("intersection_assign(y)", y); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: if (y.marked_empty()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: 23376: bool changed = false; 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: const DB_Row& y_dbm_i = y.dbm[i]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: N& dbm_ij = dbm_i[j]; 23376: const N& y_dbm_ij = y_dbm_i[j]; 23376: if (dbm_ij > y_dbm_ij) { 23376: dbm_ij = y_dbm_ij; 23376: changed = true; 23376: } 23376: } 23376: } 23376: 23376: if (changed && marked_shortest_path_closed()) { 23376: reset_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: BD_Shape::CC76_extrapolation_assign(const BD_Shape& y, 23376: Iterator first, Iterator last, 23376: unsigned* tp) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("CC76_extrapolation_assign(y)", y); 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: shortest_path_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: y.shortest_path_closure_assign(); 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: 23376: if (tp != 0 && *tp > 0) { 23376: BD_Shape x_tmp(*this); 23376: x_tmp.CC76_extrapolation_assign(y, first, last, 0); 23376: 23376: if (!contains(x_tmp)) { 23376: --(*tp); 23376: } 23376: return; 23376: } 23376: # 3108 "../../src/BD_Shape_templates.hh" 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: const DB_Row& y_dbm_i = y.dbm[i]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: N& dbm_ij = dbm_i[j]; 23376: const N& y_dbm_ij = y_dbm_i[j]; 23376: if (y_dbm_ij < dbm_ij) { 23376: Iterator k = std::lower_bound(first, last, dbm_ij); 23376: if (k != last) { 23376: if (dbm_ij < *k) { 23376: assign_r(dbm_ij, *k, ROUND_UP); 23376: } 23376: } 23376: else { 23376: assign_r(dbm_ij, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: } 23376: } 23376: reset_shortest_path_closed(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::get_limiting_shape(const Constraint_System& cs, 23376: BD_Shape& limiting_shape) const { 23376: 23376: ((void) 0); 23376: 23376: shortest_path_closure_assign(); 23376: bool changed = false; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff; Parma_Polyhedra_Library::Coefficient& coeff = holder_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_c_term; Parma_Polyhedra_Library::Coefficient& minus_c_term = holder_minus_c_term.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d1; N& d1 = holder_d1.item(); 23376: for (Constraint_System::const_iterator cs_i = cs.begin(), 23376: cs_end = cs.end(); cs_i != cs_end; ++cs_i) { 23376: const Constraint& c = *cs_i; 23376: dimension_type num_vars = 0; 23376: dimension_type i = 0; 23376: dimension_type j = 0; 23376: 23376: if (BD_Shape_Helpers::extract_bounded_difference(c, num_vars, i, j, coeff)) { 23376: 23376: 23376: const bool negative = (coeff < 0); 23376: const N& x = negative ? dbm[i][j] : dbm[j][i]; 23376: const N& y = negative ? dbm[j][i] : dbm[i][j]; 23376: DB_Matrix& ls_dbm = limiting_shape.dbm; 23376: if (negative) { 23376: neg_assign(coeff); 23376: } 23376: 23376: div_round_up(d, c.inhomogeneous_term(), coeff); 23376: if (x <= d) { 23376: if (c.is_inequality()) { 23376: N& ls_x = negative ? ls_dbm[i][j] : ls_dbm[j][i]; 23376: if (ls_x > d) { 23376: ls_x = d; 23376: changed = true; 23376: } 23376: } 23376: else { 23376: 23376: neg_assign(minus_c_term, c.inhomogeneous_term()); 23376: div_round_up(d1, minus_c_term, coeff); 23376: if (y <= d1) { 23376: N& ls_x = negative ? ls_dbm[i][j] : ls_dbm[j][i]; 23376: N& ls_y = negative ? ls_dbm[j][i] : ls_dbm[i][j]; 23376: if ((ls_x >= d && ls_y > d1) || (ls_x > d && ls_y >= d1)) { 23376: ls_x = d; 23376: ls_y = d1; 23376: changed = true; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: if (changed && limiting_shape.marked_shortest_path_closed()) { 23376: limiting_shape.reset_shortest_path_closed(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::limited_CC76_extrapolation_assign(const BD_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp) { 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("limited_CC76_extrapolation_assign(y, cs)", 23376: y); 23376: } 23376: 23376: 23376: const dimension_type cs_space_dim = cs.space_dimension(); 23376: if (space_dim < cs_space_dim) { 23376: throw_invalid_argument("limited_CC76_extrapolation_assign(y, cs)", 23376: "cs is space_dimension incompatible"); 23376: } 23376: 23376: 23376: if (cs.has_strict_inequalities()) { 23376: throw_invalid_argument("limited_CC76_extrapolation_assign(y, cs)", 23376: "cs has strict inequalities"); 23376: } 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: BD_Shape limiting_shape(space_dim, UNIVERSE); 23376: get_limiting_shape(cs, limiting_shape); 23376: CC76_extrapolation_assign(y, tp); 23376: intersection_assign(limiting_shape); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::BHMZ05_widening_assign(const BD_Shape& y, unsigned* tp) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("BHMZ05_widening_assign(y)", y); 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: const dimension_type y_affine_dim = y.affine_dimension(); 23376: 23376: 23376: 23376: if (y_affine_dim == 0) { 23376: return; 23376: } 23376: 23376: 23376: const dimension_type x_affine_dim = affine_dimension(); 23376: ((void) 0); 23376: if (x_affine_dim != y_affine_dim) { 23376: return; 23376: } 23376: 23376: if (tp != 0 && *tp > 0) { 23376: BD_Shape x_tmp(*this); 23376: x_tmp.BHMZ05_widening_assign(y, 0); 23376: 23376: if (!contains(x_tmp)) { 23376: --(*tp); 23376: } 23376: return; 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: y.shortest_path_reduction_assign(); 23376: 23376: 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: const DB_Row& y_dbm_i = y.dbm[i]; 23376: const Bit_Row& y_redundancy_i = y.redundancy_dbm[i]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: N& dbm_ij = dbm_i[j]; 23376: 23376: 23376: 23376: if (y_redundancy_i[j] || y_dbm_i[j] != dbm_ij) { 23376: assign_r(dbm_ij, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: reset_shortest_path_closed(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::limited_BHMZ05_extrapolation_assign(const BD_Shape& y, 23376: const Constraint_System& cs, 23376: unsigned* tp) { 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("limited_BHMZ05_extrapolation_assign(y, cs)", 23376: y); 23376: } 23376: 23376: 23376: const dimension_type cs_space_dim = cs.space_dimension(); 23376: if (space_dim < cs_space_dim) { 23376: throw_invalid_argument("limited_BHMZ05_extrapolation_assign(y, cs)", 23376: "cs is space-dimension incompatible"); 23376: } 23376: 23376: if (cs.has_strict_inequalities()) { 23376: throw_invalid_argument("limited_BHMZ05_extrapolation_assign(y, cs)", 23376: "cs has strict inequalities"); 23376: } 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: BD_Shape limiting_shape(space_dim, UNIVERSE); 23376: get_limiting_shape(cs, limiting_shape); 23376: BHMZ05_widening_assign(y, tp); 23376: intersection_assign(limiting_shape); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::CC76_narrowing_assign(const BD_Shape& y) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("CC76_narrowing_assign(y)", y); 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: y.shortest_path_closure_assign(); 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: shortest_path_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: bool changed = false; 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: const DB_Row& y_dbm_i = y.dbm[i]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: N& dbm_ij = dbm_i[j]; 23376: const N& y_dbm_ij = y_dbm_i[j]; 23376: if (!is_plus_infinity(dbm_ij) 23376: && !is_plus_infinity(y_dbm_ij) 23376: && dbm_ij != y_dbm_ij) { 23376: dbm_ij = y_dbm_ij; 23376: changed = true; 23376: } 23376: } 23376: } 23376: if (changed && marked_shortest_path_closed()) { 23376: reset_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape 23376: ::deduce_v_minus_u_bounds(const dimension_type v, 23376: const dimension_type last_v, 23376: const Linear_Expression& sc_expr, 23376: Coefficient_traits::const_reference sc_denom, 23376: const N& ub_v) { 23376: ((void) 0); 23376: ((void) 0); 23376: # 3423 "../../src/BD_Shape_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp holder_mpq_sc_denom; mpq_class& mpq_sc_denom = holder_mpq_sc_denom.item(); 23376: assign_r(mpq_sc_denom, sc_denom, ROUND_NOT_NEEDED); 23376: const DB_Row& dbm_0 = dbm[0]; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_lb_u; mpq_class& minus_lb_u = holder_minus_lb_u.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_ub_u; mpq_class& ub_u = holder_ub_u.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_up_approx; N& up_approx = holder_up_approx.item(); 23376: for (Linear_Expression::const_iterator u = sc_expr.begin(), 23376: u_end = sc_expr.lower_bound(Variable(last_v)); u != u_end; ++u) { 23376: const dimension_type u_dim = u.variable().space_dimension(); 23376: if (u_dim == v) { 23376: continue; 23376: } 23376: const Coefficient& expr_u = *u; 23376: if (expr_u < 0) { 23376: continue; 23376: } 23376: ((void) 0); 23376: if (expr_u >= sc_denom) { 23376: 23376: sub_assign_r(dbm[u_dim][v], ub_v, dbm_0[u_dim], ROUND_UP); 23376: } 23376: else { 23376: DB_Row& dbm_u = dbm[u_dim]; 23376: const N& dbm_u0 = dbm_u[0]; 23376: if (!is_plus_infinity(dbm_u0)) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: assign_r(minus_lb_u, dbm_u0, ROUND_NOT_NEEDED); 23376: assign_r(q, expr_u, ROUND_NOT_NEEDED); 23376: div_assign_r(q, q, mpq_sc_denom, ROUND_NOT_NEEDED); 23376: assign_r(ub_u, dbm_0[u_dim], ROUND_NOT_NEEDED); 23376: 23376: add_assign_r(ub_u, ub_u, minus_lb_u, ROUND_NOT_NEEDED); 23376: 23376: sub_mul_assign_r(minus_lb_u, q, ub_u, ROUND_NOT_NEEDED); 23376: assign_r(up_approx, minus_lb_u, ROUND_UP); 23376: 23376: add_assign_r(dbm_u[v], ub_v, up_approx, ROUND_UP); 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: BD_Shape 23376: ::deduce_u_minus_v_bounds(const dimension_type v, 23376: const dimension_type last_v, 23376: const Linear_Expression& sc_expr, 23376: Coefficient_traits::const_reference sc_denom, 23376: const N& minus_lb_v) { 23376: ((void) 0); 23376: ((void) 0); 23376: # 3490 "../../src/BD_Shape_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp holder_mpq_sc_denom; mpq_class& mpq_sc_denom = holder_mpq_sc_denom.item(); 23376: assign_r(mpq_sc_denom, sc_denom, ROUND_NOT_NEEDED); 23376: DB_Row& dbm_0 = dbm[0]; 23376: DB_Row& dbm_v = dbm[v]; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_ub_u; mpq_class& ub_u = holder_ub_u.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_lb_u; mpq_class& minus_lb_u = holder_minus_lb_u.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_up_approx; N& up_approx = holder_up_approx.item(); 23376: 23376: for (Linear_Expression::const_iterator u = sc_expr.begin(), 23376: u_end = sc_expr.lower_bound(Variable(last_v)); u != u_end; ++u) { 23376: const Variable u_var = u.variable(); 23376: const dimension_type u_dim = u_var.space_dimension(); 23376: if (u_var.space_dimension() == v) { 23376: continue; 23376: } 23376: const Coefficient& expr_u = *u; 23376: if (expr_u < 0) { 23376: continue; 23376: } 23376: ((void) 0); 23376: if (expr_u >= sc_denom) { 23376: 23376: 23376: sub_assign_r(dbm_v[u_dim], minus_lb_v, dbm[u_dim][0], ROUND_UP); 23376: } 23376: else { 23376: const N& dbm_0u = dbm_0[u_dim]; 23376: if (!is_plus_infinity(dbm_0u)) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: assign_r(ub_u, dbm_0u, ROUND_NOT_NEEDED); 23376: assign_r(q, expr_u, ROUND_NOT_NEEDED); 23376: div_assign_r(q, q, mpq_sc_denom, ROUND_NOT_NEEDED); 23376: assign_r(minus_lb_u, dbm[u_dim][0], ROUND_NOT_NEEDED); 23376: 23376: add_assign_r(minus_lb_u, minus_lb_u, ub_u, ROUND_NOT_NEEDED); 23376: 23376: sub_mul_assign_r(ub_u, q, minus_lb_u, ROUND_NOT_NEEDED); 23376: assign_r(up_approx, ub_u, ROUND_UP); 23376: 23376: add_assign_r(dbm_v[u_dim], up_approx, minus_lb_v, ROUND_UP); 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::forget_all_dbm_constraints(const dimension_type v) { 23376: ((void) 0); 23376: DB_Row& dbm_v = dbm[v]; 23376: for (dimension_type i = dbm.num_rows(); i-- > 0; ) { 23376: assign_r(dbm_v[i], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: assign_r(dbm[i][v], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::forget_binary_dbm_constraints(const dimension_type v) { 23376: ((void) 0); 23376: DB_Row& dbm_v = dbm[v]; 23376: for (dimension_type i = dbm.num_rows()-1; i > 0; --i) { 23376: assign_r(dbm_v[i], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: assign_r(dbm[i][v], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::unconstrain(const Variable var) { 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dimension() < var_space_dim) { 23376: throw_dimension_incompatible("unconstrain(var)", var_space_dim); 23376: } 23376: 23376: 23376: shortest_path_closure_assign(); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: forget_all_dbm_constraints(var_space_dim); 23376: 23376: reset_shortest_path_reduced(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::unconstrain(const Variables_Set& vars) { 23376: 23376: 23376: if (vars.empty()) { 23376: return; 23376: } 23376: 23376: const dimension_type min_space_dim = vars.space_dimension(); 23376: if (space_dimension() < min_space_dim) { 23376: throw_dimension_incompatible("unconstrain(vs)", min_space_dim); 23376: } 23376: 23376: 23376: shortest_path_closure_assign(); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: for (Variables_Set::const_iterator vsi = vars.begin(), 23376: vsi_end = vars.end(); vsi != vsi_end; ++vsi) { 23376: forget_all_dbm_constraints(*vsi + 1); 23376: } 23376: 23376: reset_shortest_path_reduced(); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::refine(const Variable var, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator) { 23376: ((void) 0); 23376: ((void) 0); 23376: const dimension_type v = var.id() + 1; 23376: ((void) 0); 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type w = expr.last_nonzero(); 23376: 23376: if (w != 0) { 23376: ++t; 23376: if (!expr.all_zeroes(1, w)) { 23376: ++t; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (t == 1 && expr.get(Variable(w - 1)) != denominator) { 23376: t = 2; 23376: } 23376: 23376: 23376: 23376: 23376: const DB_Row& dbm_0 = dbm[0]; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_denom; Parma_Polyhedra_Library::Coefficient& minus_denom = holder_minus_denom.item(); 23376: neg_assign(minus_denom, denominator); 23376: 23376: if (t == 0) { 23376: 23376: switch (relsym) { 23376: case EQUAL: 23376: 23376: add_dbm_constraint(0, v, b, denominator); 23376: add_dbm_constraint(v, 0, b, minus_denom); 23376: break; 23376: case LESS_OR_EQUAL: 23376: 23376: add_dbm_constraint(0, v, b, denominator); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: 23376: 23376: add_dbm_constraint(v, 0, b, minus_denom); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: return; 23376: } 23376: 23376: if (t == 1) { 23376: 23376: ((void) 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: switch (relsym) { 23376: case EQUAL: 23376: 23376: div_round_up(d, b, denominator); 23376: add_dbm_constraint(w, v, d); 23376: 23376: 23376: div_round_up(d, b, minus_denom); 23376: add_dbm_constraint(v, w, d); 23376: break; 23376: case LESS_OR_EQUAL: 23376: 23376: div_round_up(d, b, denominator); 23376: add_dbm_constraint(w, v, d); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: 23376: 23376: div_round_up(d, b, minus_denom); 23376: add_dbm_constraint(v, w, d); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: const bool is_sc = (denominator > 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign(minus_b, b); 23376: const Coefficient& sc_b = is_sc ? b : minus_b; 23376: const Coefficient& minus_sc_b = is_sc ? minus_b : b; 23376: const Coefficient& sc_denom = is_sc ? denominator : minus_denom; 23376: const Coefficient& minus_sc_denom = is_sc ? minus_denom : denominator; 23376: 23376: 23376: 23376: Linear_Expression minus_expr; 23376: if (!is_sc) { 23376: minus_expr = -expr; 23376: } 23376: const Linear_Expression& sc_expr = is_sc ? expr : minus_expr; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_sum; N& sum = holder_sum.item(); 23376: 23376: dimension_type pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type pinf_count = 0; 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: 23376: switch (relsym) { 23376: case EQUAL: 23376: { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_neg_sum; N& neg_sum = holder_neg_sum.item(); 23376: 23376: dimension_type neg_pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type neg_pinf_count = 0; 23376: 23376: 23376: 23376: 23376: 23376: assign_r(sum, sc_b, ROUND_UP); 23376: assign_r(neg_sum, minus_sc_b, ROUND_UP); 23376: 23376: 23376: 23376: 23376: for (Linear_Expression::const_iterator i = sc_expr.begin(), 23376: i_end = sc_expr.lower_bound(Variable(w)); i != i_end; ++i) { 23376: const dimension_type i_dim = i.variable().space_dimension(); 23376: const Coefficient& sc_i = *i; 23376: const int sign_i = sgn(sc_i); 23376: ((void) 0); 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: 23376: if (pinf_count <= 1) { 23376: const N& approx_i = dbm_0[i_dim]; 23376: if (!is_plus_infinity(approx_i)) { 23376: add_mul_assign_r(sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: else { 23376: ++pinf_count; 23376: pinf_index = i_dim; 23376: } 23376: } 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& approx_minus_i = dbm[i_dim][0]; 23376: if (!is_plus_infinity(approx_minus_i)) { 23376: add_mul_assign_r(neg_sum, coeff_i, approx_minus_i, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = i_dim; 23376: } 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: neg_assign(minus_sc_i, sc_i); 23376: 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: 23376: if (pinf_count <= 1) { 23376: const N& approx_minus_i = dbm[i_dim][0]; 23376: if (!is_plus_infinity(approx_minus_i)) { 23376: add_mul_assign_r(sum, coeff_i, approx_minus_i, ROUND_UP); 23376: } 23376: else { 23376: ++pinf_count; 23376: pinf_index = i_dim; 23376: } 23376: } 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& approx_i = dbm_0[i_dim]; 23376: if (!is_plus_infinity(approx_i)) { 23376: add_mul_assign_r(neg_sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = i_dim; 23376: } 23376: } 23376: } 23376: } 23376: 23376: if (pinf_count > 1 && neg_pinf_count > 1) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: reset_shortest_path_closed(); 23376: 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: 23376: 23376: if (pinf_count <= 1) { 23376: 23376: if (down_sc_denom != 1) { 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: dbm[0][v] = sum; 23376: 23376: deduce_v_minus_u_bounds(v, w, sc_expr, sc_denom, sum); 23376: } 23376: else { 23376: 23376: if (pinf_index != v 23376: && sc_expr.get(Variable(pinf_index - 1)) == sc_denom) { 23376: 23376: dbm[pinf_index][v] = sum; 23376: } 23376: } 23376: } 23376: 23376: 23376: if (neg_pinf_count <= 1) { 23376: 23376: if (down_sc_denom != 1) { 23376: div_assign_r(neg_sum, neg_sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (neg_pinf_count == 0) { 23376: 23376: DB_Row& dbm_v = dbm[v]; 23376: dbm_v[0] = neg_sum; 23376: 23376: deduce_u_minus_v_bounds(v, w, sc_expr, sc_denom, neg_sum); 23376: } 23376: 23376: else if (neg_pinf_index != v 23376: && sc_expr.get(Variable(neg_pinf_index - 1)) == sc_denom) { 23376: 23376: 23376: dbm[v][neg_pinf_index] = neg_sum; 23376: } 23376: } 23376: } 23376: break; 23376: 23376: case LESS_OR_EQUAL: 23376: 23376: 23376: 23376: 23376: assign_r(sum, sc_b, ROUND_UP); 23376: 23376: 23376: 23376: 23376: for (Linear_Expression::const_iterator i = sc_expr.begin(), 23376: i_end = sc_expr.lower_bound(Variable(w)); i != i_end; ++i) { 23376: const Coefficient& sc_i = *i; 23376: const dimension_type i_dim = i.variable().space_dimension(); 23376: const int sign_i = sgn(sc_i); 23376: ((void) 0); 23376: 23376: const N& approx_i = (sign_i > 0) ? dbm_0[i_dim] : dbm[i_dim][0]; 23376: if (is_plus_infinity(approx_i)) { 23376: if (++pinf_count > 1) { 23376: break; 23376: } 23376: pinf_index = i_dim; 23376: continue; 23376: } 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: } 23376: else { 23376: neg_assign(minus_sc_i, sc_i); 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: } 23376: add_mul_assign_r(sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: add_dbm_constraint(0, v, sum); 23376: 23376: deduce_v_minus_u_bounds(v, w, sc_expr, sc_denom, sum); 23376: } 23376: else if (pinf_count == 1) { 23376: if (expr.get(Variable(pinf_index - 1)) == denominator) { 23376: 23376: add_dbm_constraint(pinf_index, v, sum); 23376: } 23376: } 23376: break; 23376: 23376: case GREATER_OR_EQUAL: 23376: 23376: 23376: 23376: 23376: 23376: assign_r(sum, minus_sc_b, ROUND_UP); 23376: 23376: 23376: for (Linear_Expression::const_iterator i = sc_expr.begin(), 23376: i_end = sc_expr.lower_bound(Variable(w)); i != i_end; ++i) { 23376: const Coefficient& sc_i = *i; 23376: const dimension_type i_dim = i.variable().space_dimension(); 23376: const int sign_i = sgn(sc_i); 23376: ((void) 0); 23376: 23376: const N& approx_i = (sign_i > 0) ? dbm[i_dim][0] : dbm_0[i_dim]; 23376: if (is_plus_infinity(approx_i)) { 23376: if (++pinf_count > 1) { 23376: break; 23376: } 23376: pinf_index = i_dim; 23376: continue; 23376: } 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: } 23376: else { 23376: neg_assign(minus_sc_i, sc_i); 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: } 23376: add_mul_assign_r(sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: add_dbm_constraint(v, 0, sum); 23376: 23376: deduce_u_minus_v_bounds(v, w, sc_expr, sc_denom, sum); 23376: } 23376: else if (pinf_count == 1) { 23376: if (pinf_index != v 23376: && expr.get(Variable(pinf_index - 1)) == denominator) { 23376: 23376: 23376: add_dbm_constraint(v, pinf_index, sum); 23376: } 23376: } 23376: break; 23376: 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::affine_image(const Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("affine_image(v, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("affine_image(v, e, d)", "e", expr); 23376: } 23376: 23376: const dimension_type v = var.id() + 1; 23376: if (v > space_dim) { 23376: throw_dimension_incompatible("affine_image(v, e, d)", var.id()); 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type w = expr.last_nonzero(); 23376: 23376: if (w != 0) { 23376: ++t; 23376: if (!expr.all_zeroes(1, w)) { 23376: ++t; 23376: } 23376: } 23376: # 4071 "../../src/BD_Shape_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_denom; Parma_Polyhedra_Library::Coefficient& minus_denom = holder_minus_denom.item(); 23376: neg_assign(minus_denom, denominator); 23376: 23376: if (t == 0) { 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: add_dbm_constraint(0, v, b, denominator); 23376: add_dbm_constraint(v, 0, b, minus_denom); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (t == 1) { 23376: 23376: const Coefficient& a = expr.get(Variable(w - 1)); 23376: if (a == denominator || a == minus_denom) { 23376: 23376: if (w == v) { 23376: 23376: if (a == denominator) { 23376: if (b == 0) { 23376: 23376: return; 23376: } 23376: else { 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, b, denominator); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c; N& c = holder_c.item(); 23376: div_round_up(c, b, minus_denom); 23376: DB_Row& dbm_v = dbm[v]; 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: N& dbm_vi = dbm_v[i]; 23376: add_assign_r(dbm_vi, dbm_vi, c, ROUND_UP); 23376: N& dbm_iv = dbm[i][v]; 23376: add_assign_r(dbm_iv, dbm_iv, d, ROUND_UP); 23376: } 23376: 23376: } 23376: } 23376: else { 23376: 23376: 23376: forget_binary_dbm_constraints(v); 23376: 23376: using std::swap; 23376: swap(dbm[v][0], dbm[0][v]); 23376: 23376: reset_shortest_path_closed(); 23376: if (b != 0) { 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c; N& c = holder_c.item(); 23376: div_round_up(c, b, minus_denom); 23376: N& dbm_v0 = dbm[v][0]; 23376: add_assign_r(dbm_v0, dbm_v0, c, ROUND_UP); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, b, denominator); 23376: N& dbm_0v = dbm[0][v]; 23376: add_assign_r(dbm_0v, dbm_0v, d, ROUND_UP); 23376: } 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: if (a == denominator) { 23376: 23376: add_dbm_constraint(w, v, b, denominator); 23376: add_dbm_constraint(v, w, b, minus_denom); 23376: } 23376: else { 23376: 23376: 23376: 23376: const N& dbm_w0 = dbm[w][0]; 23376: if (!is_plus_infinity(dbm_w0)) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, b, denominator); 23376: add_assign_r(dbm[0][v], d, dbm_w0, ROUND_UP); 23376: reset_shortest_path_closed(); 23376: } 23376: const N& dbm_0w = dbm[0][w]; 23376: if (!is_plus_infinity(dbm_0w)) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c; N& c = holder_c.item(); 23376: div_round_up(c, b, minus_denom); 23376: add_assign_r(dbm[v][0], dbm_0w, c, ROUND_UP); 23376: reset_shortest_path_closed(); 23376: } 23376: } 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: # 4194 "../../src/BD_Shape_templates.hh" 23376: const bool is_sc = (denominator > 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign(minus_b, b); 23376: const Coefficient& sc_b = is_sc ? b : minus_b; 23376: const Coefficient& minus_sc_b = is_sc ? minus_b : b; 23376: const Coefficient& sc_denom = is_sc ? denominator : minus_denom; 23376: const Coefficient& minus_sc_denom = is_sc ? minus_denom : denominator; 23376: 23376: 23376: 23376: Linear_Expression minus_expr; 23376: if (!is_sc) { 23376: minus_expr = -expr; 23376: } 23376: const Linear_Expression& sc_expr = is_sc ? expr : minus_expr; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_pos_sum; N& pos_sum = holder_pos_sum.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_neg_sum; N& neg_sum = holder_neg_sum.item(); 23376: 23376: dimension_type pos_pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: dimension_type neg_pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type pos_pinf_count = 0; 23376: dimension_type neg_pinf_count = 0; 23376: 23376: 23376: assign_r(pos_sum, sc_b, ROUND_UP); 23376: assign_r(neg_sum, minus_sc_b, ROUND_UP); 23376: 23376: 23376: const DB_Row& dbm_0 = dbm[0]; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: 23376: 23376: 23376: for (Linear_Expression::const_iterator i = sc_expr.begin(), 23376: i_end = sc_expr.lower_bound(Variable(w)); i != i_end; ++i) { 23376: const Coefficient& sc_i = *i; 23376: const dimension_type i_dim = i.variable().space_dimension(); 23376: const int sign_i = sgn(sc_i); 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: 23376: if (pos_pinf_count <= 1) { 23376: const N& up_approx_i = dbm_0[i_dim]; 23376: if (!is_plus_infinity(up_approx_i)) { 23376: add_mul_assign_r(pos_sum, coeff_i, up_approx_i, ROUND_UP); 23376: } 23376: else { 23376: ++pos_pinf_count; 23376: pos_pinf_index = i_dim; 23376: } 23376: } 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& up_approx_minus_i = dbm[i_dim][0]; 23376: if (!is_plus_infinity(up_approx_minus_i)) { 23376: add_mul_assign_r(neg_sum, coeff_i, up_approx_minus_i, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = i_dim; 23376: } 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: neg_assign(minus_sc_i, sc_i); 23376: 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: 23376: if (pos_pinf_count <= 1) { 23376: const N& up_approx_minus_i = dbm[i_dim][0]; 23376: if (!is_plus_infinity(up_approx_minus_i)) { 23376: add_mul_assign_r(pos_sum, coeff_i, up_approx_minus_i, ROUND_UP); 23376: } 23376: else { 23376: ++pos_pinf_count; 23376: pos_pinf_index = i_dim; 23376: } 23376: } 23376: 23376: if (neg_pinf_count <= 1) { 23376: const N& up_approx_i = dbm_0[i_dim]; 23376: if (!is_plus_infinity(up_approx_i)) { 23376: add_mul_assign_r(neg_sum, coeff_i, up_approx_i, ROUND_UP); 23376: } 23376: else { 23376: ++neg_pinf_count; 23376: neg_pinf_index = i_dim; 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: if (pos_pinf_count > 1 && neg_pinf_count > 1) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: reset_shortest_path_closed(); 23376: 23376: 23376: if (pos_pinf_count <= 1) { 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(pos_sum, pos_sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pos_pinf_count == 0) { 23376: 23376: dbm[0][v] = pos_sum; 23376: 23376: deduce_v_minus_u_bounds(v, w, sc_expr, sc_denom, pos_sum); 23376: } 23376: else if (pos_pinf_index != v 23376: && sc_expr.get(Variable(pos_pinf_index - 1)) == sc_denom) { 23376: 23376: dbm[pos_pinf_index][v] = pos_sum; 23376: } 23376: } 23376: 23376: 23376: if (neg_pinf_count <= 1) { 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(neg_sum, neg_sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (neg_pinf_count == 0) { 23376: 23376: DB_Row& dbm_v = dbm[v]; 23376: dbm_v[0] = neg_sum; 23376: 23376: deduce_u_minus_v_bounds(v, w, sc_expr, sc_denom, neg_sum); 23376: } 23376: 23376: else if (neg_pinf_index != v 23376: && sc_expr.get(Variable(neg_pinf_index - 1)) == sc_denom) { 23376: 23376: 23376: dbm[v][neg_pinf_index] = neg_sum; 23376: } 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: BD_Shape::affine_form_image(const Variable var, 23376: const Linear_Form< Interval >& lf) { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_4375 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type lf_space_dim = lf.space_dimension(); 23376: if (space_dim < lf_space_dim) { 23376: throw_dimension_incompatible("affine_form_image(var_id, l)", "l", lf); 23376: } 23376: 23376: const dimension_type var_id = var.id() + 1; 23376: if (space_dim < var_id) { 23376: throw_dimension_incompatible("affine_form_image(var_id, l)", var.id()); 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type w_id = 0; 23376: 23376: for (dimension_type i = lf_space_dim; i-- > 0; ) { 23376: if (lf.coefficient(Variable(i)) != 0) { 23376: if (t++ == 1) { 23376: break; 23376: } 23376: else { 23376: w_id = i + 1; 23376: } 23376: } 23376: } 23376: typedef Interval FP_Interval_Type; 23376: 23376: const FP_Interval_Type& b = lf.inhomogeneous_term(); 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: if (t == 0) { 23376: inhomogeneous_affine_form_image(var_id, b); 23376: ((void) 0); 23376: return; 23376: } 23376: else if (t == 1) { 23376: const FP_Interval_Type& w_coeff = lf.coefficient(Variable(w_id - 1)); 23376: if (w_coeff == 1 || w_coeff == -1) { 23376: one_variable_affine_form_image(var_id, b, w_coeff, w_id, space_dim); 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: two_variables_affine_form_image(var_id, lf, space_dim); 23376: ((void) 0); 23376: } 23376: 23376: 23376: template 23376: template 23376: void 23376: BD_Shape 23376: ::inhomogeneous_affine_form_image(const dimension_type& var_id, 23376: const Interval& b) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_ub; N& b_ub = holder_b_ub.item(); 23376: assign_r(b_ub, b.upper(), ROUND_NOT_NEEDED); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_mlb; N& b_mlb = holder_b_mlb.item(); 23376: neg_assign_r(b_mlb, b.lower(), ROUND_NOT_NEEDED); 23376: 23376: 23376: forget_all_dbm_constraints(var_id); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: add_dbm_constraint(0, var_id, b_ub); 23376: add_dbm_constraint(var_id, 0, b_mlb); 23376: return; 23376: } 23376: 23376: 23376: 23376: template 23376: template 23376: void BD_Shape 23376: ::one_variable_affine_form_image(const dimension_type& var_id, 23376: const Interval& b, 23376: const Interval& w_coeff, 23376: const dimension_type& w_id, 23376: const dimension_type& space_dim) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_ub; N& b_ub = holder_b_ub.item(); 23376: assign_r(b_ub, b.upper(), ROUND_NOT_NEEDED); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_mlb; N& b_mlb = holder_b_mlb.item(); 23376: neg_assign_r(b_mlb, b.lower(), ROUND_NOT_NEEDED); 23376: 23376: 23376: bool is_w_coeff_one = (w_coeff == 1); 23376: 23376: if (w_id == var_id) { 23376: 23376: bool is_b_zero = (b_mlb == 0 && b_ub == 0); 23376: 23376: if (is_w_coeff_one) { 23376: if (is_b_zero) { 23376: 23376: return; 23376: } 23376: else { 23376: 23376: 23376: DB_Row& dbm_v = dbm[var_id]; 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: N& dbm_vi = dbm_v[i]; 23376: add_assign_r(dbm_vi, dbm_vi, b_mlb, ROUND_UP); 23376: N& dbm_iv = dbm[i][var_id]; 23376: add_assign_r(dbm_iv, dbm_iv, b_ub, ROUND_UP); 23376: } 23376: 23376: } 23376: } 23376: else { 23376: 23376: 23376: forget_binary_dbm_constraints(var_id); 23376: using std::swap; 23376: swap(dbm[var_id][0], dbm[0][var_id]); 23376: 23376: reset_shortest_path_closed(); 23376: if (!is_b_zero) { 23376: 23376: 23376: N& dbm_v0 = dbm[var_id][0]; 23376: add_assign_r(dbm_v0, dbm_v0, b_mlb, ROUND_UP); 23376: N& dbm_0v = dbm[0][var_id]; 23376: add_assign_r(dbm_0v, dbm_0v, b_ub, ROUND_UP); 23376: } 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: forget_all_dbm_constraints(var_id); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: if (is_w_coeff_one) { 23376: 23376: 23376: add_dbm_constraint(w_id, var_id, b_ub); 23376: add_dbm_constraint(var_id, w_id, b_mlb); 23376: } 23376: else { 23376: 23376: 23376: const N& mlb_w = dbm[w_id][0]; 23376: if (!is_plus_infinity(mlb_w)) { 23376: 23376: add_assign_r(dbm[0][var_id], b_ub, mlb_w, ROUND_UP); 23376: reset_shortest_path_closed(); 23376: } 23376: const N& ub_w = dbm[0][w_id]; 23376: if (!is_plus_infinity(ub_w)) { 23376: 23376: add_assign_r(dbm[var_id][0], ub_w, b_mlb, ROUND_UP); 23376: reset_shortest_path_closed(); 23376: } 23376: } 23376: } 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: 23376: template 23376: template 23376: void BD_Shape 23376: ::two_variables_affine_form_image(const dimension_type& var_id, 23376: const Linear_Form< Interval >& lf, 23376: const dimension_type& space_dim) { 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: reset_shortest_path_closed(); 23376: 23376: Linear_Form< Interval > minus_lf(lf); 23376: minus_lf.negate(); 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_upper_bound; N& upper_bound = holder_upper_bound.item(); 23376: 23376: 23376: for (dimension_type curr_var = 1; curr_var < var_id; ++curr_var) { 23376: Variable current(curr_var - 1); 23376: linear_form_upper_bound(lf - current, upper_bound); 23376: assign_r(dbm[curr_var][var_id], upper_bound, ROUND_NOT_NEEDED); 23376: linear_form_upper_bound(minus_lf + current, upper_bound); 23376: assign_r(dbm[var_id][curr_var], upper_bound, ROUND_NOT_NEEDED); 23376: } 23376: for (dimension_type curr_var = var_id + 1; curr_var <= space_dim; 23376: ++curr_var) { 23376: Variable current(curr_var - 1); 23376: linear_form_upper_bound(lf - current, upper_bound); 23376: assign_r(dbm[curr_var][var_id], upper_bound, ROUND_NOT_NEEDED); 23376: linear_form_upper_bound(minus_lf + current, upper_bound); 23376: assign_r(dbm[var_id][curr_var], upper_bound, ROUND_NOT_NEEDED); 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lf_ub; N& lf_ub = holder_lf_ub.item(); 23376: linear_form_upper_bound(lf, lf_ub); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_lf_ub; N& minus_lf_ub = holder_minus_lf_ub.item(); 23376: linear_form_upper_bound(minus_lf, minus_lf_ub); 23376: assign_r(dbm[0][var_id], lf_ub, ROUND_NOT_NEEDED); 23376: assign_r(dbm[var_id][0], minus_lf_ub, ROUND_NOT_NEEDED); 23376: } 23376: 23376: template 23376: template 23376: void BD_Shape::refine_with_linear_form_inequality( 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right) { 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_4611 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: const dimension_type left_space_dim = left.space_dimension(); 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim < left_space_dim) { 23376: throw_dimension_incompatible( 23376: "refine_with_linear_form_inequality(left, right)", "left", left); 23376: } 23376: const dimension_type right_space_dim = right.space_dimension(); 23376: if (space_dim < right_space_dim) { 23376: throw_dimension_incompatible( 23376: "refine_with_linear_form_inequality(left, right)", "right", right); 23376: } 23376: 23376: 23376: dimension_type left_t = 0; 23376: 23376: dimension_type left_w_id = 0; 23376: 23376: 23376: dimension_type right_t = 0; 23376: 23376: dimension_type right_w_id = 0; 23376: 23376: typedef Interval FP_Interval_Type; 23376: 23376: 23376: for (dimension_type i = left_space_dim; i-- > 0; ) { 23376: if (left.coefficient(Variable(i)) != 0) { 23376: if (left_t++ == 1) { 23376: break; 23376: } 23376: else { 23376: left_w_id = i; 23376: } 23376: } 23376: } 23376: 23376: 23376: for (dimension_type i = right_space_dim; i-- > 0; ) { 23376: if (right.coefficient(Variable(i)) != 0) { 23376: if (right_t++ == 1) { 23376: break; 23376: } 23376: else { 23376: right_w_id = i; 23376: } 23376: } 23376: } 23376: 23376: const FP_Interval_Type& left_w_coeff = 23376: left.coefficient(Variable(left_w_id)); 23376: const FP_Interval_Type& right_w_coeff = 23376: right.coefficient(Variable(right_w_id)); 23376: 23376: if (left_t == 0) { 23376: if (right_t == 0) { 23376: 23376: 23376: ((void) 0); 23376: return; 23376: } 23376: else if (right_w_coeff == 1 || right_w_coeff == -1) { 23376: left_inhomogeneous_refine(right_t, right_w_id, left, right); 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: else if (left_t == 1) { 23376: if (left_w_coeff == 1 || left_w_coeff == -1) { 23376: if (right_t == 0 || (right_w_coeff == 1 || right_w_coeff == -1)) { 23376: left_one_var_refine(left_w_id, right_t, right_w_id, left, right); 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: } 23376: 23376: 23376: general_refine(left_w_id, right_w_id, left, right); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: BD_Shape 23376: ::export_interval_constraints(U& dest) const { 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim > dest.space_dimension()) { 23376: throw std::invalid_argument( 23376: "BD_Shape::export_interval_constraints"); 23376: } 23376: 23376: 23376: shortest_path_closure_assign(); 23376: 23376: if (marked_empty()) { 23376: dest.set_empty(); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; N& tmp = holder_tmp.item(); 23376: const DB_Row& dbm_0 = dbm[0]; 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: 23376: const N& u = dbm_0[i+1]; 23376: if (!is_plus_infinity(u)) { 23376: if (!dest.restrict_upper(i, u.raw_value())) { 23376: return; 23376: } 23376: } 23376: 23376: const N& negated_l = dbm[i+1][0]; 23376: if (!is_plus_infinity(negated_l)) { 23376: neg_assign_r(tmp, negated_l, ROUND_DOWN); 23376: if (!dest.restrict_lower(i, tmp.raw_value())) { 23376: return; 23376: } 23376: } 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: BD_Shape::left_inhomogeneous_refine(const dimension_type& right_t, 23376: const dimension_type& right_w_id, 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right) { 23376: 23376: typedef Interval FP_Interval_Type; 23376: 23376: if (right_t == 1) { 23376: 23376: 23376: const FP_Interval_Type& right_w_coeff = 23376: right.coefficient(Variable(right_w_id)); 23376: if (right_w_coeff == 1) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_plus_minus_a_minus; N& b_plus_minus_a_minus = holder_b_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_b = right.inhomogeneous_term(); 23376: sub_assign_r(b_plus_minus_a_minus, right_b.upper(), left_a.lower(), 23376: ROUND_UP); 23376: add_dbm_constraint(right_w_id+1, 0, b_plus_minus_a_minus); 23376: return; 23376: } 23376: 23376: if (right_w_coeff == -1) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b_plus_minus_a_minus; N& b_plus_minus_a_minus = holder_b_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_b = right.inhomogeneous_term(); 23376: sub_assign_r(b_plus_minus_a_minus, right_b.upper(), left_a.lower(), 23376: ROUND_UP); 23376: add_dbm_constraint(0, right_w_id+1, b_plus_minus_a_minus); 23376: return; 23376: } 23376: } 23376: } 23376: 23376: 23376: template 23376: template 23376: void 23376: BD_Shape 23376: ::left_one_var_refine(const dimension_type& left_w_id, 23376: const dimension_type& right_t, 23376: const dimension_type& right_w_id, 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right) { 23376: 23376: typedef Interval FP_Interval_Type; 23376: 23376: if (right_t == 0) { 23376: 23376: 23376: const FP_Interval_Type& left_w_coeff = 23376: left.coefficient(Variable(left_w_id)); 23376: 23376: if (left_w_coeff == 1) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: add_dbm_constraint(0, left_w_id+1, a_plus_minus_b_minus); 23376: return; 23376: } 23376: 23376: if (left_w_coeff == -1) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: add_dbm_constraint(left_w_id+1, 0, a_plus_minus_b_minus); 23376: return; 23376: } 23376: } 23376: else if (right_t == 1) { 23376: 23376: 23376: 23376: 23376: const FP_Interval_Type& left_w_coeff = 23376: left.coefficient(Variable(left_w_id)); 23376: 23376: const FP_Interval_Type& right_w_coeff = 23376: right.coefficient(Variable(right_w_id)); 23376: 23376: bool is_left_coeff_one = (left_w_coeff == 1); 23376: bool is_left_coeff_minus_one = (left_w_coeff == -1); 23376: bool is_right_coeff_one = (right_w_coeff == 1); 23376: bool is_right_coeff_minus_one = (right_w_coeff == -1); 23376: if (left_w_id == right_w_id) { 23376: if ((is_left_coeff_one && is_right_coeff_one) 23376: || 23376: (is_left_coeff_minus_one && is_right_coeff_minus_one)) { 23376: 23376: return; 23376: } 23376: if (is_left_coeff_one && is_right_coeff_minus_one) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: div_2exp_assign_r(a_plus_minus_b_minus, a_plus_minus_b_minus, 1, 23376: ROUND_UP); 23376: add_dbm_constraint(0, left_w_id + 1, a_plus_minus_b_minus); 23376: return; 23376: } 23376: if (is_left_coeff_minus_one && is_right_coeff_one) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: div_2exp_assign_r(a_plus_minus_b_minus, a_plus_minus_b_minus, 1, 23376: ROUND_UP); 23376: add_dbm_constraint(right_w_id + 1, 0, a_plus_minus_b_minus); 23376: return; 23376: } 23376: } 23376: else if (is_left_coeff_minus_one && is_right_coeff_one) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_ub; N& ub = holder_ub.item(); 23376: ub = dbm[0][right_w_id + 1]; 23376: if (!is_plus_infinity(ub)) { 23376: add_assign_r(ub, ub, a_plus_minus_b_minus, ROUND_UP); 23376: add_dbm_constraint(left_w_id + 1, 0, ub); 23376: } 23376: ub = dbm[0][left_w_id + 1]; 23376: if (!is_plus_infinity(ub)) { 23376: add_assign_r(ub, ub, a_plus_minus_b_minus, ROUND_UP); 23376: add_dbm_constraint(right_w_id + 1, 0, ub); 23376: } 23376: return; 23376: } 23376: if (is_left_coeff_one && is_right_coeff_minus_one) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a_plus_minus_b_minus; N& a_plus_minus_b_minus = holder_a_plus_minus_b_minus.item(); 23376: const FP_Interval_Type& left_b = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_a = right.inhomogeneous_term(); 23376: sub_assign_r(a_plus_minus_b_minus, right_a.upper(), left_b.lower(), 23376: ROUND_UP); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_ub; N& ub = holder_ub.item(); 23376: ub = dbm[right_w_id + 1][0]; 23376: if (!is_plus_infinity(ub)) { 23376: add_assign_r(ub, ub, a_plus_minus_b_minus, ROUND_UP); 23376: add_dbm_constraint(0, left_w_id + 1, ub); 23376: } 23376: ub = dbm[left_w_id + 1][0]; 23376: if (!is_plus_infinity(ub)) { 23376: add_assign_r(ub, ub, a_plus_minus_b_minus, ROUND_UP); 23376: add_dbm_constraint(0, right_w_id + 1, ub); 23376: } 23376: return; 23376: } 23376: if (is_left_coeff_one && is_right_coeff_one) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c_plus_minus_a_minus; N& c_plus_minus_a_minus = holder_c_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_c = right.inhomogeneous_term(); 23376: sub_assign_r(c_plus_minus_a_minus, right_c.upper(), left_a.lower(), 23376: ROUND_UP); 23376: add_dbm_constraint(right_w_id+1, left_w_id+1, c_plus_minus_a_minus); 23376: return; 23376: } 23376: if (is_left_coeff_minus_one && is_right_coeff_minus_one) { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_c_plus_minus_a_minus; N& c_plus_minus_a_minus = holder_c_plus_minus_a_minus.item(); 23376: const FP_Interval_Type& left_a = left.inhomogeneous_term(); 23376: const FP_Interval_Type& right_c = right.inhomogeneous_term(); 23376: sub_assign_r(c_plus_minus_a_minus, right_c.upper(), left_a.lower(), 23376: ROUND_UP); 23376: add_dbm_constraint(left_w_id+1, right_w_id+1, c_plus_minus_a_minus); 23376: return; 23376: } 23376: } 23376: } 23376: 23376: template 23376: template 23376: void 23376: BD_Shape 23376: ::general_refine(const dimension_type& left_w_id, 23376: const dimension_type& right_w_id, 23376: const Linear_Form< Interval >& left, 23376: const Linear_Form< Interval >& right) { 23376: 23376: typedef Interval FP_Interval_Type; 23376: Linear_Form right_minus_left(right); 23376: right_minus_left -= left; 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_low_coeff; N& low_coeff = holder_low_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_high_coeff; N& high_coeff = holder_high_coeff.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_upper_bound; N& upper_bound = holder_upper_bound.item(); 23376: 23376: dimension_type max_w_id = std::max(left_w_id, right_w_id); 23376: 23376: for (dimension_type first_v = 0; first_v < max_w_id; ++first_v) { 23376: for (dimension_type second_v = first_v+1; 23376: second_v <= max_w_id; ++second_v) { 23376: const FP_Interval_Type& lfv_coefficient = 23376: left.coefficient(Variable(first_v)); 23376: const FP_Interval_Type& lsv_coefficient = 23376: left.coefficient(Variable(second_v)); 23376: const FP_Interval_Type& rfv_coefficient = 23376: right.coefficient(Variable(first_v)); 23376: const FP_Interval_Type& rsv_coefficient = 23376: right.coefficient(Variable(second_v)); 23376: 23376: 23376: bool do_update = false; 23376: assign_r(low_coeff, lfv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, lfv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: assign_r(low_coeff, lsv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, lsv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: else { 23376: assign_r(low_coeff, rsv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, rsv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: } 23376: } 23376: else { 23376: assign_r(low_coeff, rfv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, rfv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: assign_r(low_coeff, lsv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, lsv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: else { 23376: assign_r(low_coeff, rsv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, rsv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: } 23376: } 23376: } 23376: 23376: if (do_update) { 23376: Variable first(first_v); 23376: Variable second(second_v); 23376: dimension_type n_first_var = first_v +1 ; 23376: dimension_type n_second_var = second_v + 1; 23376: linear_form_upper_bound(right_minus_left - first + second, 23376: upper_bound); 23376: add_dbm_constraint(n_first_var, n_second_var, upper_bound); 23376: linear_form_upper_bound(right_minus_left + first - second, 23376: upper_bound); 23376: add_dbm_constraint(n_second_var, n_first_var, upper_bound); 23376: } 23376: } 23376: } 23376: 23376: 23376: for (dimension_type v = 0; v < max_w_id; ++v) { 23376: const FP_Interval_Type& lv_coefficient = 23376: left.coefficient(Variable(v)); 23376: const FP_Interval_Type& rv_coefficient = 23376: right.coefficient(Variable(v)); 23376: 23376: 23376: bool do_update = false; 23376: assign_r(low_coeff, lv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, lv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: else { 23376: assign_r(low_coeff, rv_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(high_coeff, rv_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (low_coeff != 0 || high_coeff != 0) { 23376: do_update = true; 23376: } 23376: } 23376: 23376: if (do_update) { 23376: Variable var(v); 23376: dimension_type n_var = v + 1; 23376: linear_form_upper_bound(right_minus_left + var, upper_bound); 23376: add_dbm_constraint(0, n_var, upper_bound); 23376: linear_form_upper_bound(right_minus_left - var, upper_bound); 23376: add_dbm_constraint(n_var, 0, upper_bound); 23376: } 23376: } 23376: 23376: } 23376: 23376: template 23376: template 23376: void 23376: BD_Shape:: 23376: linear_form_upper_bound(const Linear_Form< Interval >& lf, 23376: N& result) const { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_5061 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits::is_exact)>) } 23376: 23376: ; 23376: 23376: const dimension_type lf_space_dimension = lf.space_dimension(); 23376: ((void) 0); 23376: 23376: typedef Interval FP_Interval_Type; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_curr_lb; N& curr_lb = holder_curr_lb.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_curr_ub; N& curr_ub = holder_curr_ub.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_curr_var_ub; N& curr_var_ub = holder_curr_var_ub.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_curr_minus_var_ub; N& curr_minus_var_ub = holder_curr_minus_var_ub.item(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_first_comparison_term; N& first_comparison_term = holder_first_comparison_term.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_second_comparison_term; N& second_comparison_term = holder_second_comparison_term.item(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_negator; N& negator = holder_negator.item(); 23376: 23376: assign_r(result, lf.inhomogeneous_term().upper(), ROUND_NOT_NEEDED); 23376: 23376: for (dimension_type curr_var = 0, n_var = 0; curr_var < lf_space_dimension; 23376: ++curr_var) { 23376: n_var = curr_var + 1; 23376: const FP_Interval_Type& 23376: curr_coefficient = lf.coefficient(Variable(curr_var)); 23376: assign_r(curr_lb, curr_coefficient.lower(), ROUND_NOT_NEEDED); 23376: assign_r(curr_ub, curr_coefficient.upper(), ROUND_NOT_NEEDED); 23376: if (curr_lb != 0 || curr_ub != 0) { 23376: assign_r(curr_var_ub, dbm[0][n_var], ROUND_NOT_NEEDED); 23376: neg_assign_r(curr_minus_var_ub, dbm[n_var][0], ROUND_NOT_NEEDED); 23376: 23376: if (curr_lb == 1 && curr_ub == 1) { 23376: add_assign_r(result, result, std::max(curr_var_ub, curr_minus_var_ub), 23376: ROUND_UP); 23376: } 23376: else if (curr_lb == -1 && curr_ub == -1) { 23376: neg_assign_r(negator, std::min(curr_var_ub, curr_minus_var_ub), 23376: ROUND_NOT_NEEDED); 23376: add_assign_r(result, result, negator, ROUND_UP); 23376: } 23376: else { 23376: 23376: assign_r(first_comparison_term, 0, ROUND_NOT_NEEDED); 23376: assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED); 23376: add_mul_assign_r(first_comparison_term, curr_var_ub, curr_ub, 23376: ROUND_UP); 23376: add_mul_assign_r(second_comparison_term, curr_var_ub, curr_lb, 23376: ROUND_UP); 23376: assign_r(first_comparison_term, std::max(first_comparison_term, 23376: second_comparison_term), 23376: ROUND_NOT_NEEDED); 23376: assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED); 23376: add_mul_assign_r(second_comparison_term, curr_minus_var_ub, curr_ub, 23376: ROUND_UP); 23376: assign_r(first_comparison_term, std::max(first_comparison_term, 23376: second_comparison_term), 23376: ROUND_NOT_NEEDED); 23376: assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED); 23376: add_mul_assign_r(second_comparison_term, curr_minus_var_ub, curr_lb, 23376: ROUND_UP); 23376: assign_r(first_comparison_term, std::max(first_comparison_term, 23376: second_comparison_term), 23376: ROUND_NOT_NEEDED); 23376: 23376: add_assign_r(result, result, first_comparison_term, ROUND_UP); 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::affine_preimage(const Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("affine_preimage(v, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("affine_preimage(v, e, d)", "e", expr); 23376: } 23376: 23376: 23376: const dimension_type v = var.id() + 1; 23376: if (v > space_dim) { 23376: throw_dimension_incompatible("affine_preimage(v, e, d)", var.id()); 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type j = expr.last_nonzero(); 23376: 23376: if (j != 0) { 23376: ++t; 23376: if (!expr.all_zeroes(1, j)) { 23376: ++t; 23376: } 23376: } 23376: # 5179 "../../src/BD_Shape_templates.hh" 23376: if (t == 0) { 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (t == 1) { 23376: 23376: const Coefficient& a = expr.get(Variable(j - 1)); 23376: if (a == denominator || a == -denominator) { 23376: 23376: if (j == var.space_dimension()) { 23376: 23376: affine_image(var, denominator*var - b, a); 23376: } 23376: else { 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: ((void) 0); 23376: } 23376: return; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: 23376: const Coefficient& expr_v = expr.coefficient(var); 23376: if (expr_v != 0) { 23376: 23376: Linear_Expression inverse((expr_v + denominator)*var); 23376: inverse -= expr; 23376: affine_image(var, inverse, expr_v); 23376: } 23376: else { 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape 23376: ::bounded_affine_image(const Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("bounded_affine_image(v, lb, ub, d)", "d == 0"); 23376: } 23376: 23376: 23376: const dimension_type bds_space_dim = space_dimension(); 23376: const dimension_type v = var.id() + 1; 23376: if (v > bds_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_image(v, lb, ub, d)", 23376: "v", var); 23376: } 23376: 23376: 23376: const dimension_type lb_space_dim = lb_expr.space_dimension(); 23376: if (bds_space_dim < lb_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_image(v, lb, ub, d)", 23376: "lb", lb_expr); 23376: } 23376: const dimension_type ub_space_dim = ub_expr.space_dimension(); 23376: if (bds_space_dim < ub_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_image(v, lb, ub, d)", 23376: "ub", ub_expr); 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: const Coefficient& b = ub_expr.inhomogeneous_term(); 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type w = ub_expr.last_nonzero(); 23376: 23376: if (w != 0) { 23376: ++t; 23376: if (!ub_expr.all_zeroes(1, w)) { 23376: ++t; 23376: } 23376: } 23376: # 5292 "../../src/BD_Shape_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_denom; Parma_Polyhedra_Library::Coefficient& minus_denom = holder_minus_denom.item(); 23376: neg_assign(minus_denom, denominator); 23376: 23376: if (t == 0) { 23376: 23376: generalized_affine_image(var, 23376: GREATER_OR_EQUAL, 23376: lb_expr, 23376: denominator); 23376: 23376: add_dbm_constraint(0, v, b, denominator); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (t == 1) { 23376: 23376: const Coefficient& a = ub_expr.get(Variable(w - 1)); 23376: if (a == denominator || a == minus_denom) { 23376: 23376: if (w == v) { 23376: 23376: 23376: const Variable new_var(bds_space_dim); 23376: add_space_dimensions_and_embed(1); 23376: 23376: affine_image(new_var, ub_expr, denominator); 23376: 23376: shortest_path_closure_assign(); 23376: ((void) 0); 23376: 23376: generalized_affine_image(var, 23376: GREATER_OR_EQUAL, 23376: lb_expr, 23376: denominator); 23376: 23376: add_constraint(var <= new_var); 23376: 23376: remove_higher_space_dimensions(bds_space_dim); 23376: return; 23376: } 23376: else { 23376: 23376: 23376: 23376: generalized_affine_image(var, 23376: GREATER_OR_EQUAL, 23376: lb_expr, 23376: denominator); 23376: if (a == denominator) { 23376: 23376: add_dbm_constraint(w, v, b, denominator); 23376: } 23376: else { 23376: 23376: 23376: 23376: const N& dbm_w0 = dbm[w][0]; 23376: if (!is_plus_infinity(dbm_w0)) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: div_round_up(d, b, denominator); 23376: add_assign_r(dbm[0][v], d, dbm_w0, ROUND_UP); 23376: reset_shortest_path_closed(); 23376: } 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: } 23376: # 5373 "../../src/BD_Shape_templates.hh" 23376: const bool is_sc = (denominator > 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign(minus_b, b); 23376: const Coefficient& sc_b = is_sc ? b : minus_b; 23376: const Coefficient& sc_denom = is_sc ? denominator : minus_denom; 23376: const Coefficient& minus_sc_denom = is_sc ? minus_denom : denominator; 23376: 23376: 23376: 23376: Linear_Expression minus_expr; 23376: if (!is_sc) { 23376: minus_expr = -ub_expr; 23376: } 23376: const Linear_Expression& sc_expr = is_sc ? ub_expr : minus_expr; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_pos_sum; N& pos_sum = holder_pos_sum.item(); 23376: 23376: dimension_type pos_pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type pos_pinf_count = 0; 23376: 23376: 23376: assign_r(pos_sum, sc_b, ROUND_UP); 23376: 23376: 23376: const DB_Row& dbm_0 = dbm[0]; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: 23376: 23376: for (Linear_Expression::const_iterator i = sc_expr.begin(), 23376: i_end = sc_expr.lower_bound(Variable(w)); i != i_end; ++i) { 23376: const Coefficient& sc_i = *i; 23376: const dimension_type i_dim = i.variable().space_dimension(); 23376: const int sign_i = sgn(sc_i); 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: 23376: if (pos_pinf_count <= 1) { 23376: const N& up_approx_i = dbm_0[i_dim]; 23376: if (!is_plus_infinity(up_approx_i)) { 23376: add_mul_assign_r(pos_sum, coeff_i, up_approx_i, ROUND_UP); 23376: } 23376: else { 23376: ++pos_pinf_count; 23376: pos_pinf_index = i_dim; 23376: } 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: neg_assign(minus_sc_i, sc_i); 23376: 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: 23376: if (pos_pinf_count <= 1) { 23376: const N& up_approx_minus_i = dbm[i_dim][0]; 23376: if (!is_plus_infinity(up_approx_minus_i)) { 23376: add_mul_assign_r(pos_sum, coeff_i, up_approx_minus_i, ROUND_UP); 23376: } 23376: else { 23376: ++pos_pinf_count; 23376: pos_pinf_index = i_dim; 23376: } 23376: } 23376: } 23376: } 23376: 23376: generalized_affine_image(var, 23376: GREATER_OR_EQUAL, 23376: lb_expr, 23376: denominator); 23376: 23376: if (pos_pinf_count > 1) { 23376: return; 23376: } 23376: 23376: 23376: reset_shortest_path_closed(); 23376: 23376: 23376: if (pos_pinf_count <= 1) { 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(pos_sum, pos_sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pos_pinf_count == 0) { 23376: 23376: dbm[0][v] = pos_sum; 23376: 23376: deduce_v_minus_u_bounds(v, w, sc_expr, sc_denom, pos_sum); 23376: } 23376: 23376: else if (pos_pinf_index != v 23376: && sc_expr.get(Variable(pos_pinf_index - 1)) == sc_denom) { 23376: 23376: dbm[pos_pinf_index][v] = pos_sum; 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape 23376: ::bounded_affine_preimage(const Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("bounded_affine_preimage(v, lb, ub, d)", "d == 0"); 23376: } 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type v = var.id() + 1; 23376: if (v > space_dim) { 23376: throw_dimension_incompatible("bounded_affine_preimage(v, lb, ub, d)", 23376: "v", var); 23376: } 23376: 23376: 23376: const dimension_type lb_space_dim = lb_expr.space_dimension(); 23376: if (space_dim < lb_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_preimage(v, lb, ub, d)", 23376: "lb", lb_expr); 23376: } 23376: const dimension_type ub_space_dim = ub_expr.space_dimension(); 23376: if (space_dim < ub_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_preimage(v, lb, ub, d)", 23376: "ub", ub_expr); 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: if (ub_expr.coefficient(var) == 0) { 23376: refine(var, LESS_OR_EQUAL, ub_expr, denominator); 23376: generalized_affine_preimage(var, GREATER_OR_EQUAL, 23376: lb_expr, denominator); 23376: return; 23376: } 23376: if (lb_expr.coefficient(var) == 0) { 23376: refine(var, GREATER_OR_EQUAL, lb_expr, denominator); 23376: generalized_affine_preimage(var, LESS_OR_EQUAL, 23376: ub_expr, denominator); 23376: return; 23376: } 23376: 23376: const Coefficient& lb_expr_v = lb_expr.coefficient(var); 23376: 23376: 23376: const Variable new_var(space_dim); 23376: add_space_dimensions_and_embed(1); 23376: const Linear_Expression lb_inverse 23376: = lb_expr - (lb_expr_v + denominator)*var; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lb_inverse_denom; Parma_Polyhedra_Library::Coefficient& lb_inverse_denom = holder_lb_inverse_denom.item(); 23376: neg_assign(lb_inverse_denom, lb_expr_v); 23376: affine_image(new_var, lb_inverse, lb_inverse_denom); 23376: shortest_path_closure_assign(); 23376: ((void) 0); 23376: generalized_affine_preimage(var, LESS_OR_EQUAL, 23376: ub_expr, denominator); 23376: if (sgn(denominator) == sgn(lb_inverse_denom)) { 23376: add_constraint(var >= new_var); 23376: } 23376: else { 23376: add_constraint(var <= new_var); 23376: } 23376: 23376: remove_higher_space_dimensions(space_dim); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::generalized_affine_image(const Variable var, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference 23376: denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("generalized_affine_image(v, r, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(v, r, e, d)", 23376: "e", expr); 23376: } 23376: 23376: const dimension_type v = var.id() + 1; 23376: if (v > space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(v, r, e, d)", 23376: var.id()); 23376: } 23376: 23376: if (relsym == LESS_THAN || relsym == GREATER_THAN) { 23376: throw_invalid_argument("generalized_affine_image(v, r, e, d)", 23376: "r is a strict relation symbol"); 23376: } 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_image(v, r, e, d)", 23376: "r is the disequality relation symbol"); 23376: } 23376: if (relsym == EQUAL) { 23376: 23376: 23376: affine_image(var, expr, denominator); 23376: return; 23376: } 23376: 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: const Coefficient& b = expr.inhomogeneous_term(); 23376: 23376: 23376: dimension_type t = 0; 23376: 23376: dimension_type w = expr.last_nonzero(); 23376: 23376: if (w != 0) { 23376: ++t; 23376: if (!expr.all_zeroes(1, w)) { 23376: ++t; 23376: } 23376: } 23376: # 5626 "../../src/BD_Shape_templates.hh" 23376: DB_Row& dbm_0 = dbm[0]; 23376: DB_Row& dbm_v = dbm[v]; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_denom; Parma_Polyhedra_Library::Coefficient& minus_denom = holder_minus_denom.item(); 23376: neg_assign(minus_denom, denominator); 23376: 23376: if (t == 0) { 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: reset_shortest_path_closed(); 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: 23376: add_dbm_constraint(0, v, b, denominator); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: 23376: 23376: add_dbm_constraint(v, 0, b, minus_denom); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: if (t == 1) { 23376: 23376: const Coefficient& a = expr.get(Variable(w - 1)); 23376: if (a == denominator || a == minus_denom) { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; N& d = holder_d.item(); 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: div_round_up(d, b, denominator); 23376: if (w == v) { 23376: 23376: 23376: reset_shortest_path_closed(); 23376: if (a == denominator) { 23376: 23376: 23376: 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: N& dbm_iv = dbm[i][v]; 23376: add_assign_r(dbm_iv, dbm_iv, d, ROUND_UP); 23376: assign_r(dbm_v[i], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: N& dbm_v0 = dbm_v[0]; 23376: add_assign_r(dbm_0[v], dbm_v0, d, ROUND_UP); 23376: 23376: assign_r(dbm_v0, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: forget_binary_dbm_constraints(v); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: if (a == denominator) { 23376: 23376: add_dbm_constraint(w, v, d); 23376: } 23376: else { 23376: 23376: 23376: 23376: const N& dbm_w0 = dbm[w][0]; 23376: if (!is_plus_infinity(dbm_w0)) { 23376: 23376: add_assign_r(dbm_0[v], d, dbm_w0, ROUND_UP); 23376: 23376: reset_shortest_path_closed(); 23376: } 23376: } 23376: } 23376: break; 23376: 23376: case GREATER_OR_EQUAL: 23376: div_round_up(d, b, minus_denom); 23376: if (w == v) { 23376: 23376: 23376: reset_shortest_path_closed(); 23376: if (a == denominator) { 23376: 23376: 23376: 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: N& dbm_vi = dbm_v[i]; 23376: add_assign_r(dbm_vi, dbm_vi, d, ROUND_UP); 23376: assign_r(dbm[i][v], PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: N& dbm_0v = dbm_0[v]; 23376: add_assign_r(dbm_v[0], dbm_0v, d, ROUND_UP); 23376: 23376: assign_r(dbm_0v, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: forget_binary_dbm_constraints(v); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: if (a == denominator) { 23376: 23376: 23376: add_dbm_constraint(v, w, d); 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: const N& dbm_0w = dbm_0[w]; 23376: if (!is_plus_infinity(dbm_0w)) { 23376: 23376: add_assign_r(dbm_v[0], dbm_0w, d, ROUND_UP); 23376: 23376: reset_shortest_path_closed(); 23376: } 23376: } 23376: } 23376: break; 23376: 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: # 5792 "../../src/BD_Shape_templates.hh" 23376: const bool is_sc = (denominator > 0); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_b; Parma_Polyhedra_Library::Coefficient& minus_b = holder_minus_b.item(); 23376: neg_assign(minus_b, b); 23376: const Coefficient& sc_b = is_sc ? b : minus_b; 23376: const Coefficient& minus_sc_b = is_sc ? minus_b : b; 23376: const Coefficient& sc_denom = is_sc ? denominator : minus_denom; 23376: const Coefficient& minus_sc_denom = is_sc ? minus_denom : denominator; 23376: 23376: 23376: 23376: Linear_Expression minus_expr; 23376: if (!is_sc) { 23376: minus_expr = -expr; 23376: } 23376: const Linear_Expression& sc_expr = is_sc ? expr : minus_expr; 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_sum; N& sum = holder_sum.item(); 23376: 23376: dimension_type pinf_index = Suppress_Uninitialized_Warnings_Type::synonym(); 23376: 23376: dimension_type pinf_count = 0; 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_coeff_i; N& coeff_i = holder_coeff_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_minus_sc_i; Parma_Polyhedra_Library::Coefficient& minus_sc_i = holder_minus_sc_i.item(); 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: 23376: 23376: 23376: assign_r(sum, sc_b, ROUND_UP); 23376: 23376: 23376: 23376: ((void) 0); 23376: for (Linear_Expression::const_iterator i = sc_expr.begin(), 23376: i_end = sc_expr.lower_bound(Variable(w)); i != i_end; ++i) { 23376: const Coefficient& sc_i = *i; 23376: const dimension_type i_dim = i.variable().space_dimension(); 23376: const int sign_i = sgn(sc_i); 23376: ((void) 0); 23376: 23376: const N& approx_i = (sign_i > 0) ? dbm_0[i_dim] : dbm[i_dim][0]; 23376: if (is_plus_infinity(approx_i)) { 23376: if (++pinf_count > 1) { 23376: break; 23376: } 23376: pinf_index = i_dim; 23376: continue; 23376: } 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: } 23376: else { 23376: neg_assign(minus_sc_i, sc_i); 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: } 23376: add_mul_assign_r(sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: if (pinf_count > 1) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: add_dbm_constraint(0, v, sum); 23376: 23376: deduce_v_minus_u_bounds(v, w, sc_expr, sc_denom, sum); 23376: } 23376: else if (pinf_count == 1) { 23376: if (pinf_index != v 23376: && expr.get(Variable(pinf_index - 1)) == denominator) { 23376: 23376: add_dbm_constraint(pinf_index, v, sum); 23376: } 23376: } 23376: break; 23376: 23376: case GREATER_OR_EQUAL: 23376: 23376: 23376: 23376: 23376: 23376: assign_r(sum, minus_sc_b, ROUND_UP); 23376: 23376: for (Linear_Expression::const_iterator i = sc_expr.begin(), 23376: i_end = sc_expr.lower_bound(Variable(w)); i != i_end; ++i) { 23376: const Coefficient& sc_i = *i; 23376: const int sign_i = sgn(sc_i); 23376: ((void) 0); 23376: const dimension_type i_dim = i.variable().space_dimension(); 23376: 23376: const N& approx_i = (sign_i > 0) ? dbm[i_dim][0] : dbm_0[i_dim]; 23376: if (is_plus_infinity(approx_i)) { 23376: if (++pinf_count > 1) { 23376: break; 23376: } 23376: pinf_index = i_dim; 23376: continue; 23376: } 23376: if (sign_i > 0) { 23376: assign_r(coeff_i, sc_i, ROUND_UP); 23376: } 23376: else { 23376: neg_assign(minus_sc_i, sc_i); 23376: assign_r(coeff_i, minus_sc_i, ROUND_UP); 23376: } 23376: add_mul_assign_r(sum, coeff_i, approx_i, ROUND_UP); 23376: } 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: 23376: if (pinf_count > 1) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: if (sc_denom != 1) { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_down_sc_denom; N& down_sc_denom = holder_down_sc_denom.item(); 23376: assign_r(down_sc_denom, minus_sc_denom, ROUND_UP); 23376: neg_assign_r(down_sc_denom, down_sc_denom, ROUND_UP); 23376: div_assign_r(sum, sum, down_sc_denom, ROUND_UP); 23376: } 23376: 23376: if (pinf_count == 0) { 23376: 23376: add_dbm_constraint(v, 0, sum); 23376: 23376: deduce_u_minus_v_bounds(v, w, sc_expr, sc_denom, sum); 23376: } 23376: else if (pinf_count == 1) { 23376: if (pinf_index != v 23376: && expr.get(Variable(pinf_index - 1)) == denominator) { 23376: 23376: 23376: add_dbm_constraint(v, pinf_index, sum); 23376: } 23376: } 23376: break; 23376: 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::generalized_affine_image(const Linear_Expression& lhs, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& rhs) { 23376: 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type lhs_space_dim = lhs.space_dimension(); 23376: if (space_dim < lhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(e1, r, e2)", 23376: "e1", lhs); 23376: } 23376: 23376: 23376: const dimension_type rhs_space_dim = rhs.space_dimension(); 23376: if (space_dim < rhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(e1, r, e2)", 23376: "e2", rhs); 23376: } 23376: 23376: if (relsym == LESS_THAN || relsym == GREATER_THAN) { 23376: throw_invalid_argument("generalized_affine_image(e1, r, e2)", 23376: "r is a strict relation symbol"); 23376: } 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_image(e1, r, e2)", 23376: "r is the disequality relation symbol"); 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: dimension_type t_lhs = 0; 23376: 23376: dimension_type j_lhs = lhs.last_nonzero(); 23376: 23376: if (j_lhs != 0) { 23376: ++t_lhs; 23376: if (!lhs.all_zeroes(1, j_lhs)) { 23376: ++t_lhs; 23376: } 23376: --j_lhs; 23376: } 23376: 23376: const Coefficient& b_lhs = lhs.inhomogeneous_term(); 23376: 23376: if (t_lhs == 0) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: refine_no_check(lhs <= rhs); 23376: break; 23376: case EQUAL: 23376: refine_no_check(lhs == rhs); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_no_check(lhs >= rhs); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: else if (t_lhs == 1) { 23376: 23376: 23376: 23376: Variable v(j_lhs); 23376: 23376: const Coefficient& denom = lhs.coefficient(v); 23376: Relation_Symbol new_relsym = relsym; 23376: if (denom < 0) { 23376: if (relsym == LESS_OR_EQUAL) { 23376: new_relsym = GREATER_OR_EQUAL; 23376: } 23376: else if (relsym == GREATER_OR_EQUAL) { 23376: new_relsym = LESS_OR_EQUAL; 23376: } 23376: } 23376: Linear_Expression expr = rhs - b_lhs; 23376: generalized_affine_image(v, new_relsym, expr, denom); 23376: } 23376: else { 23376: 23376: 23376: std::vector lhs_vars; 23376: for (Linear_Expression::const_iterator i = lhs.begin(), i_end = lhs.end(); 23376: i != i_end; ++i) { 23376: lhs_vars.push_back(i.variable()); 23376: } 23376: const dimension_type num_common_dims = std::min(lhs_space_dim, rhs_space_dim); 23376: if (!lhs.have_a_common_variable(rhs, Variable(0), Variable(num_common_dims))) { 23376: 23376: 23376: for (dimension_type i = lhs_vars.size(); i-- > 0; ) { 23376: forget_all_dbm_constraints(lhs_vars[i].id() + 1); 23376: } 23376: 23376: 23376: 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: refine_no_check(lhs <= rhs); 23376: break; 23376: case EQUAL: 23376: refine_no_check(lhs == rhs); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_no_check(lhs >= rhs); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: for (dimension_type i = lhs_vars.size(); i-- > 0; ) { 23376: forget_all_dbm_constraints(lhs_vars[i].id() + 1); 23376: } 23376: # 6155 "../../src/BD_Shape_templates.hh" 23376: } 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::generalized_affine_preimage(const Variable var, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference 23376: denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("generalized_affine_preimage(v, r, e, d)", 23376: "d == 0"); 23376: } 23376: 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_preimage(v, r, e, d)", 23376: "e", expr); 23376: } 23376: 23376: const dimension_type v = var.id() + 1; 23376: if (v > space_dim) { 23376: throw_dimension_incompatible("generalized_affine_preimage(v, r, e, d)", 23376: var.id()); 23376: } 23376: 23376: if (relsym == LESS_THAN || relsym == GREATER_THAN) { 23376: throw_invalid_argument("generalized_affine_preimage(v, r, e, d)", 23376: "r is a strict relation symbol"); 23376: } 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_preimage(v, r, e, d)", 23376: "r is the disequality relation symbol"); 23376: } 23376: if (relsym == EQUAL) { 23376: 23376: 23376: affine_preimage(var, expr, denominator); 23376: return; 23376: } 23376: 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: const Coefficient& expr_v = expr.coefficient(var); 23376: if (expr_v != 0) { 23376: const Relation_Symbol reversed_relsym = (relsym == LESS_OR_EQUAL) 23376: ? GREATER_OR_EQUAL : LESS_OR_EQUAL; 23376: const Linear_Expression inverse 23376: = expr - (expr_v + denominator)*var; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_inverse_denom; Parma_Polyhedra_Library::Coefficient& inverse_denom = holder_inverse_denom.item(); 23376: neg_assign(inverse_denom, expr_v); 23376: const Relation_Symbol inverse_relsym 23376: = (sgn(denominator) == sgn(inverse_denom)) ? relsym : reversed_relsym; 23376: generalized_affine_image(var, inverse_relsym, inverse, inverse_denom); 23376: return; 23376: } 23376: 23376: refine(var, relsym, expr, denominator); 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: 23376: forget_all_dbm_constraints(v); 23376: 23376: if (marked_shortest_path_reduced()) { 23376: reset_shortest_path_reduced(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::generalized_affine_preimage(const Linear_Expression& lhs, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& rhs) { 23376: 23376: 23376: 23376: const dimension_type bds_space_dim = space_dimension(); 23376: const dimension_type lhs_space_dim = lhs.space_dimension(); 23376: if (bds_space_dim < lhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_preimage(e1, r, e2)", 23376: "e1", lhs); 23376: } 23376: 23376: 23376: const dimension_type rhs_space_dim = rhs.space_dimension(); 23376: if (bds_space_dim < rhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_preimage(e1, r, e2)", 23376: "e2", rhs); 23376: } 23376: 23376: if (relsym == LESS_THAN || relsym == GREATER_THAN) { 23376: throw_invalid_argument("generalized_affine_preimage(e1, r, e2)", 23376: "r is a strict relation symbol"); 23376: } 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_preimage(e1, r, e2)", 23376: "r is the disequality relation symbol"); 23376: } 23376: 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: dimension_type t_lhs = 0; 23376: 23376: dimension_type j_lhs = lhs.last_nonzero(); 23376: 23376: if (j_lhs != 0) { 23376: ++t_lhs; 23376: if (!lhs.all_zeroes(1, j_lhs)) { 23376: ++t_lhs; 23376: } 23376: --j_lhs; 23376: } 23376: 23376: const Coefficient& b_lhs = lhs.inhomogeneous_term(); 23376: 23376: if (t_lhs == 0) { 23376: 23376: 23376: generalized_affine_image(lhs, relsym, rhs); 23376: return; 23376: } 23376: else if (t_lhs == 1) { 23376: 23376: 23376: 23376: Variable v(j_lhs); 23376: 23376: const Coefficient& denom = lhs.coefficient(v); 23376: Relation_Symbol new_relsym = relsym; 23376: if (denom < 0) { 23376: if (relsym == LESS_OR_EQUAL) { 23376: new_relsym = GREATER_OR_EQUAL; 23376: } 23376: else if (relsym == GREATER_OR_EQUAL) { 23376: new_relsym = LESS_OR_EQUAL; 23376: } 23376: } 23376: Linear_Expression expr = rhs - b_lhs; 23376: generalized_affine_preimage(v, new_relsym, expr, denom); 23376: } 23376: else { 23376: 23376: 23376: std::vector lhs_vars; 23376: for (Linear_Expression::const_iterator i = lhs.begin(), i_end = lhs.end(); 23376: i != i_end; ++i) { 23376: lhs_vars.push_back(i.variable()); 23376: } 23376: const dimension_type num_common_dims = std::min(lhs_space_dim, rhs_space_dim); 23376: if (!lhs.have_a_common_variable(rhs, Variable(0), Variable(num_common_dims))) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: refine_no_check(lhs <= rhs); 23376: break; 23376: case EQUAL: 23376: refine_no_check(lhs == rhs); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_no_check(lhs >= rhs); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: for (dimension_type i = lhs_vars.size(); i-- > 0; ) { 23376: forget_all_dbm_constraints(lhs_vars[i].id() + 1); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: const Variable new_var(bds_space_dim); 23376: add_space_dimensions_and_embed(1); 23376: 23376: 23376: 23376: 23376: affine_image(new_var, lhs); 23376: 23376: 23376: shortest_path_closure_assign(); 23376: ((void) 0); 23376: for (dimension_type i = lhs_vars.size(); i-- > 0; ) { 23376: forget_all_dbm_constraints(lhs_vars[i].id() + 1); 23376: } 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: refine_no_check(new_var <= rhs); 23376: break; 23376: case EQUAL: 23376: refine_no_check(new_var == rhs); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_no_check(new_var >= rhs); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: remove_higher_space_dimensions(bds_space_dim); 23376: } 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: Constraint_System 23376: BD_Shape::constraints() const { 23376: const dimension_type space_dim = space_dimension(); 23376: Constraint_System cs; 23376: cs.set_space_dimension(space_dim); 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: cs = Constraint_System::zero_dim_empty(); 23376: } 23376: return cs; 23376: } 23376: 23376: if (marked_empty()) { 23376: cs.insert(Constraint::zero_dim_false()); 23376: return cs; 23376: } 23376: 23376: if (marked_shortest_path_reduced()) { 23376: 23376: cs = minimized_constraints(); 23376: return cs; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_a; Parma_Polyhedra_Library::Coefficient& a = holder_a.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_b; Parma_Polyhedra_Library::Coefficient& b = holder_b.item(); 23376: 23376: const DB_Row& dbm_0 = dbm[0]; 23376: for (dimension_type j = 1; j <= space_dim; ++j) { 23376: const Variable x(j-1); 23376: const N& dbm_0j = dbm_0[j]; 23376: const N& dbm_j0 = dbm[j][0]; 23376: if (is_additive_inverse(dbm_j0, dbm_0j)) { 23376: 23376: numer_denom(dbm_0j, b, a); 23376: cs.insert(a*x == b); 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(dbm_0j)) { 23376: numer_denom(dbm_0j, b, a); 23376: cs.insert(a*x <= b); 23376: } 23376: if (!is_plus_infinity(dbm_j0)) { 23376: numer_denom(dbm_j0, b, a); 23376: cs.insert(-a*x <= b); 23376: } 23376: } 23376: } 23376: 23376: 23376: for (dimension_type i = 1; i <= space_dim; ++i) { 23376: const Variable y(i-1); 23376: const DB_Row& dbm_i = dbm[i]; 23376: for (dimension_type j = i + 1; j <= space_dim; ++j) { 23376: const Variable x(j-1); 23376: const N& dbm_ij = dbm_i[j]; 23376: const N& dbm_ji = dbm[j][i]; 23376: if (is_additive_inverse(dbm_ji, dbm_ij)) { 23376: 23376: numer_denom(dbm_ij, b, a); 23376: cs.insert(a*x - a*y == b); 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(dbm_ij)) { 23376: numer_denom(dbm_ij, b, a); 23376: cs.insert(a*x - a*y <= b); 23376: } 23376: if (!is_plus_infinity(dbm_ji)) { 23376: numer_denom(dbm_ji, b, a); 23376: cs.insert(a*y - a*x <= b); 23376: } 23376: } 23376: } 23376: } 23376: return cs; 23376: } 23376: 23376: template 23376: Constraint_System 23376: BD_Shape::minimized_constraints() const { 23376: shortest_path_reduction_assign(); 23376: const dimension_type space_dim = space_dimension(); 23376: Constraint_System cs; 23376: cs.set_space_dimension(space_dim); 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: cs = Constraint_System::zero_dim_empty(); 23376: } 23376: return cs; 23376: } 23376: 23376: if (marked_empty()) { 23376: cs.insert(Constraint::zero_dim_false()); 23376: return cs; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: 23376: 23376: std::vector leaders; 23376: compute_leaders(leaders); 23376: std::vector leader_indices; 23376: compute_leader_indices(leaders, leader_indices); 23376: const dimension_type num_leaders = leader_indices.size(); 23376: 23376: 23376: const DB_Row& dbm_0 = dbm[0]; 23376: for (dimension_type i = 1; i <= space_dim; ++i) { 23376: const dimension_type leader = leaders[i]; 23376: if (i != leader) { 23376: 23376: if (leader == 0) { 23376: 23376: ((void) 0); 23376: numer_denom(dbm_0[i], numer, denom); 23376: cs.insert(denom*Variable(i-1) == numer); 23376: } 23376: else { 23376: 23376: ((void) 0); 23376: numer_denom(dbm[i][leader], numer, denom); 23376: cs.insert(denom*Variable(leader-1) - denom*Variable(i-1) == numer); 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: const Bit_Row& red_0 = redundancy_dbm[0]; 23376: for (dimension_type l_i = 1; l_i < num_leaders; ++l_i) { 23376: const dimension_type i = leader_indices[l_i]; 23376: if (!red_0[i]) { 23376: numer_denom(dbm_0[i], numer, denom); 23376: cs.insert(denom*Variable(i-1) <= numer); 23376: } 23376: if (!redundancy_dbm[i][0]) { 23376: numer_denom(dbm[i][0], numer, denom); 23376: cs.insert(-denom*Variable(i-1) <= numer); 23376: } 23376: } 23376: 23376: for (dimension_type l_i = 1; l_i < num_leaders; ++l_i) { 23376: const dimension_type i = leader_indices[l_i]; 23376: const DB_Row& dbm_i = dbm[i]; 23376: const Bit_Row& red_i = redundancy_dbm[i]; 23376: for (dimension_type l_j = l_i + 1; l_j < num_leaders; ++l_j) { 23376: const dimension_type j = leader_indices[l_j]; 23376: if (!red_i[j]) { 23376: numer_denom(dbm_i[j], numer, denom); 23376: cs.insert(denom*Variable(j-1) - denom*Variable(i-1) <= numer); 23376: } 23376: if (!redundancy_dbm[j][i]) { 23376: numer_denom(dbm[j][i], numer, denom); 23376: cs.insert(denom*Variable(i-1) - denom*Variable(j-1) <= numer); 23376: } 23376: } 23376: } 23376: return cs; 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::expand_space_dimension(Variable var, dimension_type m) { 23376: dimension_type old_dim = space_dimension(); 23376: 23376: if (var.space_dimension() > old_dim) { 23376: throw_dimension_incompatible("expand_space_dimension(v, m)", "v", var); 23376: } 23376: 23376: 23376: 23376: if (m > max_space_dimension() - space_dimension()) { 23376: throw_invalid_argument("expand_dimension(v, m)", 23376: "adding m new space dimensions exceeds " 23376: "the maximum allowed space dimension"); 23376: } 23376: 23376: if (m == 0) { 23376: return; 23376: } 23376: 23376: add_space_dimensions_and_embed(m); 23376: 23376: 23376: 23376: 23376: const dimension_type v_id = var.id() + 1; 23376: const DB_Row& dbm_v = dbm[v_id]; 23376: for (dimension_type i = old_dim + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: const N& dbm_i_v = dbm[i][v_id]; 23376: const N& dbm_v_i = dbm_v[i]; 23376: for (dimension_type j = old_dim+1; j < old_dim+m+1; ++j) { 23376: dbm_i[j] = dbm_i_v; 23376: dbm[j][i] = dbm_v_i; 23376: } 23376: } 23376: 23376: 23376: if (marked_shortest_path_closed()) { 23376: reset_shortest_path_closed(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::fold_space_dimensions(const Variables_Set& vars, 23376: Variable dest) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: if (dest.space_dimension() > space_dim) { 23376: throw_dimension_incompatible("fold_space_dimensions(vs, v)", 23376: "v", dest); 23376: } 23376: 23376: if (vars.empty()) { 23376: return; 23376: } 23376: 23376: if (vars.space_dimension() > space_dim) { 23376: throw_dimension_incompatible("fold_space_dimensions(vs, v)", 23376: vars.space_dimension()); 23376: } 23376: 23376: if (vars.find(dest.id()) != vars.end()) { 23376: throw_invalid_argument("fold_space_dimensions(vs, v)", 23376: "v should not occur in vs"); 23376: } 23376: shortest_path_closure_assign(); 23376: if (!marked_empty()) { 23376: 23376: 23376: 23376: 23376: const dimension_type v_id = dest.id() + 1; 23376: DB_Row& dbm_v = dbm[v_id]; 23376: for (Variables_Set::const_iterator i = vars.begin(), 23376: vs_end = vars.end(); i != vs_end; ++i) { 23376: const dimension_type to_be_folded_id = *i + 1; 23376: const DB_Row& dbm_to_be_folded_id = dbm[to_be_folded_id]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: max_assign(dbm[j][v_id], dbm[j][to_be_folded_id]); 23376: max_assign(dbm_v[j], dbm_to_be_folded_id[j]); 23376: } 23376: } 23376: } 23376: remove_space_dimensions(vars); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::drop_some_non_integer_points(Complexity_Class) { 23376: if (std::numeric_limits::is_integer) { 23376: return; 23376: } 23376: const dimension_type space_dim = space_dimension(); 23376: shortest_path_closure_assign(); 23376: if (space_dim == 0 || marked_empty()) { 23376: return; 23376: } 23376: for (dimension_type i = space_dim + 1; i-- > 0; ) { 23376: DB_Row& dbm_i = dbm[i]; 23376: for (dimension_type j = space_dim + 1; j-- > 0; ) { 23376: if (i != j) { 23376: drop_some_non_integer_points_helper(dbm_i[j]); 23376: } 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::drop_some_non_integer_points(const Variables_Set& vars, 23376: Complexity_Class) { 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type min_space_dim = vars.space_dimension(); 23376: if (space_dim < min_space_dim) { 23376: throw_dimension_incompatible("drop_some_non_integer_points(vs, cmpl)", 23376: min_space_dim); 23376: } 23376: if (std::numeric_limits::is_integer || min_space_dim == 0) { 23376: return; 23376: } 23376: shortest_path_closure_assign(); 23376: if (marked_empty()) { 23376: return; 23376: } 23376: const Variables_Set::const_iterator v_begin = vars.begin(); 23376: const Variables_Set::const_iterator v_end = vars.end(); 23376: ((void) 0); 23376: 23376: DB_Row& dbm_0 = dbm[0]; 23376: for (Variables_Set::const_iterator v_i = v_begin; v_i != v_end; ++v_i) { 23376: const dimension_type i = *v_i + 1; 23376: drop_some_non_integer_points_helper(dbm_0[i]); 23376: drop_some_non_integer_points_helper(dbm[i][0]); 23376: } 23376: 23376: 23376: for (Variables_Set::const_iterator v_i = v_begin; v_i != v_end; ++v_i) { 23376: const dimension_type i = *v_i + 1; 23376: DB_Row& dbm_i = dbm[i]; 23376: for (Variables_Set::const_iterator v_j = v_begin; v_j != v_end; ++v_j) { 23376: const dimension_type j = *v_j + 1; 23376: if (i != j) { 23376: drop_some_non_integer_points_helper(dbm_i[j]); 23376: } 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: 23376: template 23376: std::ostream& 23376: IO_Operators::operator<<(std::ostream& s, const BD_Shape& bds) { 23376: typedef typename BD_Shape::coefficient_type N; 23376: if (bds.is_universe()) { 23376: s << "true"; 23376: } 23376: else { 23376: 23376: dimension_type n = bds.space_dimension(); 23376: if (bds.marked_empty()) { 23376: s << "false"; 23376: } 23376: else { 23376: Parma_Polyhedra_Library::Dirty_Temp holder_v; N& v = holder_v.item(); 23376: bool first = true; 23376: for (dimension_type i = 0; i <= n; ++i) { 23376: for (dimension_type j = i + 1; j <= n; ++j) { 23376: const N& c_i_j = bds.dbm[i][j]; 23376: const N& c_j_i = bds.dbm[j][i]; 23376: if (is_additive_inverse(c_j_i, c_i_j)) { 23376: 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: if (i == 0) { 23376: 23376: s << Variable(j - 1); 23376: s << " = " << c_i_j; 23376: } 23376: else { 23376: 23376: if (sgn(c_i_j) >= 0) { 23376: s << Variable(j - 1); 23376: s << " - "; 23376: s << Variable(i - 1); 23376: s << " = " << c_i_j; 23376: } 23376: else { 23376: s << Variable(i - 1); 23376: s << " - "; 23376: s << Variable(j - 1); 23376: s << " = " << c_j_i; 23376: } 23376: } 23376: } 23376: else { 23376: 23376: if (!is_plus_infinity(c_j_i)) { 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: if (i == 0) { 23376: 23376: s << Variable(j - 1); 23376: neg_assign_r(v, c_j_i, ROUND_DOWN); 23376: s << " >= " << v; 23376: } 23376: else { 23376: 23376: if (sgn(c_j_i) >= 0) { 23376: s << Variable(i - 1); 23376: s << " - "; 23376: s << Variable(j - 1); 23376: s << " <= " << c_j_i; 23376: } 23376: else { 23376: s << Variable(j - 1); 23376: s << " - "; 23376: s << Variable(i - 1); 23376: neg_assign_r(v, c_j_i, ROUND_DOWN); 23376: s << " >= " << v; 23376: } 23376: } 23376: } 23376: if (!is_plus_infinity(c_i_j)) { 23376: if (first) { 23376: first = false; 23376: } 23376: else { 23376: s << ", "; 23376: } 23376: if (i == 0) { 23376: 23376: s << Variable(j - 1); 23376: s << " <= " << c_i_j; 23376: } 23376: else { 23376: 23376: if (sgn(c_i_j) >= 0) { 23376: s << Variable(j - 1); 23376: s << " - "; 23376: s << Variable(i - 1); 23376: s << " <= " << c_i_j; 23376: } 23376: else { 23376: s << Variable(i - 1); 23376: s << " - "; 23376: s << Variable(j - 1); 23376: neg_assign_r(v, c_i_j, ROUND_DOWN); 23376: s << " >= " << v; 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: } 23376: return s; 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::ascii_dump(std::ostream& s) const { 23376: status.ascii_dump(s); 23376: s << "\n"; 23376: dbm.ascii_dump(s); 23376: s << "\n"; 23376: redundancy_dbm.ascii_dump(s); 23376: } 23376: 23376: template void BD_Shape::ascii_dump() const { ascii_dump(std::cerr); } template void BD_Shape::print() const { using IO_Operators::operator<<; std::cerr << *this; } 23376: 23376: template 23376: bool 23376: BD_Shape::ascii_load(std::istream& s) { 23376: if (!status.ascii_load(s)) { 23376: return false; 23376: } 23376: if (!dbm.ascii_load(s)) { 23376: return false; 23376: } 23376: if (!redundancy_dbm.ascii_load(s)) { 23376: return false; 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: memory_size_type 23376: BD_Shape::external_memory_in_bytes() const { 23376: return dbm.external_memory_in_bytes() 23376: + redundancy_dbm.external_memory_in_bytes(); 23376: } 23376: 23376: template 23376: bool 23376: BD_Shape::OK() const { 23376: 23376: if (!dbm.OK()) { 23376: return false; 23376: } 23376: 23376: if (!status.OK()) { 23376: return false; 23376: } 23376: 23376: if (marked_empty()) { 23376: return true; 23376: } 23376: 23376: for (dimension_type i = dbm.num_rows(); i-- > 0; ) { 23376: for (dimension_type j = dbm.num_rows(); j-- > 0; ) { 23376: if (is_minus_infinity(dbm[i][j])) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: } 23376: 23376: for (dimension_type i = dbm.num_rows(); i-- > 0; ) { 23376: if (!is_plus_infinity(dbm[i][i])) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: if (marked_shortest_path_closed()) { 23376: BD_Shape x = *this; 23376: x.reset_shortest_path_closed(); 23376: x.shortest_path_closure_assign(); 23376: if (x.dbm != dbm) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: 23376: 23376: 23376: if (std::numeric_limits::is_exact) { 23376: 23376: 23376: if (marked_shortest_path_reduced()) { 23376: 23376: for (dimension_type i = dbm.num_rows(); i-- > 0; ) { 23376: for (dimension_type j = dbm.num_rows(); j-- > 0; ) { 23376: if (!redundancy_dbm[i][j] && is_plus_infinity(dbm[i][j])) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: } 23376: BD_Shape x = *this; 23376: x.reset_shortest_path_reduced(); 23376: x.shortest_path_reduction_assign(); 23376: if (x.redundancy_dbm != redundancy_dbm) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: } 23376: 23376: 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::throw_dimension_incompatible(const char* method, 23376: const BD_Shape& y) const { 23376: std::ostringstream s; 23376: s << "PPL::BD_Shape::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", y->space_dimension() == " << y.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::throw_dimension_incompatible(const char* method, 23376: dimension_type required_dim) const { 23376: std::ostringstream s; 23376: s << "PPL::BD_Shape::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", required dimension == " << required_dim << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::throw_dimension_incompatible(const char* method, 23376: const Constraint& c) const { 23376: std::ostringstream s; 23376: s << "PPL::BD_Shape::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", c->space_dimension == " << c.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::throw_dimension_incompatible(const char* method, 23376: const Congruence& cg) const { 23376: std::ostringstream s; 23376: s << "PPL::BD_Shape::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", cg->space_dimension == " << cg.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::throw_dimension_incompatible(const char* method, 23376: const Generator& g) const { 23376: std::ostringstream s; 23376: s << "PPL::BD_Shape::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", g->space_dimension == " << g.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::throw_expression_too_complex(const char* method, 23376: const Linear_Expression& le) { 23376: using namespace IO_Operators; 23376: std::ostringstream s; 23376: s << "PPL::BD_Shape::" << method << ":" << std::endl 23376: << le << " is too complex."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: 23376: template 23376: void 23376: BD_Shape::throw_dimension_incompatible(const char* method, 23376: const char* le_name, 23376: const Linear_Expression& le) const { 23376: std::ostringstream s; 23376: s << "PPL::BD_Shape::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", " << le_name << "->space_dimension() == " 23376: << le.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: template 23376: void 23376: BD_Shape::throw_dimension_incompatible(const char* method, 23376: const char* lf_name, 23376: const Linear_Form< Interval >& lf) const { 23376: std::ostringstream s; 23376: s << "PPL::BD_Shape::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", " << lf_name << "->space_dimension() == " 23376: << lf.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: BD_Shape::throw_invalid_argument(const char* method, const char* reason) { 23376: std::ostringstream s; 23376: s << "PPL::BD_Shape::" << method << ":" << std::endl 23376: << reason << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: } 23376: # 2373 "../../src/BD_Shape_defs.hh" 2 23376: # 39 "../../src/Box_templates.hh" 2 23376: 23376: 23376: # 1 "../../src/Rational_Interval.hh" 1 23376: # 30 "../../src/Rational_Interval.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: struct Rational_Interval_Info_Policy { 23376: enum const_bool_value_store_special { store_special = (true) }; 23376: enum const_bool_value_store_open { store_open = (true) }; 23376: enum const_bool_value_cache_empty { cache_empty = (true) }; 23376: enum const_bool_value_cache_singleton { cache_singleton = (true) }; 23376: enum const_bool_value_cache_normalized { cache_normalized = (false) }; 23376: enum anonymous_enum_next_bit { next_bit = (0) }; 23376: enum const_bool_value_may_be_empty { may_be_empty = (true) }; 23376: enum const_bool_value_may_contain_infinity { may_contain_infinity = (false) }; 23376: enum const_bool_value_check_inexact { check_inexact = (false) }; 23376: }; 23376: 23376: typedef Interval_Info_Bitset Rational_Interval_Info; 23376: 23376: 23376: 23376: 23376: typedef Interval Rational_Interval; 23376: 23376: } 23376: # 42 "../../src/Box_templates.hh" 2 23376: 23376: 23376: 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: inline 23376: Box::Box(dimension_type num_dimensions, Degenerate_Element kind) 23376: : seq(check_space_dimension_overflow(num_dimensions, 23376: max_space_dimension(), 23376: "PPL::Box::", 23376: "Box(n, k)", 23376: "n exceeds the maximum " 23376: "allowed space dimension")), 23376: status() { 23376: 23376: 23376: if (kind == UNIVERSE) { 23376: for (dimension_type i = num_dimensions; i-- > 0; ) { 23376: seq[i].assign(UNIVERSE); 23376: } 23376: set_empty_up_to_date(); 23376: } 23376: else { 23376: set_empty(); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline 23376: Box::Box(const Constraint_System& cs) 23376: : seq(check_space_dimension_overflow(cs.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Box::", 23376: "Box(cs)", 23376: "cs exceeds the maximum " 23376: "allowed space dimension")), 23376: status() { 23376: 23376: for (dimension_type i = cs.space_dimension(); i-- > 0; ) { 23376: seq[i].assign(UNIVERSE); 23376: } 23376: add_constraints_no_check(cs); 23376: } 23376: 23376: template 23376: inline 23376: Box::Box(const Congruence_System& cgs) 23376: : seq(check_space_dimension_overflow(cgs.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Box::", 23376: "Box(cgs)", 23376: "cgs exceeds the maximum " 23376: "allowed space dimension")), 23376: status() { 23376: 23376: for (dimension_type i = cgs.space_dimension(); i-- > 0; ) { 23376: seq[i].assign(UNIVERSE); 23376: } 23376: add_congruences_no_check(cgs); 23376: } 23376: 23376: template 23376: template 23376: inline 23376: Box::Box(const Box& y, Complexity_Class) 23376: : seq(y.space_dimension()), 23376: 23376: 23376: status() { 23376: 23376: if (y.marked_empty()) { 23376: set_empty(); 23376: } 23376: 23376: if (!y.marked_empty()) { 23376: for (dimension_type k = y.space_dimension(); k-- > 0; ) { 23376: seq[k].assign(y.seq[k]); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: Box::Box(const Generator_System& gs) 23376: : seq(check_space_dimension_overflow(gs.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Box::", 23376: "Box(gs)", 23376: "gs exceeds the maximum " 23376: "allowed space dimension")), 23376: status() { 23376: const Generator_System::const_iterator gs_begin = gs.begin(); 23376: const Generator_System::const_iterator gs_end = gs.end(); 23376: if (gs_begin == gs_end) { 23376: 23376: set_empty(); 23376: return; 23376: } 23376: 23376: 23376: set_empty_up_to_date(); 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: bool point_seen = false; 23376: 23376: for (Generator_System::const_iterator 23376: gs_i = gs_begin; gs_i != gs_end; ++gs_i) { 23376: const Generator& g = *gs_i; 23376: if (g.is_point()) { 23376: const Coefficient& d = g.divisor(); 23376: if (point_seen) { 23376: 23376: 23376: 23376: 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: assign_r(q.get_num(), g.coefficient(Variable(i)), ROUND_NOT_NEEDED); 23376: assign_r(q.get_den(), d, ROUND_NOT_NEEDED); 23376: q.canonicalize(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_iq; ITV& iq = holder_iq.item(); 23376: iq.build(i_constraint(EQUAL, q)); 23376: seq[i].join_assign(iq); 23376: } 23376: } 23376: else { 23376: 23376: point_seen = true; 23376: 23376: 23376: 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: assign_r(q.get_num(), g.coefficient(Variable(i)), ROUND_NOT_NEEDED); 23376: assign_r(q.get_den(), d, ROUND_NOT_NEEDED); 23376: q.canonicalize(); 23376: seq[i].build(i_constraint(EQUAL, q)); 23376: } 23376: } 23376: } 23376: } 23376: 23376: if (!point_seen) { 23376: 23376: throw std::invalid_argument("PPL::Box::Box(gs):\n" 23376: "the non-empty generator system gs " 23376: "contains no points."); 23376: } 23376: 23376: 23376: for (Generator_System::const_iterator gs_i = gs_begin; 23376: gs_i != gs_end; ++gs_i) { 23376: const Generator& g = *gs_i; 23376: switch (g.type()) { 23376: case Generator::LINE: 23376: for (Generator::expr_type::const_iterator i = g.expression().begin(), 23376: i_end = g.expression().end(); 23376: i != i_end; ++i) { 23376: seq[i.variable().id()].assign(UNIVERSE); 23376: } 23376: break; 23376: case Generator::RAY: 23376: for (Generator::expr_type::const_iterator i = g.expression().begin(), 23376: i_end = g.expression().end(); 23376: i != i_end; ++i) { 23376: switch (sgn(*i)) { 23376: case 1: 23376: seq[i.variable().id()].upper_extend(); 23376: break; 23376: case -1: 23376: seq[i.variable().id()].lower_extend(); 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: break; 23376: case Generator::CLOSURE_POINT: 23376: { 23376: const Coefficient& d = g.divisor(); 23376: 23376: 23376: 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: assign_r(q.get_num(), g.coefficient(Variable(i)), ROUND_NOT_NEEDED); 23376: assign_r(q.get_den(), d, ROUND_NOT_NEEDED); 23376: q.canonicalize(); 23376: ITV& seq_i = seq[i]; 23376: seq_i.lower_extend(i_constraint(GREATER_THAN, q)); 23376: seq_i.upper_extend(i_constraint(LESS_THAN, q)); 23376: } 23376: } 23376: break; 23376: default: 23376: 23376: break; 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: Box::Box(const BD_Shape& bds, Complexity_Class) 23376: : seq(check_space_dimension_overflow(bds.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Box::", 23376: "Box(bds)", 23376: "bds exceeds the maximum " 23376: "allowed space dimension")), 23376: status() { 23376: 23376: bds.shortest_path_closure_assign(); 23376: if (bds.marked_empty()) { 23376: set_empty(); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: set_empty_up_to_date(); 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim == 0) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: typedef typename BD_Shape::coefficient_type Coeff; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; Coeff& tmp = holder_tmp.item(); 23376: const DB_Row& dbm_0 = bds.dbm[0]; 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: I_Constraint lower; 23376: I_Constraint upper; 23376: ITV& seq_i = seq[i]; 23376: 23376: 23376: const Coeff& u = dbm_0[i+1]; 23376: if (!is_plus_infinity(u)) { 23376: upper.set(LESS_OR_EQUAL, u, true); 23376: } 23376: 23376: 23376: const Coeff& negated_l = bds.dbm[i+1][0]; 23376: if (!is_plus_infinity(negated_l)) { 23376: neg_assign_r(tmp, negated_l, ROUND_DOWN); 23376: lower.set(GREATER_OR_EQUAL, tmp); 23376: } 23376: 23376: seq_i.build(lower, upper); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: Box::Box(const Octagonal_Shape& oct, Complexity_Class) 23376: : seq(check_space_dimension_overflow(oct.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Box::", 23376: "Box(oct)", 23376: "oct exceeds the maximum " 23376: "allowed space dimension")), 23376: status() { 23376: 23376: oct.strong_closure_assign(); 23376: if (oct.marked_empty()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: 23376: set_empty_up_to_date(); 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lower_bound; mpq_class& lower_bound = holder_lower_bound.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_upper_bound; mpq_class& upper_bound = holder_upper_bound.item(); 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: typedef typename Octagonal_Shape::coefficient_type Coeff; 23376: I_Constraint lower; 23376: I_Constraint upper; 23376: ITV& seq_i = seq[i]; 23376: const dimension_type ii = 2*i; 23376: const dimension_type cii = ii + 1; 23376: 23376: 23376: const Coeff& twice_ub = oct.matrix[cii][ii]; 23376: if (!is_plus_infinity(twice_ub)) { 23376: assign_r(upper_bound, twice_ub, ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(upper_bound, upper_bound, 1, ROUND_NOT_NEEDED); 23376: upper.set(LESS_OR_EQUAL, upper_bound); 23376: } 23376: 23376: 23376: const Coeff& twice_lb = oct.matrix[ii][cii]; 23376: if (!is_plus_infinity(twice_lb)) { 23376: assign_r(lower_bound, twice_lb, ROUND_NOT_NEEDED); 23376: neg_assign_r(lower_bound, lower_bound, ROUND_NOT_NEEDED); 23376: div_2exp_assign_r(lower_bound, lower_bound, 1, ROUND_NOT_NEEDED); 23376: lower.set(GREATER_OR_EQUAL, lower_bound); 23376: } 23376: seq_i.build(lower, upper); 23376: } 23376: } 23376: 23376: template 23376: Box::Box(const Polyhedron& ph, Complexity_Class complexity) 23376: : seq(check_space_dimension_overflow(ph.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Box::", 23376: "Box(ph)", 23376: "ph exceeds the maximum " 23376: "allowed space dimension")), 23376: status() { 23376: 23376: set_empty_up_to_date(); 23376: 23376: 23376: 23376: if (ph.marked_empty()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: 23376: const dimension_type space_dim = ph.space_dimension(); 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: 23376: if (ph.generators_are_up_to_date() && !ph.has_pending_constraints()) { 23376: Box tmp(ph.generators()); 23376: m_swap(tmp); 23376: return; 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: if (complexity == POLYNOMIAL_COMPLEXITY) { 23376: 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: seq[i].assign(UNIVERSE); 23376: } 23376: 23376: const Constraint_System cs = ph.simplified_constraints(); 23376: 23376: 23376: 23376: const dimension_type max_iterations = 20; 23376: propagate_constraints_no_check(cs, max_iterations); 23376: } 23376: else if (complexity == SIMPLEX_COMPLEXITY) { 23376: MIP_Problem lp(space_dim); 23376: const Constraint_System& ph_cs = ph.constraints(); 23376: if (!ph_cs.has_strict_inequalities()) { 23376: lp.add_constraints(ph_cs); 23376: } 23376: else { 23376: 23376: for (Constraint_System::const_iterator i = ph_cs.begin(), 23376: ph_cs_end = ph_cs.end(); i != ph_cs_end; ++i) { 23376: const Constraint& c = *i; 23376: if (c.is_strict_inequality()) { 23376: const Linear_Expression expr(c.expression()); 23376: lp.add_constraint(expr >= 0); 23376: } 23376: else { 23376: lp.add_constraint(c); 23376: } 23376: } 23376: } 23376: 23376: if (!lp.is_satisfiable()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: Generator g(point()); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lower_bound; mpq_class& lower_bound = holder_lower_bound.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_upper_bound; mpq_class& upper_bound = holder_upper_bound.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_bound_numer; Parma_Polyhedra_Library::Coefficient& bound_numer = holder_bound_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_bound_denom; Parma_Polyhedra_Library::Coefficient& bound_denom = holder_bound_denom.item(); 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: I_Constraint lower; 23376: I_Constraint upper; 23376: ITV& seq_i = seq[i]; 23376: lp.set_objective_function(Variable(i)); 23376: 23376: lp.set_optimization_mode(MAXIMIZATION); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, bound_numer, bound_denom); 23376: assign_r(upper_bound.get_num(), bound_numer, ROUND_NOT_NEEDED); 23376: assign_r(upper_bound.get_den(), bound_denom, ROUND_NOT_NEEDED); 23376: ((void) 0); 23376: upper.set(LESS_OR_EQUAL, upper_bound); 23376: } 23376: 23376: lp.set_optimization_mode(MINIMIZATION); 23376: if (lp.solve() == OPTIMIZED_MIP_PROBLEM) { 23376: g = lp.optimizing_point(); 23376: lp.evaluate_objective_function(g, bound_numer, bound_denom); 23376: assign_r(lower_bound.get_num(), bound_numer, ROUND_NOT_NEEDED); 23376: assign_r(lower_bound.get_den(), bound_denom, ROUND_NOT_NEEDED); 23376: ((void) 0); 23376: lower.set(GREATER_OR_EQUAL, lower_bound); 23376: } 23376: seq_i.build(lower, upper); 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: if (ph.is_empty()) { 23376: set_empty(); 23376: } 23376: else { 23376: Box tmp(ph.generators()); 23376: m_swap(tmp); 23376: } 23376: } 23376: } 23376: 23376: template 23376: Box::Box(const Grid& gr, Complexity_Class) 23376: : seq(check_space_dimension_overflow(gr.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Box::", 23376: "Box(gr)", 23376: "gr exceeds the maximum " 23376: "allowed space dimension")), 23376: status() { 23376: 23376: if (gr.marked_empty()) { 23376: set_empty(); 23376: return; 23376: } 23376: 23376: 23376: set_empty_up_to_date(); 23376: 23376: const dimension_type space_dim = gr.space_dimension(); 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: if (!gr.generators_are_up_to_date() && !gr.update_generators()) { 23376: 23376: set_empty(); 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_bound; mpq_class& bound = holder_bound.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_bound_numer; Parma_Polyhedra_Library::Coefficient& bound_numer = holder_bound_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_bound_denom; Parma_Polyhedra_Library::Coefficient& bound_denom = holder_bound_denom.item(); 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: ITV& seq_i = seq[i]; 23376: Variable var(i); 23376: bool max; 23376: if (gr.maximize(var, bound_numer, bound_denom, max)) { 23376: assign_r(bound.get_num(), bound_numer, ROUND_NOT_NEEDED); 23376: assign_r(bound.get_den(), bound_denom, ROUND_NOT_NEEDED); 23376: bound.canonicalize(); 23376: seq_i.build(i_constraint(EQUAL, bound)); 23376: } 23376: else { 23376: seq_i.assign(UNIVERSE); 23376: } 23376: } 23376: } 23376: 23376: template 23376: template 23376: Box::Box(const Partially_Reduced_Product& dp, 23376: Complexity_Class complexity) 23376: : seq(), status() { 23376: check_space_dimension_overflow(dp.space_dimension(), 23376: max_space_dimension(), 23376: "PPL::Box::", 23376: "Box(dp)", 23376: "dp exceeds the maximum " 23376: "allowed space dimension"); 23376: Box tmp1(dp.domain1(), complexity); 23376: Box tmp2(dp.domain2(), complexity); 23376: tmp1.intersection_assign(tmp2); 23376: m_swap(tmp1); 23376: } 23376: 23376: template 23376: inline void 23376: Box::add_space_dimensions_and_embed(const dimension_type m) { 23376: 23376: if (m == 0) { 23376: return; 23376: } 23376: check_space_dimension_overflow(m, max_space_dimension() - space_dimension(), 23376: "PPL::Box::", 23376: "add_space_dimensions_and_embed(m)", 23376: "adding m new space dimensions exceeds " 23376: "the maximum allowed space dimension"); 23376: 23376: 23376: seq.insert(seq.end(), m, ITV(UNIVERSE)); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Box::add_space_dimensions_and_project(const dimension_type m) { 23376: 23376: if (m == 0) { 23376: return; 23376: } 23376: check_space_dimension_overflow(m, max_space_dimension() - space_dimension(), 23376: "PPL::Box::", 23376: "add_space_dimensions_and_project(m)", 23376: "adding m new space dimensions exceeds " 23376: "the maximum allowed space dimension"); 23376: 23376: seq.insert(seq.end(), m, ITV(0)); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: bool 23376: operator==(const Box& x, const Box& y) { 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: if (x_space_dim != y.space_dimension()) { 23376: return false; 23376: } 23376: 23376: if (x.is_empty()) { 23376: return y.is_empty(); 23376: } 23376: 23376: if (y.is_empty()) { 23376: return x.is_empty(); 23376: } 23376: 23376: for (dimension_type k = x_space_dim; k-- > 0; ) { 23376: if (x.seq[k] != y.seq[k]) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::bounds(const Linear_Expression& expr, const bool from_above) const { 23376: 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible((from_above 23376: ? "bounds_from_above(e)" 23376: : "bounds_from_below(e)"), "e", expr); 23376: } 23376: 23376: if (space_dim == 0 || is_empty()) { 23376: return true; 23376: } 23376: const int from_above_sign = from_above ? 1 : -1; 23376: 23376: 23376: for (Linear_Expression::const_iterator i = expr.begin(), 23376: i_end = expr.end(); i != i_end; ++i) { 23376: const Variable v = i.variable(); 23376: switch (sgn(*i) * from_above_sign) { 23376: case 1: 23376: if (seq[v.id()].upper_is_boundary_infinity()) { 23376: return false; 23376: } 23376: break; 23376: case 0: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: case -1: 23376: if (seq[v.id()].lower_is_boundary_infinity()) { 23376: return false; 23376: } 23376: break; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: Poly_Con_Relation 23376: interval_relation(const ITV& i, 23376: const Constraint::Type constraint_type, 23376: Coefficient_traits::const_reference numer, 23376: Coefficient_traits::const_reference denom) { 23376: 23376: if (i.is_universe()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_bound; mpq_class& bound = holder_bound.item(); 23376: assign_r(bound.get_num(), numer, ROUND_NOT_NEEDED); 23376: assign_r(bound.get_den(), denom, ROUND_NOT_NEEDED); 23376: bound.canonicalize(); 23376: neg_assign_r(bound, bound, ROUND_NOT_NEEDED); 23376: const bool is_lower_bound = (denom > 0); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_bound_diff; mpq_class& bound_diff = holder_bound_diff.item(); 23376: if (constraint_type == Constraint::EQUALITY) { 23376: if (i.lower_is_boundary_infinity()) { 23376: ((void) 0); 23376: assign_r(bound_diff, i.upper(), ROUND_NOT_NEEDED); 23376: sub_assign_r(bound_diff, bound_diff, bound, ROUND_NOT_NEEDED); 23376: switch (sgn(bound_diff)) { 23376: case 1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case 0: 23376: return i.upper_is_open() 23376: ? Poly_Con_Relation::is_disjoint() 23376: : Poly_Con_Relation::strictly_intersects(); 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: else { 23376: assign_r(bound_diff, i.lower(), ROUND_NOT_NEEDED); 23376: sub_assign_r(bound_diff, bound_diff, bound, ROUND_NOT_NEEDED); 23376: switch (sgn(bound_diff)) { 23376: case 1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: case 0: 23376: if (i.lower_is_open()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: if (i.is_singleton()) { 23376: return Poly_Con_Relation::is_included() 23376: && Poly_Con_Relation::saturates(); 23376: } 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case -1: 23376: if (i.upper_is_boundary_infinity()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: else { 23376: assign_r(bound_diff, i.upper(), ROUND_NOT_NEEDED); 23376: sub_assign_r(bound_diff, bound_diff, bound, ROUND_NOT_NEEDED); 23376: switch (sgn(bound_diff)) { 23376: case 1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case 0: 23376: if (i.upper_is_open()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: ((void) 0); 23376: if (is_lower_bound) { 23376: if (i.lower_is_boundary_infinity()) { 23376: ((void) 0); 23376: assign_r(bound_diff, i.upper(), ROUND_NOT_NEEDED); 23376: sub_assign_r(bound_diff, bound_diff, bound, ROUND_NOT_NEEDED); 23376: switch (sgn(bound_diff)) { 23376: case 1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case 0: 23376: if (constraint_type == Constraint::STRICT_INEQUALITY 23376: || i.upper_is_open()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: else { 23376: assign_r(bound_diff, i.lower(), ROUND_NOT_NEEDED); 23376: sub_assign_r(bound_diff, bound_diff, bound, ROUND_NOT_NEEDED); 23376: switch (sgn(bound_diff)) { 23376: case 1: 23376: return Poly_Con_Relation::is_included(); 23376: case 0: 23376: if (constraint_type == Constraint::NONSTRICT_INEQUALITY 23376: || i.lower_is_open()) { 23376: Poly_Con_Relation result = Poly_Con_Relation::is_included(); 23376: if (i.is_singleton()) { 23376: result = result && Poly_Con_Relation::saturates(); 23376: } 23376: return result; 23376: } 23376: else { 23376: ((void) 0) 23376: ; 23376: if (i.is_singleton()) { 23376: return Poly_Con_Relation::is_disjoint() 23376: && Poly_Con_Relation::saturates(); 23376: } 23376: else { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: } 23376: case -1: 23376: if (i.upper_is_boundary_infinity()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: else { 23376: assign_r(bound_diff, i.upper(), ROUND_NOT_NEEDED); 23376: sub_assign_r(bound_diff, bound_diff, bound, ROUND_NOT_NEEDED); 23376: switch (sgn(bound_diff)) { 23376: case 1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case 0: 23376: if (constraint_type == Constraint::STRICT_INEQUALITY 23376: || i.upper_is_open()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: else { 23376: 23376: if (i.upper_is_boundary_infinity()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: else { 23376: assign_r(bound_diff, i.upper(), ROUND_NOT_NEEDED); 23376: sub_assign_r(bound_diff, bound_diff, bound, ROUND_NOT_NEEDED); 23376: switch (sgn(bound_diff)) { 23376: case -1: 23376: return Poly_Con_Relation::is_included(); 23376: case 0: 23376: if (constraint_type == Constraint::NONSTRICT_INEQUALITY 23376: || i.upper_is_open()) { 23376: Poly_Con_Relation result = Poly_Con_Relation::is_included(); 23376: if (i.is_singleton()) { 23376: result = result && Poly_Con_Relation::saturates(); 23376: } 23376: return result; 23376: } 23376: else { 23376: ((void) 0) 23376: ; 23376: if (i.is_singleton()) { 23376: return Poly_Con_Relation::is_disjoint() 23376: && Poly_Con_Relation::saturates(); 23376: } 23376: else { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: } 23376: case 1: 23376: if (i.lower_is_boundary_infinity()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: else { 23376: assign_r(bound_diff, i.lower(), ROUND_NOT_NEEDED); 23376: sub_assign_r(bound_diff, bound_diff, bound, ROUND_NOT_NEEDED); 23376: switch (sgn(bound_diff)) { 23376: case -1: 23376: return Poly_Con_Relation::strictly_intersects(); 23376: case 0: 23376: if (constraint_type == Constraint::STRICT_INEQUALITY 23376: || i.lower_is_open()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: case 1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return Poly_Con_Relation::nothing(); 23376: } 23376: 23376: template 23376: Poly_Con_Relation 23376: Box::relation_with(const Congruence& cg) const { 23376: const dimension_type cg_space_dim = cg.space_dimension(); 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (cg_space_dim > space_dim) { 23376: throw_dimension_incompatible("relation_with(cg)", cg); 23376: } 23376: if (is_empty()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: 23376: if (space_dim == 0) { 23376: if (cg.is_inconsistent()) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: if (cg.is_equality()) { 23376: const Constraint c(cg); 23376: return relation_with(c); 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_r; Rational_Interval& r = holder_r.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_t; Rational_Interval& t = holder_t.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_m; mpq_class& m = holder_m.item(); 23376: r = 0; 23376: for (Congruence::expr_type::const_iterator i = cg.expression().begin(), 23376: i_end = cg.expression().end(); i != i_end; ++i) { 23376: const Coefficient& cg_i = *i; 23376: const Variable v = i.variable(); 23376: assign_r(m, cg_i, ROUND_NOT_NEEDED); 23376: 23376: t.build(seq[v.id()].lower_constraint(), seq[v.id()].upper_constraint()); 23376: t *= m; 23376: r += t; 23376: } 23376: 23376: if (r.lower_is_boundary_infinity() || r.upper_is_boundary_infinity()) { 23376: return Poly_Con_Relation::strictly_intersects(); 23376: } 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lower; Parma_Polyhedra_Library::Coefficient& lower = holder_lower.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_mod; Parma_Polyhedra_Library::Coefficient& mod = holder_mod.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_v; Parma_Polyhedra_Library::Coefficient& v = holder_v.item(); 23376: mod = cg.modulus(); 23376: v = cg.inhomogeneous_term() % mod; 23376: assign_r(lower, r.lower(), ROUND_DOWN); 23376: v -= ((lower / mod) * mod); 23376: if (v + lower > 0) { 23376: v -= mod; 23376: } 23376: return interval_relation(r, Constraint::EQUALITY, v); 23376: } 23376: 23376: template 23376: Poly_Con_Relation 23376: Box::relation_with(const Constraint& c) const { 23376: const dimension_type c_space_dim = c.space_dimension(); 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (c_space_dim > space_dim) { 23376: throw_dimension_incompatible("relation_with(c)", c); 23376: } 23376: 23376: if (is_empty()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: 23376: if (space_dim == 0) { 23376: if ((c.is_equality() && c.inhomogeneous_term() != 0) 23376: || (c.is_inequality() && c.inhomogeneous_term() < 0)) { 23376: return Poly_Con_Relation::is_disjoint(); 23376: } 23376: else if (c.is_strict_inequality() && c.inhomogeneous_term() == 0) { 23376: 23376: 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: else if (c.is_equality() || c.inhomogeneous_term() == 0) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: else { 23376: 23376: 23376: 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: 23376: dimension_type c_num_vars = 0; 23376: dimension_type c_only_var = 0; 23376: 23376: if (Box_Helpers::extract_interval_constraint(c, c_num_vars, c_only_var)) { 23376: if (c_num_vars == 0) { 23376: 23376: switch (sgn(c.inhomogeneous_term())) { 23376: case -1: 23376: return Poly_Con_Relation::is_disjoint(); 23376: case 0: 23376: if (c.is_strict_inequality()) { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_disjoint(); 23376: } 23376: else { 23376: return Poly_Con_Relation::saturates() 23376: && Poly_Con_Relation::is_included(); 23376: } 23376: case 1: 23376: return Poly_Con_Relation::is_included(); 23376: } 23376: } 23376: else { 23376: 23376: return interval_relation(seq[c_only_var], 23376: c.type(), 23376: c.inhomogeneous_term(), 23376: c.coefficient(Variable(c_only_var))); 23376: } 23376: } 23376: else { 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_r; Rational_Interval& r = holder_r.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_t; Rational_Interval& t = holder_t.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_m; mpq_class& m = holder_m.item(); 23376: r = 0; 23376: const Constraint::expr_type& e = c.expression(); 23376: for (Constraint::expr_type::const_iterator i = e.begin(), i_end = e.end(); 23376: i != i_end; ++i) { 23376: assign_r(m, *i, ROUND_NOT_NEEDED); 23376: const Variable v = i.variable(); 23376: 23376: t.build(seq[v.id()].lower_constraint(), seq[v.id()].upper_constraint()); 23376: t *= m; 23376: r += t; 23376: } 23376: return interval_relation(r, 23376: c.type(), 23376: c.inhomogeneous_term()); 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return Poly_Con_Relation::nothing(); 23376: } 23376: 23376: template 23376: Poly_Gen_Relation 23376: Box::relation_with(const Generator& g) const { 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type g_space_dim = g.space_dimension(); 23376: 23376: 23376: if (space_dim < g_space_dim) { 23376: throw_dimension_incompatible("relation_with(g)", g); 23376: } 23376: 23376: 23376: if (is_empty()) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return Poly_Gen_Relation::subsumes(); 23376: } 23376: 23376: if (g.is_line_or_ray()) { 23376: if (g.is_line()) { 23376: const Generator::expr_type& e = g.expression(); 23376: for (Generator::expr_type::const_iterator i = e.begin(), i_end = e.end(); 23376: i != i_end; ++i) { 23376: if (!seq[i.variable().id()].is_universe()) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: return Poly_Gen_Relation::subsumes(); 23376: } 23376: else { 23376: ((void) 0); 23376: const Generator::expr_type& e = g.expression(); 23376: for (Generator::expr_type::const_iterator i = e.begin(), i_end = e.end(); 23376: i != i_end; ++i) { 23376: const Variable v = i.variable(); 23376: switch (sgn(*i)) { 23376: case 1: 23376: if (!seq[v.id()].upper_is_boundary_infinity()) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: break; 23376: case 0: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: case -1: 23376: if (!seq[v.id()].lower_is_boundary_infinity()) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: break; 23376: } 23376: } 23376: return Poly_Gen_Relation::subsumes(); 23376: } 23376: } 23376: 23376: 23376: const Coefficient& g_divisor = g.divisor(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_g_coord; mpq_class& g_coord = holder_g_coord.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_bound; mpq_class& bound = holder_bound.item(); 23376: 23376: 23376: 23376: for (dimension_type i = g_space_dim; i-- > 0; ) { 23376: const ITV& seq_i = seq[i]; 23376: if (seq_i.is_universe()) { 23376: continue; 23376: } 23376: assign_r(g_coord.get_num(), g.coefficient(Variable(i)), ROUND_NOT_NEEDED); 23376: assign_r(g_coord.get_den(), g_divisor, ROUND_NOT_NEEDED); 23376: g_coord.canonicalize(); 23376: 23376: if (!seq_i.lower_is_boundary_infinity()) { 23376: assign_r(bound, seq_i.lower(), ROUND_NOT_NEEDED); 23376: if (g_coord <= bound) { 23376: if (seq_i.lower_is_open()) { 23376: if (g.is_point() || g_coord != bound) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: else if (g_coord != bound) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: } 23376: 23376: if (!seq_i.upper_is_boundary_infinity()) { 23376: assign_r(bound, seq_i.upper(), ROUND_NOT_NEEDED); 23376: if (g_coord >= bound) { 23376: if (seq_i.upper_is_open()) { 23376: if (g.is_point() || g_coord != bound) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: else if (g_coord != bound) { 23376: return Poly_Gen_Relation::nothing(); 23376: } 23376: } 23376: } 23376: } 23376: return Poly_Gen_Relation::subsumes(); 23376: } 23376: 23376: 23376: template 23376: bool 23376: Box::max_min(const Linear_Expression& expr, 23376: const bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, 23376: bool& included) const { 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible((maximize 23376: ? "maximize(e, ...)" 23376: : "minimize(e, ...)"), "e", expr); 23376: } 23376: 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: else { 23376: ext_n = expr.inhomogeneous_term(); 23376: ext_d = 1; 23376: included = true; 23376: return true; 23376: } 23376: } 23376: 23376: 23376: if (is_empty()) { 23376: return false; 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_result; mpq_class& result = holder_result.item(); 23376: assign_r(result, expr.inhomogeneous_term(), ROUND_NOT_NEEDED); 23376: bool is_included = true; 23376: const int maximize_sign = maximize ? 1 : -1; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_bound_i; mpq_class& bound_i = holder_bound_i.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_expr_i; mpq_class& expr_i = holder_expr_i.item(); 23376: for (Linear_Expression::const_iterator i = expr.begin(), 23376: i_end = expr.end(); i != i_end; ++i) { 23376: const ITV& seq_i = seq[i.variable().id()]; 23376: assign_r(expr_i, *i, ROUND_NOT_NEEDED); 23376: switch (sgn(expr_i) * maximize_sign) { 23376: case 1: 23376: if (seq_i.upper_is_boundary_infinity()) { 23376: return false; 23376: } 23376: assign_r(bound_i, seq_i.upper(), ROUND_NOT_NEEDED); 23376: add_mul_assign_r(result, bound_i, expr_i, ROUND_NOT_NEEDED); 23376: if (seq_i.upper_is_open()) { 23376: is_included = false; 23376: } 23376: break; 23376: case 0: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: case -1: 23376: if (seq_i.lower_is_boundary_infinity()) { 23376: return false; 23376: } 23376: assign_r(bound_i, seq_i.lower(), ROUND_NOT_NEEDED); 23376: add_mul_assign_r(result, bound_i, expr_i, ROUND_NOT_NEEDED); 23376: if (seq_i.lower_is_open()) { 23376: is_included = false; 23376: } 23376: break; 23376: } 23376: } 23376: 23376: ((void) 0); 23376: ext_n = result.get_num(); 23376: ext_d = result.get_den(); 23376: included = is_included; 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::max_min(const Linear_Expression& expr, 23376: const bool maximize, 23376: Coefficient& ext_n, Coefficient& ext_d, 23376: bool& included, 23376: Generator& g) const { 23376: if (!max_min(expr, maximize, ext_n, ext_d, included)) { 23376: return false; 23376: } 23376: 23376: Linear_Expression g_expr; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_g_divisor; Parma_Polyhedra_Library::Coefficient& g_divisor = holder_g_divisor.item(); 23376: g_divisor = 1; 23376: const int maximize_sign = maximize ? 1 : -1; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_g_coord; mpq_class& g_coord = holder_g_coord.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_lcm; Parma_Polyhedra_Library::Coefficient& lcm = holder_lcm.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_factor; Parma_Polyhedra_Library::Coefficient& factor = holder_factor.item(); 23376: 23376: 23376: for (dimension_type i = space_dimension(); i-- > 0; ) { 23376: const ITV& seq_i = seq[i]; 23376: switch (sgn(expr.coefficient(Variable(i))) * maximize_sign) { 23376: case 1: 23376: assign_r(g_coord, seq_i.upper(), ROUND_NOT_NEEDED); 23376: break; 23376: case 0: 23376: 23376: 23376: 23376: if (seq_i.contains(0)) { 23376: continue; 23376: } 23376: if (!seq_i.lower_is_boundary_infinity()) { 23376: if (seq_i.lower_is_open()) { 23376: if (!seq_i.upper_is_boundary_infinity()) { 23376: if (seq_i.upper_is_open()) { 23376: 23376: assign_r(g_coord, seq_i.lower(), ROUND_NOT_NEEDED); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_seq_i_upper; mpq_class& q_seq_i_upper = holder_q_seq_i_upper.item(); 23376: assign_r(q_seq_i_upper, seq_i.upper(), ROUND_NOT_NEEDED); 23376: g_coord += q_seq_i_upper; 23376: g_coord /= 2; 23376: } 23376: else { 23376: 23376: assign_r(g_coord, seq_i.upper(), ROUND_NOT_NEEDED); 23376: } 23376: } 23376: else { 23376: 23376: assign_r(g_coord, seq_i.lower(), ROUND_NOT_NEEDED); 23376: ++g_coord; 23376: } 23376: } 23376: else { 23376: 23376: assign_r(g_coord, seq_i.lower(), ROUND_NOT_NEEDED); 23376: } 23376: } 23376: else { 23376: 23376: 23376: ((void) 0); 23376: assign_r(g_coord, seq_i.upper(), ROUND_NOT_NEEDED); 23376: if (seq_i.upper_is_open()) { 23376: --g_coord; 23376: } 23376: } 23376: break; 23376: case -1: 23376: assign_r(g_coord, seq_i.lower(), ROUND_NOT_NEEDED); 23376: break; 23376: } 23376: 23376: assign_r(denom, g_coord.get_den(), ROUND_NOT_NEEDED); 23376: lcm_assign(lcm, g_divisor, denom); 23376: exact_div_assign(factor, lcm, g_divisor); 23376: g_expr *= factor; 23376: exact_div_assign(factor, lcm, denom); 23376: assign_r(numer, g_coord.get_num(), ROUND_NOT_NEEDED); 23376: numer *= factor; 23376: g_expr += numer * Variable(i); 23376: g_divisor = lcm; 23376: } 23376: g = Generator::point(g_expr, g_divisor); 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::contains(const Box& y) const { 23376: const Box& x = *this; 23376: 23376: if (x.space_dimension() != y.space_dimension()) { 23376: x.throw_dimension_incompatible("contains(y)", y); 23376: } 23376: 23376: 23376: if (y.is_empty()) { 23376: return true; 23376: } 23376: 23376: 23376: if (x.is_empty()) { 23376: return false; 23376: } 23376: 23376: for (dimension_type k = x.seq.size(); k-- > 0; ) { 23376: 23376: if (!x.seq[k].contains(y.seq[k])) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::is_disjoint_from(const Box& y) const { 23376: const Box& x = *this; 23376: 23376: if (x.space_dimension() != y.space_dimension()) { 23376: x.throw_dimension_incompatible("is_disjoint_from(y)", y); 23376: } 23376: 23376: 23376: 23376: if (x.marked_empty() || y.marked_empty()) { 23376: return true; 23376: } 23376: 23376: for (dimension_type k = x.seq.size(); k-- > 0; ) { 23376: 23376: if (x.seq[k].is_disjoint_from(y.seq[k])) { 23376: return true; 23376: } 23376: } 23376: return false; 23376: } 23376: 23376: template 23376: inline bool 23376: Box::upper_bound_assign_if_exact(const Box& y) { 23376: Box& x = *this; 23376: 23376: 23376: if (x.space_dimension() != y.space_dimension()) { 23376: x.throw_dimension_incompatible("upper_bound_assign_if_exact(y)", y); 23376: } 23376: 23376: 23376: if (y.is_empty()) { 23376: return true; 23376: } 23376: if (x.is_empty()) { 23376: x = y; 23376: return true; 23376: } 23376: 23376: bool x_j_does_not_contain_y_j = false; 23376: bool y_j_does_not_contain_x_j = false; 23376: 23376: for (dimension_type i = x.seq.size(); i-- > 0; ) { 23376: const ITV& x_seq_i = x.seq[i]; 23376: const ITV& y_seq_i = y.seq[i]; 23376: 23376: if (!x_seq_i.can_be_exactly_joined_to(y_seq_i)) { 23376: return false; 23376: } 23376: 23376: 23376: 23376: 23376: bool y_i_does_not_contain_x_i = !y_seq_i.contains(x_seq_i); 23376: if (y_i_does_not_contain_x_i && x_j_does_not_contain_y_j) { 23376: return false; 23376: } 23376: if (!x_seq_i.contains(y_seq_i)) { 23376: if (y_j_does_not_contain_x_j) { 23376: return false; 23376: } 23376: else { 23376: x_j_does_not_contain_y_j = true; 23376: } 23376: } 23376: if (y_i_does_not_contain_x_i) { 23376: y_j_does_not_contain_x_j = true; 23376: } 23376: } 23376: 23376: 23376: for (dimension_type k = x.seq.size(); k-- > 0; ) { 23376: x.seq[k].join_assign(y.seq[k]); 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::OK() const { 23376: if (status.test_empty_up_to_date() && !status.test_empty()) { 23376: Box tmp = *this; 23376: tmp.reset_empty_up_to_date(); 23376: if (tmp.check_empty()) { 23376: 23376: 23376: 23376: 23376: return false; 23376: } 23376: } 23376: 23376: 23376: if (!marked_empty()) { 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: if (!seq[k].OK()) { 23376: return false; 23376: } 23376: } 23376: } 23376: 23376: return true; 23376: } 23376: 23376: template 23376: dimension_type 23376: Box::affine_dimension() const { 23376: dimension_type d = space_dimension(); 23376: 23376: if (d == 0) { 23376: return 0; 23376: } 23376: 23376: 23376: if (is_empty()) { 23376: return 0; 23376: } 23376: 23376: for (dimension_type k = d; k-- > 0; ) { 23376: if (seq[k].is_singleton()) { 23376: --d; 23376: } 23376: } 23376: 23376: return d; 23376: } 23376: 23376: template 23376: bool 23376: Box::check_empty() const { 23376: ((void) 0); 23376: Box& x = const_cast&>(*this); 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: if (seq[k].is_empty()) { 23376: x.set_empty(); 23376: return true; 23376: } 23376: } 23376: x.set_nonempty(); 23376: return false; 23376: } 23376: 23376: template 23376: bool 23376: Box::is_universe() const { 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: if (!seq[k].is_universe()) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::is_topologically_closed() const { 23376: if (ITV::is_always_topologically_closed() || is_empty()) { 23376: return true; 23376: } 23376: 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: if (!seq[k].is_topologically_closed()) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::is_discrete() const { 23376: if (is_empty()) { 23376: return true; 23376: } 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: if (!seq[k].is_singleton()) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::is_bounded() const { 23376: if (is_empty()) { 23376: return true; 23376: } 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: if (!seq[k].is_bounded()) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::contains_integer_point() const { 23376: if (marked_empty()) { 23376: return false; 23376: } 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: if (!seq[k].contains_integer_point()) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::frequency(const Linear_Expression& expr, 23376: Coefficient& freq_n, Coefficient& freq_d, 23376: Coefficient& val_n, Coefficient& val_d) const { 23376: dimension_type space_dim = space_dimension(); 23376: 23376: if (space_dim < expr.space_dimension()) { 23376: throw_dimension_incompatible("frequency(e, ...)", "e", expr); 23376: } 23376: # 1552 "../../src/Box_templates.hh" 23376: if (space_dim == 0) { 23376: if (is_empty()) { 23376: return false; 23376: } 23376: freq_n = 0; 23376: freq_d = 1; 23376: val_n = expr.inhomogeneous_term(); 23376: val_d = 1; 23376: return true; 23376: } 23376: 23376: 23376: if (is_empty()) { 23376: return false; 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer; Parma_Polyhedra_Library::Coefficient& numer = holder_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; mpq_class& tmp = holder_tmp.item(); 23376: Coefficient c = expr.inhomogeneous_term(); 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_val_denom; Parma_Polyhedra_Library::Coefficient& val_denom = holder_val_denom.item(); 23376: val_denom = 1; 23376: 23376: for (Linear_Expression::const_iterator i = expr.begin(), i_end = expr.end(); 23376: i != i_end; ++i) { 23376: const ITV& seq_i = seq[i.variable().id()]; 23376: 23376: if (seq_i.is_singleton()) { 23376: 23376: assign_r(tmp, seq_i.lower(), ROUND_NOT_NEEDED); 23376: numer = tmp.get_num(); 23376: denom = tmp.get_den(); 23376: c *= denom; 23376: c += numer * val_denom * (*i); 23376: val_denom *= denom; 23376: continue; 23376: } 23376: 23376: return false; 23376: } 23376: 23376: 23376: freq_n = 0; 23376: freq_d = 1; 23376: 23376: 23376: normalize2(c, val_denom, val_n, val_d); 23376: return true; 23376: } 23376: 23376: template 23376: bool 23376: Box::constrains(Variable var) const { 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dimension() < var_space_dim) { 23376: throw_dimension_incompatible("constrains(v)", "v", var); 23376: } 23376: 23376: if (marked_empty() || !seq[var_space_dim-1].is_universe()) { 23376: return true; 23376: } 23376: 23376: return is_empty(); 23376: } 23376: 23376: template 23376: void 23376: Box::unconstrain(const Variables_Set& vars) { 23376: 23376: 23376: 23376: if (vars.empty()) { 23376: return; 23376: } 23376: 23376: 23376: const dimension_type min_space_dim = vars.space_dimension(); 23376: if (space_dimension() < min_space_dim) { 23376: throw_dimension_incompatible("unconstrain(vs)", min_space_dim); 23376: } 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: for (Variables_Set::const_iterator vsi = vars.begin(), 23376: vsi_end = vars.end(); vsi != vsi_end; ++vsi) { 23376: ITV& seq_vsi = seq[*vsi]; 23376: if (!seq_vsi.is_empty()) { 23376: seq_vsi.assign(UNIVERSE); 23376: } 23376: else { 23376: set_empty(); 23376: break; 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::topological_closure_assign() { 23376: if (ITV::is_always_topologically_closed() || is_empty()) { 23376: return; 23376: } 23376: 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: seq[k].topological_closure_assign(); 23376: } 23376: } 23376: 23376: template 23376: void 23376: Box::wrap_assign(const Variables_Set& vars, 23376: Bounded_Integer_Type_Width w, 23376: Bounded_Integer_Type_Representation r, 23376: Bounded_Integer_Type_Overflow o, 23376: const Constraint_System* cs_p, 23376: unsigned complexity_threshold, 23376: bool wrap_individually) { 23376: 23376: 23376: 23376: 23376: 23376: 23376: (void)(wrap_individually); 23376: (void)(complexity_threshold); 23376: Box& x = *this; 23376: 23376: 23376: const dimension_type vars_space_dim = vars.space_dimension(); 23376: if (cs_p != 0 && cs_p->space_dimension() > vars_space_dim) { 23376: std::ostringstream s; 23376: s << "PPL::Box::wrap_assign(vars, w, r, o, cs_p, ...):" 23376: << std::endl 23376: << "vars.space_dimension() == " << vars_space_dim 23376: << ", cs_p->space_dimension() == " << cs_p->space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: 23376: if (vars.empty()) { 23376: if (cs_p != 0) { 23376: refine_with_constraints(*cs_p); 23376: } 23376: return; 23376: } 23376: 23376: 23376: const dimension_type space_dim = x.space_dimension(); 23376: if (space_dim < vars_space_dim) { 23376: std::ostringstream s; 23376: s << "PPL::Box::wrap_assign(vars, ...):" 23376: << std::endl 23376: << "this->space_dimension() == " << space_dim 23376: << ", required space dimension == " << vars_space_dim << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: 23376: if (x.is_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_value; Parma_Polyhedra_Library::Coefficient& min_value = holder_min_value.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_value; Parma_Polyhedra_Library::Coefficient& max_value = holder_max_value.item(); 23376: if (r == UNSIGNED) { 23376: min_value = 0; 23376: mul_2exp_assign(max_value, Coefficient_one(), w); 23376: --max_value; 23376: } 23376: else { 23376: ((void) 0); 23376: mul_2exp_assign(max_value, Coefficient_one(), w-1); 23376: neg_assign(min_value, max_value); 23376: --max_value; 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_integer_quadrant_itv; ITV& integer_quadrant_itv = holder_integer_quadrant_itv.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_rational_quadrant_itv; ITV& rational_quadrant_itv = holder_rational_quadrant_itv.item(); 23376: { 23376: I_Constraint lower = i_constraint(GREATER_OR_EQUAL, min_value); 23376: I_Constraint upper = i_constraint(LESS_OR_EQUAL, max_value); 23376: integer_quadrant_itv.build(lower, upper); 23376: 23376: if (o == OVERFLOW_UNDEFINED) { 23376: ++max_value; 23376: upper = i_constraint(LESS_THAN, max_value); 23376: rational_quadrant_itv.build(lower, upper); 23376: } 23376: } 23376: 23376: const Variables_Set::const_iterator vs_end = vars.end(); 23376: 23376: if (cs_p == 0) { 23376: 23376: switch (o) { 23376: case OVERFLOW_WRAPS: 23376: for (Variables_Set::const_iterator i = vars.begin(); i != vs_end; ++i) { 23376: x.seq[*i].wrap_assign(w, r, integer_quadrant_itv); 23376: } 23376: reset_empty_up_to_date(); 23376: break; 23376: case OVERFLOW_UNDEFINED: 23376: for (Variables_Set::const_iterator i = vars.begin(); i != vs_end; ++i) { 23376: ITV& x_seq_v = x.seq[*i]; 23376: if (!rational_quadrant_itv.contains(x_seq_v)) { 23376: x_seq_v.assign(integer_quadrant_itv); 23376: } 23376: } 23376: break; 23376: case OVERFLOW_IMPOSSIBLE: 23376: for (Variables_Set::const_iterator i = vars.begin(); i != vs_end; ++i) { 23376: x.seq[*i].intersect_assign(integer_quadrant_itv); 23376: } 23376: reset_empty_up_to_date(); 23376: break; 23376: } 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: const Constraint_System& cs = *cs_p; 23376: 23376: typedef std::map > map_type; 23376: map_type var_cs_map; 23376: for (Constraint_System::const_iterator i = cs.begin(), 23376: i_end = cs.end(); i != i_end; ++i) { 23376: const Constraint& c = *i; 23376: dimension_type c_num_vars = 0; 23376: dimension_type c_only_var = 0; 23376: if (Box_Helpers::extract_interval_constraint(c, c_num_vars, c_only_var)) { 23376: if (c_num_vars == 1) { 23376: 23376: ((void) 0); 23376: 23376: if (vars.find(c_only_var) != vs_end) { 23376: var_cs_map[c_only_var].push_back(&c); 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: 23376: ((void) 0); 23376: x.set_empty(); 23376: return; 23376: } 23376: } 23376: } 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_refinement_itv; ITV& refinement_itv = holder_refinement_itv.item(); 23376: const map_type::const_iterator var_cs_map_end = var_cs_map.end(); 23376: 23376: for (Variables_Set::const_iterator i = vars.begin(); i != vs_end; ++i) { 23376: const dimension_type v = *i; 23376: refinement_itv = integer_quadrant_itv; 23376: 23376: map_type::const_iterator var_cs_map_iter = var_cs_map.find(v); 23376: if (var_cs_map_iter != var_cs_map_end) { 23376: 23376: const map_type::mapped_type& var_cs = var_cs_map_iter->second; 23376: for (dimension_type j = var_cs.size(); j-- > 0; ) { 23376: const Constraint& c = *var_cs[j]; 23376: refine_interval_no_check(refinement_itv, 23376: c.type(), 23376: c.inhomogeneous_term(), 23376: c.coefficient(Variable(v))); 23376: } 23376: } 23376: 23376: ITV& x_seq_v = x.seq[v]; 23376: switch (o) { 23376: case OVERFLOW_WRAPS: 23376: x_seq_v.wrap_assign(w, r, refinement_itv); 23376: break; 23376: case OVERFLOW_UNDEFINED: 23376: if (!rational_quadrant_itv.contains(x_seq_v)) { 23376: x_seq_v.assign(UNIVERSE); 23376: } 23376: break; 23376: case OVERFLOW_IMPOSSIBLE: 23376: x_seq_v.intersect_assign(refinement_itv); 23376: break; 23376: } 23376: } 23376: ((void) 0); 23376: 23376: } 23376: 23376: template 23376: void 23376: Box::drop_some_non_integer_points(Complexity_Class) { 23376: if (std::numeric_limits::is_integer 23376: && !ITV::info_type::store_open) { 23376: return; 23376: } 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: seq[k].drop_some_non_integer_points(); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::drop_some_non_integer_points(const Variables_Set& vars, 23376: Complexity_Class) { 23376: 23376: const dimension_type min_space_dim = vars.space_dimension(); 23376: if (space_dimension() < min_space_dim) { 23376: throw_dimension_incompatible("drop_some_non_integer_points(vs, cmpl)", 23376: min_space_dim); 23376: } 23376: if (std::numeric_limits::is_integer 23376: && !ITV::info_type::store_open) { 23376: return; 23376: } 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: for (Variables_Set::const_iterator v_i = vars.begin(), 23376: v_end = vars.end(); v_i != v_end; ++v_i) { 23376: seq[*v_i].drop_some_non_integer_points(); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::intersection_assign(const Box& y) { 23376: Box& x = *this; 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: x.throw_dimension_incompatible("intersection_assign(y)", y); 23376: } 23376: 23376: 23376: if (x.marked_empty()) { 23376: return; 23376: } 23376: if (y.marked_empty()) { 23376: x.set_empty(); 23376: return; 23376: } 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: 23376: 23376: reset_empty_up_to_date(); 23376: 23376: for (dimension_type k = space_dim; k-- > 0; ) { 23376: x.seq[k].intersect_assign(y.seq[k]); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::upper_bound_assign(const Box& y) { 23376: Box& x = *this; 23376: 23376: 23376: if (x.space_dimension() != y.space_dimension()) { 23376: x.throw_dimension_incompatible("upper_bound_assign(y)", y); 23376: } 23376: 23376: 23376: if (y.is_empty()) { 23376: return; 23376: } 23376: if (x.is_empty()) { 23376: x = y; 23376: return; 23376: } 23376: 23376: for (dimension_type k = x.seq.size(); k-- > 0; ) { 23376: x.seq[k].join_assign(y.seq[k]); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::concatenate_assign(const Box& y) { 23376: Box& x = *this; 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: const dimension_type y_space_dim = y.space_dimension(); 23376: 23376: 23376: if (y.marked_empty()) { 23376: x.set_empty(); 23376: } 23376: 23376: 23376: if (y_space_dim == 0) { 23376: return; 23376: } 23376: 23376: check_space_dimension_overflow(y.space_dimension(), 23376: max_space_dimension() - space_dimension(), 23376: "PPL::Box::", 23376: "concatenate_assign(y)", 23376: "concatenation exceeds the maximum " 23376: "allowed space dimension"); 23376: 23376: 23376: x.seq.reserve(x_space_dim + y_space_dim); 23376: 23376: 23376: 23376: if (x.marked_empty()) { 23376: x.seq.insert(x.seq.end(), y_space_dim, ITV(EMPTY)); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: std::copy(y.seq.begin(), y.seq.end(), 23376: std::back_insert_iterator(x.seq)); 23376: 23376: if (!y.status.test_empty_up_to_date()) { 23376: reset_empty_up_to_date(); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::difference_assign(const Box& y) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("difference_assign(y)", y); 23376: } 23376: 23376: Box& x = *this; 23376: if (x.is_empty() || y.is_empty()) { 23376: return; 23376: } 23376: switch (space_dim) { 23376: case 0: 23376: 23376: 23376: x.set_empty(); 23376: break; 23376: 23376: case 1: 23376: x.seq[0].difference_assign(y.seq[0]); 23376: if (x.seq[0].is_empty()) { 23376: x.set_empty(); 23376: } 23376: break; 23376: 23376: default: 23376: { 23376: dimension_type index_non_contained = space_dim; 23376: dimension_type number_non_contained = 0; 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: if (!y.seq[i].contains(x.seq[i])) { 23376: if (++number_non_contained == 1) { 23376: index_non_contained = i; 23376: } 23376: else { 23376: break; 23376: } 23376: } 23376: } 23376: 23376: switch (number_non_contained) { 23376: case 0: 23376: 23376: x.set_empty(); 23376: break; 23376: case 1: 23376: x.seq[index_non_contained] 23376: .difference_assign(y.seq[index_non_contained]); 23376: if (x.seq[index_non_contained].is_empty()) { 23376: x.set_empty(); 23376: } 23376: break; 23376: default: 23376: 23376: break; 23376: } 23376: } 23376: break; 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: bool 23376: Box::simplify_using_context_assign(const Box& y) { 23376: Box& x = *this; 23376: const dimension_type num_dims = x.space_dimension(); 23376: 23376: if (num_dims != y.space_dimension()) { 23376: x.throw_dimension_incompatible("simplify_using_context_assign(y)", y); 23376: } 23376: 23376: 23376: if (num_dims == 0) { 23376: if (y.marked_empty()) { 23376: x.set_nonempty(); 23376: return false; 23376: } 23376: else { 23376: return !x.marked_empty(); 23376: } 23376: } 23376: 23376: 23376: if (y.is_empty()) { 23376: for (dimension_type i = num_dims; i-- > 0; ) { 23376: x.seq[i].assign(UNIVERSE); 23376: } 23376: x.set_nonempty(); 23376: return false; 23376: } 23376: 23376: if (x.is_empty()) { 23376: 23376: for (dimension_type i = 0; i < num_dims; ++i) { 23376: if (y.seq[i].is_universe()) { 23376: x.seq[i].assign(UNIVERSE); 23376: } 23376: else { 23376: 23376: ITV& seq_i = x.seq[i]; 23376: seq_i.empty_intersection_assign(y.seq[i]); 23376: if (seq_i.is_empty()) { 23376: 23376: 23376: seq_i.assign(UNIVERSE); 23376: continue; 23376: } 23376: 23376: 23376: for (++i; i < num_dims; ++i) { 23376: x.seq[i].assign(UNIVERSE); 23376: } 23376: x.set_nonempty(); 23376: ((void) 0); 23376: return false; 23376: } 23376: } 23376: 23376: 23376: ((void) 0); 23376: return false; 23376: } 23376: 23376: 23376: for (dimension_type i = 0; i < num_dims; ++i) { 23376: if (!x.seq[i].simplify_using_context_assign(y.seq[i])) { 23376: ((void) 0); 23376: 23376: 23376: for (dimension_type j = num_dims; j-- > i; ) { 23376: x.seq[j].assign(UNIVERSE); 23376: } 23376: for (dimension_type j = i; j-- > 0; ) { 23376: x.seq[j].assign(UNIVERSE); 23376: } 23376: ((void) 0); 23376: return false; 23376: } 23376: } 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: Box::time_elapse_assign(const Box& y) { 23376: Box& x = *this; 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: x.throw_dimension_incompatible("time_elapse_assign(y)", y); 23376: } 23376: 23376: 23376: if (x_space_dim == 0) { 23376: if (y.marked_empty()) { 23376: x.set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: 23376: 23376: if (x.marked_empty() || y.marked_empty() 23376: || x.is_empty() || y.is_empty()) { 23376: x.set_empty(); 23376: return; 23376: } 23376: 23376: for (dimension_type i = x_space_dim; i-- > 0; ) { 23376: ITV& x_seq_i = x.seq[i]; 23376: const ITV& y_seq_i = y.seq[i]; 23376: if (!x_seq_i.lower_is_boundary_infinity()) { 23376: if (y_seq_i.lower_is_boundary_infinity() || y_seq_i.lower() < 0) { 23376: x_seq_i.lower_extend(); 23376: } 23376: } 23376: if (!x_seq_i.upper_is_boundary_infinity()) { 23376: if (y_seq_i.upper_is_boundary_infinity() || y_seq_i.upper() > 0) { 23376: x_seq_i.upper_extend(); 23376: } 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: inline void 23376: Box::remove_space_dimensions(const Variables_Set& vars) { 23376: 23376: 23376: 23376: if (vars.empty()) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: const dimension_type old_space_dim = space_dimension(); 23376: 23376: 23376: const dimension_type vsi_space_dim = vars.space_dimension(); 23376: if (old_space_dim < vsi_space_dim) { 23376: throw_dimension_incompatible("remove_space_dimensions(vs)", 23376: vsi_space_dim); 23376: } 23376: 23376: const dimension_type new_space_dim = old_space_dim - vars.size(); 23376: 23376: 23376: 23376: 23376: if (is_empty() || new_space_dim == 0) { 23376: seq.resize(new_space_dim); 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: 23376: 23376: Variables_Set::const_iterator vsi = vars.begin(); 23376: Variables_Set::const_iterator vsi_end = vars.end(); 23376: dimension_type dst = *vsi; 23376: dimension_type src = dst + 1; 23376: for (++vsi; vsi != vsi_end; ++vsi) { 23376: const dimension_type vsi_next = *vsi; 23376: 23376: while (src < vsi_next) { 23376: swap(seq[dst++], seq[src++]); 23376: } 23376: ++src; 23376: } 23376: 23376: 23376: while (src < old_space_dim) { 23376: swap(seq[dst++], seq[src++]); 23376: } 23376: 23376: ((void) 0); 23376: seq.resize(new_space_dim); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::remove_higher_space_dimensions(const dimension_type new_dimension) { 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: if (new_dimension > space_dim) { 23376: throw_dimension_incompatible("remove_higher_space_dimensions(nd)", 23376: new_dimension); 23376: } 23376: 23376: 23376: 23376: 23376: if (new_dimension == space_dim) { 23376: ((void) 0); 23376: return; 23376: } 23376: 23376: seq.resize(new_dimension); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Box::map_space_dimensions(const Partial_Function& pfunc) { 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: if (pfunc.has_empty_codomain()) { 23376: 23376: remove_higher_space_dimensions(0); 23376: return; 23376: } 23376: 23376: const dimension_type new_space_dim = pfunc.max_in_codomain() + 1; 23376: 23376: if (is_empty()) { 23376: remove_higher_space_dimensions(new_space_dim); 23376: return; 23376: } 23376: 23376: 23376: Box tmp(new_space_dim); 23376: 23376: for (dimension_type i = 0; i < space_dim; ++i) { 23376: dimension_type new_i; 23376: if (pfunc.maps(i, new_i)) { 23376: swap(seq[i], tmp.seq[new_i]); 23376: } 23376: } 23376: m_swap(tmp); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::fold_space_dimensions(const Variables_Set& vars, 23376: const Variable dest) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: if (dest.space_dimension() > space_dim) { 23376: throw_dimension_incompatible("fold_space_dimensions(vs, v)", "v", dest); 23376: } 23376: 23376: 23376: if (vars.empty()) { 23376: return; 23376: } 23376: 23376: 23376: if (vars.space_dimension() > space_dim) { 23376: throw_dimension_incompatible("fold_space_dimensions(vs, v)", 23376: vars.space_dimension()); 23376: } 23376: 23376: if (vars.find(dest.id()) != vars.end()) { 23376: throw_invalid_argument("fold_space_dimensions(vs, v)", 23376: "v should not occur in vs"); 23376: } 23376: 23376: 23376: if (!is_empty()) { 23376: 23376: 23376: ITV& seq_v = seq[dest.id()]; 23376: for (Variables_Set::const_iterator i = vars.begin(), 23376: vs_end = vars.end(); i != vs_end; ++i) { 23376: seq_v.join_assign(seq[*i]); 23376: } 23376: } 23376: remove_space_dimensions(vars); 23376: } 23376: 23376: template 23376: void 23376: Box::add_constraint_no_check(const Constraint& c) { 23376: ((void) 0); 23376: 23376: dimension_type c_num_vars = 0; 23376: dimension_type c_only_var = 0; 23376: 23376: if (!Box_Helpers::extract_interval_constraint(c, c_num_vars, c_only_var)) { 23376: throw_invalid_argument("add_constraint(c)", 23376: "c is not an interval constraint"); 23376: } 23376: 23376: 23376: 23376: if (c.is_strict_inequality() && c_num_vars != 0 23376: && ITV::is_always_topologically_closed()) { 23376: throw_invalid_argument("add_constraint(c)", 23376: "c is a nontrivial strict constraint"); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: const Coefficient& n = c.inhomogeneous_term(); 23376: if (c_num_vars == 0) { 23376: 23376: if (n < 0 23376: || (c.is_equality() && n != 0) 23376: || (c.is_strict_inequality() && n == 0)) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: const Coefficient& d = c.coefficient(Variable(c_only_var)); 23376: add_interval_constraint_no_check(c_only_var, c.type(), n, d); 23376: } 23376: 23376: template 23376: void 23376: Box::add_constraints_no_check(const Constraint_System& cs) { 23376: ((void) 0); 23376: 23376: 23376: 23376: for (Constraint_System::const_iterator i = cs.begin(), 23376: cs_end = cs.end(); i != cs_end; ++i) { 23376: add_constraint_no_check(*i); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::add_congruence_no_check(const Congruence& cg) { 23376: ((void) 0); 23376: 23376: 23376: if (cg.is_proper_congruence()) { 23376: if (cg.is_inconsistent()) { 23376: set_empty(); 23376: return; 23376: } 23376: else if (cg.is_tautological()) { 23376: return; 23376: } 23376: else { 23376: throw_invalid_argument("add_congruence(cg)", 23376: "cg is a nontrivial proper congruence"); 23376: } 23376: } 23376: 23376: ((void) 0); 23376: dimension_type cg_num_vars = 0; 23376: dimension_type cg_only_var = 0; 23376: 23376: if (!Box_Helpers::extract_interval_congruence(cg, cg_num_vars, cg_only_var)) { 23376: throw_invalid_argument("add_congruence(cg)", 23376: "cg is not an interval congruence"); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: const Coefficient& n = cg.inhomogeneous_term(); 23376: if (cg_num_vars == 0) { 23376: 23376: if (n != 0) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: const Coefficient& d = cg.coefficient(Variable(cg_only_var)); 23376: add_interval_constraint_no_check(cg_only_var, Constraint::EQUALITY, n, d); 23376: } 23376: 23376: template 23376: void 23376: Box::add_congruences_no_check(const Congruence_System& cgs) { 23376: ((void) 0); 23376: 23376: 23376: 23376: for (Congruence_System::const_iterator i = cgs.begin(), 23376: cgs_end = cgs.end(); i != cgs_end; ++i) { 23376: add_congruence_no_check(*i); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::refine_no_check(const Constraint& c) { 23376: ((void) 0); 23376: ((void) 0); 23376: 23376: dimension_type c_num_vars = 0; 23376: dimension_type c_only_var = 0; 23376: 23376: if (!Box_Helpers::extract_interval_constraint(c, c_num_vars, c_only_var)) { 23376: propagate_constraint_no_check(c); 23376: return; 23376: } 23376: 23376: const Coefficient& n = c.inhomogeneous_term(); 23376: if (c_num_vars == 0) { 23376: 23376: if (n < 0 23376: || (c.is_equality() && n != 0) 23376: || (c.is_strict_inequality() && n == 0)) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: const Coefficient& d = c.coefficient(Variable(c_only_var)); 23376: add_interval_constraint_no_check(c_only_var, c.type(), n, d); 23376: } 23376: 23376: template 23376: void 23376: Box::refine_no_check(const Constraint_System& cs) { 23376: ((void) 0); 23376: for (Constraint_System::const_iterator i = cs.begin(), 23376: cs_end = cs.end(); !marked_empty() && i != cs_end; ++i) { 23376: refine_no_check(*i); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::refine_no_check(const Congruence& cg) { 23376: ((void) 0); 23376: 23376: ((void) 0); 23376: 23376: if (cg.is_proper_congruence()) { 23376: 23376: 23376: if (cg.is_inconsistent()) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: Constraint c(cg); 23376: refine_no_check(c); 23376: } 23376: 23376: template 23376: void 23376: Box::refine_no_check(const Congruence_System& cgs) { 23376: ((void) 0); 23376: for (Congruence_System::const_iterator i = cgs.begin(), 23376: cgs_end = cgs.end(); !marked_empty() && i != cgs_end; ++i) { 23376: refine_no_check(*i); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: 23376: namespace Implementation { 23376: 23376: namespace Boxes { 23376: 23376: inline bool 23376: propagate_constraint_check_result(Result r, Ternary& open) { 23376: r = result_relation_class(r); 23376: switch (r) { 23376: case V_GT_MINUS_INFINITY: 23376: case V_LT_PLUS_INFINITY: 23376: return true; 23376: case V_LT: 23376: case V_GT: 23376: open = T_YES; 23376: return false; 23376: case V_LE: 23376: case V_GE: 23376: if (open == T_NO) { 23376: open = T_MAYBE; 23376: } 23376: return false; 23376: case V_EQ: 23376: return false; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: return true; 23376: } 23376: } 23376: 23376: } 23376: 23376: } 23376: 23376: 23376: template 23376: void 23376: Box::propagate_constraint_no_check(const Constraint& c) { 23376: using namespace Implementation::Boxes; 23376: 23376: ((void) 0); 23376: 23376: typedef 23376: typename Select_Temp_Boundary_Type::type 23376: Temp_Boundary_Type; 23376: 23376: const dimension_type c_space_dim = c.space_dimension(); 23376: const Constraint::Type c_type = c.type(); 23376: const Coefficient& c_inhomogeneous_term = c.inhomogeneous_term(); 23376: 23376: 23376: const dimension_type last_k 23376: = c.expression().last_nonzero(1, c_space_dim + 1); 23376: if (last_k == c_space_dim + 1) { 23376: 23376: if (c_inhomogeneous_term < 0 23376: || (c_inhomogeneous_term == 0 23376: && c_type != Constraint::NONSTRICT_INEQUALITY)) { 23376: set_empty(); 23376: } 23376: return; 23376: } 23376: 23376: 23376: ((void) 0); 23376: Temp_Boundary_Type t_bound; 23376: Temp_Boundary_Type t_a; 23376: Temp_Boundary_Type t_x; 23376: Ternary open; 23376: const Constraint::expr_type c_e = c.expression(); 23376: for (Constraint::expr_type::const_iterator k = c_e.begin(), 23376: k_end = c_e.lower_bound(Variable(last_k)); k != k_end; ++k) { 23376: const Coefficient& a_k = *k; 23376: const Variable k_var = k.variable(); 23376: const int sgn_a_k = sgn(a_k); 23376: if (sgn_a_k == 0) { 23376: continue; 23376: } 23376: Result r; 23376: if (sgn_a_k > 0) { 23376: open = (c_type == Constraint::STRICT_INEQUALITY) ? T_YES : T_NO; 23376: if (open == T_NO) { 23376: maybe_reset_fpu_inexact(); 23376: } 23376: r = assign_r(t_bound, c_inhomogeneous_term, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: r = neg_assign_r(t_bound, t_bound, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: for (Constraint::expr_type::const_iterator i = c_e.begin(), 23376: i_end = c_e.lower_bound(Variable(last_k)); i != i_end; ++i) { 23376: const Variable i_var = i.variable(); 23376: if (i_var.id() == k_var.id()) { 23376: continue; 23376: } 23376: const Coefficient& a_i = *i; 23376: const int sgn_a_i = sgn(a_i); 23376: ITV& x_i = seq[i_var.id()]; 23376: if (sgn_a_i < 0) { 23376: if (x_i.lower_is_boundary_infinity()) { 23376: goto maybe_refine_upper_1; 23376: } 23376: r = assign_r(t_a, a_i, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: r = assign_r(t_x, x_i.lower(), ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: if (x_i.lower_is_open()) { 23376: open = T_YES; 23376: } 23376: r = sub_mul_assign_r(t_bound, t_a, t_x, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: if (x_i.upper_is_boundary_infinity()) { 23376: goto maybe_refine_upper_1; 23376: } 23376: r = assign_r(t_a, a_i, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: r = assign_r(t_x, x_i.upper(), ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: if (x_i.upper_is_open()) { 23376: open = T_YES; 23376: } 23376: r = sub_mul_assign_r(t_bound, t_a, t_x, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: } 23376: } 23376: r = assign_r(t_a, a_k, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: r = div_assign_r(t_bound, t_bound, t_a, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_1; 23376: } 23376: 23376: 23376: if (open == T_MAYBE 23376: && maybe_check_fpu_inexact() == 1) { 23376: open = T_YES; 23376: } 23376: { 23376: const Relation_Symbol rel 23376: = (open == T_YES) ? GREATER_THAN : GREATER_OR_EQUAL; 23376: seq[k_var.id()].add_constraint(i_constraint(rel, t_bound)); 23376: } 23376: reset_empty_up_to_date(); 23376: maybe_refine_upper_1: 23376: if (c_type != Constraint::EQUALITY) { 23376: continue; 23376: } 23376: open = T_NO; 23376: maybe_reset_fpu_inexact(); 23376: r = assign_r(t_bound, c_inhomogeneous_term, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: r = neg_assign_r(t_bound, t_bound, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: for (Constraint::expr_type::const_iterator i = c_e.begin(), 23376: i_end = c_e.lower_bound(Variable(c_space_dim)); i != i_end; ++i) { 23376: const Variable i_var = i.variable(); 23376: if (i_var.id() == k_var.id()) { 23376: continue; 23376: } 23376: const Coefficient& a_i = *i; 23376: const int sgn_a_i = sgn(a_i); 23376: ITV& x_i = seq[i_var.id()]; 23376: if (sgn_a_i < 0) { 23376: if (x_i.upper_is_boundary_infinity()) { 23376: goto next_k; 23376: } 23376: r = assign_r(t_a, a_i, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: r = assign_r(t_x, x_i.upper(), ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: if (x_i.upper_is_open()) { 23376: open = T_YES; 23376: } 23376: r = sub_mul_assign_r(t_bound, t_a, t_x, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: if (x_i.lower_is_boundary_infinity()) { 23376: goto next_k; 23376: } 23376: r = assign_r(t_a, a_i, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: r = assign_r(t_x, x_i.lower(), ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: if (x_i.lower_is_open()) { 23376: open = T_YES; 23376: } 23376: r = sub_mul_assign_r(t_bound, t_a, t_x, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: } 23376: } 23376: r = assign_r(t_a, a_k, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: r = div_assign_r(t_bound, t_bound, t_a, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: 23376: 23376: if (open == T_MAYBE 23376: && maybe_check_fpu_inexact() == 1) { 23376: open = T_YES; 23376: } 23376: const Relation_Symbol rel 23376: = (open == T_YES) ? LESS_THAN : LESS_OR_EQUAL; 23376: seq[k_var.id()].add_constraint(i_constraint(rel, t_bound)); 23376: reset_empty_up_to_date(); 23376: } 23376: else { 23376: ((void) 0); 23376: open = (c_type == Constraint::STRICT_INEQUALITY) ? T_YES : T_NO; 23376: if (open == T_NO) { 23376: maybe_reset_fpu_inexact(); 23376: } 23376: r = assign_r(t_bound, c_inhomogeneous_term, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: r = neg_assign_r(t_bound, t_bound, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: for (Constraint::expr_type::const_iterator i = c_e.begin(), 23376: i_end = c_e.lower_bound(Variable(c_space_dim)); i != i_end; ++i) { 23376: const Variable i_var = i.variable(); 23376: if (i_var.id() == k_var.id()) { 23376: continue; 23376: } 23376: const Coefficient& a_i = *i; 23376: const int sgn_a_i = sgn(a_i); 23376: ITV& x_i = seq[i_var.id()]; 23376: if (sgn_a_i < 0) { 23376: if (x_i.lower_is_boundary_infinity()) { 23376: goto maybe_refine_upper_2; 23376: } 23376: r = assign_r(t_a, a_i, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: r = assign_r(t_x, x_i.lower(), ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: if (x_i.lower_is_open()) { 23376: open = T_YES; 23376: } 23376: r = sub_mul_assign_r(t_bound, t_a, t_x, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: if (x_i.upper_is_boundary_infinity()) { 23376: goto maybe_refine_upper_2; 23376: } 23376: r = assign_r(t_a, a_i, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: r = assign_r(t_x, x_i.upper(), ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: if (x_i.upper_is_open()) { 23376: open = T_YES; 23376: } 23376: r = sub_mul_assign_r(t_bound, t_a, t_x, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: } 23376: } 23376: r = assign_r(t_a, a_k, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: r = div_assign_r(t_bound, t_bound, t_a, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto maybe_refine_upper_2; 23376: } 23376: 23376: if (open == T_MAYBE 23376: && maybe_check_fpu_inexact() == 1) { 23376: open = T_YES; 23376: } 23376: { 23376: const Relation_Symbol rel 23376: = (open == T_YES) ? LESS_THAN : LESS_OR_EQUAL; 23376: seq[k_var.id()].add_constraint(i_constraint(rel, t_bound)); 23376: } 23376: reset_empty_up_to_date(); 23376: maybe_refine_upper_2: 23376: if (c_type != Constraint::EQUALITY) { 23376: continue; 23376: } 23376: open = T_NO; 23376: maybe_reset_fpu_inexact(); 23376: r = assign_r(t_bound, c_inhomogeneous_term, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: r = neg_assign_r(t_bound, t_bound, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: for (Constraint::expr_type::const_iterator i = c_e.begin(), 23376: i_end = c_e.lower_bound(Variable(c_space_dim)); i != i_end; ++i) { 23376: const Variable i_var = i.variable(); 23376: if (i_var.id() == k_var.id()) { 23376: continue; 23376: } 23376: const Coefficient& a_i = *i; 23376: const int sgn_a_i = sgn(a_i); 23376: ITV& x_i = seq[i_var.id()]; 23376: if (sgn_a_i < 0) { 23376: if (x_i.upper_is_boundary_infinity()) { 23376: goto next_k; 23376: } 23376: r = assign_r(t_a, a_i, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: r = assign_r(t_x, x_i.upper(), ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: if (x_i.upper_is_open()) { 23376: open = T_YES; 23376: } 23376: r = sub_mul_assign_r(t_bound, t_a, t_x, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: } 23376: else { 23376: ((void) 0); 23376: if (x_i.lower_is_boundary_infinity()) { 23376: goto next_k; 23376: } 23376: r = assign_r(t_a, a_i, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: r = assign_r(t_x, x_i.lower(), ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: if (x_i.lower_is_open()) { 23376: open = T_YES; 23376: } 23376: r = sub_mul_assign_r(t_bound, t_a, t_x, ROUND_UP); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: } 23376: } 23376: r = assign_r(t_a, a_k, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: r = div_assign_r(t_bound, t_bound, t_a, ROUND_DOWN); 23376: if (propagate_constraint_check_result(r, open)) { 23376: goto next_k; 23376: } 23376: 23376: 23376: if (open == T_MAYBE 23376: && maybe_check_fpu_inexact() == 1) { 23376: open = T_YES; 23376: } 23376: const Relation_Symbol rel 23376: = (open == T_YES) ? GREATER_THAN : GREATER_OR_EQUAL; 23376: seq[k_var.id()].add_constraint(i_constraint(rel, t_bound)); 23376: reset_empty_up_to_date(); 23376: } 23376: next_k: 23376: ; 23376: } 23376: } 23376: # 3027 "../../src/Box_templates.hh" 23376: template 23376: void 23376: Box 23376: ::propagate_constraints_no_check(const Constraint_System& cs, 23376: const dimension_type max_iterations) { 23376: const dimension_type space_dim = space_dimension(); 23376: ((void) 0); 23376: 23376: const Constraint_System::const_iterator cs_begin = cs.begin(); 23376: const Constraint_System::const_iterator cs_end = cs.end(); 23376: const dimension_type propagation_weight 23376: = Implementation::num_constraints(cs) * space_dim; 23376: 23376: Sequence copy; 23376: bool changed; 23376: dimension_type num_iterations = 0; 23376: do { 23376: do { } while (false); 23376: ++num_iterations; 23376: copy = seq; 23376: for (Constraint_System::const_iterator i = cs_begin; i != cs_end; ++i) { 23376: propagate_constraint_no_check(*i); 23376: } 23376: 23376: do { Weightwatch_Traits::weight += (40)*(propagation_weight); } while (false); 23376: 23376: 23376: 23376: maybe_abandon(); 23376: 23376: 23376: 23376: if (num_iterations == max_iterations) { 23376: break; 23376: } 23376: 23376: changed = (copy != seq); 23376: } while (changed); 23376: } 23376: 23376: template 23376: void 23376: Box::affine_image(const Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("affine_image(v, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("affine_image(v, e, d)", "e", expr); 23376: } 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dim < var_space_dim) { 23376: throw_dimension_incompatible("affine_image(v, e, d)", "v", var); 23376: } 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: Tmp_Interval_Type expr_value; 23376: Tmp_Interval_Type temp0; 23376: Tmp_Interval_Type temp1; 23376: expr_value.assign(expr.inhomogeneous_term()); 23376: for (Linear_Expression::const_iterator i = expr.begin(), 23376: i_end = expr.end(); i != i_end; ++i) { 23376: temp0.assign(*i); 23376: temp1.assign(seq[i.variable().id()]); 23376: temp0.mul_assign(temp0, temp1); 23376: expr_value.add_assign(expr_value, temp0); 23376: } 23376: if (denominator != 1) { 23376: temp0.assign(denominator); 23376: expr_value.div_assign(expr_value, temp0); 23376: } 23376: seq[var.id()].assign(expr_value); 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::affine_form_image(const Variable var, 23376: const Linear_Form& lf) { 23376: 23376: 23376: enum anonymous_enum_compile_time_check___LINE__ { compile_time_check_3121 = sizeof(Parma_Polyhedra_Library::Compile_Time_Check<(!std::numeric_limits ::is_exact)>) } 23376: 23376: ; 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: const dimension_type lf_space_dim = lf.space_dimension(); 23376: if (space_dim < lf_space_dim) { 23376: throw_dimension_incompatible("affine_form_image(var, lf)", "lf", lf); 23376: } 23376: 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dim < var_space_dim) { 23376: throw_dimension_incompatible("affine_form_image(var, lf)", "var", var); 23376: } 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: 23376: ITV result = lf.inhomogeneous_term(); 23376: for (dimension_type i = 0; i < lf_space_dim; ++i) { 23376: ITV current_addend = lf.coefficient(Variable(i)); 23376: const ITV& curr_int = seq[i]; 23376: current_addend *= curr_int; 23376: result += current_addend; 23376: } 23376: 23376: seq[var.id()].assign(result); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::affine_preimage(const Variable var, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference 23376: denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("affine_preimage(v, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: const dimension_type x_space_dim = space_dimension(); 23376: const dimension_type expr_space_dim = expr.space_dimension(); 23376: if (x_space_dim < expr_space_dim) { 23376: throw_dimension_incompatible("affine_preimage(v, e, d)", "e", expr); 23376: } 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (x_space_dim < var_space_dim) { 23376: throw_dimension_incompatible("affine_preimage(v, e, d)", "v", var); 23376: } 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: const Coefficient& expr_v = expr.coefficient(var); 23376: const bool invertible = (expr_v != 0); 23376: if (!invertible) { 23376: Tmp_Interval_Type expr_value; 23376: Tmp_Interval_Type temp0; 23376: Tmp_Interval_Type temp1; 23376: expr_value.assign(expr.inhomogeneous_term()); 23376: for (Linear_Expression::const_iterator i = expr.begin(), 23376: i_end = expr.end(); i != i_end; ++i) { 23376: temp0.assign(*i); 23376: temp1.assign(seq[i.variable().id()]); 23376: temp0.mul_assign(temp0, temp1); 23376: expr_value.add_assign(expr_value, temp0); 23376: } 23376: if (denominator != 1) { 23376: temp0.assign(denominator); 23376: expr_value.div_assign(expr_value, temp0); 23376: } 23376: ITV& x_seq_v = seq[var.id()]; 23376: expr_value.intersect_assign(x_seq_v); 23376: if (expr_value.is_empty()) { 23376: set_empty(); 23376: } 23376: else { 23376: x_seq_v.assign(UNIVERSE); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: Linear_Expression inverse; 23376: inverse -= expr; 23376: inverse += (expr_v + denominator) * var; 23376: affine_image(var, inverse, expr_v); 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box 23376: ::bounded_affine_image(const Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("bounded_affine_image(v, lb, ub, d)", "d == 0"); 23376: } 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: const dimension_type lb_space_dim = lb_expr.space_dimension(); 23376: if (space_dim < lb_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_image(v, lb, ub, d)", 23376: "lb", lb_expr); 23376: } 23376: const dimension_type ub_space_dim = ub_expr.space_dimension(); 23376: if (space_dim < ub_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_image(v, lb, ub, d)", 23376: "ub", ub_expr); 23376: } 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dim < var_space_dim) { 23376: throw_dimension_incompatible("affine_image(v, e, d)", "v", var); 23376: } 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: if (denominator > 0) { 23376: refine_with_constraint(lb_expr <= ub_expr); 23376: } 23376: else { 23376: refine_with_constraint(lb_expr >= ub_expr); 23376: } 23376: 23376: 23376: if (lb_expr.coefficient(var) == 0) { 23376: 23376: generalized_affine_image(var, 23376: LESS_OR_EQUAL, 23376: ub_expr, 23376: denominator); 23376: if (denominator > 0) { 23376: refine_with_constraint(lb_expr <= denominator*var); 23376: } 23376: else { 23376: refine_with_constraint(denominator*var <= lb_expr); 23376: } 23376: } 23376: else if (ub_expr.coefficient(var) == 0) { 23376: 23376: generalized_affine_image(var, 23376: GREATER_OR_EQUAL, 23376: lb_expr, 23376: denominator); 23376: if (denominator > 0) { 23376: refine_with_constraint(denominator*var <= ub_expr); 23376: } 23376: else { 23376: refine_with_constraint(ub_expr <= denominator*var); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_numer; Parma_Polyhedra_Library::Coefficient& max_numer = holder_max_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_denom; Parma_Polyhedra_Library::Coefficient& max_denom = holder_max_denom.item(); 23376: bool max_included; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_numer; Parma_Polyhedra_Library::Coefficient& min_numer = holder_min_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_denom; Parma_Polyhedra_Library::Coefficient& min_denom = holder_min_denom.item(); 23376: bool min_included; 23376: ITV& seq_v = seq[var.id()]; 23376: if (maximize(ub_expr, max_numer, max_denom, max_included)) { 23376: if (minimize(lb_expr, min_numer, min_denom, min_included)) { 23376: 23376: 23376: 23376: min_denom *= denominator; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q1; mpq_class& q1 = holder_q1.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q2; mpq_class& q2 = holder_q2.item(); 23376: assign_r(q1.get_num(), min_numer, ROUND_NOT_NEEDED); 23376: assign_r(q1.get_den(), min_denom, ROUND_NOT_NEEDED); 23376: q1.canonicalize(); 23376: 23376: 23376: max_denom *= denominator; 23376: assign_r(q2.get_num(), max_numer, ROUND_NOT_NEEDED); 23376: assign_r(q2.get_den(), max_denom, ROUND_NOT_NEEDED); 23376: q2.canonicalize(); 23376: 23376: if (denominator > 0) { 23376: Relation_Symbol gr = min_included ? GREATER_OR_EQUAL : GREATER_THAN; 23376: Relation_Symbol lr = max_included ? LESS_OR_EQUAL : LESS_THAN; 23376: seq_v.build(i_constraint(gr, q1), i_constraint(lr, q2)); 23376: } 23376: else { 23376: Relation_Symbol gr = max_included ? GREATER_OR_EQUAL : GREATER_THAN; 23376: Relation_Symbol lr = min_included ? LESS_OR_EQUAL : LESS_THAN; 23376: seq_v.build(i_constraint(gr, q2), i_constraint(lr, q1)); 23376: } 23376: } 23376: else { 23376: 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: max_denom *= denominator; 23376: assign_r(q.get_num(), max_numer, ROUND_NOT_NEEDED); 23376: assign_r(q.get_den(), max_denom, ROUND_NOT_NEEDED); 23376: q.canonicalize(); 23376: Relation_Symbol rel = (denominator > 0) 23376: ? (max_included ? LESS_OR_EQUAL : LESS_THAN) 23376: : (max_included ? GREATER_OR_EQUAL : GREATER_THAN); 23376: seq_v.build(i_constraint(rel, q)); 23376: } 23376: } 23376: else if (minimize(lb_expr, min_numer, min_denom, min_included)) { 23376: 23376: 23376: 23376: min_denom *= denominator; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: assign_r(q.get_num(), min_numer, ROUND_NOT_NEEDED); 23376: assign_r(q.get_den(), min_denom, ROUND_NOT_NEEDED); 23376: q.canonicalize(); 23376: 23376: Relation_Symbol rel = (denominator > 0) 23376: ? (min_included ? GREATER_OR_EQUAL : GREATER_THAN) 23376: : (min_included ? LESS_OR_EQUAL : LESS_THAN); 23376: seq_v.build(i_constraint(rel, q)); 23376: } 23376: else { 23376: 23376: 23376: 23376: seq_v.assign(UNIVERSE); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box 23376: ::bounded_affine_preimage(const Variable var, 23376: const Linear_Expression& lb_expr, 23376: const Linear_Expression& ub_expr, 23376: Coefficient_traits::const_reference denominator) { 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: if (denominator == 0) { 23376: throw_invalid_argument("bounded_affine_preimage(v, lb, ub, d)", "d == 0"); 23376: } 23376: 23376: 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dim < var_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_preimage(v, lb, ub, d)", 23376: "v", var); 23376: } 23376: 23376: 23376: const dimension_type lb_space_dim = lb_expr.space_dimension(); 23376: if (space_dim < lb_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_preimage(v, lb, ub, d)", 23376: "lb", lb_expr); 23376: } 23376: const dimension_type ub_space_dim = ub_expr.space_dimension(); 23376: if (space_dim < ub_space_dim) { 23376: throw_dimension_incompatible("bounded_affine_preimage(v, lb, ub, d)", 23376: "ub", ub_expr); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: const bool negative_denom = (denominator < 0); 23376: const Coefficient& lb_var_coeff = lb_expr.coefficient(var); 23376: const Coefficient& ub_var_coeff = ub_expr.coefficient(var); 23376: 23376: 23376: 23376: if (lb_var_coeff == ub_var_coeff) { 23376: if (negative_denom) { 23376: refine_with_constraint(lb_expr >= ub_expr); 23376: } 23376: else { 23376: refine_with_constraint(lb_expr <= ub_expr); 23376: } 23376: } 23376: 23376: ITV& seq_var = seq[var.id()]; 23376: if (!seq_var.is_universe()) { 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_pos_denominator; Parma_Polyhedra_Library::Coefficient& pos_denominator = holder_pos_denominator.item(); 23376: pos_denominator = denominator; 23376: if (negative_denom) { 23376: neg_assign(pos_denominator, pos_denominator); 23376: } 23376: 23376: 23376: bool open_lower = seq_var.lower_is_open(); 23376: bool unbounded_lower = seq_var.lower_is_boundary_infinity(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_seq_var_lower; mpq_class& q_seq_var_lower = holder_q_seq_var_lower.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer_lower; Parma_Polyhedra_Library::Coefficient& numer_lower = holder_numer_lower.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom_lower; Parma_Polyhedra_Library::Coefficient& denom_lower = holder_denom_lower.item(); 23376: if (!unbounded_lower) { 23376: assign_r(q_seq_var_lower, seq_var.lower(), ROUND_NOT_NEEDED); 23376: assign_r(numer_lower, q_seq_var_lower.get_num(), ROUND_NOT_NEEDED); 23376: assign_r(denom_lower, q_seq_var_lower.get_den(), ROUND_NOT_NEEDED); 23376: if (negative_denom) { 23376: neg_assign(denom_lower, denom_lower); 23376: } 23376: numer_lower *= pos_denominator; 23376: seq_var.lower_extend(); 23376: } 23376: bool open_upper = seq_var.upper_is_open(); 23376: bool unbounded_upper = seq_var.upper_is_boundary_infinity(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_seq_var_upper; mpq_class& q_seq_var_upper = holder_q_seq_var_upper.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_numer_upper; Parma_Polyhedra_Library::Coefficient& numer_upper = holder_numer_upper.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom_upper; Parma_Polyhedra_Library::Coefficient& denom_upper = holder_denom_upper.item(); 23376: if (!unbounded_upper) { 23376: assign_r(q_seq_var_upper, seq_var.upper(), ROUND_NOT_NEEDED); 23376: assign_r(numer_upper, q_seq_var_upper.get_num(), ROUND_NOT_NEEDED); 23376: assign_r(denom_upper, q_seq_var_upper.get_den(), ROUND_NOT_NEEDED); 23376: if (negative_denom) { 23376: neg_assign(denom_upper, denom_upper); 23376: } 23376: numer_upper *= pos_denominator; 23376: seq_var.upper_extend(); 23376: } 23376: 23376: if (!unbounded_lower) { 23376: 23376: 23376: 23376: Linear_Expression revised_lb_expr(ub_expr); 23376: revised_lb_expr -= ub_var_coeff * var; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; Parma_Polyhedra_Library::Coefficient& d = holder_d.item(); 23376: neg_assign(d, denom_lower); 23376: revised_lb_expr *= d; 23376: revised_lb_expr += numer_lower; 23376: 23376: 23376: 23376: bool included; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: if (minimize(revised_lb_expr, numer_lower, denom, included)) { 23376: denom_lower *= (denom * ub_var_coeff); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: assign_r(q.get_num(), numer_lower, ROUND_NOT_NEEDED); 23376: assign_r(q.get_den(), denom_lower, ROUND_NOT_NEEDED); 23376: q.canonicalize(); 23376: if (!included) { 23376: open_lower = true; 23376: } 23376: Relation_Symbol rel; 23376: if ((ub_var_coeff >= 0) ? !negative_denom : negative_denom) { 23376: rel = open_lower ? GREATER_THAN : GREATER_OR_EQUAL; 23376: } 23376: else { 23376: rel = open_lower ? LESS_THAN : LESS_OR_EQUAL; 23376: } 23376: seq_var.add_constraint(i_constraint(rel, q)); 23376: if (seq_var.is_empty()) { 23376: set_empty(); 23376: return; 23376: } 23376: } 23376: } 23376: 23376: if (!unbounded_upper) { 23376: 23376: 23376: 23376: Linear_Expression revised_ub_expr(lb_expr); 23376: revised_ub_expr -= lb_var_coeff * var; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; Parma_Polyhedra_Library::Coefficient& d = holder_d.item(); 23376: neg_assign(d, denom_upper); 23376: revised_ub_expr *= d; 23376: revised_ub_expr += numer_upper; 23376: 23376: 23376: 23376: bool included; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_denom; Parma_Polyhedra_Library::Coefficient& denom = holder_denom.item(); 23376: if (maximize(revised_ub_expr, numer_upper, denom, included)) { 23376: denom_upper *= (denom * lb_var_coeff); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q; mpq_class& q = holder_q.item(); 23376: assign_r(q.get_num(), numer_upper, ROUND_NOT_NEEDED); 23376: assign_r(q.get_den(), denom_upper, ROUND_NOT_NEEDED); 23376: q.canonicalize(); 23376: if (!included) { 23376: open_upper = true; 23376: } 23376: Relation_Symbol rel; 23376: if ((lb_var_coeff >= 0) ? !negative_denom : negative_denom) { 23376: rel = open_upper ? LESS_THAN : LESS_OR_EQUAL; 23376: } 23376: else { 23376: rel = open_upper ? GREATER_THAN : GREATER_OR_EQUAL; 23376: } 23376: seq_var.add_constraint(i_constraint(rel, q)); 23376: if (seq_var.is_empty()) { 23376: set_empty(); 23376: return; 23376: } 23376: } 23376: } 23376: } 23376: 23376: 23376: 23376: if (lb_var_coeff != ub_var_coeff) { 23376: if (denominator > 0) { 23376: refine_with_constraint(lb_expr <= ub_expr); 23376: } 23376: else { 23376: refine_with_constraint(lb_expr >= ub_expr); 23376: } 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box 23376: ::generalized_affine_image(const Variable var, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator) { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("generalized_affine_image(v, r, e, d)", "d == 0"); 23376: } 23376: 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim < expr.space_dimension()) { 23376: throw_dimension_incompatible("generalized_affine_image(v, r, e, d)", 23376: "e", expr); 23376: } 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dim < var_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(v, r, e, d)", 23376: "v", var); 23376: } 23376: 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_image(v, r, e, d)", 23376: "r is the disequality relation symbol"); 23376: } 23376: 23376: 23376: affine_image(var, expr, denominator); 23376: 23376: if (relsym == EQUAL) { 23376: 23376: return; 23376: } 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: ITV& seq_var = seq[var.id()]; 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: seq_var.lower_extend(); 23376: break; 23376: case LESS_THAN: 23376: seq_var.lower_extend(); 23376: if (!seq_var.upper_is_boundary_infinity()) { 23376: seq_var.remove_sup(); 23376: } 23376: break; 23376: case GREATER_OR_EQUAL: 23376: seq_var.upper_extend(); 23376: break; 23376: case GREATER_THAN: 23376: seq_var.upper_extend(); 23376: if (!seq_var.lower_is_boundary_infinity()) { 23376: seq_var.remove_inf(); 23376: } 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box 23376: ::generalized_affine_preimage(const Variable var, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& expr, 23376: Coefficient_traits::const_reference denominator) 23376: { 23376: 23376: if (denominator == 0) { 23376: throw_invalid_argument("generalized_affine_preimage(v, r, e, d)", 23376: "d == 0"); 23376: } 23376: 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim < expr.space_dimension()) { 23376: throw_dimension_incompatible("generalized_affine_preimage(v, r, e, d)", 23376: "e", expr); 23376: } 23376: 23376: const dimension_type var_space_dim = var.space_dimension(); 23376: if (space_dim < var_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_preimage(v, r, e, d)", 23376: "v", var); 23376: } 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_preimage(v, r, e, d)", 23376: "r is the disequality relation symbol"); 23376: } 23376: 23376: 23376: if (relsym == EQUAL) { 23376: affine_preimage(var, expr, denominator); 23376: return; 23376: } 23376: 23376: 23376: Relation_Symbol reversed_relsym; 23376: switch (relsym) { 23376: case LESS_THAN: 23376: reversed_relsym = GREATER_THAN; 23376: break; 23376: case LESS_OR_EQUAL: 23376: reversed_relsym = GREATER_OR_EQUAL; 23376: break; 23376: case GREATER_OR_EQUAL: 23376: reversed_relsym = LESS_OR_EQUAL; 23376: break; 23376: case GREATER_THAN: 23376: reversed_relsym = LESS_THAN; 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: 23376: 23376: const Coefficient& var_coefficient = expr.coefficient(var); 23376: if (var_coefficient != 0) { 23376: Linear_Expression inverse_expr 23376: = expr - (denominator + var_coefficient) * var; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_inverse_denominator; Parma_Polyhedra_Library::Coefficient& inverse_denominator = holder_inverse_denominator.item(); 23376: neg_assign(inverse_denominator, var_coefficient); 23376: Relation_Symbol inverse_relsym 23376: = (sgn(denominator) == sgn(inverse_denominator)) 23376: ? relsym 23376: : reversed_relsym; 23376: generalized_affine_image(var, inverse_relsym, inverse_expr, 23376: inverse_denominator); 23376: return; 23376: } 23376: # 3716 "../../src/Box_templates.hh" 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_numer; Parma_Polyhedra_Library::Coefficient& max_numer = holder_max_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_denom; Parma_Polyhedra_Library::Coefficient& max_denom = holder_max_denom.item(); 23376: bool max_included; 23376: bool bound_above = maximize(denominator*var, max_numer, max_denom, max_included); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_numer; Parma_Polyhedra_Library::Coefficient& min_numer = holder_min_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_denom; Parma_Polyhedra_Library::Coefficient& min_denom = holder_min_denom.item(); 23376: bool min_included; 23376: bool bound_below = minimize(denominator*var, min_numer, min_denom, min_included); 23376: 23376: const Relation_Symbol corrected_relsym 23376: = (denominator > 0) ? relsym : reversed_relsym; 23376: 23376: 23376: Linear_Expression revised_expr; 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; Parma_Polyhedra_Library::Coefficient& d = holder_d.item(); 23376: if (corrected_relsym == LESS_THAN || corrected_relsym == LESS_OR_EQUAL) { 23376: if (bound_below) { 23376: revised_expr = expr; 23376: revised_expr.set_inhomogeneous_term(Coefficient_zero()); 23376: revised_expr *= d; 23376: } 23376: } 23376: else { 23376: if (bound_above) { 23376: revised_expr = expr; 23376: revised_expr.set_inhomogeneous_term(Coefficient_zero()); 23376: revised_expr *= max_denom; 23376: } 23376: } 23376: 23376: switch (corrected_relsym) { 23376: case LESS_THAN: 23376: if (bound_below) { 23376: refine_with_constraint(min_numer < revised_expr); 23376: } 23376: break; 23376: case LESS_OR_EQUAL: 23376: if (bound_below) { 23376: (min_included) 23376: ? refine_with_constraint(min_numer <= revised_expr) 23376: : refine_with_constraint(min_numer < revised_expr); 23376: } 23376: break; 23376: case GREATER_OR_EQUAL: 23376: if (bound_above) { 23376: (max_included) 23376: ? refine_with_constraint(max_numer >= revised_expr) 23376: : refine_with_constraint(max_numer > revised_expr); 23376: } 23376: break; 23376: case GREATER_THAN: 23376: if (bound_above) { 23376: refine_with_constraint(max_numer > revised_expr); 23376: } 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: ITV& seq_v = seq[var.id()]; 23376: seq_v.assign(UNIVERSE); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box 23376: ::generalized_affine_image(const Linear_Expression& lhs, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& rhs) { 23376: 23376: 23376: 23376: dimension_type lhs_space_dim = lhs.space_dimension(); 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim < lhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(e1, r, e2)", 23376: "e1", lhs); 23376: } 23376: 23376: 23376: const dimension_type rhs_space_dim = rhs.space_dimension(); 23376: if (space_dim < rhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(e1, r, e2)", 23376: "e2", rhs); 23376: } 23376: 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_image(e1, r, e2)", 23376: "r is the disequality relation symbol"); 23376: } 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_numer; Parma_Polyhedra_Library::Coefficient& max_numer = holder_max_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_max_denom; Parma_Polyhedra_Library::Coefficient& max_denom = holder_max_denom.item(); 23376: bool max_included; 23376: bool max_rhs = maximize(rhs, max_numer, max_denom, max_included); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_numer; Parma_Polyhedra_Library::Coefficient& min_numer = holder_min_numer.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_min_denom; Parma_Polyhedra_Library::Coefficient& min_denom = holder_min_denom.item(); 23376: bool min_included; 23376: bool min_rhs = minimize(rhs, min_numer, min_denom, min_included); 23376: 23376: 23376: 23376: 23376: 23376: bool has_var = false; 23376: dimension_type has_var_id = lhs.last_nonzero(); 23376: 23376: if (has_var_id != 0) { 23376: has_var = true; 23376: --has_var_id; 23376: dimension_type other_var = lhs.first_nonzero(1, has_var_id + 1); 23376: --other_var; 23376: if (other_var != has_var_id) { 23376: 23376: 23376: ITV& seq_var = seq[has_var_id]; 23376: seq_var.assign(UNIVERSE); 23376: 23376: 23376: 23376: ITV& seq_i = seq[other_var]; 23376: seq_i.assign(UNIVERSE); 23376: ((void) 0); 23376: return; 23376: } 23376: } 23376: 23376: if (has_var) { 23376: 23376: ITV& seq_var = seq[has_var_id]; 23376: 23376: 23376: 23376: const Coefficient& inhomo = lhs.inhomogeneous_term(); 23376: const Coefficient& coeff = lhs.coefficient(Variable(has_var_id)); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_max; mpq_class& q_max = holder_q_max.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_q_min; mpq_class& q_min = holder_q_min.item(); 23376: if (max_rhs) { 23376: max_numer -= inhomo * max_denom; 23376: max_denom *= coeff; 23376: assign_r(q_max.get_num(), max_numer, ROUND_NOT_NEEDED); 23376: assign_r(q_max.get_den(), max_denom, ROUND_NOT_NEEDED); 23376: q_max.canonicalize(); 23376: } 23376: if (min_rhs) { 23376: min_numer -= inhomo * min_denom; 23376: min_denom *= coeff; 23376: assign_r(q_min.get_num(), min_numer, ROUND_NOT_NEEDED); 23376: assign_r(q_min.get_den(), min_denom, ROUND_NOT_NEEDED); 23376: q_min.canonicalize(); 23376: } 23376: 23376: 23376: 23376: if (coeff > 0) { 23376: 23376: switch (relsym) { 23376: case LESS_OR_EQUAL: 23376: if (max_rhs) { 23376: Relation_Symbol rel = max_included ? LESS_OR_EQUAL : LESS_THAN; 23376: seq_var.build(i_constraint(rel, q_max)); 23376: } 23376: else { 23376: seq_var.assign(UNIVERSE); 23376: } 23376: break; 23376: case LESS_THAN: 23376: if (max_rhs) { 23376: seq_var.build(i_constraint(LESS_THAN, q_max)); 23376: } 23376: else { 23376: seq_var.assign(UNIVERSE); 23376: } 23376: break; 23376: case EQUAL: 23376: { 23376: I_Constraint l; 23376: I_Constraint u; 23376: if (max_rhs) { 23376: u.set(max_included ? LESS_OR_EQUAL : LESS_THAN, q_max); 23376: } 23376: if (min_rhs) { 23376: l.set(min_included ? GREATER_OR_EQUAL : GREATER_THAN, q_min); 23376: } 23376: seq_var.build(l, u); 23376: break; 23376: } 23376: case GREATER_OR_EQUAL: 23376: if (min_rhs) { 23376: Relation_Symbol rel = min_included ? GREATER_OR_EQUAL : GREATER_THAN; 23376: seq_var.build(i_constraint(rel, q_min)); 23376: } 23376: else { 23376: seq_var.assign(UNIVERSE); 23376: } 23376: break; 23376: case GREATER_THAN: 23376: if (min_rhs) { 23376: seq_var.build(i_constraint(GREATER_THAN, q_min)); 23376: } 23376: else { 23376: seq_var.assign(UNIVERSE); 23376: } 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: else { 23376: 23376: switch (relsym) { 23376: case GREATER_OR_EQUAL: 23376: if (min_rhs) { 23376: Relation_Symbol rel = min_included ? LESS_OR_EQUAL : LESS_THAN; 23376: seq_var.build(i_constraint(rel, q_min)); 23376: } 23376: else { 23376: seq_var.assign(UNIVERSE); 23376: } 23376: break; 23376: case GREATER_THAN: 23376: if (min_rhs) { 23376: seq_var.build(i_constraint(LESS_THAN, q_min)); 23376: } 23376: else { 23376: seq_var.assign(UNIVERSE); 23376: } 23376: break; 23376: case EQUAL: 23376: { 23376: I_Constraint l; 23376: I_Constraint u; 23376: if (max_rhs) { 23376: l.set(max_included ? GREATER_OR_EQUAL : GREATER_THAN, q_max); 23376: } 23376: if (min_rhs) { 23376: u.set(min_included ? LESS_OR_EQUAL : LESS_THAN, q_min); 23376: } 23376: seq_var.build(l, u); 23376: break; 23376: } 23376: case LESS_OR_EQUAL: 23376: if (max_rhs) { 23376: Relation_Symbol rel = max_included ? GREATER_OR_EQUAL : GREATER_THAN; 23376: seq_var.build(i_constraint(rel, q_max)); 23376: } 23376: else { 23376: seq_var.assign(UNIVERSE); 23376: } 23376: break; 23376: case LESS_THAN: 23376: if (max_rhs) { 23376: seq_var.build(i_constraint(GREATER_THAN, q_max)); 23376: } 23376: else { 23376: seq_var.assign(UNIVERSE); 23376: } 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: } 23376: 23376: else { 23376: 23376: 23376: const Coefficient& inhomo = lhs.inhomogeneous_term(); 23376: switch (relsym) { 23376: case LESS_THAN: 23376: refine_with_constraint(inhomo < rhs); 23376: break; 23376: case LESS_OR_EQUAL: 23376: refine_with_constraint(inhomo <= rhs); 23376: break; 23376: case EQUAL: 23376: refine_with_constraint(inhomo == rhs); 23376: break; 23376: case GREATER_OR_EQUAL: 23376: refine_with_constraint(inhomo >= rhs); 23376: break; 23376: case GREATER_THAN: 23376: refine_with_constraint(inhomo > rhs); 23376: break; 23376: default: 23376: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: void 23376: Box::generalized_affine_preimage(const Linear_Expression& lhs, 23376: const Relation_Symbol relsym, 23376: const Linear_Expression& rhs) { 23376: 23376: 23376: 23376: dimension_type lhs_space_dim = lhs.space_dimension(); 23376: const dimension_type space_dim = space_dimension(); 23376: if (space_dim < lhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(e1, r, e2)", 23376: "e1", lhs); 23376: } 23376: 23376: 23376: const dimension_type rhs_space_dim = rhs.space_dimension(); 23376: if (space_dim < rhs_space_dim) { 23376: throw_dimension_incompatible("generalized_affine_image(e1, r, e2)", 23376: "e2", rhs); 23376: } 23376: 23376: 23376: if (relsym == NOT_EQUAL) { 23376: throw_invalid_argument("generalized_affine_image(e1, r, e2)", 23376: "r is the disequality relation symbol"); 23376: } 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: 23376: Linear_Expression revised_lhs = lhs; 23376: Linear_Expression revised_rhs = rhs; 23376: for (Linear_Expression::const_iterator i = lhs.begin(), 23376: i_end = lhs.end(); i != i_end; ++i) { 23376: const Variable var = i.variable(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_tmp; Parma_Polyhedra_Library::Coefficient& tmp = holder_tmp.item(); 23376: tmp = *i; 23376: tmp += rhs.coefficient(var); 23376: sub_mul_assign(revised_rhs, tmp, var); 23376: sub_mul_assign(revised_lhs, tmp, var); 23376: } 23376: generalized_affine_image(revised_lhs, relsym, revised_rhs); 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: typename Enable_If >::value 23376: && Is_Same_Or_Derived::value, 23376: void>::type 23376: Box::CC76_widening_assign(const T& y, Iterator first, Iterator last) { 23376: if (y.is_empty()) { 23376: return; 23376: } 23376: for (dimension_type i = seq.size(); i-- > 0; ) { 23376: seq[i].CC76_widening_assign(y.seq[i], first, last); 23376: } 23376: 23376: ((void) 0); 23376: } 23376: 23376: template 23376: template 23376: typename Enable_If >::value 23376: && Is_Same_Or_Derived::value, 23376: void>::type 23376: Box::CC76_widening_assign(const T& y, unsigned* tp) { 23376: static typename ITV::boundary_type stop_points[] = { 23376: typename ITV::boundary_type(-2), 23376: typename ITV::boundary_type(-1), 23376: typename ITV::boundary_type(0), 23376: typename ITV::boundary_type(1), 23376: typename ITV::boundary_type(2) 23376: }; 23376: 23376: Box& x = *this; 23376: 23376: if (tp != 0 && *tp > 0) { 23376: Box x_tmp(x); 23376: x_tmp.CC76_widening_assign(y, 0); 23376: 23376: if (!x.contains(x_tmp)) { 23376: --(*tp); 23376: } 23376: return; 23376: } 23376: x.CC76_widening_assign(y, 23376: stop_points, 23376: stop_points 23376: + sizeof(stop_points)/sizeof(stop_points[0])); 23376: } 23376: 23376: template 23376: void 23376: Box::get_limiting_box(const Constraint_System& cs, 23376: Box& limiting_box) const { 23376: 23376: ((void) 0); 23376: 23376: for (Constraint_System::const_iterator cs_i = cs.begin(), 23376: cs_end = cs.end(); cs_i != cs_end; ++cs_i) { 23376: const Constraint& c = *cs_i; 23376: dimension_type c_num_vars = 0; 23376: dimension_type c_only_var = 0; 23376: 23376: if (!Box_Helpers::extract_interval_constraint(c, c_num_vars, c_only_var)) { 23376: continue; 23376: } 23376: 23376: if (c_num_vars != 0) { 23376: 23376: 23376: const Coefficient& n = c.inhomogeneous_term(); 23376: const Coefficient& d = c.coefficient(Variable(c_only_var)); 23376: if (interval_relation(seq[c_only_var], c.type(), n, d) 23376: == Poly_Con_Relation::is_included()) { 23376: limiting_box.add_interval_constraint_no_check(c_only_var, c.type(), 23376: n, d); 23376: } 23376: } 23376: } 23376: } 23376: 23376: template 23376: void 23376: Box::limited_CC76_extrapolation_assign(const Box& y, 23376: const Constraint_System& cs, 23376: unsigned* tp) { 23376: Box& x = *this; 23376: const dimension_type space_dim = x.space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("limited_CC76_extrapolation_assign(y, cs)", 23376: y); 23376: } 23376: 23376: const dimension_type cs_space_dim = cs.space_dimension(); 23376: if (space_dim < cs_space_dim) { 23376: throw_constraint_incompatible("limited_CC76_extrapolation_assign(y, cs)"); 23376: } 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: ((void) 0); 23376: 23376: 23376: if (marked_empty()) { 23376: return; 23376: } 23376: 23376: if (y.marked_empty()) { 23376: return; 23376: } 23376: 23376: 23376: Box limiting_box(space_dim, UNIVERSE); 23376: get_limiting_box(cs, limiting_box); 23376: 23376: x.CC76_widening_assign(y, tp); 23376: 23376: 23376: intersection_assign(limiting_box); 23376: } 23376: 23376: template 23376: template 23376: typename Enable_If >::value 23376: && Is_Same_Or_Derived::value, 23376: void>::type 23376: Box::CC76_narrowing_assign(const T& y) { 23376: const dimension_type space_dim = space_dimension(); 23376: 23376: 23376: if (space_dim != y.space_dimension()) { 23376: throw_dimension_incompatible("CC76_narrowing_assign(y)", y); 23376: } 23376: 23376: 23376: ((void) 0); 23376: 23376: 23376: 23376: if (space_dim == 0) { 23376: return; 23376: } 23376: 23376: if (y.is_empty()) { 23376: return; 23376: } 23376: 23376: if (is_empty()) { 23376: return; 23376: } 23376: 23376: 23376: for (dimension_type i = space_dim; i-- > 0; ) { 23376: ITV& x_i = seq[i]; 23376: const ITV& y_i = y.seq[i]; 23376: if (!x_i.lower_is_boundary_infinity() 23376: && !y_i.lower_is_boundary_infinity() 23376: && x_i.lower() != y_i.lower()) { 23376: x_i.lower() = y_i.lower(); 23376: } 23376: if (!x_i.upper_is_boundary_infinity() 23376: && !y_i.upper_is_boundary_infinity() 23376: && x_i.upper() != y_i.upper()) { 23376: x_i.upper() = y_i.upper(); 23376: } 23376: } 23376: ((void) 0); 23376: } 23376: 23376: template 23376: Constraint_System 23376: Box::constraints() const { 23376: const dimension_type space_dim = space_dimension(); 23376: Constraint_System cs; 23376: cs.set_space_dimension(space_dim); 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: cs = Constraint_System::zero_dim_empty(); 23376: } 23376: return cs; 23376: } 23376: 23376: if (marked_empty()) { 23376: cs.insert(Constraint::zero_dim_false()); 23376: return cs; 23376: } 23376: 23376: for (dimension_type k = 0; k < space_dim; ++k) { 23376: const Variable v_k = Variable(k); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_n; Parma_Polyhedra_Library::Coefficient& n = holder_n.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; Parma_Polyhedra_Library::Coefficient& d = holder_d.item(); 23376: bool closed = false; 23376: if (has_lower_bound(v_k, n, d, closed)) { 23376: if (closed) { 23376: cs.insert(d * v_k >= n); 23376: } 23376: else { 23376: cs.insert(d * v_k > n); 23376: } 23376: } 23376: if (has_upper_bound(v_k, n, d, closed)) { 23376: if (closed) { 23376: cs.insert(d * v_k <= n); 23376: } 23376: else { 23376: cs.insert(d * v_k < n); 23376: } 23376: } 23376: } 23376: return cs; 23376: } 23376: 23376: template 23376: Constraint_System 23376: Box::minimized_constraints() const { 23376: const dimension_type space_dim = space_dimension(); 23376: Constraint_System cs; 23376: cs.set_space_dimension(space_dim); 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: cs = Constraint_System::zero_dim_empty(); 23376: } 23376: return cs; 23376: } 23376: 23376: 23376: if (is_empty()) { 23376: cs.insert(Constraint::zero_dim_false()); 23376: return cs; 23376: } 23376: 23376: for (dimension_type k = 0; k < space_dim; ++k) { 23376: const Variable v_k = Variable(k); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_n; Parma_Polyhedra_Library::Coefficient& n = holder_n.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; Parma_Polyhedra_Library::Coefficient& d = holder_d.item(); 23376: bool closed = false; 23376: if (has_lower_bound(v_k, n, d, closed)) { 23376: if (closed) { 23376: 23376: if (seq[k].is_singleton()) { 23376: cs.insert(d * v_k == n); 23376: continue; 23376: } 23376: else { 23376: cs.insert(d * v_k >= n); 23376: } 23376: } 23376: else { 23376: cs.insert(d * v_k > n); 23376: } 23376: } 23376: if (has_upper_bound(v_k, n, d, closed)) { 23376: if (closed) { 23376: cs.insert(d * v_k <= n); 23376: } 23376: else { 23376: cs.insert(d * v_k < n); 23376: } 23376: } 23376: } 23376: return cs; 23376: } 23376: 23376: template 23376: Congruence_System 23376: Box::congruences() const { 23376: const dimension_type space_dim = space_dimension(); 23376: Congruence_System cgs(space_dim); 23376: 23376: if (space_dim == 0) { 23376: if (marked_empty()) { 23376: cgs = Congruence_System::zero_dim_empty(); 23376: } 23376: return cgs; 23376: } 23376: 23376: 23376: if (is_empty()) { 23376: cgs.insert(Congruence::zero_dim_false()); 23376: return cgs; 23376: } 23376: 23376: for (dimension_type k = 0; k < space_dim; ++k) { 23376: const Variable v_k = Variable(k); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_n; Parma_Polyhedra_Library::Coefficient& n = holder_n.item(); 23376: Parma_Polyhedra_Library::Dirty_Temp holder_d; Parma_Polyhedra_Library::Coefficient& d = holder_d.item(); 23376: bool closed = false; 23376: if (has_lower_bound(v_k, n, d, closed) && closed) { 23376: 23376: if (seq[k].is_singleton()) { 23376: cgs.insert((d * v_k %= n) / 0); 23376: } 23376: } 23376: } 23376: return cgs; 23376: } 23376: 23376: template 23376: memory_size_type 23376: Box::external_memory_in_bytes() const { 23376: memory_size_type n = seq.capacity() * sizeof(ITV); 23376: for (dimension_type k = seq.size(); k-- > 0; ) { 23376: n += seq[k].external_memory_in_bytes(); 23376: } 23376: return n; 23376: } 23376: 23376: 23376: template 23376: std::ostream& 23376: IO_Operators::operator<<(std::ostream& s, const Box& box) { 23376: if (box.is_empty()) { 23376: s << "false"; 23376: } 23376: else if (box.is_universe()) { 23376: s << "true"; 23376: } 23376: else { 23376: for (dimension_type k = 0, 23376: space_dim = box.space_dimension(); k < space_dim; ) { 23376: s << Variable(k) << " in " << box[k]; 23376: ++k; 23376: if (k < space_dim) { 23376: s << ", "; 23376: } 23376: else { 23376: break; 23376: } 23376: } 23376: } 23376: return s; 23376: } 23376: 23376: template 23376: void 23376: Box::ascii_dump(std::ostream& s) const { 23376: const char separator = ' '; 23376: status.ascii_dump(s); 23376: const dimension_type space_dim = space_dimension(); 23376: s << "space_dim" << separator << space_dim; 23376: s << "\n"; 23376: for (dimension_type i = 0; i < space_dim; ++i) { 23376: seq[i].ascii_dump(s); 23376: } 23376: } 23376: 23376: template void Box::ascii_dump() const { ascii_dump(std::cerr); } template void Box::print() const { using IO_Operators::operator<<; std::cerr << *this; } 23376: 23376: template 23376: bool 23376: Box::ascii_load(std::istream& s) { 23376: if (!status.ascii_load(s)) { 23376: return false; 23376: } 23376: std::string str; 23376: dimension_type space_dim; 23376: if (!(s >> str) || str != "space_dim") { 23376: return false; 23376: } 23376: if (!(s >> space_dim)) { 23376: return false; 23376: } 23376: seq.clear(); 23376: ITV seq_i; 23376: for (dimension_type i = 0; i < space_dim; ++i) { 23376: if (seq_i.ascii_load(s)) { 23376: seq.push_back(seq_i); 23376: } 23376: else { 23376: return false; 23376: } 23376: } 23376: 23376: 23376: ((void) 0); 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: Box::throw_dimension_incompatible(const char* method, 23376: const Box& y) const { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << this->space_dimension() 23376: << ", y->space_dimension() == " << y.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box 23376: ::throw_dimension_incompatible(const char* method, 23376: dimension_type required_dim) const { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", required dimension == " << required_dim << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box::throw_dimension_incompatible(const char* method, 23376: const Constraint& c) const { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", c->space_dimension == " << c.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box::throw_dimension_incompatible(const char* method, 23376: const Congruence& cg) const { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", cg->space_dimension == " << cg.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box::throw_dimension_incompatible(const char* method, 23376: const Constraint_System& cs) const { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", cs->space_dimension == " << cs.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box::throw_dimension_incompatible(const char* method, 23376: const Congruence_System& cgs) const { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", cgs->space_dimension == " << cgs.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box::throw_dimension_incompatible(const char* method, 23376: const Generator& g) const { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", g->space_dimension == " << g.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box::throw_constraint_incompatible(const char* method) { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << "the constraint is incompatible."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box::throw_expression_too_complex(const char* method, 23376: const Linear_Expression& le) { 23376: using namespace IO_Operators; 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << le << " is too complex."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box::throw_dimension_incompatible(const char* method, 23376: const char* le_name, 23376: const Linear_Expression& le) const { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", " << le_name << "->space_dimension() == " 23376: << le.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: template 23376: void 23376: Box::throw_dimension_incompatible(const char* method, 23376: const char* lf_name, 23376: const Linear_Form& lf) const { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":\n" 23376: << "this->space_dimension() == " << space_dimension() 23376: << ", " << lf_name << "->space_dimension() == " 23376: << lf.space_dimension() << "."; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: template 23376: void 23376: Box::throw_invalid_argument(const char* method, const char* reason) { 23376: std::ostringstream s; 23376: s << "PPL::Box::" << method << ":" << std::endl 23376: << reason; 23376: throw std::invalid_argument(s.str()); 23376: } 23376: 23376: 23376: 23376: 23376: template 23376: bool 23376: l_m_distance_assign(Checked_Number& r, 23376: const Box& x, const Box& y, 23376: const Rounding_Dir dir, 23376: Temp& tmp0, Temp& tmp1, Temp& tmp2) { 23376: const dimension_type x_space_dim = x.space_dimension(); 23376: 23376: if (x_space_dim != y.space_dimension()) { 23376: return false; 23376: } 23376: 23376: if (x_space_dim == 0) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: } 23376: else { 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: } 23376: return true; 23376: } 23376: 23376: 23376: (void) x.is_empty(); 23376: (void) y.is_empty(); 23376: 23376: 23376: if (x.marked_empty() || y.marked_empty()) { 23376: if (x.marked_empty() == y.marked_empty()) { 23376: assign_r(r, 0, ROUND_NOT_NEEDED); 23376: return true; 23376: } 23376: else { 23376: goto pinf; 23376: } 23376: } 23376: 23376: assign_r(tmp0, 0, ROUND_NOT_NEEDED); 23376: for (dimension_type i = x_space_dim; i-- > 0; ) { 23376: const ITV& x_i = x.seq[i]; 23376: const ITV& y_i = y.seq[i]; 23376: 23376: if (x_i.lower_is_boundary_infinity()) { 23376: if (!y_i.lower_is_boundary_infinity()) { 23376: goto pinf; 23376: } 23376: } 23376: else if (y_i.lower_is_boundary_infinity()) { 23376: goto pinf; 23376: } 23376: else { 23376: const Temp* tmp1p; 23376: const Temp* tmp2p; 23376: if (x_i.lower() > y_i.lower()) { 23376: maybe_assign(tmp1p, tmp1, x_i.lower(), dir); 23376: maybe_assign(tmp2p, tmp2, y_i.lower(), inverse(dir)); 23376: } 23376: else { 23376: maybe_assign(tmp1p, tmp1, y_i.lower(), dir); 23376: maybe_assign(tmp2p, tmp2, x_i.lower(), inverse(dir)); 23376: } 23376: sub_assign_r(tmp1, *tmp1p, *tmp2p, dir); 23376: ((void) 0); 23376: Specialization::combine(tmp0, tmp1, dir); 23376: } 23376: 23376: if (x_i.upper_is_boundary_infinity()) { 23376: if (y_i.upper_is_boundary_infinity()) { 23376: continue; 23376: } 23376: else { 23376: goto pinf; 23376: } 23376: } 23376: else if (y_i.upper_is_boundary_infinity()) { 23376: goto pinf; 23376: } 23376: else { 23376: const Temp* tmp1p; 23376: const Temp* tmp2p; 23376: if (x_i.upper() > y_i.upper()) { 23376: maybe_assign(tmp1p, tmp1, x_i.upper(), dir); 23376: maybe_assign(tmp2p, tmp2, y_i.upper(), inverse(dir)); 23376: } 23376: else { 23376: maybe_assign(tmp1p, tmp1, y_i.upper(), dir); 23376: maybe_assign(tmp2p, tmp2, x_i.upper(), inverse(dir)); 23376: } 23376: sub_assign_r(tmp1, *tmp1p, *tmp2p, dir); 23376: ((void) 0); 23376: Specialization::combine(tmp0, tmp1, dir); 23376: } 23376: } 23376: Specialization::finalize(tmp0, dir); 23376: assign_r(r, tmp0, dir); 23376: return true; 23376: 23376: pinf: 23376: assign_r(r, PLUS_INFINITY, ROUND_NOT_NEEDED); 23376: return true; 23376: } 23376: 23376: } 23376: # 2287 "../../src/Box_defs.hh" 2 23376: # 30 "../../src/Linear_Form_templates.hh" 2 23376: 23376: 23376: # 1 "/usr/include/c++/8/cmath" 1 3 23376: # 39 "/usr/include/c++/8/cmath" 3 23376: 23376: # 40 "/usr/include/c++/8/cmath" 3 23376: # 33 "../../src/Linear_Form_templates.hh" 2 23376: 23376: namespace Parma_Polyhedra_Library { 23376: 23376: template 23376: Linear_Form::Linear_Form(const Variable v) 23376: : vec() { 23376: const dimension_type space_dim = v.space_dimension(); 23376: if (space_dim > max_space_dimension()) { 23376: throw std::length_error("Linear_Form::" 23376: "Linear_Form(v):\n" 23376: "v exceeds the maximum allowed " 23376: "space dimension."); 23376: } 23376: vec.reserve(compute_capacity(space_dim+1, vec_type().max_size())); 23376: vec.resize(space_dim+1, zero); 23376: vec[v.space_dimension()] = C(typename C::boundary_type(1)); 23376: } 23376: 23376: template 23376: Linear_Form::Linear_Form(const Variable v, const Variable w) 23376: : vec() { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: const dimension_type w_space_dim = w.space_dimension(); 23376: const dimension_type space_dim = std::max(v_space_dim, w_space_dim); 23376: if (space_dim > max_space_dimension()) { 23376: throw std::length_error("Linear_Form::" 23376: "Linear_Form(v, w):\n" 23376: "v or w exceed the maximum allowed " 23376: "space dimension."); 23376: } 23376: vec.reserve(compute_capacity(space_dim+1, vec_type().max_size())); 23376: vec.resize(space_dim+1, zero); 23376: if (v_space_dim != w_space_dim) { 23376: vec[v_space_dim] = C(typename C::boundary_type(1)); 23376: vec[w_space_dim] = C(typename C::boundary_type(-1)); 23376: } 23376: } 23376: 23376: template 23376: Linear_Form::Linear_Form(const Linear_Expression& e) 23376: : vec() { 23376: const dimension_type space_dim = e.space_dimension(); 23376: if (space_dim > max_space_dimension()) { 23376: throw std::length_error("Linear_Form::" 23376: "Linear_Form(e):\n" 23376: "e exceeds the maximum allowed " 23376: "space dimension."); 23376: } 23376: vec.reserve(compute_capacity(space_dim+1, vec_type().max_size())); 23376: vec.resize(space_dim+1); 23376: for (dimension_type i = space_dim; i-- > 0; ) 23376: vec[i+1] = e.coefficient(Variable(i)); 23376: vec[0] = e.inhomogeneous_term(); 23376: } 23376: 23376: 23376: template 23376: Linear_Form 23376: operator+(const Linear_Form& f1, const Linear_Form& f2) { 23376: dimension_type f1_size = f1.size(); 23376: dimension_type f2_size = f2.size(); 23376: dimension_type min_size; 23376: dimension_type max_size; 23376: const Linear_Form* p_e_max; 23376: if (f1_size > f2_size) { 23376: min_size = f2_size; 23376: max_size = f1_size; 23376: p_e_max = &f1; 23376: } 23376: else { 23376: min_size = f1_size; 23376: max_size = f2_size; 23376: p_e_max = &f2; 23376: } 23376: 23376: Linear_Form r(max_size, false); 23376: dimension_type i = max_size; 23376: while (i > min_size) { 23376: --i; 23376: r[i] = p_e_max->vec[i]; 23376: } 23376: while (i > 0) { 23376: --i; 23376: r[i] = f1[i]; 23376: r[i] += f2[i]; 23376: } 23376: return r; 23376: } 23376: 23376: 23376: template 23376: Linear_Form 23376: operator+(const Variable v, const Linear_Form& f) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: if (v_space_dim > Linear_Form::max_space_dimension()) { 23376: throw std::length_error("Linear_Form " 23376: "operator+(v, f):\n" 23376: "v exceeds the maximum allowed " 23376: "space dimension."); 23376: } 23376: Linear_Form r(f); 23376: if (v_space_dim > f.space_dimension()) { 23376: r.extend(v_space_dim+1); 23376: } 23376: r[v_space_dim] += C(typename C::boundary_type(1)); 23376: return r; 23376: } 23376: 23376: 23376: template 23376: Linear_Form 23376: operator+(const C& n, const Linear_Form& f) { 23376: Linear_Form r(f); 23376: r[0] += n; 23376: return r; 23376: } 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const Linear_Form& f) { 23376: Linear_Form r(f); 23376: for (dimension_type i = f.size(); i-- > 0; ) { 23376: r[i].neg_assign(r[i]); 23376: } 23376: return r; 23376: } 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const Linear_Form& f1, const Linear_Form& f2) { 23376: dimension_type f1_size = f1.size(); 23376: dimension_type f2_size = f2.size(); 23376: if (f1_size > f2_size) { 23376: Linear_Form r(f1_size, false); 23376: dimension_type i = f1_size; 23376: while (i > f2_size) { 23376: --i; 23376: r[i] = f1[i]; 23376: } 23376: while (i > 0) { 23376: --i; 23376: r[i] = f1[i]; 23376: r[i] -= f2[i]; 23376: } 23376: return r; 23376: } 23376: else { 23376: Linear_Form r(f2_size, false); 23376: dimension_type i = f2_size; 23376: while (i > f1_size) { 23376: --i; 23376: r[i].neg_assign(f2[i]); 23376: } 23376: while (i > 0) { 23376: --i; 23376: r[i] = f1[i]; 23376: r[i] -= f2[i]; 23376: } 23376: return r; 23376: } 23376: } 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const Variable v, const Linear_Form& f) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: if (v_space_dim > Linear_Form::max_space_dimension()) { 23376: throw std::length_error("Linear_Form " 23376: "operator-(v, e):\n" 23376: "v exceeds the maximum allowed " 23376: "space dimension."); 23376: } 23376: Linear_Form r(f); 23376: if (v_space_dim > f.space_dimension()) { 23376: r.extend(v_space_dim+1); 23376: } 23376: for (dimension_type i = f.size(); i-- > 0; ) { 23376: r[i].neg_assign(r[i]); 23376: } 23376: r[v_space_dim] += C(typename C::boundary_type(1)); 23376: return r; 23376: } 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const Linear_Form& f, const Variable v) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: if (v_space_dim > Linear_Form::max_space_dimension()) { 23376: throw std::length_error("Linear_Form " 23376: "operator-(e, v):\n" 23376: "v exceeds the maximum allowed " 23376: "space dimension."); 23376: } 23376: Linear_Form r(f); 23376: if (v_space_dim > f.space_dimension()) { 23376: r.extend(v_space_dim+1); 23376: } 23376: r[v_space_dim] -= C(typename C::boundary_type(1)); 23376: return r; 23376: } 23376: 23376: 23376: template 23376: Linear_Form 23376: operator-(const C& n, const Linear_Form& f) { 23376: Linear_Form r(f); 23376: for (dimension_type i = f.size(); i-- > 0; ) { 23376: r[i].neg_assign(r[i]); 23376: } 23376: r[0] += n; 23376: return r; 23376: } 23376: 23376: 23376: template 23376: Linear_Form 23376: operator*(const C& n, const Linear_Form& f) { 23376: Linear_Form r(f); 23376: for (dimension_type i = f.size(); i-- > 0; ) { 23376: r[i] *= n; 23376: } 23376: return r; 23376: } 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator+=(Linear_Form& f1, const Linear_Form& f2) { 23376: dimension_type f1_size = f1.size(); 23376: dimension_type f2_size = f2.size(); 23376: if (f1_size < f2_size) { 23376: f1.extend(f2_size); 23376: } 23376: for (dimension_type i = f2_size; i-- > 0; ) { 23376: f1[i] += f2[i]; 23376: } 23376: return f1; 23376: } 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator+=(Linear_Form& f, const Variable v) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: if (v_space_dim > Linear_Form::max_space_dimension()) { 23376: throw std::length_error("Linear_Form& " 23376: "operator+=(e, v):\n" 23376: "v exceeds the maximum allowed space dimension."); 23376: } 23376: if (v_space_dim > f.space_dimension()) { 23376: f.extend(v_space_dim+1); 23376: } 23376: f[v_space_dim] += C(typename C::boundary_type(1)); 23376: return f; 23376: } 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator-=(Linear_Form& f1, const Linear_Form& f2) { 23376: dimension_type f1_size = f1.size(); 23376: dimension_type f2_size = f2.size(); 23376: if (f1_size < f2_size) { 23376: f1.extend(f2_size); 23376: } 23376: for (dimension_type i = f2_size; i-- > 0; ) { 23376: f1[i] -= f2[i]; 23376: } 23376: return f1; 23376: } 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator-=(Linear_Form& f, const Variable v) { 23376: const dimension_type v_space_dim = v.space_dimension(); 23376: if (v_space_dim > Linear_Form::max_space_dimension()) { 23376: throw std::length_error("Linear_Form& " 23376: "operator-=(e, v):\n" 23376: "v exceeds the maximum allowed space dimension."); 23376: } 23376: if (v_space_dim > f.space_dimension()) { 23376: f.extend(v_space_dim+1); 23376: } 23376: f[v_space_dim] -= C(typename C::boundary_type(1)); 23376: return f; 23376: } 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator*=(Linear_Form& f, const C& n) { 23376: dimension_type f_size = f.size(); 23376: for (dimension_type i = f_size; i-- > 0; ) { 23376: f[i] *= n; 23376: } 23376: return f; 23376: } 23376: 23376: 23376: template 23376: Linear_Form& 23376: operator/=(Linear_Form& f, const C& n) { 23376: dimension_type f_size = f.size(); 23376: for (dimension_type i = f_size; i-- > 0; ) { 23376: f[i] /= n; 23376: } 23376: return f; 23376: } 23376: 23376: 23376: template 23376: inline bool 23376: operator==(const Linear_Form& x, const Linear_Form& y) { 23376: const dimension_type x_size = x.size(); 23376: const dimension_type y_size = y.size(); 23376: if (x_size >= y_size) { 23376: for (dimension_type i = y_size; i-- > 0; ) { 23376: if (x[i] != y[i]) { 23376: return false; 23376: } 23376: } 23376: for (dimension_type i = x_size; --i >= y_size; ) { 23376: if (x[i] != x.zero) { 23376: return false; 23376: } 23376: } 23376: } 23376: else { 23376: for (dimension_type i = x_size; i-- > 0; ) { 23376: if (x[i] != y[i]) { 23376: return false; 23376: } 23376: } 23376: for (dimension_type i = y_size; --i >= x_size; ) { 23376: if (y[i] != x.zero) { 23376: return false; 23376: } 23376: } 23376: 23376: } 23376: 23376: return true; 23376: } 23376: 23376: template 23376: void 23376: Linear_Form::negate() { 23376: for (dimension_type i = vec.size(); i-- > 0; ) { 23376: vec[i].neg_assign(vec[i]); 23376: } 23376: return; 23376: } 23376: 23376: template 23376: inline memory_size_type 23376: Linear_Form::external_memory_in_bytes() const { 23376: memory_size_type n = 0; 23376: for (dimension_type i = size(); i-- > 0; ) { 23376: n += vec[i].external_memory_in_bytes(); 23376: } 23376: n += vec.capacity()*sizeof(C); 23376: return n; 23376: } 23376: 23376: template 23376: bool 23376: Linear_Form::OK() const { 23376: for (dimension_type i = size(); i-- > 0; ) { 23376: if (!vec[i].OK()) { 23376: return false; 23376: } 23376: } 23376: return true; 23376: } 23376: 23376: 23376: template 23376: void 23376: Linear_Form::relative_error( 23376: const Floating_Point_Format analyzed_format, 23376: Linear_Form& result) const { 23376: typedef typename C::boundary_type analyzer_format; 23376: 23376: 23376: unsigned int f_base; 23376: unsigned int f_mantissa_bits; 23376: switch (analyzed_format) { 23376: case IEEE754_HALF: 23376: f_base = float_ieee754_half::BASE; 23376: f_mantissa_bits = float_ieee754_half::MANTISSA_BITS; 23376: break; 23376: case IEEE754_SINGLE: 23376: f_base = float_ieee754_single::BASE; 23376: f_mantissa_bits = float_ieee754_single::MANTISSA_BITS; 23376: break; 23376: case IEEE754_DOUBLE: 23376: f_base = float_ieee754_double::BASE; 23376: f_mantissa_bits = float_ieee754_double::MANTISSA_BITS; 23376: break; 23376: case IBM_SINGLE: 23376: f_base = float_ibm_single::BASE; 23376: f_mantissa_bits = float_ibm_single::MANTISSA_BITS; 23376: break; 23376: case IEEE754_QUAD: 23376: f_base = float_ieee754_quad::BASE; 23376: f_mantissa_bits = float_ieee754_quad::MANTISSA_BITS; 23376: break; 23376: case INTEL_DOUBLE_EXTENDED: 23376: f_base = float_intel_double_extended::BASE; 23376: f_mantissa_bits = float_intel_double_extended::MANTISSA_BITS; 23376: break; 23376: default: 23376: Parma_Polyhedra_Library::ppl_unreachable(); 23376: break; 23376: } 23376: 23376: C error_propagator; 23376: 23376: unsigned int u_power = msb_position(f_base) * f_mantissa_bits; 23376: int neg_power = -static_cast(u_power); 23376: analyzer_format lb = static_cast(ldexp(1.0, neg_power)); 23376: 23376: error_propagator.build(i_constraint(GREATER_OR_EQUAL, -lb), 23376: i_constraint(LESS_OR_EQUAL, lb)); 23376: 23376: 23376: const C* current_term = &inhomogeneous_term(); 23376: 23376: # 465 "../../src/Linear_Form_templates.hh" 3 4 23376: (static_cast (0)) 23376: # 465 "../../src/Linear_Form_templates.hh" 23376: ; 23376: 23376: C current_multiplier(std::max(std::abs(current_term->lower()), 23376: std::abs(current_term->upper()))); 23376: Linear_Form current_result_term(current_multiplier); 23376: current_result_term *= error_propagator; 23376: result = Linear_Form(current_result_term); 23376: 23376: 23376: dimension_type dimension = space_dimension(); 23376: for (dimension_type i = 0; i < dimension; ++i) { 23376: current_term = &coefficient(Variable(i)); 23376: 23376: # 477 "../../src/Linear_Form_templates.hh" 3 4 23376: (static_cast (0)) 23376: # 477 "../../src/Linear_Form_templates.hh" 23376: ; 23376: current_multiplier = C(std::max(std::abs(current_term->lower()), 23376: std::abs(current_term->upper()))); 23376: current_result_term = Linear_Form(Variable(i)); 23376: current_result_term *= current_multiplier; 23376: current_result_term *= error_propagator; 23376: result += current_result_term; 23376: } 23376: 23376: return; 23376: } 23376: 23376: template 23376: template 23376: bool 23376: Linear_Form::intervalize(const FP_Oracle& oracle, 23376: C& result) const { 23376: result = C(inhomogeneous_term()); 23376: dimension_type dimension = space_dimension(); 23376: for (dimension_type i = 0; i < dimension; ++i) { 23376: C current_addend = coefficient(Variable(i)); 23376: C curr_int; 23376: if (!oracle.get_interval(i, curr_int)) { 23376: return false; 23376: } 23376: current_addend *= curr_int; 23376: result += current_addend; 23376: } 23376: 23376: return true; 23376: } 23376: 23376: 23376: template 23376: std::ostream& 23376: IO_Operators::operator<<(std::ostream& s, const Linear_Form& f) { 23376: const dimension_type num_variables = f.space_dimension(); 23376: bool first = true; 23376: for (dimension_type v = 0; v < num_variables; ++v) { 23376: const C& fv = f[v+1]; 23376: if (fv != typename C::boundary_type(0)) { 23376: if (first) { 23376: if (fv == typename C::boundary_type(-1)) { 23376: s << "-"; 23376: } 23376: else if (fv != typename C::boundary_type(1)) { 23376: s << fv << "*"; 23376: } 23376: first = false; 23376: } 23376: else { 23376: if (fv == typename C::boundary_type(-1)) { 23376: s << " - "; 23376: } 23376: else { 23376: s << " + "; 23376: if (fv != typename C::boundary_type(1)) { 23376: s << fv << "*"; 23376: } 23376: } 23376: } 23376: s << Variable(v); 23376: } 23376: } 23376: 23376: const C& it = f[0]; 23376: if (it != 0) { 23376: if (!first) { 23376: s << " + "; 23376: } 23376: else { 23376: first = false; 23376: } 23376: s << it; 23376: } 23376: 23376: if (first) { 23376: 23376: s << Linear_Form::zero; 23376: } 23376: return s; 23376: } 23376: 23376: template void Linear_Form::ascii_dump() const { ascii_dump(std::cerr); } template void Linear_Form::print() const { using IO_Operators::operator<<; std::cerr << *this; } 23376: 23376: template 23376: C Linear_Form::zero(typename C::boundary_type(0)); 23376: 23376: } 23376: # 10 "../../src/ppl_include_files.hh" 2 23376: # 1 "../../src/linearize.hh" 1 23376: # 27 "../../src/linearize.hh" 23376: # 1 "../../src/Concrete_Expression_defs.hh" 1 23376: # 31 "../../src/Concrete_Expression_defs.hh" 23376: namespace Parma_Polyhedra_Library { 23376: 23376: 23376: class Concrete_Expression_Type { 23376: public: 23376: 23376: 23376: 23376: 23376: static Concrete_Expression_Type 23376: bounded_integer(Bounded_Integer_Type_Width width, 23376: Bounded_Integer_Type_Representation representation, 23376: Bounded_Integer_Type_Overflow overflow); 23376: 23376: 23376: 23376: 23376: static Concrete_Expression_Type 23376: floating_point(Floating_Point_Format format); 23376: 23376: 23376: 23376: 23376: 23376: bool is_bounded_integer() const; 23376: 23376: 23376: 23376: 23376: 23376: bool is_floating_point() const; 23376: # 70 "../../src/Concrete_Expression_defs.hh" 23376: Bounded_Integer_Type_Width bounded_integer_type_width() const; 23376: # 79 "../../src/Concrete_Expression_defs.hh" 23376: Bounded_Integer_Type_Representation 23376: bounded_integer_type_representation() const; 23376: # 89 "../../src/Concrete_Expression_defs.hh" 23376: Bounded_Integer_Type_Overflow 23376: bounded_integer_type_overflow() const; 23376: 23376: 23376: 23376: 23376: 23376: 23376: 23376: Floating_Point_Format floating_point_format() const; 23376: 23376: 23376: bool OK() const; 23376: 23376: private: 23376: 23376: struct Implementation { 23376: bool bounded_integer:1; 23376: unsigned int bounded_integer_type_width:23; 23376: unsigned int bounded_integer_type_representation:2; 23376: unsigned int bounded_integer_type_overflow:2; 23376: unsigned int floating_point_format:4; 23376: }; 23376: 23376: 23376: Concrete_Expression_Type(Implementation implementation); 23376: 23376: 23376: Implementation impl; 23376: }; 23376: 23376: 23376: template 23376: class Concrete_Expression_Common { 23376: public: 23376: 23376: Concrete_Expression_Type type() const; 23376: 23376: 23376: Concrete_Expression_Kind kind() const; 23376: 23376: 23376: template