Skip to content

dimpase/dio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published