aboutsummaryrefslogtreecommitdiff
path: root/src/nissy.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Make the project build with Microsoft's broken C compiler.Sebastiano Tronto2026-04-061-16/+16
| | | | | | | | | | | | | MSVC is not fully C11-compliant, even when compiling with /std:c11. Some changes were needed to make the codebase compatible. Notably, the notation a[static N] and a[n] for function parameters of array type is not supported, so that had to be hidden behind a macro. Atomic types are also an experimental feature, apparently, but at least they work with the correct compiler flag. One thing that MSVC does well, however, is warning on integer conversions on /W4 level. I am not sure if Clang and GCC have something similar, so I took this chance to fix some of these.
* Remove pthread importSebastiano Tronto2025-08-121-1/+0
|
* Added solver aliasesSebastiano Tronto2025-08-071-14/+14
|
* Added API function for solution variationsSebastiano Tronto2025-08-071-0/+26
|
* Added move sequence comparison functionSebastiano Tronto2025-07-311-0/+12
|
* Turns checks into assertions in utils/math.hSebastiano Tronto2025-07-281-0/+1
|
* Removed VLA notation from function parameters.Sebastiano Tronto2025-05-271-4/+4
| | | | | 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.
* Refactored checkdataSebastiano Tronto2025-05-191-113/+7
| | | | | | | | 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-181-112/+31
|
* Added stop / pause / resume solve to APISebastiano Tronto2025-04-291-6/+18
|
* Added orientation to getcubeSebastiano Tronto2025-04-231-8/+11
|
* Adjusted solvers, fixed bugSebastiano Tronto2025-04-231-10/+2
|
* Update tests for oriented_cube_tSebastiano Tronto2025-04-221-14/+22
|
* Remove compose from the public APISebastiano Tronto2025-04-221-41/+0
|
* Updated tests and added fixed =A to B32 outputSebastiano Tronto2025-04-221-11/+11
|
* Removed old scripts and updated public APISebastiano Tronto2025-04-221-62/+18
|
* Always use unsigned char * for data buffersSebastiano Tronto2025-04-211-14/+12
| | | | | Before this commit I was inconsistently using one of void *, char * and uint8_t *.
* Improved logging, especially for solveSebastiano Tronto2025-04-191-42/+36
|
* Sped up checkdata for H48 tablesSebastiano Tronto2025-04-171-1/+1
|
* Small rework of optimal vs maxsolsSebastiano Tronto2025-04-171-7/+5
| | | | | | | | | | | | | | 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".
* Better logging functionSebastiano Tronto2025-04-151-11/+10
| | | | | | | 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.
* Some minor changes to the interface.Sebastiano Tronto2025-04-081-20/+18
| | | | | | | | | - 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-021-0/+1
|
* Added inverse coordinate for COSebastiano Tronto2025-03-261-1/+1
| | | | this is necessary for DR coordinate
* More safety with pointers using VLA function parametersSebastiano Tronto2025-03-251-3/+3
|
* Added checkdata for coord EOSebastiano Tronto2025-03-141-0/+5
|
* Replaced datasize with solverinfoSebastiano Tronto2025-03-141-5/+32
|
* Revert API changeSebastiano Tronto2025-03-121-3/+1
|
* Working (?) version of coordinate solverSebastiano Tronto2025-03-091-6/+15
|
* Fixed alignment bugSebastiano Tronto2024-12-161-0/+22
|
* Implemented 'optimal' optionSebastiano Tronto2024-12-151-3/+5
|
* Allow choosing number of threads when calling solve()Sebastiano Tronto2024-12-141-1/+15
|
* Merge the "solver-experiments" branch that I have been working on forSebastiano Tronto2024-12-071-43/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a few weeks. This include mainly three things: 1. Various tweaks for a total performance gain of around 30%. 2. Take into account symmetries and avoid repeated work. This required a re-work of the splitting into tasks before the solve. 3. Add a second fallback table (eoesep). This gives huge performance gains for particular scrambles (e.g. superflip). After merging this commit, remove and re-generate all pruning tables. Squashed commit of the following: commit 60f0705d2d69050e6a30581a2810f686d6f69b80 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Sat Dec 7 16:06:48 2024 +0100 Fix indentation commit cc5d489a251812b6188c0ba264ac6cb2236f1afe Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Sat Dec 7 15:56:19 2024 +0100 Updated documentation commit a3f605dd628546e52564f82b139feb473b0725f3 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Sat Dec 7 14:01:11 2024 +0100 use eoesep table as second fallback commit c75e43c9116c64f97e92b0fe038be8a032925a72 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Fri Dec 6 16:13:23 2024 +0100 First commit for gendata_eoesep commit fea7688ab8bdc5ae0c3480622e2510a3bcd39248 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Tue Dec 3 17:31:00 2024 +0100 Add scramble to tool commit 66866cb71dea4ca8278ecb9e90ff4295771feb42 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Tue Dec 3 17:22:59 2024 +0100 Added tool to check multiple solutions commit ef65611c772c3996bddca8d181da3538e0af1674 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Tue Dec 3 17:16:20 2024 +0100 Write all solutions for symmetric positions commit e3ded26db7d7d4ae7c0e2488151ed14f581f7b8e Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Tue Nov 26 09:14:54 2024 +0100 Added symmetry filter (TODO: print excluded solutions) commit 864c437a9751c58d58562650ca9eba4a9e6ad3eb Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Mon Nov 25 14:51:13 2024 +0100 Improved task split commit b88926d36d7ab0c64c5fe3bb954fd15d41267fba Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Fri Nov 22 19:06:41 2024 +0100 Reworked tasks for multi-threading in view of symmetry filter commit 26fa653f97df8cd601aecb80eaf89f0a00e9ba9f Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Thu Oct 31 15:37:43 2024 +0100 Added transform move commit 19f655ef94d658eaa2fefb5cea3c167a3ec58db6 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Thu Oct 31 09:29:15 2024 +0100 Clarified doc commit 3b0fe1e5ef8b628854e30f0f0067300e2763c954 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Thu Oct 31 08:36:58 2024 +0100 Handle solved cube correctly commit 57705cbc4982e3abe97a36ed64871738d4f721c0 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Thu Oct 31 08:24:30 2024 +0100 Close file commit fc7d462b58bcf3d3a3fbf26c1f3bd04c640a4898 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Tue Oct 29 15:05:48 2024 +0100 Removed stats tool commit 359bf7cb49ef405ee76ed662207d47cb2abcc5a9 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Tue Oct 29 15:01:51 2024 +0100 Updated theory doc commit 39c315af562bc4ce896f41004388a4c34d475d37 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Tue Oct 29 14:51:40 2024 +0100 Remove unused constants commit 57a5d24538aa59a4df9221dad2f99e9f0286bd9d Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Tue Oct 29 10:20:38 2024 +0100 Add tool to solve scrambles from file commit 07e2918c216636891b1fa6adecc9756086a901e9 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Mon Oct 28 17:00:00 2024 +0100 Add make table to tool commit f5e5266c654eb027a5a35c57cc618555246f5e5e Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Mon Oct 28 09:35:49 2024 +0100 Remove old solver, other small things commit a1ec78025b7959dbb845213f7f4e6851ecebc204 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Sun Oct 27 02:00:29 2024 +0200 Improvements commit 8eea23dbe888d923e662e24ae969130e2c67b999 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Sat Oct 26 12:24:19 2024 +0200 Makefile fix commit 3fc3927beacc78971cefeb42da8d71fe6c015fc1 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Fri Oct 25 18:25:09 2024 +0200 More performance gains commit 7b4efa1f9af9722de1ab9ccfc27899825a0d12c4 Author: Sebastiano Tronto <sebastiano@tronto.net> Date: Fri Oct 25 15:53:20 2024 +0200 Alternative solver implementation, small performance gain
* Safer handling of corrupt dataSebastiano Tronto2024-10-191-3/+17
|
* Finished Python moduleSebastiano Tronto2024-10-191-4/+9
|
* Add node and fallback benchmarkingSebastiano Tronto2024-10-181-3/+4
|
* New interface function nissy_countmovesSebastiano Tronto2024-10-181-0/+12
|
* Interface changes, progress with pythonSebastiano Tronto2024-10-141-80/+35
|
* Removed nissy_explainerror and moved datainfo to toolsSebastiano Tronto2024-10-131-144/+0
|
* Make writemoves (and solver) safer by checking buffer sizeSebastiano Tronto2024-10-121-3/+0
|
* Make gendata and co safer by checking buffer sizeSebastiano Tronto2024-10-121-7/+14
|
* Make writecube saferSebastiano Tronto2024-10-121-40/+33
|
* Changed from size_t to uint64_tSebastiano Tronto2024-10-121-5/+5
|
* Added buffer sizes in API argsSebastiano Tronto2024-10-111-24/+75
|
* Error codes, documentation, change nisstype from string to flagsSebastiano Tronto2024-10-111-43/+257
|
* Improved error messages and add some comments in nissy.hSebastiano Tronto2024-10-101-6/+57
|
* Removed "options" from solver selectionSebastiano Tronto2024-10-101-66/+46
| | | | | | | | Now the solver name fully determines the solver (and options) to be used. For example, now one must specify "h48h0k4" as the name of the solver. This PR also fixes a couple of things in tools.
* Fix concurrency issuesSebastiano Tronto2024-10-061-1/+1
| | | | | So I did not have any misconception about Atomics, I just could not apply it where I did because the logic doesn't allow for it.
* Fix rare data raceSebastiano Tronto2024-10-051-1/+1
| | | | | | I had some misconception about how _Atomic and const worked. This means the previous commit (expected distribution) could be incorrect.
* Merge remote-tracking branch 'upstream/master'enricotenuti2024-09-291-2/+71
|\ | | | | | | Merge upstream

Generated with cgit - Back to sebastiano.tronto.net