1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-06 06:30:19 +00:00

New ports: math/gfan, math/gfanlib

Gfan is a software package for computing Groebner fans and tropical
varieties. These are polyhedral fans associated to polynomial ideals.
The maximal cones of a Groebner fan are in bijection with the marked
reduced Groebner bases of its defining ideal. The software computes
all marked reduced Groebner bases of an ideal. Their union is a
universal Greobner basis. The tropical variety of a polynomial ideal
is a certain subcomplex of the Groebner fan. Gfan contains algorithms
for computing this complex for general ideals and specialized
algorithms for tropical curves, tropical hypersurfaces and tropical
varieties of prime ideals.  In addition to the above core functions
the package contains many tools which are useful in the study of
Groebner bases, initial ideals and tropical geometry.

WWW: http://home.math.au.dk/jensen/software/gfan/gfan.html

PR:		231186
Submitted by:	Lorenzo Salvadore <phascolarctos@protonmail.ch>
This commit is contained in:
Tobias Kortkamp 2019-02-08 09:27:32 +00:00
parent 3c82ef0ad6
commit 648c41713e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=492416
12 changed files with 385 additions and 0 deletions

View File

@ -234,6 +234,8 @@
SUBDIR += geogram
SUBDIR += geonext
SUBDIR += gexpr
SUBDIR += gfan
SUBDIR += gfanlib
SUBDIR += ggobi
SUBDIR += gh-bc
SUBDIR += giacxcas

46
math/gfan/Makefile Normal file
View File

