aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2026-04-06Make the project build with Microsoft's broken C compiler.Sebastiano Tronto32-353/+381
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.
2026-04-06Added popcount_u64Sebastiano Tronto4-0/+29
2026-04-06Remove use of MMX intrinsics in favor of AVX2Sebastiano Tronto1-7/+8
2026-03-01Improve solver name checkSebastiano Tronto1-1/+8
2026-03-01Improve Windows build support.Sebastiano Tronto6-58/+90
- Use multithreading (works with a sufficiently recent version of the Microsoft developer tools / C SDK). - Detect CPU architecture and use AVX2 or NEON when appropriate. - Automatically detect python installation path.
2026-01-12Improve performance of H48 solver with prefetchingSebastiano Tronto4-134/+259
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 Tronto6-1/+82
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 Tronto12-2/+133
2025-12-17Fix alignmentSebastiano Tronto1-3/+9
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-13Correct OS detection for sleep functionSebastiano Tronto1-1/+3
2025-08-12Some generic fixes, mainly for building on WindowsSebastiano Tronto3-2/+16
2025-08-12Remove pthread importSebastiano Tronto1-1/+0
2025-08-11Made H48 solver safer for 32bit size_tSebastiano Tronto1-2/+9
2025-08-11Wrapped pthread use in custom APISebastiano Tronto7-60/+107
2025-08-08Fix bug and make avx load consistentSebastiano Tronto1-9/+9
2025-08-08Added solver documentationSebastiano Tronto1-1/+1
2025-08-07Mention lastqt and unniss in description of nissy_variations()Sebastiano Tronto1-1/+2
2025-08-07Added solver aliasesSebastiano Tronto2-21/+53
2025-08-07Added API function for solution variationsSebastiano Tronto7-15/+356
2025-08-06Added HTR solverSebastiano Tronto17-70/+268
2025-08-06Remove AVX512 instructionSebastiano Tronto1-5/+4
2025-08-05Added DRFIN solverSebastiano Tronto14-75/+543
2025-08-01Move is_eo_even to more appropriate moduleSebastiano Tronto5-16/+43
2025-08-01Added CPEPE coordinate in preparation of full DRFIN solverSebastiano Tronto6-14/+249
2025-08-01Fixed nasty bugSebastiano Tronto1-0/+2
2025-08-01Reworked coordinate solver axis specificationSebastiano Tronto11-61/+37
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-31Added move sequence comparison functionSebastiano Tronto4-3/+109
2025-07-30Fixed bug with counting solutions for coordinate solverSebastiano Tronto2-8/+3
2025-07-30added drslice coordinateSebastiano Tronto12-53/+199
2025-07-29All coordinates unsignedSebastiano Tronto19-219/+215
2025-07-29Cleanup some TODOsSebastiano Tronto7-20/+8
2025-07-29Optimized some coordinatesSebastiano Tronto7-73/+224
2025-07-28Tiny cleanupSebastiano Tronto1-1/+1
2025-07-28Turns checks into assertions in utils/math.hSebastiano Tronto3-56/+21
2025-07-28Make failed assert exit immediatelySebastiano Tronto8-21/+15
2025-07-28Hardcoded factorial constantsSebastiano Tronto2-25/+20
2025-07-24Use bit trick for portable and arm popcountSebastiano Tronto2-11/+25

Generated with cgit - Back to sebastiano.tronto.net