|
|
|
|
Quelle 4ti2Interface.gd
Sprache: unbekannt
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
# 4ti2Interface: A link to 4ti2
#
# Declarations
#
#! @Chapter Introduction
#! @Section What is the idea of 4ti2Interface
#! 4ti2Interface is an GAP-Package that provides a link to the
#! CAS 4ti2. It is not supposed to do any work by itself, but to provide
#! the methods in 4ti2 to GAP.
#! At the moment, it only capsules the groebner and hilbert method in 4ti2
#! but there are more to come.
#! If you have any questions or suggestions, please feel free to contact me,
#! or leave an issue on <URL>https://github.com/homalg-project/4ti2Interface.git</URL>.
#! @Chapter Installation
#! @Section How to install this package
#! This package can only be used on a system that has 4ti2 installed.
#! For more information about this please visit <URL Text="www.4ti2.de">http://www.4ti2.de</URL>.
#! For installing this package, first make sure you have 4ti2 installed.
#! Copy it in your GAP pkg-directory.
#! After this, the package can be loaded via LoadPackage( "4ti2Interface" );
#! @Chapter 4ti2 functions
#! @Section Groebner
#! These are wrappers of some use cases of 4ti2s groebner command.
DeclareGlobalFunction( "4ti2Interface_groebner" );
#! @Description
#! This launches the 4ti2 groebner command with the
#! argument as matrix input. The output will be the
#! the Groebner basis of the binomial ideal
#! generated by the left kernel of the input matrix.
#! Note that this is different from 4ti2's convention
#! which takes the right kernel.
#! It returns the output of the groebner command
#! as a list of lists.
#! The second argument can be a vector to specify a
#! monomial ordering, in the way that x^m > x^n if
#! ordering*m > ordering*n
#! @Arguments matrix[,ordering]
#! @Returns A list of vectors
DeclareGlobalFunction( "4ti2Interface_groebner_matrix" );
#! @Description
#! This launches the 4ti2 groebner command with the
#! argument as matrix input.
#! The outpur will be the Groebner basis of the binomial
#! ideal generated by the rows of the input matrix.
#! It returns the output of the groebner command
#! as a list of lists.
#! The second argument is like before.
#! @Arguments basis[,ordering]
#! @Returns A list of vectors
DeclareGlobalFunction( "4ti2Interface_groebner_basis" );
#! @Subsection Defining ideal of toric variety
#! @InsertChunk Groebner1
#! @Section Hilbert
#! These are wrappers of some use cases of 4ti2s hilbert command.
#! @Description
#! This function produces the hilbert basis of the cone C given
#! by <A>A</A>x >= 0 for all x in C. For the second function also
#! x >= 0 is assumed.
#! @Returns a list of vectors
#! @Arguments A
#! @Group for inequalities
DeclareGlobalFunction( "4ti2Interface_hilbert_inequalities" );
#! @Arguments A
#! @Group for inequalities
DeclareGlobalFunction( "4ti2Interface_hilbert_inequalities_in_positive_orthant" );
#! @Description
#! This function produces the hilbert basis of the cone C given by
#! the equations <A>A</A>x = 0 in the positive orthant of the coordinate system.
#! @Returns a list of vectors
#! @Arguments A
DeclareGlobalFunction( "4ti2Interface_hilbert_equalities_in_positive_orthant" );
#! @Description
#! This function produces the hilbert basis of the cone C given by
#! the equations <A>A</A>x = 0 and the inequations <A>B</A>x >= 0.
#! For the second function x>=0 is assumed.
#! @Returns a list of vectors
#! @Arguments A, B
#! @Group for equalities and inequalities
DeclareGlobalFunction( "4ti2Interface_hilbert_equalities_and_inequalities" );
#! @Arguments A, B
#! @Group for equalities and inequalities
DeclareGlobalFunction( "4ti2Interface_hilbert_equalities_and_inequalities_in_positive_orthant" );
#! @Subsection Generators of semigroup
#! @InsertChunk HilbertBasis
#! @Subsection Hilbert basis of dual cone
#! @InsertChunk HilbertBasis2
#! @Section ZSolve
#! @Description
#! This function produces a basis of the system <A>eqs</A> = <A>eqs_rhs</A>
#! and <A>ineqs</A> >= <A>ineqs_rhs</A>. It outputs a list containing three matrices.
#! The first one is a list of points in a polytope, the second is the hilbert basis
#! of a cone. The set of solutions is then the minkowski sum of the polytope
#! generated by the points in the first list and the cone generated by the hilbert
#! basis in the second matrix. The third one is the free part of the solution polyhedron.
#! The optional argument <A>signs</A> must be a list of zeros and ones which length is
#! the number of variables. If the ith entry is one, the ith variable must be >= 0.
#! If the entry is 0, the number is arbitraty. Default is all zero.
#! It is also possible to set the option precision to 32, 64 or gmp.
#! The default, if no option is given, 32 is used.
#! Please note that a higher precision leads to slower computation.
#! @Returns a list of three matrices
#! @Arguments eqs,eqs_rhs,ineqs,ineqs_rhs[,signs]
#! @Group zsolve
DeclareGlobalFunction( "4ti2Interface_zsolve_equalities_and_inequalities" );
#! @Description
#! For the second function xi >= 0 for all variables is assumed.
#! @Arguments eqs,eqs_rhs,ineqs,ineqs_rhs
#! @Group zsolve
DeclareGlobalFunction( "4ti2Interface_zsolve_equalities_and_inequalities_in_positive_orthant" );
#! @Section Graver
#! @Description
#! This calls the function graver with the equalities <A>eqs</A> = 0.
#! It outputs one list containing the
#! graver basis of the system.
#! the optional argument <A>signs</A> is used like in zsolve.
#! @Arguments eqs[,signs]
#! @Returns a matrix
#! @Group graver
DeclareGlobalFunction( "4ti2Interface_graver_equalities" );
#! @Description
#! The second command assumes <M>x_i \geq 0</M>.
#! @Arguments eqs
#! @Group graver
DeclareGlobalFunction( "4ti2Interface_graver_equalities_in_positive_orthant" );
#! @Chapter Tool functions
#! @Section Read and write matrix
#! @Description
#! The argument must be a string, representing a filename of
#! a matrix to read. Numbers must be seperated by whitespace,
#! and the first two numbers must be the number of rows and columns.
#! The function then returns the matrix as list of lists.
#! @Returns a list of vectors
DeclareGlobalFunction( "4ti2Interface_Read_Matrix_From_File" );
#! @Description
#! First argument must be a matrix, i.e. a list of list
#! of integers.
#! Second argument has to be a filename.
#! The method stores the matrix in this file,
#! seperated by whitespace, line by line.
#! The content of the file, if there is any,
#! will be deleted.
#! @Returns nothing
DeclareGlobalFunction( "4ti2Interface_Write_Matrix_To_File" );
#! @Description
#! Takes the vector <A>vec</A> and produces a matrix
#! with <A>d</A> columns out of the entries of the
#! vector.
#! @Arguments vec, d
#! @Returns a matrix
DeclareGlobalFunction( "4ti2Interface_Cut_Vector" );
[ zur Elbe Produktseite wechseln0.51Quellennavigators
Analyse erneut starten
]
|
2026-03-28
|
|
|
|
|