Elara (GPT) has suggested that the "ladder" algorithm in `FACTOR_FACTOR` method is similar to a Markov mixing process, which has a relaxation time proportional or similar to **`O(k log k)`** for `k` count of distinct elements to mix. As such, `batch_size_multiplier` is now a multiplier on `k log k`, where `k` is the count of smooth primes. Mixing operation count, for comparison, is tallied as half the sum of multiplication and division operations on a full ascend/descend cycle of the "ladder."
However, even after tuning the default batch size multiplier, there is still significant variance in what the best batch size could be for any random semiprime, even if several semiprimes are almost exactly the same size. Users could tune the batch size up or down, but there's no feedback on the effect of this tuning until success. Hence, this motivates the new `batch_size_variance` argument: it is an integer `m` for which the batch size `b` is automatically varied as `b * (2 ** i)` for `i` in `range(m)`, repeating from the beginning at the end of the sequence. This allows users to target a contiguous range of batch sizes at once, where the motivation for power-of-two increments come from what the developers have typically used to successfully identify bespoke batch sizes for different numbers to factor.
**Full Changelog**: https://github.com/vm6502q/FindAFactor/compare/v4.5.0...v4.6.0
sha1sum results:
e2cc3d52bd6cd8d9294947c236185ef56f8215d4 FindAFactor-4.6.0-cp310-cp310-manylinux_2_35_x86_64.whl
67b4d5c908fffdfe4276a2fe117908ac96dfcc4c FindAFactor-4.6.0-cp312-cp312-manylinux_2_39_x86_64.whl
a3591866d4d63e5474dc013bd729451566b4e773 FindAFactor-4.6.0-cp312-cp312-win_amd64.whl
85606af43f97d530d37c2b111c1ca8740088cfbd FindAFactor-4.6.0-cp313-cp313-macosx_13_0_x86_64.whl
7716e8f5472f25beeebdda2c22d24fd8f287c389 FindAFactor-4.6.0-cp313-cp313-macosx_14_0_arm64.whl
f31f41350a013e68f4a42fd6d4c1f1cda7014a04 FindAFactor-4.6.0-cp313-cp313-macosx_15_0_arm64.whl
b7648867bd9af87c222d840f3b551b1f47849e96 FindAFactor-4.6.0-cp38-cp38-manylinux_2_31_x86_64.whl
5f1e8d95f9a71ca4da3e2ad52040804e1792f13e findafactor-4.6.0.tar.gz