aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2025-05-23Do all loggin in main threadSebastiano Tronto7-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.
2025-05-19Refactored checkdataSebastiano Tronto17-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.
2025-05-18Refactor solver dispatch and checkdataSebastiano Tronto13-246/+318
2025-05-09Other minor fixesSebastiano Tronto1-2/+2
2025-05-07Added build scriptSebastiano Tronto1-1/+1
2025-04-29Added stop / pause / resume solve to APISebastiano Tronto6-35/+174
2025-04-25Give error when ( is not closed in NISS sequenceSebastiano Tronto1-0/+4
2025-04-25NISSSebastiano Tronto11-101/+187
2025-04-23Added tests for inverse moveSebastiano Tronto1-6/+30
2025-04-23Added orientation to getcubeSebastiano Tronto3-14/+27
2025-04-23Adjusted solvers, fixed bugSebastiano Tronto8-32/+51
2025-04-23Almost added support for wide moves, only solve missingSebastiano Tronto3-48/+185
2025-04-22ProgressSebastiano Tronto6-595/+672
2025-04-22Update tests for oriented_cube_tSebastiano Tronto7-70/+99
2025-04-22Remove compose from the public APISebastiano Tronto2-66/+0
2025-04-22Updated documentationSebastiano Tronto2-5/+5
2025-04-22Updated tests and added fixed =A to B32 outputSebastiano Tronto2-34/+22
2025-04-22Removed old scripts and updated public APISebastiano Tronto5-534/+238
2025-04-22Added constantsSebastiano Tronto2-20/+115
2025-04-21Always use unsigned char * for data buffersSebastiano Tronto16-193/+203
Before this commit I was inconsistently using one of void *, char * and uint8_t *.
2025-04-21Merged some files, renamed anotherSebastiano Tronto6-154/+154
2025-04-20Improve order of moves in NISS solutionsSebastiano Tronto1-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.
2025-04-19Improved logging, especially for solveSebastiano Tronto12-125/+114
2025-04-17Sped up checkdata for H48 tablesSebastiano Tronto3-10/+58
2025-04-17Small rework of optimal vs maxsolsSebastiano Tronto6-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".
2025-04-15Log solutions as they are foundSebastiano Tronto3-7/+18
2025-04-15Better logging functionSebastiano Tronto3-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.
2025-04-14FixSebastiano Tronto1-1/+1
2025-04-09Add an opinionated C++20 adapterSebastiano Tronto1-1/+1
2025-04-08Fixed shell; reorganized nissy.hSebastiano Tronto1-93/+93
2025-04-08Some minor changes to the interface.Sebastiano Tronto8-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.
2025-04-02Fix compilation errors with GCC on ARMSebastiano Tronto1-2/+2
2025-04-02Added dreo coordinate solverSebastiano Tronto12-16/+178
2025-04-01Make single-use struct field anonymousSebastiano Tronto1-12/+10
2025-04-01Make symcoord logic genericSebastiano Tronto4-115/+191
2025-04-01Fix mismatched type in function prototype and implementationSebastiano Tronto2-2/+2
2025-04-01Some simplification to AVX2 codeSebastiano Tronto2-62/+32
Some simplification after discussion with Arhan Chaudhary (inspired by vcube). Performance looks unchanged, but at least the code is cleaner.
2025-04-01simplified allowedmoves logicSebastiano Tronto6-56/+58
2025-03-29Optimize genptable for coordinate solve (20x speedup)Sebastiano Tronto3-19/+113
2025-03-28DR coordinate solverSebastiano Tronto7-14/+238
2025-03-26Reformat neon.h to keep lines <80 charsSebastiano Tronto1-16/+25
2025-03-26Added inverse coordinate for COSebastiano Tronto7-31/+102
this is necessary for DR coordinate
2025-03-25More safety with pointers using VLA function parametersSebastiano Tronto18-147/+170
2025-03-25Tiny bugfix in solution writingSebastiano Tronto2-18/+14
2025-03-25Added NISS to coord solverSebastiano Tronto8-97/+274
2025-03-25Tiny fixSebastiano Tronto1-4/+4
2025-03-24Big cleanup for appendsolution()Sebastiano Tronto9-323/+416
With this PR the appendsolution routine is extracted from the h48 solver and the new coordinate solver and made generic. This has many advantages: - less repetition (even if the two versions are different enough that *for now* it was not a big deal) - smaller h48/solve.h file, which is already a big beast - easier to test the appendsolution() routine separately
2025-03-22Some safety with move arrays, small refactor appendcharSebastiano Tronto15-154/+151
2025-03-19Filter solutions for coordinate solver and fix orderingSebastiano Tronto4-3/+35
2025-03-14BugfixSebastiano Tronto1-4/+14

Generated with cgit - Back to sebastiano.tronto.net