Commit Graph
626 Commits
Author SHA1 Message Date
mlemanczyk bf93bcff1a BitContradictionSolverWithQMultiplier improvements. BitContradictionSolverWithAMultiplier added. 2026-01-12 20:50:54 +01:00
mlemanczyk dc7a499f82 BitContradiction optimizations 2026-01-12 02:45:46 +01:00
mlemanczyk 2b803abcac BitContradiction mode modified to check for contradictions from both sides. 2026-01-12 01:49:10 +01:00
mlemanczyk d88ad25476 Initial BitTree implementation added. 2026-01-09 16:13:16 +01:00
mlemanczyk 45e3455ff3 DivisorSet.BitContradiction mode added to --mersenne=bydivisor. 2026-01-04 17:59:02 +01:00
mlemanczyk 6a924f4041 DivisorSet.Percentile, Additive and TopDown modes implemented. State files ported to LMDB => FASTER to avoid millions of files in folders. 2026-01-04 12:17:27 +01:00
mlemanczyk 27f65baf3d Predictive and default bydivisor modes will use separate files to track the last checked k to prevent impacting results between modes. 2026-01-03 20:53:57 +01:00
mlemanczyk a6d408f2aa Predictive scanning implemented for bydivisor method. 2026-01-03 20:01:22 +01:00
mlemanczyk 6b80e31e6c Pow2MontgomeryModWindowedConvertToStandardCpu usages replaced with a comparison to MontgomeryOne avoiding unnecessary conversions. Results updated. 2026-01-03 01:37:40 +01:00
mlemanczyk ce3079a48e Restored CalculateOrderKernelLauncher kernel setup. 2026-01-02 23:46:30 +01:00
mlemanczyk f3ed5b04a1 Improvements to recognize cases when we only find trivial divisors for p. Not fully fixed, yet. 2026-01-02 23:39:32 +01:00
mlemanczyk bfb3bcb1e3 Fixed issue with treating Mersenne's number as valid divisor for p. 2025-12-29 22:44:14 +01:00
mlemanczyk be92ef1ae3 Compilation error fixed. 2025-12-29 05:49:45 +01:00
mlemanczyk 9a6a1968b7 Merge branch 'simplify-bydivisor' of https://github.com/mlemanczyk/even-perfect-numbers-scanner into simplify-bydivisor 2025-12-28 00:59:18 +01:00
mlemanczyk 87a66e4eca DivisorSet scans added as EnumDependentTemplate to MersenneNumberDivisorByDivisorCpuTesterWithTemplate. New Pow2Groups scan implemented based on statistics for high divisors. MersenneNumberDivisorByDivisorPrimeScan sessions integrated into MersenneNumberDivisorByDivisorPrimeScanSessionWithTemplate. Various micro optimizations to eliminate variable, unnecessary struct creations and continue scans in higher divisor ranges, when lower ranges are exhausted. --bydivisor-k-increment command-line argument added. 2025-12-28 00:45:08 +01:00
mlemanczyk 9391954b3e DivisorSet scans added as EnumDependentTemplate to MersenneNumberDivisorByDivisorCpuTesterWithTemplate. New Pow2Groups scan implemented based on statistics for high divisors. MersenneNumberDivisorByDivisorPrimeScan sessions integrated into MersenneNumberDivisorByDivisorPrimeScanSessionWithTemplate. Various micro optimizations to eliminate variable, unnecessary struct creations and continue scans in higher divisor ranges, when lower ranges are exhausted. --bydivisor-k-increment command-line argument added. 2025-12-28 00:39:36 +01:00
mlemanczyk 759614de54 Fixed invalid index return when EnvironmentConfig.RollingAccelerators is 1. 2025-12-28 00:14:23 +01:00
mlemanczyk 3342ead2d4 DeviceDependentGenerator modified to create all classes in "generated" folder and clean up generated files during dotnet clean process. 2025-12-28 00:13:30 +01:00
mlemanczyk 75a2017385 Heuristic and small prime factor kernels restored in PrimeOrderAcceleratorTemplate. 2025-12-28 00:12:39 +01:00
mlemanczyk 6603f65993 New numbers added for quick and easy reuse without struct creations. 2025-12-28 00:12:39 +01:00
mlemanczyk 6678f24887 Race condition fixed 2025-12-25 23:14:12 +01:00
mlemanczyk 2bf9ff233c PrimeOrderCalculator converted to a template. 2025-12-21 18:02:59 +01:00
mlemanczyk 48df3df290 Fix to update pending list entry with the updated one, after PartialFactorPendingEntry was converted back to struct. 2025-12-20 16:46:57 +01:00
mlemanczyk 9147124ddf MersenneNumberTesterTemplate extended to depend on new enums: CacheStatus & OrderDevice instead of constructor parameters to limit code branches during execution. 2025-12-19 22:01:21 +01:00
mlemanczyk c5c42b0c19 MersenneNumberTesterTemplate made dependent on the calculation method to eliminate unnecessary branching. 2025-12-19 20:01:45 +01:00
mlemanczyk d32eea0212 DeviceDependentGenerator extended to allow generation of enum dependent templates. Name suffix separate to its own attribute. 2025-12-19 19:01:38 +01:00
mlemanczyk a21ab3134e MersenneNumberTester converted to device dependent MersenneNumberTesterTemplate. 2025-12-19 18:25:27 +01:00
mlemanczyk 74837a407e MersenneDivisorCycles converted to device template. 2025-12-19 04:03:27 +01:00
mlemanczyk 31ecf24522 TODOs added. 2025-12-19 00:10:21 +01:00
mlemanczyk 870819dec6 MersenneNumberDivisorByDivisorCpuTesterWithTemplate optimizations 2025-12-19 00:10:09 +01:00
mlemanczyk 4edad10be8 MethodImpl attributes adjustments. 2025-12-18 20:10:41 +01:00
mlemanczyk ed299edf56 MersenneNumberDivisorByDivisorCpuTesterWithCpuOrder, MersenneNumberDivisorByDivisorCpuTesterWithHybridOrder & MersenneNumberDivisorByDivisorCpuTesterWithGpuOrder converted to device dependent template MersenneNumberDivisorByDivisorCpuTesterWithTemplate. 2025-12-18 20:10:20 +01:00
mlemanczyk 2236c3ec35 MersenneCpuDivisorScanSessionWithCpuOrder, MersenneCpuDivisorScanSessionWithHybridOrder & MersenneCpuDivisorScanSessionWithGpuOrder converted to device dependent templates 2025-12-18 19:46:21 +01:00
mlemanczyk 8ea975f2ed DeviceDependentGenerator added to tasks.json. It can now generate the files during VS Code builds. Ignore list updated. 2025-12-18 09:39:56 +01:00
mlemanczyk af7c9491e4 DeviceDependentGenerator can now add suffix to the name of the generated types. 2025-12-18 09:23:41 +01:00
mlemanczyk 9faa397364 DeviceDependentGenerator added. 2025-12-18 07:37:53 +01:00
mlemanczyk 23748ad3d2 MethodImpl attributes added. Unnecessary try...finally blocks removed. 2025-12-18 05:31:27 +01:00
mlemanczyk 2abc6aae49 --mersenne=bydivisor testers and sessions integrated and converted to structs. 2025-12-18 05:07:31 +01:00
mlemanczyk 3c80221105 MontgomeryDivisorDataPool.Rent / .Return removed as we no longer pool Montgomery divisor data. UInt128Extensions.MontgomeryDivisorDataPool variables optimized. 2025-12-16 02:27:29 +01:00
mlemanczyk b7773adad8 PrimeOrderCalculator.ExponentLoweringCpu optimized to reuse factors & exponents span instead of its own buffers 2025-12-15 20:22:03 +01:00
mlemanczyk 566cbc3599 PrimeOrderCalculator.Cpu optimizations. 2025-12-15 17:22:55 +01:00
mlemanczyk 97fd041ec0 Tiny cleanup for improved readability. 2025-12-15 04:37:03 +01:00
mlemanczyk 2c18818ac8 PrimeOrderCalculator.PopulateSmallPrimeFactorsCpu, .ExtractSmallPrimeExponent & ULongExtensions.ReduceCycleRemainder optimized. 2025-12-15 04:36:47 +01:00
mlemanczyk 048d1576ef Tiny cleanup. 2025-12-15 04:33:09 +01:00
mlemanczyk 974b1da873 Small optimizations 2025-12-14 01:35:13 +01:00
mlemanczyk e0daccdc1a BTree fine-tuned. 2025-12-14 00:19:53 +01:00
mlemanczyk bca059c4f2 Initial BTree version implemented. 2025-12-14 00:03:51 +01:00
mlemanczyk e8cca74f68 DeeterministicRandom types optimized. 2025-12-13 16:00:28 +01:00
mlemanczyk 1b3882addc PrimeOrderCalculator.PartialFactorCpu variables optimized. Removed constant parameter from AddFactorToCollector. 2025-12-13 15:36:32 +01:00
mlemanczyk 079b2d5b72 PartialFactorPendingEntry changed back to struct for better performance. 2025-12-13 14:28:01 +01:00