Add Zickert's B2 quivers
[clav.git] / clav-cli.1
blob9248079c4856a655633460c2681e7c1dd74b6d34
1 .Dd 2016-12-31
2 .Dt CLAV-CLI 1
3 .Os
4 .Sh NAME
5 .Nm clav-cli
6 .Nd Visualize quivers on console
7 .Sh SYNOPSIS
8 .Nm
9 .Sh DESCRIPTION
10 .Nm
11 is a text-based program to interact with quivers.  It is intended to be
12 used in situations where
13 .Xr clav-sdl
14 is unusable, and where by-hand computation is inconvenient.
15 .Sh INFORMATION
16 When
17 .Nm
18 starts, it shows a sample quiver, which does not have many interesting
19 properties.
20 .Pp
21 Vertices are displayed in a vertical list.  The left-hand column displays
22 the index of the vertex, the right displays the name.
23 .Nm
24 interacts with vertices by index for compactness' sake.
25 .Pp
26 Edges are displayed by weight in a matrix.  The entry of row i, column
27 j is edge weight ε_{ij} of the quiver
28 .Pq a blank entry represents 0 .
29 .Sh CONTROL
30 The quiver is controlled by primitive text commands. No tab
31 completion/history is implemented. Help is available by typing
32 .Sq help .
33 .Pp
34 The following commands are available. To cancel an action when input is
35 .Sq ESC .
36 .Bl -tag -width Ds
37 .It help
38 Print a help message.
39 .It print
40 Display the quiver, as described in
41 .Sx INFORMATION.
42 .It mutate Ar idx
43 Mutate the quiver at the vertex with index
44 .Ar idx .
45 .It delete Ar idx
46 Delete the vertex with index
47 .Ar idx .
48 .It delete Ar idx-one idx-two
49 Delete edges between vertices with indices
50 .Ar idx-one
51 and
52 .Ar idx-two .
53 The order of the two parameters is unimportant.
54 .It vertex
55 Create a new vertex, called
56 .Sq v .
57 .It edge Ar i Ar j Ar p / Ar q
58 Add an edge from
59 .Ar i
60 to 
61 .Ar j .
62 The weights of both directions of the edge will be modifed by the
63 following formula
64 .Po where
65 .Ar i
66 is 
67 .Ar idx-one
68 and
69 .Ar j
71 .Ar idx-two
72 .Pc :
73 .Dl ε_{ij} := ε_{ij} + (p · F_j) / (q · GCD(F_i, F_j))
74 .Dl ε_{ji} := ε_{ij} - (p · F_i) / (q · GCD(F_i, F_j))
75 where
76 .Ar F_i
77 and 
78 .Ar F_j
79 are the fatnesses of the vertices with indices
80 .Ar i
81 and 
82 .Ar j
83 respectively.
84 .Pp
85 Omitting
86 .Ar /q
87 is permitted; it implies using
88 .Sq 1
89 for
90 .Ar q .
91 .It incfat Ar idx
92 Increment the fatness of the vertex at index
93 .Ar idx-one
94 by one.
95 .It decfat Ar idx
96 Decrement the fatness of the vertex at index
97 .Ar idx-one
98 by one.
99 .It save Ar path
100 Save the current quiver to
101 .Ar path .
102 The file will be readable by
103 .Nm clav-sdl .
104 .It load Ar path
105 Load the quiver from
106 .Ar path
107 .Pq discarding the current quiver .
108 The file may have been written by
109 .Nm clav-sdl .
111 .Sh EXAMPLES
112 Example quivers may have been installed along with this program,
113 typically in
114 .Pa /usr/share/clav/ .
115 .Sh SEE ALSO
116 .Xr clav 1
117 .Xr clav-cli 1
118 .Sh BUGS
119 Edge weights are, for performance reasons
120 .Po see
121 .Xr clav-mutation-find 1
122 .Pc , stored as fractions with
123 numerator and denominator in system-dependent ranges.  While it probably
124 will not be an issue for
125 .Sq interesting
126 usage, causing edge weights to increase arbitrarily will eventually cause
128 to compute an unrepresentable edge weight.  In this situation,
130 will terminate with a diagnostic message rather than display incorrect
131 results.
133 Files saved by
135 are readable by
136 .Nm clav-sdl ,
137 but because
139 is not graphical, there will be no good x/y information associated with
140 any vertices created by 
141 .Nm .
142 This will probably be confusing until the quiver is rarranged by a user.
143 .Sh AUTHORS
144 .An S. Gilles Aq Mt sgilles@math.umd.edu