@ -0,0 +1,46 @@
# Created by: Lorenzo Salvadore
# $FreeBSD$
PORTNAME= gfan
DISTVERSION= 0.6.2
CATEGORIES= math
MASTER_SITES= http://home.math.au.dk/jensen/software/gfan/
DISTNAME= ${PORTNAME}${DISTVERSION}
MAINTAINER= phascolarctos@protonmail.ch
COMMENT= Software for computing Groebner fans and tropical varieties
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libcddgmp.so:math/cddlib \
libgmp.so:math/gmp
USES= gmake
CFLAGS+= -I${LOCALBASE}/include -DGMPRATIONAL
OPTIONS_DEFINE= DOCS EXAMPLES
post-patch:
@${REINPLACE_CMD} \
's,ADDITIONALLINKOPTIONS = ,ADDITIONALLINKOPTIONS = -L${LOCALBASE}/lib ,' \
${WRKSRC}/Makefile
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/gfan ${STAGEDIR}${PREFIX}/bin
cd ${STAGEDIR}${PREFIX}/bin && ./gfan installlinks
post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/doc/manual.dvi ${STAGEDIR}${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/doc/*.eps ${STAGEDIR}${DOCSDIR}
post-install-EXAMPLES-on:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}
do-test:
cd ${WRKSRC} && ./gfan _test
.include <bsd.port.mk>

3
math/gfan/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1535465532
SHA256 (gfan0.6.2.tar.gz) = a674d5e5dc43634397de0d55dd5da3c32bd358d05f72b73a50e62c1a1686f10a
SIZE (gfan0.6.2.tar.gz) = 1321059

View File

@ -0,0 +1,40 @@
--- Makefile.orig 2017-09-28 13:44:12 UTC
+++ Makefile
@@ -110,13 +110,13 @@ MKDIR=mkdir -p
PREFIX =
SHELL = /bin/sh
#ARCH = LINUX
-CC = $(PREFIX)gcc
+CC ?= $(PREFIX)gcc
CLINKER = $(CC)
-CXX = $(PREFIX)g++
+CXX ?= $(PREFIX)g++
CCLINKER = $(CXX)
#OPTFLAGS = -O2 -DGMPRATIONAL -DNDEBUG
# Note that gcc produces wrong code with -O3
-OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O2 #-O3 -fno-guess-branch-probability #-DNDEBUG
+#OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O2 #-O3 -fno-guess-branch-probability #-DNDEBUG
#OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -mavx -msse2 -finline-limit=1000 -ffast-math -Wuninitialized # -fno-guess-branch-probability #-DNDEBUG -ftree-vectorizer-verbose=2
#OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O1 -fno-guess-branch-probability
#-DNDEBUG
@@ -125,9 +125,9 @@ OPTFLAGS = -DGMPRATIONAL -Wuninitial
#OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG
#OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -mavx -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG
-CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic
+CFLAGS += $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic
#CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -D_GLIBCXX_DEBUG -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic
-CCFLAGS = $(CFLAGS)
+CCFLAGS += $(CFLAGS)
FFLAGS = $(OPTFLAGS)
CATSOBJECTS = lp_cdd.o \
@@ -394,7 +394,7 @@ EXECS = $(MAIN)
# (compiling with gcc version 4.7.2 and running gfan _tropicaltraverse on a starting cone for Grassmann3_7)
# Either this is a bug in the code or in the compiler. The bug disappears by compiling with -fno-guess-branch-probability
src/symmetrictraversal.o: src/symmetrictraversal.cpp
- $(CXX) $(CFLAGS) -fno-guess-branch-probability -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o
+ $(CXX) $(CFLAGS) -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o
# If compiling with clang, use the line below instead:
# $(CXX) $(CFLAGS) -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o

View File

@ -0,0 +1,94 @@
--- testsuite/0008PolynomialSetUnion/output.orig 2013-09-23 12:03:23 UTC
+++ testsuite/0008PolynomialSetUnion/output
@@ -1,62 +1,62 @@
-{
+Q[a,b,c]
+a*b-c^6,
+a*b^2-c^3,
+a*b^4-b,
+a*c-b^6,
+a*c^2-b,
+a*c^6-c,
+a-b^11,
+a-b^2*c,
+a-c^9,
a^11-c,
a^15-a,
+a^2*b-c,
a^2*b^3-a,
+a^2*c-b^3,
a^2-b^8,
-a^2*b-c,
a^2-c^4,
-a^2*c-b^3,
-a^3-b^5,
-a^3-b*c^2,
a^3*c^2-c}
-a^4-b^2,
+a^3-b*c^2,
+a^3-b^5,
a^4*c-a,
+a^4-b^2,
a^5-c^3,
a^6*b-a,
a^6-b*c,
a^8-c^2,
a^9-b,
-a-b^11,
-a-b^2*c,
-a*b^2-c^3,
-a*b^4-b,
-a*b-c^6,
-a*c^2-b,
-a*c^6-c,
-a-c^9,
-a*c-b^6,
+b*c-a^6,
+b*c^2-a^3,
+b*c^4-c,
+b-a*c^2,
+b-a^9,
+b-c^11,
b^11-a,
b^15-b,
-b^2-a^4,
+b^2*c-a,
b^2*c^3-b,
+b^2-a^4,
b^2-c^8,
-b^2*c-a,
b^3-a^2*c,
b^3-c^5,
b^4-c^2,
b^5-a^3,
-b^6-a*c,
b^6*c-b,
+b^6-a*c,
b^8-a^2,
b^9-c,
-b-a^9,
-b-a*c^2,
-b-c^11,
-b*c^2-a^3,
-b*c^4-c,
-b*c-a^6,
+c-a^11,
+c-a^2*b,
+c-b^9,
c^11-b,
c^15-c,
c^2-a^8,
c^2-b^4,
-c^3-a^5,
c^3-a*b^2,
+c^3-a^5,
c^4-a^2,
c^5-b^3,
c^6-a*b,
c^8-b^2,
c^9-a,
-c-a^11,
-c-a^2*b,
-c-b^9,
-Q[a,b,c]
+{

17
math/gfan/pkg-descr Normal file
View File

@ -0,0 +1,17 @@
Gfan is a software package for computing Groebner fans and tropical
varieties. These are polyhedral fans associated to polynomial ideals.
The maximal cones of a Groebner fan are in bijection with the marked
reduced Groebner bases of its defining ideal. The software computes
all marked reduced Groebner bases of an ideal. Their union is a
universal Greobner basis. The tropical variety of a polynomial ideal
is a certain subcomplex of the Groebner fan. Gfan contains algorithms
for computing this complex for general ideals and specialized
algorithms for tropical curves, tropical hypersurfaces and tropical
varieties of prime ideals. In addition to the above core functions
the package contains many tools which are useful in the study of
Groebner bases, initial ideals and tropical geometry.
This port provides gfan together with some handy symlinks. The static
library libgfan.a is provided by the port math/gfanlib.
WWW: http://home.math.au.dk/jensen/software/gfan/gfan.html

10
math/gfan/pkg-message Normal file
View File

@ -0,0 +1,10 @@
Gfan can also be linked to Sage, Singular or Soplex. I refrain to
include those optional dependencies because Sage and Singular support
is not documented in gfan's manual and Soplex has a very restrictive
license (you can use or distribute it only if you are a member of a
noncommercial and academic institution).
If you feel you need any of those optional dependencies, please let
me know and I will do my best to provide it as fast as possible.
The mantainer.

92
math/gfan/pkg-plist Normal file
View File

@ -0,0 +1,92 @@
bin/gfan
bin/gfan_bases
bin/gfan_buchberger
bin/gfan_combinerays
bin/gfan_doesidealcontain
bin/gfan_fancommonrefinement
bin/gfan_fanhomology
bin/gfan_fanisbalanced
bin/gfan_fanlink
bin/gfan_fanproduct
bin/gfan_fansubfan
bin/gfan_genericlinearchange
bin/gfan_groebnercone
bin/gfan_groebnerfan
bin/gfan_homogeneityspace
bin/gfan_homogenize
bin/gfan_initialforms
bin/gfan_interactive
bin/gfan_ismarkedgroebnerbasis
bin/gfan_krulldimension
bin/gfan_latticeideal
bin/gfan_leadingterms
bin/gfan_list
bin/gfan_markpolynomialset
bin/gfan_minkowskisum
bin/gfan_minors
bin/gfan_mixedvolume
bin/gfan_overintegers
bin/gfan_padic
bin/gfan_polynomialsetunion
bin/gfan_render
bin/gfan_renderstaircase
bin/gfan_resultantfan
bin/gfan_saturation
bin/gfan_secondaryfan
bin/gfan_stats
bin/gfan_substitute
bin/gfan_symmetries
bin/gfan_tolatex
bin/gfan_topolyhedralfan
bin/gfan_tropicalbasis
bin/gfan_tropicalbruteforce
bin/gfan_tropicalcurve
bin/gfan_tropicalevaluation
bin/gfan_tropicalfunction
bin/gfan_tropicalhypersurface
bin/gfan_tropicalintersection
bin/gfan_tropicallifting
bin/gfan_tropicallinearspace
bin/gfan_tropicalmultiplicity
bin/gfan_tropicalrank
bin/gfan_tropicalstartingcone
bin/gfan_tropicaltraverse
bin/gfan_tropicalweildivisor
bin/gfan_version
%%PORTDOCS%%%%DOCSDIR%%/manual.dvi
%%PORTDOCS%%%%DOCSDIR%%/gfan.eps
%%PORTDOCS%%%%DOCSDIR%%/nonconst.eps
%%PORTDOCS%%%%DOCSDIR%%/polyformat.eps
%%PORTDOCS%%%%DOCSDIR%%/staircase.eps
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/2x2of2x3
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/2x2of2x4
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/2x2of3x3
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/2x2of4x4
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/3x3of3x4
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/3x3of3x5
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/3x3of3x5.cone
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/3x3of4x4
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/3x3of4x4sym.cone
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/4x4of4x5
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/4x4of5x5
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/6x6-subPfaffians
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/commat2x2
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/commat2x2.cone
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cyclic4
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cyclic5
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/examplePaper
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grassmann2_5
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grassmann2_5.cone
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grassmann2_6
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grassmann2_6.cone
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grassmann3_6
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grassmann3_6.cone
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hankel3x3of4x4
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hankel3x3of4x4.cone
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hankel3x3of4x5
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hankel3x3of4x5.cone
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/linhyper5_2
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/linhyper5_2.cone
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pablo
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sturmfels3.9
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/symmetryTest

41
math/gfanlib/Makefile Normal file
View File

@ -0,0 +1,41 @@
# Created by: Lorenzo Salvadore
# $FreeBSD$
PORTNAME= gfanlib
DISTVERSION= 0.6.2
CATEGORIES= math
MASTER_SITES= http://home.math.au.dk/jensen/software/gfan/
DISTNAME= gfan${DISTVERSION}
MAINTAINER= phascolarctos@protonmail.ch
COMMENT= Static library for computing Groebner fans and tropical varieties
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= ${LOCALBASE}/include/cdd/cdd.h:math/cddlib
LIB_DEPENDS= libgmp.so:math/gmp
USES= gmake
GNU_CONFIGURE= yes
CPPFLAGS+= -I${LOCALBASE}/include \
-I${LOCALBASE}/include/cdd
CONFIGURE_WRKSRC= ${WRKSRC}/gfanlib
BUILD_WRKSRC= ${WRKSRC}/gfanlib
pre-configure:
for x in ${WRKSRC}/src/gfanlib*; do ${MV} $$x ${WRKSRC}/gfanlib; done
# this is not supported yet, see ${WRKSRC}/Makefile: gfanlib_tableau.h
# is commented in GFANLIBFILES' declaration
${RM} ${WRKSRC}/gfanlib/gfanlib_tableau.h
do-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/include/gfanlib
${INSTALL_DATA} ${WRKSRC}/gfanlib/gfanlib*.h \
${STAGEDIR}${PREFIX}/include/gfanlib
${INSTALL_DATA} ${WRKSRC}/gfanlib/libgfan.a \
${STAGEDIR}${PREFIX}/lib/libgfan.a
.include <bsd.port.mk>

3
math/gfanlib/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1535465532
SHA256 (gfan0.6.2.tar.gz) = a674d5e5dc43634397de0d55dd5da3c32bd358d05f72b73a50e62c1a1686f10a
SIZE (gfan0.6.2.tar.gz) = 1321059

17
math/gfanlib/pkg-descr Normal file
View File

@ -0,0 +1,17 @@
Gfan is a software package for computing Groebner fans and tropical
varieties. These are polyhedral fans associated to polynomial ideals.
The maximal cones of a Groebner fan are in bijection with the marked
reduced Groebner bases of its defining ideal. The software computes
all marked reduced Groebner bases of an ideal. Their union is a
universal Greobner basis. The tropical variety of a polynomial ideal
is a certain subcomplex of the Groebner fan. Gfan contains algorithms
for computing this complex for general ideals and specialized
algorithms for tropical curves, tropical hypersurfaces and tropical
varieties of prime ideals. In addition to the above core functions
the package contains many tools which are useful in the study of
Groebner bases, initial ideals and tropical geometry.
This port provides only the static library libgfan.a: you can get the
rest of the software package from the port math/gfan.
WWW: http://home.math.au.dk/jensen/software/gfan/gfan.html

20
math/gfanlib/pkg-plist Normal file
View File

@ -0,0 +1,20 @@
include/gfanlib/gfanlib.h
include/gfanlib/gfanlib_circuittableint.h
include/gfanlib/gfanlib_field.h
include/gfanlib/gfanlib_matrix.h
include/gfanlib/gfanlib_mixedvolume.h
include/gfanlib/gfanlib_ordering.h
include/gfanlib/gfanlib_paralleltraverser.h
include/gfanlib/gfanlib_polyhedralfan.h
include/gfanlib/gfanlib_polymakefile.h
include/gfanlib/gfanlib_q.h
include/gfanlib/gfanlib_symmetriccomplex.h
include/gfanlib/gfanlib_symmetry.h
include/gfanlib/gfanlib_traversal.h
include/gfanlib/gfanlib_tropicalhomotopy.h
include/gfanlib/gfanlib_tropicalintersection.h
include/gfanlib/gfanlib_vector.h
include/gfanlib/gfanlib_z.h
include/gfanlib/gfanlib_zcone.h
include/gfanlib/gfanlib_zfan.h
lib/libgfan.a