There is a sign flip in how [BFZIII], Remark 2.4 should be implemented
[clav.git] / clav-cli.1
blob7eb0a7fbccaafd75de384bac12f68775d2cba0bc
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 mutatename Ar str
46 Mutate the quiver at the vertex with name
47 .Ar str .
48 .It delete Ar idx
49 Delete the vertex with index
50 .Ar idx .
51 .It delete Ar idx-one idx-two
52 Delete edges between vertices with indices
53 .Ar idx-one
54 and
55 .Ar idx-two .
56 The order of the two parameters is unimportant.
57 .It vertex
58 Create a new vertex, called
59 .Sq v .
60 .It edge Ar i Ar j Ar p / Ar q
61 Add an edge from
62 .Ar i
63 to 
64 .Ar j .
65 The weights of both directions of the edge will be modifed by the
66 following formula
67 .Po where
68 .Ar i
69 is 
70 .Ar idx-one
71 and
72 .Ar j
74 .Ar idx-two
75 .Pc :
76 .Dl ε_{ij} := ε_{ij} + (p · F_j) / (q · GCD(F_i, F_j))
77 .Dl ε_{ji} := ε_{ij} - (p · F_i) / (q · GCD(F_i, F_j))
78 where
79 .Ar F_i
80 and 
81 .Ar F_j
82 are the fatnesses of the vertices with indices
83 .Ar i
84 and 
85 .Ar j
86 respectively.
87 .Pp
88 Omitting
89 .Ar q
90 is permitted; it implies using
91 .Sq 1
92 for
93 .Ar q .
94 .It incfat Ar idx
95 Increment the fatness of the vertex at index
96 .Ar idx-one
97 by one.
98 .It decfat Ar idx
99 Decrement the fatness of the vertex at index
100 .Ar idx-one
101 by one.
102 .It save Ar path
103 Save the current quiver to
104 .Ar path .
105 The file will be readable by
106 .Nm clav-sdl .
107 .It load Ar path
108 Load the quiver from
109 .Ar path
110 .Pq discarding the current quiver .
111 The file may have been written by
112 .Nm clav-sdl .
114 .Sh EXAMPLES
115 Example quivers may have been installed along with this program,
116 typically in
117 .Pa /usr/share/clav/ .
118 .Sh SEE ALSO
119 .Xr clav 1
120 .Xr clav-cli 1
121 .Sh BUGS
122 Edge weights are, for performance reasons
123 .Po see
124 .Xr clav-mutation-find 1
125 .Pc , stored as fractions with
126 numerator and denominator in system-dependent ranges.  While it probably
127 will not be an issue for
128 .Sq interesting
129 usage, causing edge weights to increase arbitrarily will eventually cause
131 to compute an unrepresentable edge weight.  In this situation,
133 will terminate with a diagnostic message rather than display incorrect
134 results.
136 Files saved by
138 are readable by
139 .Nm clav-sdl ,
140 but because
142 is not graphical, there will be no good x/y information associated with
143 any vertices created by 
144 .Nm .
145 This will probably be confusing until the quiver is rarranged by a user.
146 .Sh AUTHORS
147 .An S. Gilles Aq Mt sgilles@math.umd.edu