-
Notifications
You must be signed in to change notification settings - Fork 1
dimpase/dio
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Hilbert bases package version 0.1 (experimental) Copyright (C) 1995 Dmitrii V. Pasechnik RIACA, Amsterdam, The Netherlands This program is free software. You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. For details, see the FSF's own site. ------------------------------------------------------------------- INSTALLATION AND USAGE: We assume you have a UNIX system equipped with GNU C compiler, and that you have downloaded the source code of the package in a directory which will be called 'the current directory To compile the progams, type 'make'. See the file Makefile for more details. Once you've succeeded in it, you have two executable programs in the current directory: oneeq.exe and systeq.exe ------------------------------------------------------------------------- oneeq.exe ********* For c=0, finds the Hilbert basis (i.e. the minimal set of generators of the monoid of the nonnegative solutions) of one linear equation $\sum_{i=1}^n a_i x_i - \sum_{j=1}^m b_j y_j = c$ where a_i, b_j are greater than 0 and c is nonnegative. For c>0, finds all the minimal solutions to the equation. (minimal in the sense that the solution cannot be obtained as a sum of another solution and a nontrivial solution to the homogeneous equation). It accepts (at most) one command-line argument, namely the name of the file to output the elements of the basis computed. The format of the input file is as follows: prtlev save n m c a_i b_j where prtlev monitors the level of information shown during the execution time (0-minimal, >=5 - maximal); m can be 0; in this case, all the solutions are minimal. save is an integer telling the program to store ( save>0 ) solutions or not to store them (save=0) Example: the equation $x_1+3x_2-2y_1-2y_2=1$ the input file (let it be named (and to be in the current directory) 'inp0'): 0 2 2 1 1 3 2 2 Then the call oneeq.exe out0 <inp0 will create the file named 'out0' in the current directory containing the elements of the basis. Similarly, the call oneeq.exe <inp0 will print the basis on the standard output. NOTE: It is straightforward to add features allowing to restrict ourselves to the elements of the basis satisfying certain restrictions on the multidegree (i.e. either on certain entries or on the total degree). It should be done one day. ------------------------------------------------------------------------- systeq.exe ********** finds the Hilbert basis of a system of linear equations $Ax=0$, where $A$ is an n x m integer matrix. It accepts (at most) one command-line argument, namely the name of the file to output the elements of the basis computed. The format of the input file is as follows: prtlev n m a_ij where prtlev monitors the level of information shown during the execution time (0-minimal, >=5 - maximal); Example: the equations $x_1- x_2+ y_1- y_2=0$ $x_1+3x_2-2y_1-2y_2=0$ the input file (let it be named (and to be in the current directory) 'inp1'): 0 2 4 1 -1 1 -1 1 3 -2 -2 Then the call systeq.exe out1 <inp1 will create the file named 'out1' in the current directory containing the elements of the basis. Similarly, the call systeq.exe <inp1 prints the basis on the standard output.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published