1zsp(1)                           User Commands                          zsp(1)
2
3
4

NAME

6       zsp - spin up, split, and standard basis on matrices or permutations
7

SYNOPSIS

9       zsp [OPTIONS] <Gen1> <Gen2> <Seed>
10       zsp [OPTIONS] -g <#Gen> <Gen> <Seed>
11

DESCRIPTION

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

OPTIONS

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

IMPLEMENTATION DETAILS

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

INPUT FILES

200       Gen1, Gen2
201              Generators (without -g).
202
203       Gen.{1,2,...}
204              Generators (with -g).
205
206       Seed   Seed vectors.
207

OUTPUT FILES

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

SEE ALSO

220       zcl(1), zmu(1), zsc(1)
221
222
223
224MeatAxe                             2.4.24                              zsp(1)
Impressum