1zsp(1) User Commands zsp(1)
2
3
4
6 zsp - spin up, split, and standard basis on matrices or permutations
7
9 zsp [OPTIONS] <Gen1> <Gen2> <Seed>
10 zsp [OPTIONS] -g <#Gen> <Gen> <Seed>
11
13 This program takes as input a set of matrices or permutations (the
14 "generators"), and a list of seed vectors. It uses the spin-up algo‐
15 rithm to find a subspace which is invariant under the generators. If
16 the generators are matrices, zsp can optionally split the representa‐
17 tion, i.e., calculate the action of the generators on both subspace and
18 quotient. Splitting is currently not possible for permutations.
19
20 Specifying Input Files
21 There are two ways to inkove zsp. The first form, without -g, expects
22 three arguments, the two generators and the seed vector file. For
23 example,
24
25 zsp mat1 mat2 seed
26
27 reads the generators from `mat1' and `mat2', and the seed vector from
28 `seed'.
29
30 If the number of generators is not two, you must use the second form,
31 which expects only two arguments. The first argument is treated as a
32 base name. The actual file names are built by appending suffixes ".1",
33 ".2",... to Gen. For example,
34
35 zsp -g 3 module seed
36
37 reads three generators from "module.1", "module.2", and "module.3".
38 The last argument, Seed, is always treated as a single file name con‐
39 taining the seed vectors. Of course, the seed vectors must be compati‐
40 ble with the generators, i.e., they must be over the same field and
41 have the same number of columns. The generators must be square matri‐
42 ces of the same size and over the same field.
43
44 Specifying the Seed Mode
45 Zsp has three ways of interpreting the seed vector file. The default
46 is to treat Seed as a list of seed vectors, which are used ony-by-one
47 until one seed vector is successful (see below for the meaning of suc‐
48 cessful), or until all vectors have been used. Normally, zsp starts
49 with the first row of Seed, but this can be changed using the -n
50 option. For example,
51
52 zsp -n 4 gen1 gen2 seed
53
54 starts with spinning up the fourth row of "seed". If this is not suc‐
55 cessful, zsp continues with row 5 and so on up to the end of the seed
56 vector file.
57
58 With -1, zsp spins up only the first seed vector and stops, even if the
59 spin-up was not successful. You can use -n to select a different row
60 as seed vector. If any of these options is used, zsp loads only the
61 seed vectors that are actually needed.
62
63 If you use the -m option, zsp treats Seed as the basis of a seed space
64 and tries all 1-dimensional subspaces as seed vectors. In this mode,
65 seed vectors are constructed by taking linear combinations of the rows
66 of Seed. This option is typically used to search a subspace exhaus‐
67 tively for vectors generating a nontrivial invariant subspace. Of
68 course, -1 and -m cannot be used together. Also, -m cannot be used
69 together with -n.
70
71 Specifying the Search Mode
72 What zsp does after spinning up a seed vector depends on the options
73 -e, and -c. Without any of these options, zsp tries to find a proper
74 invariant subspace. If the seed vector generates the whole space, zsp
75 tries the next seed vector and repeats until a proper invariant sub‐
76 space has been found, or until there are no more seed vectors.
77
78 With -e, zsp tries to find a cyclic vector. In this mode, the program
79 spins up seed vectors one-by-one until it finds a vector that generates
80 the whole space, or until there are no more seed vectors available.
81
82 If you use the the option -c instead, zsp combines the span of all seed
83 vectors. In other words, -c calculates the closure of the seed space
84 under the generators. For example
85
86 zsp -c -b sub seed gen1 gen2
87
88 calculates the closure of "seed" under the two generators and writes a
89 basis of the invariant subspace to "sub". Zsp will print an error mes‐
90 sage if you try to use -c together with any of -1, -m, or -e.
91
92 Using the -d option you can set an upper limit on the subspace dimen‐
93 sion. When zsp finds an invariant subspace, it will stop searching
94 only if the dimension is at most MaxDim. Otherwise the search contin‐
95 ues with the next seed vector. Note that -d cannot be used together
96 with either -e or -c.
97
98 Standard Basis
99 If you use -t, zsp spins up canonically, producing the "standard
100 basis". In this mode, the production of the subspace from the seed
101 vector is independent of the chosen basis. Note that the standard
102 basis algorithm allocates an additional matrix of the same size as the
103 generators.
104
105 Specifying Output Files
106 Zsp can produce four different output files, which are all optional.
107 If you use the -b option, a basis of the invariant subspace is written
108 to Bas. The basis is always in echelon form.
109
110 -s and -q tell zsp to calculate the action of the generators on the
111 subspace and on the quotient, respectively. The file names are treated
112 as base names with the same convention as explained above. For example,
113
114 zsp -q quot -s sub gen1 gen2 seed
115
116 finds an invariant subspace, calculates the action on subspace and quo‐
117 tient, and writes the action to "sub.1", "sub.2", "quot.1", and
118 "quot.2". A second example:
119
120 zsp -c -s std -g 3 gen pw
121
122 Here, a standard basis is constructed using three generators, "gen.1",
123 "gen.2", and "gen.3", and seed vectors from "pw". The generators are
124 then transformed into the standard basis and written to "std.1",
125 "std.2", and "std.3".
126
127 Note that -s and -q can only be used if the generators are matrices.
128 If you spin up with permutations, use -b to make a basis of the invari‐
129 ant subspace, then calculate the action of the generators using ZMU and
130 ZCL. Example:
131
132 zsp -b sub perm1 perm2 seed
133 zmu sub perm1 img
134 zcl sub img dummy sub1
135 zmu sub perm2 img
136 zcl sub img dummy sub2
137
138 After these commands, sub1 and sub2 contain the action of the permuta‐
139 tions on the subspace.
140
141 Finally, you can write a spin-up script by using the -o option. The
142 spin-up script contains the operations performed by the spin-up algo‐
143 rithm to create the subspace from the seed vectors and the generators.
144 It can be used with the zsc program to repeat the same process with
145 different seed vectors and generators.
146
148 -Q Quiet, no messages.
149
150 -V Verbose, more messages.
151
152 -T <MaxTime>
153 Set CPU time limit
154
155 -b <Basis>
156 Output a basis of the invariant subspace.
157
158 -s <Sub>
159 Calculate the action on the subspace.
160
161 -q <Quot>
162 Calculate the action on the quotient.
163
164 -o <Script>
165 Write a spin-up script.
166
167 -G Produce output in GAP format. This option implies -Q.
168
169 -g <#Gen>
170 Set the number of generators.
171
172 -n <Num>
173 Start with vector Num.
174
175 -d <Dim>
176 Set an upper limit for the subspace dimension.
177
178 -1 Try only one seed vector.
179
180 -m Make (generate) seed vectors.
181
182 -e Find a cyclic vector.
183
184 -c Combine, make the closure.
185
186 -t Make standard basis.
187
188 -x <Max>
189 Assume the subspace is closed after Max multiplications without
190 finding a new vector.
191
193 All generators, the seed vectors (depending on -1 and -n), and a
194 workspace are held in memory. The workspace is the size of the genera‐
195 tors unless the maximal dimension has been restricted with -d. In
196 standard basis mode, an additional matrix of the same size as the gen‐
197 erators is allocated.
198
200 Gen1, Gen2
201 Generators (without -g).
202
203 Gen.{1,2,...}
204 Generators (with -g).
205
206 Seed Seed vectors.
207
209 Sub.{1,2,...}
210 Action on the subspace (with -s).
211
212 Quot.{1,2,...}
213 Action on the quotient (with -q).
214
215 Basis Basis of the invariant subspace (with -b).
216
217 Script Spin-up script (with -o).
218
220 zcl(1), zmu(1), zsc(1)
221
222
223
224MeatAxe 2.4.24 zsp(1)