aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md34
1 files changed, 17 insertions, 17 deletions
diff --git a/README.md b/README.md
index 308dad0..338a280 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ of pruning tables that were developed independently.
16This project is mainly developed on UNIX systems (Linux, MacOS, BSD...), 16This project is mainly developed on UNIX systems (Linux, MacOS, BSD...),
17but it is also possible to build it on Windows, with some limitations. 17but it is also possible to build it on Windows, with some limitations.
18 18
19### UNIX (Linux, MaxOS, BSD...) 19### UNIX (Linux, MacOS, BSD...)
20 20
21To build nissy simply run 21To build nissy simply run
22 22
@@ -35,7 +35,7 @@ $ CC=gcc ./build.sh
35``` 35```
36 36
37is going to configure `nissy` to use at most 3 threads, and build it with 37is going to configure `nissy` to use at most 3 threads, and build it with
38`gcc`. Se the comments in `./build.sh` for more details. 38`gcc`. See the comments in `./build.sh` for more details.
39 39
40### Windows 40### Windows
41 41
@@ -43,7 +43,7 @@ It is possible to build this project on Windows using `build.bat`. The
43[Clang](https://clang.llvm.org/) compiler must be installed, and the 43[Clang](https://clang.llvm.org/) compiler must be installed, and the
44command prompt must be correctly configured to run it. 44command prompt must be correctly configured to run it.
45 45
46We suggest installing Clang via the Visual Studio Istaller, selecting 46We suggest installing Clang via the Visual Studio Installer, selecting
47the "C++ development" pack, as well as the "clang" and "Windows SDK 11" 47the "C++ development" pack, as well as the "clang" and "Windows SDK 11"
48components. It is advised to use "x64 Native Tools Command Prompt for 48components. It is advised to use "x64 Native Tools Command Prompt for
49VS 2022" instead of a regular command prompt to run the build script. 49VS 2022" instead of a regular command prompt to run the build script.
@@ -64,13 +64,13 @@ can be used to build the basic shell, while
64Builds and runs the unit tests. See `build.bat help` for a list of 64Builds and runs the unit tests. See `build.bat help` for a list of
65all available options. 65all available options.
66 66
67Not: At the moment certain optimizations, such as multithreading and 67Note: At the moment certain optimizations, such as multithreading and
68advanced CPU instructions, are not supported on Windows. 68advanced CPU instructions, are not supported on Windows.
69Work is ongoing to improve Windows support. 69Work is ongoing to improve Windows support.
70 70
71## Running tests 71## Running tests
72 72
73This project includes a suite of "unit" test. You can run them with: 73This project includes a suite of "unit" tests. You can run them with:
74 74
75``` 75```
76$ ./build.sh test 76$ ./build.sh test
@@ -86,14 +86,14 @@ To run only a subset of the tests, you can pass as argument a regular
86expression that matches only the name of the tests you want to run: 86expression that matches only the name of the tests you want to run:
87 87
88``` 88```
89$ ./buld test coord 89$ ./build.sh test coord
90``` 90```
91 91
92Each subfolder of the test folder contains a test. A test can consist 92Each subfolder of the test folder contains a test. A test can consist
93of multiple test cases (.in files). Running a test means compiling and 93of multiple test cases (.in files). Running a test means compiling and
94running the corresponding test against each test case. When a test case 94running the corresponding test against each test case. When a test case
95is run, the .in file is read a the output of the program is compared 95is run, the .in file is read and the output of the program is compared
96to the corresponding .out filei using diff(1). If the two differ, the 96to the corresponding .out file using diff(1). If the two differ, the
97difference is printed out and no other test is run. 97difference is printed out and no other test is run.
98 98
99The results of the last test case run is saved in test/last.out (standard 99The results of the last test case run is saved in test/last.out (standard
@@ -108,7 +108,7 @@ More comprehensive tests (integration tests) can be performed with *tools*.
108## Running "tools" 108## Running "tools"
109 109
110In the tools folder there are some small programs that test various 110In the tools folder there are some small programs that test various
111functionality of the H48 library. They work similarly to test, but they 111functionality of the H48 library. They work similarly to tests, but they
112are not run in debug mode by default. 112are not run in debug mode by default.
113 113
114To run a tool you can use: 114To run a tool you can use:
@@ -124,13 +124,13 @@ parameters.
124For example: 124For example:
125 125
126``` 126```
127$ :./build.sh tool gendata h48h2 127$ ./build.sh tool gendata h48h2
128``` 128```
129 129
130Will run a tool that generates the data table for the H48 solver with `h=2`. 130Will run a tool that generates the data table for the H48 solver with `h=2`.
131 131
132Each tool run is automatically timed, so these tools can be used as 132Each tool run is automatically timed, so these tools can be used as
133benchmark. The output as well as the time of the run are saved to a 133benchmarks. The output as well as the time of the run are saved to a
134file in the tools/results folder. 134file in the tools/results folder.
135 135
136To build and run a tool in debug mode, use `./build.sh -d tool`. 136To build and run a tool in debug mode, use `./build.sh -d tool`.
@@ -150,7 +150,7 @@ If one of the solvetests fails, subsequent tests are going to be skipped.
150## Command-line interface 150## Command-line interface
151 151
152The `shell` folder contains the code for a rudimentary shell that can 152The `shell` folder contains the code for a rudimentary shell that can
153be used to run commands manually. The user experience in not amazing, 153be used to run commands manually. The user experience is not amazing,
154as the commands require quite verbose options. 154as the commands require quite verbose options.
155 155
156To build the shell run: 156To build the shell run:
@@ -169,7 +169,7 @@ JLQWSVUH=ZLCUABGIVTKH=A
169 169
170The cube format is meant to be easy to copy-paste and read for the 170The cube format is meant to be easy to copy-paste and read for the
171software, but not necessarily intuitive for the user. See below for a 171software, but not necessarily intuitive for the user. See below for a
172detaileed description. 172detailed description.
173 173
174You can also get a random cube 174You can also get a random cube
175 175
@@ -192,7 +192,7 @@ $ ./run solve_scramble -solver h48h0k4 -n 1 -M 4 -moves "R' U' F"
192F' U' R 192F' U' R
193``` 193```
194 194
195For a full list of available command, use `./run help`. 195For a full list of available commands, use `./run help`.
196 196
197## Using this software as a library 197## Using this software as a library
198 198
@@ -204,7 +204,7 @@ The API is documented in the public header file `src/nissy.h`.
204 204
205### C 205### C
206 206
207To use this in a C project, simly include `src/nissy.h`. The tools 207To use this in a C project, simply include `src/nissy.h`. The tools
208in the `tools/` folder are a good example for how to use this. 208in the `tools/` folder are a good example for how to use this.
209 209
210NOTE: this project is developed using the C11 standard. If you are using 210NOTE: this project is developed using the C11 standard. If you are using
@@ -317,7 +317,7 @@ cccccccc=eeeeeeeeeeee=r
317``` 317```
318 318
319Where the first 8 characters represent the corner, the 12 characters 319Where the first 8 characters represent the corner, the 12 characters
320after the first 12 represent the edges and the last character represents 320after the first 8 represent the edges and the last character represents
321the orientation of the cube with respect to the base orientation. 321the orientation of the cube with respect to the base orientation.
322 322
323Edges are numbered as follows (see also constants.h): 323Edges are numbered as follows (see also constants.h):
@@ -337,7 +337,7 @@ UFR=0 UBL=1 DFL=2 DBR=3 UFL=4 UBR=5 DFR=6 DBL=7
337 337
338If the corner is twisted clockwise with respect to the U/D 338If the corner is twisted clockwise with respect to the U/D
339axis orientation, the value is increased by 8. If it is twisted 339axis orientation, the value is increased by 8. If it is twisted
340counter-clowsie, the value is increased by 16. 340counter-clockwise, the value is increased by 16.
341 341
342The orientations of the cube are numbered as follows, where e.g. "RB" 342The orientations of the cube are numbered as follows, where e.g. "RB"
343means that the R face in on top and the B face is on front: 343means that the R face in on top and the B face is on front:

Generated with cgit - Back to sebastiano.tronto.net