The gfanInterface package makes use of the binary executables from Anders Jensen’s gfan software package. These binary files are distributed with Macaulay2 (since version 1.3) and so, it is not necessary to install gfan separately.
The gfanInterface package contains the configuration option "path" which allows the user to specify which gfan executables are used. When the path unspecified, it defaults to an empty string and the binaries provided by Macaulay2 are used.
You can change the path, if needed, while loading the package:
i1 : loadPackage("gfanInterface", Configuration => { "path" => "/directory/to/gfan/"}, Reload => true) o1 = gfanInterface o1 : Package |
The path to the executables should end in a slash. To set the path permanently, one needs to change gfanInterface.m2 either before installing or in the installed copy. You will find the path configuration near the top of the file.
If gfanInterface is already installed and loaded, you can find the path of the source file by the following command:
i2 : gfanInterface#"source file" o2 = /home/dan/src/M2/M2.git/M2/Macaulay2/packages/gfanInterface.m2 |
If you want to use gfan executables outside of Macaulay2, they can be found with currentLayout#"programs":
i3 : prefixDirectory | currentLayout#"programs" o3 = /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/ usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/ |
If you would like to see the input and output files used to communicate with gfan you can set the "keepfiles" configuration option to true. If "verbose" is set to true, gfanInterface will output the names of the temporary files used.
i4 : loadPackage("gfanInterface", Configuration => { "keepfiles" => true, "verbose" => true}, Reload => true); using temporary file /tmp/M2-26490-0/86 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan --help < /tmp/M2-26490-0/86 > /tmp/M2-26490-0/86.out 2> /tmp/M2-26490-0/86.err using temporary file /tmp/M2-26490-0/87 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _buchberger --help < /tmp/M2-26490-0/87 > /tmp/M2-26490-0/87.out 2> /tmp/M2-26490-0/87.err using temporary file /tmp/M2-26490-0/88 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _doesidealcontain --help < /tmp/M2-26490-0/88 > /tmp/M2-26490-0/88.out 2> /tmp/M2-26490-0/88.err using temporary file /tmp/M2-26490-0/89 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _fancommonrefinement --help < /tmp/M2-26490-0/89 > /tmp/M2-26490-0/89.out 2> /tmp/M2-26490-0/89.err using temporary file /tmp/M2-26490-0/90 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _fanlink --help < /tmp/M2-26490-0/90 > /tmp/M2-26490-0/90.out 2> /tmp/M2-26490-0/90.err using temporary file /tmp/M2-26490-0/91 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _fanproduct --help < /tmp/M2-26490-0/91 > /tmp/M2-26490-0/91.out 2> /tmp/M2-26490-0/91.err using temporary file /tmp/M2-26490-0/92 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _groebnercone --help < /tmp/M2-26490-0/92 > /tmp/M2-26490-0/92.out 2> /tmp/M2-26490-0/92.err using temporary file /tmp/M2-26490-0/93 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _homogeneityspace --help < /tmp/M2-26490-0/93 > /tmp/M2-26490-0/93.out 2> /tmp/M2-26490-0/93.err using temporary file /tmp/M2-26490-0/94 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _homogenize --help < /tmp/M2-26490-0/94 > /tmp/M2-26490-0/94.out 2> /tmp/M2-26490-0/94.err using temporary file /tmp/M2-26490-0/95 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _initialforms --help < /tmp/M2-26490-0/95 > /tmp/M2-26490-0/95.out 2> /tmp/M2-26490-0/95.err using temporary file /tmp/M2-26490-0/96 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _interactive --help < /tmp/M2-26490-0/96 > /tmp/M2-26490-0/96.out 2> /tmp/M2-26490-0/96.err using temporary file /tmp/M2-26490-0/97 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _ismarkedgroebnerbasis --help < /tmp/M2-26490-0/97 > /tmp/M2-26490-0/97.out 2> /tmp/M2-26490-0/97.err using temporary file /tmp/M2-26490-0/98 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _krulldimension --help < /tmp/M2-26490-0/98 > /tmp/M2-26490-0/98.out 2> /tmp/M2-26490-0/98.err using temporary file /tmp/M2-26490-0/99 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _latticeideal --help < /tmp/M2-26490-0/99 > /tmp/M2-26490-0/99.out 2> /tmp/M2-26490-0/99.err using temporary file /tmp/M2-26490-0/100 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _leadingterms --help < /tmp/M2-26490-0/100 > /tmp/M2-26490-0/100.out 2> /tmp/M2-26490-0/100.err using temporary file /tmp/M2-26490-0/101 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _markpolynomialset --help < /tmp/M2-26490-0/101 > /tmp/M2-26490-0/101.out 2> /tmp/M2-26490-0/101.err using temporary file /tmp/M2-26490-0/102 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _minkowskisum --help < /tmp/M2-26490-0/102 > /tmp/M2-26490-0/102.out 2> /tmp/M2-26490-0/102.err using temporary file /tmp/M2-26490-0/103 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _minors --help < /tmp/M2-26490-0/103 > /tmp/M2-26490-0/103.out 2> /tmp/M2-26490-0/103.err using temporary file /tmp/M2-26490-0/104 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _mixedvolume --help < /tmp/M2-26490-0/104 > /tmp/M2-26490-0/104.out 2> /tmp/M2-26490-0/104.err using temporary file /tmp/M2-26490-0/105 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _polynomialsetunion --help < /tmp/M2-26490-0/105 > /tmp/M2-26490-0/105.out 2> /tmp/M2-26490-0/105.err using temporary file /tmp/M2-26490-0/106 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _render --help < /tmp/M2-26490-0/106 > /tmp/M2-26490-0/106.out 2> /tmp/M2-26490-0/106.err using temporary file /tmp/M2-26490-0/107 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _renderstaircase --help < /tmp/M2-26490-0/107 > /tmp/M2-26490-0/107.out 2> /tmp/M2-26490-0/107.err using temporary file /tmp/M2-26490-0/108 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _resultantfan --help < /tmp/M2-26490-0/108 > /tmp/M2-26490-0/108.out 2> /tmp/M2-26490-0/108.err using temporary file /tmp/M2-26490-0/109 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _saturation --help < /tmp/M2-26490-0/109 > /tmp/M2-26490-0/109.out 2> /tmp/M2-26490-0/109.err using temporary file /tmp/M2-26490-0/110 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _secondaryfan --help < /tmp/M2-26490-0/110 > /tmp/M2-26490-0/110.out 2> /tmp/M2-26490-0/110.err using temporary file /tmp/M2-26490-0/111 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _stats --help < /tmp/M2-26490-0/111 > /tmp/M2-26490-0/111.out 2> /tmp/M2-26490-0/111.err using temporary file /tmp/M2-26490-0/112 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _substitute --help < /tmp/M2-26490-0/112 > /tmp/M2-26490-0/112.out 2> /tmp/M2-26490-0/112.err using temporary file /tmp/M2-26490-0/113 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tolatex --help < /tmp/M2-26490-0/113 > /tmp/M2-26490-0/113.out 2> /tmp/M2-26490-0/113.err using temporary file /tmp/M2-26490-0/114 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _topolyhedralfan --help < /tmp/M2-26490-0/114 > /tmp/M2-26490-0/114.out 2> /tmp/M2-26490-0/114.err using temporary file /tmp/M2-26490-0/115 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalbasis --help < /tmp/M2-26490-0/115 > /tmp/M2-26490-0/115.out 2> /tmp/M2-26490-0/115.err using temporary file /tmp/M2-26490-0/116 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalbruteforce --help < /tmp/M2-26490-0/116 > /tmp/M2-26490-0/116.out 2> /tmp/M2-26490-0/116.err using temporary file /tmp/M2-26490-0/117 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalevaluation --help < /tmp/M2-26490-0/117 > /tmp/M2-26490-0/117.out 2> /tmp/M2-26490-0/117.err using temporary file /tmp/M2-26490-0/118 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalfunction --help < /tmp/M2-26490-0/118 > /tmp/M2-26490-0/118.out 2> /tmp/M2-26490-0/118.err using temporary file /tmp/M2-26490-0/119 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalhypersurface --help < /tmp/M2-26490-0/119 > /tmp/M2-26490-0/119.out 2> /tmp/M2-26490-0/119.err using temporary file /tmp/M2-26490-0/120 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalintersection --help < /tmp/M2-26490-0/120 > /tmp/M2-26490-0/120.out 2> /tmp/M2-26490-0/120.err using temporary file /tmp/M2-26490-0/121 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicallifting --help < /tmp/M2-26490-0/121 > /tmp/M2-26490-0/121.out 2> /tmp/M2-26490-0/121.err using temporary file /tmp/M2-26490-0/122 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicallinearspace --help < /tmp/M2-26490-0/122 > /tmp/M2-26490-0/122.out 2> /tmp/M2-26490-0/122.err using temporary file /tmp/M2-26490-0/123 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalmultiplicity --help < /tmp/M2-26490-0/123 > /tmp/M2-26490-0/123.out 2> /tmp/M2-26490-0/123.err using temporary file /tmp/M2-26490-0/124 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalrank --help < /tmp/M2-26490-0/124 > /tmp/M2-26490-0/124.out 2> /tmp/M2-26490-0/124.err using temporary file /tmp/M2-26490-0/125 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalstartingcone --help < /tmp/M2-26490-0/125 > /tmp/M2-26490-0/125.out 2> /tmp/M2-26490-0/125.err using temporary file /tmp/M2-26490-0/126 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicaltraverse --help < /tmp/M2-26490-0/126 > /tmp/M2-26490-0/126.out 2> /tmp/M2-26490-0/126.err using temporary file /tmp/M2-26490-0/127 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _tropicalweildivisor --help < /tmp/M2-26490-0/127 > /tmp/M2-26490-0/127.out 2> /tmp/M2-26490-0/127.err using temporary file /tmp/M2-26490-0/128 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _overintegers --help < /tmp/M2-26490-0/128 > /tmp/M2-26490-0/128.out 2> /tmp/M2-26490-0/128.err |
i5 : QQ[x,y]; |
i6 : gfan {x,y}; using temporary file /tmp/M2-26490-0/129 /home/dan/src/M2/M2.git/M2/BUILD/dan/builds.tmp/ubuntu1910-release-1.15/usr-dist/x86_64-Linux-Ubuntu-19.10/libexec/Macaulay2/bin/gfan _bases < /tmp/M2-26490-0/129 > /tmp/M2-26490-0/129.out 2> /tmp/M2-26490-0/129.err |
Finally, if you want to be able to render Groebner fans and monomial staircases to .png files, you should install fig2dev and specify its path as follows:
i7 : loadPackage("gfanInterface", Configuration => { "fig2devpath" => "/directory/to/fig2dev/"}, Reload => true) o7 = gfanInterface o7 : Package |
Again, the path should end in a slash.