aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano.tronto@gmail.com>2021-12-29 17:42:41 +0100
committerSebastiano Tronto <sebastiano.tronto@gmail.com>2021-12-29 17:42:41 +0100
commit314e936a9f9b45e4482e860df802a63039b80f0a (patch)
tree7521d549e9499b7151e5e32b4cfbf9c097ffb105
parente580f9d125e93911d67fe76e80798ffe3faa428b (diff)
downloadnissy-314e936a9f9b45e4482e860df802a63039b80f0a.tar.gz
nissy-314e936a9f9b45e4482e860df802a63039b80f0a.zip
Added pdf doc in doc folder
-rw-r--r--Makefile6
-rw-r--r--doc/nissy.html316
-rw-r--r--doc/nissy.pdfbin0 -> 33153 bytes
-rwxr-xr-xnissybin322576 -> 0 bytes
-rw-r--r--nissy-2.0rc1.tar.gzbin65164 -> 65170 bytes
5 files changed, 320 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 3fbd885..92a899b 100644
--- a/Makefile
+++ b/Makefile
@@ -36,8 +36,10 @@ clean:
36dist: clean 36dist: clean
37 mkdir -p nissy-${VERSION} 37 mkdir -p nissy-${VERSION}
38 cp -R LICENSE Makefile INSTALL doc src nissy-${VERSION} 38 cp -R LICENSE Makefile INSTALL doc src nissy-${VERSION}
39 groff -Tpdf -mandoc doc/nissy.1 > nissy-${VERSION}/doc/nissy.pdf 39 groff -Tpdf -mandoc doc/nissy.1 > doc/nissy.pdf
40 groff -Thtml -mandoc doc/nissy.1 > nissy-${VERSION}/doc/nissy.html 40 groff -Thtml -mandoc doc/nissy.1 > doc/nissy.html
41 cp doc/nissy.pdf nissy-${VERSION}/doc/nissy.pdf
42 cp doc/nissy.html nissy-${VERSION}/doc/nissy.html
41 tar -cf nissy-${VERSION}.tar nissy-${VERSION} 43 tar -cf nissy-${VERSION}.tar nissy-${VERSION}
42 gzip nissy-${VERSION}.tar 44 gzip nissy-${VERSION}.tar
43 rm -rf nissy-${VERSION} 45 rm -rf nissy-${VERSION}
diff --git a/doc/nissy.html b/doc/nissy.html
new file mode 100644
index 0000000..dc97c1d
--- /dev/null
+++ b/doc/nissy.html
@@ -0,0 +1,316 @@
1<!-- Creator : groff version 1.22.4 -->
2<!-- CreationDate: Wed Dec 29 17:36:38 2021 -->
3<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
4"http://www.w3.org/TR/html4/loose.dtd">
5<html>
6<head>
7<meta name="generator" content="groff -Thtml, see www.gnu.org">
8<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
9<meta name="Content-Style" content="text/css">
10<style type="text/css">
11 p { margin-top: 0; margin-bottom: 0; vertical-align: top }
12 pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
13 table { margin-top: 0; margin-bottom: 0; vertical-align: top }
14 h1 { text-align: center }
15</style>
16<title></title>
17</head>
18<body>
19
20<hr>
21
22
23<p>NISSY(1) BSD General Commands Manual NISSY(1)</p>
24
25<p style="margin-top: 1em"><b>NAME</b></p>
26
27<p style="margin-left:6%;"><b>nissy</b> &mdash; a
28Rubik&rsquo;s cube solver and FMC assistant</p>
29
30<p style="margin-top: 1em"><b>SYNOPSIS</b></p>
31
32<p style="margin-left:6%;">[<b>&minus;b</b>]</p>
33
34<p style="margin-left:14%;"><b>nissy</b> <i>command</i>
35[options...]</p>
36
37<p style="margin-top: 1em"><b>DESCRIPTION</b></p>
38
39<p style="margin-left:6%;"><b>nissy</b> is a Rubik&rsquo;s
40Cube solver. It uses techniques from Herbert
41Kociemba&rsquo;s Cube Explorer and Tomas Rokicki&rsquo;s
42nxopt. With 4 cores at 2.5GHz and using less than 3Gb of
43RAM, Nissy can find the optimal solution for a random
44Rubik&rsquo;s cube position in about a minute on average.
45Nissy can also solve different substeps of the
46Thistlethwaite&rsquo;s algorithm and more.</p>
47
48<p style="margin-left:6%; margin-top: 1em">When run without
49any argument an interactive shell is launched, otherwise the
50provided <i>command</i> is executed and nissy terminates. If
51the option <b>&minus;b</b> is given, every argument after it
52is ignored and the shell is launched without any prompt or
53welcome message. This can be used to run nissy in batch
54mode, for example writing a list of commands in a
55<i>file</i> (one per line) and running <i>nissy -b &lt;
56file</i></p>
57
58<p style="margin-left:6%; margin-top: 1em">The commands
59that can be run in the interactive shell are the same that
60can be run non-interactively and are provided below.</p>
61
62<p style="margin-top: 1em"><b>COMMANDS</b></p>
63
64<p style="margin-left:6%;">The available <i>commands</i>
65are the following:</p>
66
67<p style="margin-top: 1em"><b>commands</b></p>
68
69<p style="margin-left:17%;">List all available
70commands.</p>
71
72<p style="margin-top: 1em"><b>gen</b> [<b>&minus;t</b>
73<i>N</i>]</p>
74
75<p style="margin-left:17%;">Generate all tables used by
76nissy. Run this to complete your installation. If <i>N</i>
77is specified, <i>N</i> CPU threads will be used (defaults to
781).</p>
79
80<p style="margin-top: 1em"><b>help</b> [<i>command</i>]</p>
81
82<p style="margin-left:17%;">Display help. If no
83<i>command</i> is given, a generic help message is printed,
84otherwise a specific help relative to <i>command</i> is
85returned.</p>
86
87<p style="margin-top: 1em"><b>invert</b>
88<i>scramble</i></p>
89
90<p style="margin-left:17%;">Invert the given scramble.</p>
91
92<p style="margin-top: 1em"><b>print</b> <i>scramble</i></p>
93
94<p style="margin-left:17%;">Display a text-only description
95of the cube obtained after applying <i>scramble</i>.</p>
96
97<p style="margin-top: 1em"><b>quit</b></p>
98
99<p style="margin-left:17%; margin-top: 1em">Quit nissy.</p>
100
101<p style="margin-top: 1em"><b>scramble</b> [ <b><br>
102&minus;n</b> <i>N</i>] [ <i><br>
103type</i>]</p>
104
105<p style="margin-left:17%;">Print a randomly-generated
106(random position) scramble If <i>N</i> is given, it produces
107<i>N</i> scrambles. <i>type</i> can be specified to be one
108of the following:</p>
109
110<p style="margin-top: 1em"><i>eo</i></p>
111
112<p style="margin-left:27%; margin-top: 1em">Scramble with
113solved EO on F/B axis.</p>
114
115<p style="margin-top: 1em"><i>corners</i></p>
116
117<p style="margin-left:27%;">Scramble with solved edges
118(only cornes are scrambled).</p>
119
120<p style="margin-top: 1em"><i>edges</i></p>
121
122<p style="margin-left:27%; margin-top: 1em">Scramble with
123solved corners (only edges are scrambled).</p>
124
125<p style="margin-top: 1em"><b>solve</b> <i>step</i> [
126<i><br>
127options</i>] <i>scramble.</i></p>
128
129<p style="margin-left:17%;">Solve the given <i>step</i> on
130the given <i>scramble.</i> By default it finds only one
131(shortest) solution, without using niss, and it displays the
132number of moves at the end of the line. The options for the
133<i>solve</i> command are the following:</p>
134
135<p style="margin-top: 1em"><b>&minus;a</b></p>
136
137<p style="margin-left:27%; margin-top: 1em">Print all
138solutions: some solutions are filtered out by default for
139some steps, for examples EOs that finish with F', with this
140options they are not.</p>
141
142<p style="margin-top: 1em"><b>&minus;c</b></p>
143
144<p style="margin-left:27%; margin-top: 1em">Display only
145the number of solutions found, not the solutions
146themselves.</p>
147
148<p style="margin-top: 1em"><b>&minus;m</b> <i>min</i></p>
149
150<p style="margin-left:27%; margin-top: 1em">Only look for
151solution that are at least <i>min</i> moves long.</p>
152
153<p style="margin-top: 1em"><b>&minus;M</b> <i>MAX</i></p>
154
155<p style="margin-left:27%; margin-top: 1em">Only look for
156solution that are at most <i>MAX</i> moves long.</p>
157
158<p style="margin-top: 1em"><b>&minus;n</b> <i>N</i></p>
159
160<p style="margin-left:27%; margin-top: 1em">Try to find
161<i>N</i> solutions. By default and unless the
162<b>&minus;M</b> or <b>&minus;o</b> options are used, at most
163one solution is returned. If at least one of <b>&minus;M</b>
164and <b>&minus;o</b> is used, all the solutions found within
165the given bounds are returned. The option <b>&minus;s</b>
166overwrites these default behaviors and at most <i>N</i>
167solutions are returned, still satisfiyng the other
168constraints.</p>
169
170<p style="margin-top: 1em"><b>&minus;N</b></p>
171
172<p style="margin-left:27%; margin-top: 1em">Allow use of
173NISS.</p>
174
175<p style="margin-top: 1em"><b>&minus;o</b></p>
176
177<p style="margin-left:27%; margin-top: 1em">Only find
178solutions that require the minimum number of moves.</p>
179
180<p style="margin-top: 1em"><b>&minus;O</b> <i>N</i></p>
181
182<p style="margin-left:27%; margin-top: 1em">Only find
183solutions that require at most <i>N</i> moves more than the
184optimal solution. If <i>N</i> is 0, this is equivalent
185to</p>
186
187<p style="margin-top: 1em"><b>&minus;o <br>
188&minus;p</b></p>
189
190<p style="margin-left:27%; margin-top: 1em">Plain style: do
191not print the number of moves.</p>
192
193<p style="margin-top: 1em"><b>&minus;t</b> <i>N</i></p>
194
195<p style="margin-left:27%; margin-top: 1em">Use <i>N</i>
196CPU threads. By default nissy uses only 1 thread. Using more
197than one thread will improve performance, but the optimal
198number depends on your machine and operating system.
199Generally, using one less than the number of threads of your
200CPU works quite well.</p>
201
202<p style="margin-top: 1em"><b>&minus;v</b></p>
203
204<p style="margin-left:27%; margin-top: 1em">Verbose mode:
205print some information during the search and print each
206solution as it is found instead of only printing them all
207together at the end.</p>
208
209<p style="margin-top: 1em"><b>steps</b></p>
210
211<p style="margin-left:17%; margin-top: 1em">List all
212available <i>steps</i> for the <i>solve</i> command.</p>
213
214<p style="margin-top: 1em"><b>twophase</b>
215<i>scramble</i></p>
216
217<p style="margin-left:17%;">Find a solution using a
218two-phase method. This does not guarantee to return an
219optimal solution (and in fact most often it does not), but
220it is very fast.</p>
221
222<p style="margin-top: 1em"><b>unniss</b>
223<i>scramble</i></p>
224
225<p style="margin-left:17%;">Rewrite the scramble without
226using NISS.</p>
227
228<p style="margin-top: 1em"><b>version</b></p>
229
230<p style="margin-left:17%;">Display version
231information.</p>
232
233<p style="margin-top: 1em"><b>SCRAMBLES</b></p>
234
235<p style="margin-left:6%;">All the commands above that
236accept a scramble also accept a <b>&minus;i</b> option with
237no arguments. If this option is given, multiple scrambles
238are read from standard input (one per line) until and EOF is
239found, at which point stdin is cleared.</p>
240
241<p style="margin-top: 1em"><b>ENVIRONMENT</b></p>
242
243<p style="margin-left:6%;">Data is stored in the folder
244pointed to by <b>$NISSYDATA.</b> If that variable is unset
245the folder <b>$XDG_DATA_HOME/nissy</b> or
246<b>$HOME/.nissy</b> is used instead. If none of this
247environment variables is defined (e.g. in a non-UNIX
248system), the current folder is used.</p>
249
250<p style="margin-top: 1em"><b>EXAMPLES</b></p>
251
252<p style="margin-left:6%;">The command:</p>
253
254<p style="margin-left:14%;">nissy solve -v -O 1
255&quot;R'U'FD2L2FR2U2R2BD2LB2D'B2L'R'BD2BU2LU2R'U'F&quot;</p>
256
257<p style="margin-left:6%;">Returns:</p>
258
259<p style="margin-left:14%;">Searching depth 0 <br>
260Searching depth 1 <br>
261(some more lines) <br>
262Searching depth 16 <br>
263D2 F' U2 D2 F' L2 D R2 D F B2 R' L2 F' U' D <br>
264Searching depth 17 <br>
265D2 F' U2 D2 F' L2 D R2 D F B2 R' L2 F' U' D (16)</p>
266
267<p style="margin-left:6%;">Notice that the solution is
268printed twice: the first time it is printed as soon as it is
269found as requested by the -v option.</p>
270
271<p style="margin-left:6%; margin-top: 1em">The command:</p>
272
273<p style="margin-left:14%;">nissy solve eofb -m 4 -M 5 -N
274-n 6 &quot;R'U'FD2L2 FR2 U2R2BD2 L B2 D' B2 L' R'&quot;</p>
275
276<p style="margin-left:6%;">Returns:</p>
277
278<p style="margin-left:14%;">U B U' B (4) <br>
279U (B R' B) (4) <br>
280(U B R' B) (4) <br>
281U2 F R2 F (4) <br>
282U2 B U2 B (4) <br>
283(U2 B R' B) (4)</p>
284
285<p style="margin-left:6%; margin-top: 1em">On a UNIX shell,
286the composite command</p>
287
288<p style="margin-left:14%;">nissy scramble -n 2 | nissy
289solve -i &gt; file.txt</p>
290
291<p style="margin-left:6%;">Generates two random scrambles,
292solves them and saves the result to file.txt. The file will
293look something like this:</p>
294
295<p style="margin-left:14%;">&gt;&gt;&gt; Line: D U2 F D B'
296F L2 D' F2 R2 L B2 L' U2 B2 R F2 L' D2 <br>
297U2 R2 F2 L B2 D' R2 D' F U L2 B' U' R2 D2 R2 U (17) <br>
298&gt;&gt;&gt; Line: D B R U' B' L2 U L U D2 R L B2 U2 L2 U2 R
299U2 B2 L F2 <br>
300D' F R' D B L2 B R2 L U L U2 B D' U R U F2 (18)</p>
301
302<p style="margin-top: 1em"><b>AUTHORS</b></p>
303
304<p style="margin-left:6%;">Sebastiano Tronto
305&lt;<i>sebastiano.tronto@gmail.com</i>&gt;</p>
306
307<p style="margin-top: 1em"><b>SOURCE CODE</b></p>
308
309<p style="margin-left:6%;">Source code is available at
310<b>https://github.com/sebastianotronto/nissy</b></p>
311
312<p style="margin-left:6%; margin-top: 1em">BSD
313December&nbsp;29, 2021 BSD</p>
314<hr>
315</body>
316</html>
diff --git a/doc/nissy.pdf b/doc/nissy.pdf
new file mode 100644
index 0000000..5c5ebbb
--- /dev/null
+++ b/doc/nissy.pdf
Binary files differ
diff --git a/nissy b/nissy
deleted file mode 100755
index f069cec..0000000
--- a/nissy
+++ /dev/null
Binary files differ
diff --git a/nissy-2.0rc1.tar.gz b/nissy-2.0rc1.tar.gz
index 61ba0e6..8371b07 100644
--- a/nissy-2.0rc1.tar.gz
+++ b/nissy-2.0rc1.tar.gz
Binary files differ

Generated with cgit - Back to sebastiano.tronto.net