aboutsummaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix small build error with clangSebastiano Tronto2025-05-281-1/+2
|
* Removed VLA notation from function parameters.Sebastiano Tronto2025-05-2713-70/+70
| | | | | I found out that this gives undefined behavior when then size is 0. Better not to have it at all, it is confusing for other developers anyway.
* Avoid pausing for logging only if poll_status() is null (h48 solver).Sebastiano Tronto2025-05-261-10/+7
| | | | | | | | | | | | This is a small amendment to c6a77f30f64be73a5e55e06336975f2ecfbb2324, which changed the way we log solutions while the h48 solver is running. With the method recently introduced, the main thread checks for solutions to log every 0.5 seconds, resulting in a possible slowdown of at most 0.5s per solve. The solutions are also logged when all worker threads are completed. With this new method, when the poll_status() callback function is NULL, which likely means nissy is not run interactively, we rely only on the final log on completion of the worker threads. This means less frequent logging, but at no performance cost.
* CleanupSebastiano Tronto2025-05-251-1/+2
|
* Quick fix for bugSebastiano Tronto2025-05-251-9/+8
|
* Do all loggin in main threadSebastiano Tronto2025-05-237-92/+124
| | | | | | | | | | | | | | | | | Before this committ, the solver (via the generic solution-appender routines in src/solve/solutions.h) and the H48 data generator did some logging in the worker threads, without using any locks. This was not nice, but in practice it did not cause any problem, because the log messages were rare. However, this turned out to be a problem when building to WASM, because web workers do not have access to the main JS memory, and therefore they cannot call functions from the main JS. This includes not only the callback functions for logging, but also those for polling the status of the solver (run / pause / stop). This commit fixes this at the cost or being somewhat inelegant: the solutions are not logged as they are found, but only every 500ms.
* Refactored checkdataSebastiano Tronto2025-05-1917-225/+401
| | | | | | | | Relevant changes include: - Changed the signature of nissy_checkdata(). - Removed expected_distribution.h from tools; this data is now included in each solver's src/ code. - Removed distribution check for cocsep; may add back later.
* Refactor solver dispatch and checkdataSebastiano Tronto2025-05-1813-246/+318
|
* Other minor fixesSebastiano Tronto2025-05-091-2/+2
|
* Added build scriptSebastiano Tronto2025-05-071-1/+1
|
* Added stop / pause / resume solve to APISebastiano Tronto2025-04-296-35/+174
|
* Give error when ( is not closed in NISS sequenceSebastiano Tronto2025-04-251-0/+4
|
* NISSSebastiano Tronto2025-04-2511-101/+187
|
* Added tests for inverse moveSebastiano Tronto2025-04-231-6/+30
|
* Added orientation to getcubeSebastiano Tronto2025-04-233-14/+27
|
* Adjusted solvers, fixed bugSebastiano Tronto2025-04-238-32/+51
|
* Almost added support for wide moves, only solve missingSebastiano Tronto2025-04-233-48/+185
|
* Merge branch 'extend_moves'Sebastiano Tronto2025-04-222-2/+97
|\
| * Merge branch 'master' into extend_movesSebastiano Tronto2025-04-226-543/+235
| |\
| * | Added constantsSebastiano Tronto2025-04-222-20/+115
| | |
* | | ProgressSebastiano Tronto2025-04-226-595/+672
| | |
* | | Update tests for oriented_cube_tSebastiano Tronto2025-04-227-70/+99
| | |
* | | Remove compose from the public APISebastiano Tronto2025-04-222-66/+0
| |/ |/|
* | Updated documentationSebastiano Tronto2025-04-222-5/+5
| |
* | Updated tests and added fixed =A to B32 outputSebastiano Tronto2025-04-222-34/+22
| |
* | Removed old scripts and updated public APISebastiano Tronto2025-04-225-534/+238
|/
* Always use unsigned char * for data buffersSebastiano Tronto2025-04-2116-193/+203
| | | | | Before this commit I was inconsistently using one of void *, char * and uint8_t *.
* Merged some files, renamed anotherSebastiano Tronto2025-04-216-154/+154
|
* Improve order of moves in NISS solutionsSebastiano Tronto2025-04-201-18/+62
| | | | | | | | Now the side that has more moves is written first. For example: write (U L F) B instead of B (U L F) This also fixes the test on appendsolutions, which used an older version of the function's signature.
* Improved logging, especially for solveSebastiano Tronto2025-04-1912-125/+114
|
* Sped up checkdata for H48 tablesSebastiano Tronto2025-04-173-10/+58
|
* Small rework of optimal vs maxsolsSebastiano Tronto2025-04-176-40/+31
| | | | | | | | | | | | | | I wanted to make the "optimal" and "maxsolutions" options mutually exclusive, but in the end I decided there is value in keeping both (e.g. for specifying a limit to the number of solutions when asking for "all" optimal"). Now optimal cannot be negative anymore, for the same reason of maxsolutions. The interface user (shell, UI) will have to take care of handling this in a way that makes sense for the user. Usually this means setting the maximum number of solutions to UINT_MAX (or a similar very high number) when the user wants "all optimal".
* Log solutions as they are foundSebastiano Tronto2025-04-153-7/+18
|
* Better logging functionSebastiano Tronto2025-04-153-17/+22
| | | | | | | Now it is possible to provide some data together with the logging function. This is useful for example in C++, where I can now provide an arbitrary callable object as data, and a simple wrapper function that call the callable object as logging function.
* FixSebastiano Tronto2025-04-141-1/+1
|
* Add an opinionated C++20 adapterSebastiano Tronto2025-04-091-1/+1
|
* Fixed shell; reorganized nissy.hSebastiano Tronto2025-04-081-93/+93
|
* Merge branch 'master' of tronto.net:h48Sebastiano Tronto2025-04-081-2/+2
|\
| * Fix compilation errors with GCC on ARMSebastiano Tronto2025-04-021-2/+2
| |
* | Some minor changes to the interface.Sebastiano Tronto2025-04-088-43/+59
|/ | | | | | | | | - Simplified logger to accept only a string, not a variadic list of args like printf(). This can still use some improvement, but now it is easier to use from other languages. - Fixed some misuses of the logger (wrong types etc) - Renamed some constants - Fixed some typos in comments.
* Added dreo coordinate solverSebastiano Tronto2025-04-0212-16/+178
|
* Make single-use struct field anonymousSebastiano Tronto2025-04-011-12/+10
|
* Make symcoord logic genericSebastiano Tronto2025-04-014-115/+191
|
* Fix mismatched type in function prototype and implementationSebastiano Tronto2025-04-012-2/+2
|
* Some simplification to AVX2 codeSebastiano Tronto2025-04-012-62/+32
| | | | | Some simplification after discussion with Arhan Chaudhary (inspired by vcube). Performance looks unchanged, but at least the code is cleaner.
* simplified allowedmoves logicSebastiano Tronto2025-04-016-56/+58
|
* Optimize genptable for coordinate solve (20x speedup)Sebastiano Tronto2025-03-293-19/+113
|
* DR coordinate solverSebastiano Tronto2025-03-287-14/+238
|
* Reformat neon.h to keep lines <80 charsSebastiano Tronto2025-03-261-16/+25
|
* Added inverse coordinate for COSebastiano Tronto2025-03-267-31/+102
| | | | this is necessary for DR coordinate

Generated with cgit - Back to sebastiano.tronto.net