-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME
137 lines (95 loc) · 3.31 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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.