Commit Graph
100 Commits
Author SHA1 Message Date
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 c9a421a1b4 Merge branch 'simplify-bydivisor' of https://github.com/mlemanczyk/even-perfect-numbers-scanner into simplify-bydivisor 2025-12-19 19:02:06 +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 9ff0431f59 DeviceDependentGenerator extended to allow generation of enum dependent templates. Name suffix separate to its own attribute. 2025-12-19 19:01:27 +01:00
mlemanczyk a21ab3134e MersenneNumberTester converted to device dependent MersenneNumberTesterTemplate. 2025-12-19 18:25:27 +01:00
mlemanczyk b53d00a8cc EvenPerfectBitScanner fully migrated to MersenneDivisorCycles. Tiny optimization. 2025-12-19 04:38:01 +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 0b226c76e8 #nullable added to auto-generated sources to allow compilations with nullability check enabled. 2025-12-18 09:09:08 +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 189013b849 Results updated. 2025-12-18 05:09:52 +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 6d427c6906 Results updated. 2025-12-15 17:23:22 +01:00
mlemanczyk 566cbc3599 PrimeOrderCalculator.Cpu optimizations. 2025-12-15 17:22:55 +01:00
mlemanczyk 5523469e8a Results updated. 2025-12-15 07:31:19 +01:00
mlemanczyk 046cfe7d26 BuildDivisorTransitions application added. 2025-12-15 07:30:29 +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 dce598c857 Results updated. 2025-12-15 04:32:23 +01:00
mlemanczyk a8a41c6132 Results updated. 2025-12-15 04:12:07 +01:00
mlemanczyk 7c3ed34df3 Results updated. 2025-12-15 04:05:10 +01:00
mlemanczyk 695e164f51 Results updated. 2025-12-15 04:04:52 +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 0fb5a5fa10 Merge branch 'simplify-bydivisor' of https://github.com/mlemanczyk/even-perfect-numbers-scanner into simplify-bydivisor 2025-12-13 14:29:25 +01:00
mlemanczyk 079b2d5b72 PartialFactorPendingEntry changed back to struct for better performance. 2025-12-13 14:28:01 +01:00
mlemanczyk 96bb6a4340 PartialFactorPendingEntry changed back to struct for better performance. 2025-12-13 14:26:55 +01:00
mlemanczyk a185149eba PrimeOrderCalculator.PartiaFactorCpu optimized to use one-time allocation list and stack. 2025-12-13 14:21:37 +01:00
mlemanczyk 9fcd21b734 Results updated. 2025-12-13 13:37:01 +01:00
mlemanczyk cbf3dfcf2e Results updated. 2025-12-13 05:12:22 +01:00
mlemanczyk ec080ade7f PendingEntry renamed to PartialFactorPendingEntry and moved to its own file. PrimeOrderCalculator.PartialFactor partially optimized to use fixed buffers factors & exponents. 2025-12-13 05:11:02 +01:00
mlemanczyk 8fbe248a49 Revert "Reusable buffers introduced."
This reverts commit 39a66fdef1.
2025-12-13 04:17:30 +01:00
mlemanczyk 39a66fdef1 Reusable buffers introduced. 2025-12-13 04:16:05 +01:00
mlemanczyk fd58079c5a Results updated. 2025-12-13 04:03:05 +01:00
mlemanczyk 964bc8b734 Results updated. 2025-12-12 23:35:47 +01:00
mlemanczyk d9bff88055 Results updated. 2025-12-12 22:06:37 +01:00
mlemanczyk 2607c6e2d4 Results updated. 2025-12-12 20:26:43 +01:00
mlemanczyk e8e67ebf83 Results updated. 2025-12-12 18:50:52 +01:00
mlemanczyk ca3785c20d Results updated. 2025-12-12 18:48:07 +01:00
mlemanczyk 8b0d09cc9c Fixed capacity stack improvements to make sure that each thread gets its own instance. 2025-12-12 14:43:49 +01:00
mlemanczyk 8a5a8a7bb5 Results updated. 2025-12-12 11:51:28 +01:00
mlemanczyk 382f0c01a2 Results updated. 2025-12-12 04:53:13 +01:00
mlemanczyk 3e591586fb Results updated. 2025-12-12 04:10:15 +01:00
mlemanczyk d066c780ea Results updated. 2025-12-12 03:46:42 +01:00
mlemanczyk 15bcde1776 SemaphoreSlim replaced with PollingSemaphore. 2025-12-12 03:41:13 +01:00
mlemanczyk 471f9ac6cf Results updated. 2025-12-12 03:33:26 +01:00
mlemanczyk 8afd761d2a Results updated. 2025-12-12 03:18:04 +01:00
mlemanczyk 477d2675ef Results updated. 2025-12-12 01:52:25 +01:00
mlemanczyk 10f0fa272c Results updated. 2025-12-12 01:05:58 +01:00
mlemanczyk 45c477de5a DefaultThreadPoolCapacity updated to avoid too big arrays without reason. 2025-12-12 00:57:51 +01:00
mlemanczyk 49e47b161d Tiny cleanup. Namespace updated. 2025-12-12 00:56:33 +01:00
mlemanczyk 43376745f5 Benchmarks to compare Interlocked with Atomic added. Atomic replaced with Interlocked on CPU path as better performer. 2025-12-11 23:45:01 +01:00
mlemanczyk 0ec48f1f0b Tiny cleanup 2025-12-11 23:27:25 +01:00
mlemanczyk 51284be4fb Micro-optimizations and adjustments. 2025-12-11 22:50:47 +01:00
mlemanczyk 8f0cc17d90 PoolingSemaphore optimized. 2025-12-11 21:46:07 +01:00
mlemanczyk 60ccb3db74 Results updated. 2025-12-11 21:10:37 +01:00
mlemanczyk 260aa19e44 Pools renamed to FixedCapacityPools. Other fixed capacity collections added. Queues, concurrent queues and standard stacks replaced with fixed capacity stacks. MethodImplOptions.AggressiveInlining and .AggressiveOptimization added to simple methods and getters / setters. Variables optimized in few places. 2025-12-11 21:10:19 +01:00
mlemanczyk 547d43de84 ExponentRemainderStepperCpu local variables optimized. Cache is now driven by manually calculated key to avoid unnecessary allocations. 2025-12-11 05:29:19 +01:00
mlemanczyk 131b3265bc PrimeOrderCalculator.Cpu cleaned up - hybrid & GPU related methods moved to their corresponding files. 2025-12-11 00:00:12 +01:00
mlemanczyk 5df2cc7f9b using cleaned up. 2025-12-10 23:59:04 +01:00
mlemanczyk 05d3061c47 MethodImplOptions.AggressiveOptimization & MethodImplOptions.AggressiveInlining optimized. Small optimizations. 2025-12-10 19:59:51 +01:00
mlemanczyk 7a242b3bfa PrimeOrderCalculator.PartialFactorCpu simplified to work only with spans and throw exception if the number of factors is exceeded. PrimeOrderMode removed in favor of bool flag. 2025-12-10 12:47:25 +01:00
mlemanczyk 72890bf343 Dictionary and List pooling added in PrimeOrderCalculator.Cpu. 2025-12-08 21:03:25 +01:00
mlemanczyk 7518ba396e Results updated. 2025-12-08 20:59:18 +01:00
mlemanczyk f7dbc017a9 Modulo operators replaced with steppers, where possible. 2025-12-08 20:57:47 +01:00
mlemanczyk 475507ce0c Results updated. 2025-12-08 16:39:07 +01:00
mlemanczyk 5c91d79927 State saving frequency increased to prevent too many re-calculations during frequent restarts. 2025-12-08 16:35:24 +01:00
mlemanczyk 6e68252279 Status update improvement. 2025-12-08 02:53:27 +01:00
mlemanczyk f1109330df Default no. of accelerators increased back to 298 (max without exceptions). State saving interval decreased to limit unnecessary overhead. 2025-12-08 02:51:04 +01:00
mlemanczyk f76cf05e10 Exception message added to console output. 2025-12-08 02:49:57 +01:00
mlemanczyk d69ad9c64a State saving interval decreased. 2025-12-07 19:17:09 +01:00
mlemanczyk 6887111128 BigInteger-friendly steppers added. MersenneResidueStepper converted to struct. Manual residue tracking replaced with steppers. Modulo operations replaced with steppers. 2025-12-07 19:16:45 +01:00
mlemanczyk fbf074ade0 Results updated. 2025-12-07 13:48:11 +01:00
mlemanczyk 3f9cd53efc Results updated. 2025-12-07 00:21:57 +01:00
mlemanczyk a4c52e7282 Results updated. 2025-12-06 23:24:03 +01:00
mlemanczyk 9af8244040 Results updated. 2025-12-06 20:12:09 +01:00
mlemanczyk 788e11588e README updated. 2025-12-06 20:11:56 +01:00
mlemanczyk c44d188720 --mersenne=residue filtering results added. 2025-12-06 19:47:25 +01:00
mlemanczyk 3cde986fa0 Results file updated 2025-12-06 15:24:11 +01:00
mlemanczyk 573781f086 Results updated 2025-12-06 12:33:00 +01:00
mlemanczyk 374bf5fe53 Readme updated. 2025-12-06 11:33:00 +01:00