aboutsummaryrefslogtreecommitdiff
path: root/src/solvers (unfollow)
Commit message (Collapse)AuthorFilesLines
2026-03-01C11 threads!Sebastiano Tronto4-12/+12
2026-03-01C11 threads?Sebastiano Tronto4-11/+11
2026-01-12Improve performance of H48 solver with prefetchingSebastiano Tronto2-134/+243
With this commit we re-structure how the node expansion in the H48 solution search works to allow prefetching of pruning values, showing performance improvements in the range of 30-45% on x86, depending on table size and solution length. A small bug fix related to appending solutions is included in this commit.
2025-12-23Added cornersx solverSebastiano Tronto5-1/+80
2025-12-19Minor improvementSebastiano Tronto1-2/+7
Add a trivial check to H48 solver. The benchmarks show, surprisingly, a more noticeable improvement for larger solvers (h10, h11). I was expecting it to be more noticeable for smaller solvers. It is likely that this change is irrelevant to performance and all changes in the benchmark results are just random chance.
2025-12-19Add coordinate solvers for cornersh48-corner-estimateSebastiano Tronto7-1/+89
2025-12-17Improve pruning value fetching and re-do benchmarksSebastiano Tronto2-20/+37
2025-12-17Move some checks around, small improvementSebastiano Tronto1-11/+9
2025-12-16Swap bit pairs in pval_minSebastiano Tronto1-5/+4
2025-12-14Update commentsSebastiano Tronto2-5/+7
2025-12-14Cleanup, update documentation, fix examplesSebastiano Tronto6-235/+157
2025-12-14Bye bye h0k4Sebastiano Tronto5-310/+27
2025-12-14Intertwined table seems to workSebastiano Tronto9-34/+178
2025-11-24Fix duplicate solutions, overflow in maxsols and improve symmetry reduction ↵Sebastiano Tronto5-118/+203
for H48. This commit fixes two bugs: - A bug that caused duplicates solutions for symmetric scrambles. - An overflow in the maxsols parameter for the H48 solver, which caused it to find much fewer solutions than existed. Moreover, the H48 solvers has been improved by reducing by symmetry not only from the starting position, but also up to the first 4 moves.
2025-08-11Made H48 solver safer for 32bit size_tSebastiano Tronto1-2/+9
2025-08-11Wrapped pthread use in custom APISebastiano Tronto5-60/+69
2025-08-07Added solver aliasesSebastiano Tronto1-7/+39
2025-08-07Added API function for solution variationsSebastiano Tronto2-5/+5
2025-08-06Added HTR solverSebastiano Tronto12-68/+164
2025-08-05Added DRFIN solverSebastiano Tronto14-75/+543
2025-08-01Move is_eo_even to more appropriate moduleSebastiano Tronto1-14/+0
2025-08-01Added CPEPE coordinate in preparation of full DRFIN solverSebastiano Tronto1-0/+86
2025-08-01Fixed nasty bugSebastiano Tronto1-0/+2
2025-08-01Reworked coordinate solver axis specificationSebastiano Tronto10-61/+24
2025-08-01Added solvetests for DRSLICESebastiano Tronto1-2/+2
This also changes the rotation axes for DRSLICE, so that the move U gets transformed to R and F instead of L and B.
2025-07-31Fixed bug and added testsSebastiano Tronto1-32/+25
2025-07-31Fix switch logic in coord solverSebastiano Tronto1-0/+8
2025-07-31Fix bugSebastiano Tronto2-23/+58
2025-07-30Fixed bug with counting solutions for coordinate solverSebastiano Tronto2-8/+3
2025-07-30added drslice coordinateSebastiano Tronto11-52/+197
2025-07-29All coordinates unsignedSebastiano Tronto12-85/+81
2025-07-29Cleanup some TODOsSebastiano Tronto7-20/+8
2025-07-28Make failed assert exit immediatelySebastiano Tronto3-7/+5
2025-07-17Renamed drslice drfinnoeSebastiano Tronto3-26/+26
2025-07-17Comments for drsliceSebastiano Tronto1-4/+15
2025-07-17Small optimization for coord gendataSebastiano Tronto1-5/+10
2025-07-17Working drslice (same results as nissy-classic)Sebastiano Tronto4-0/+137
2025-06-19Small fixesSebastiano Tronto1-2/+2
2025-06-18Trick fixSebastiano Tronto1-6/+21
2025-06-18Change min depth for H48 tasks heuristic sortSebastiano Tronto1-1/+1
2025-06-18Big speedup for H48 solver (heuristic sort of tasks)Sebastiano Tronto1-19/+46
2025-05-30More improvements to web solverSebastiano Tronto1-8/+8
2025-05-28Fix small build error with clangSebastiano Tronto1-1/+2
2025-05-27Removed VLA notation from function parameters.Sebastiano Tronto9-38/+38
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.
2025-05-26Avoid pausing for logging only if poll_status() is null (h48 solver).Sebastiano Tronto1-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.
2025-05-25CleanupSebastiano Tronto1-1/+2
2025-05-25Quick fix for bugSebastiano Tronto1-9/+8
2025-05-23Do all loggin in main threadSebastiano Tronto6-92/+122
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 Tronto15-112/+392
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 Tronto12-134/+287

Generated with cgit - Back to sebastiano.tronto.net