FindAFactor 4.3.1__tar.gz → 4.4.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FindAFactor
3
- Version: 4.3.1
3
+ Version: 4.4.0
4
4
  Summary: Find any nontrivial factor of a number
5
5
  Home-page: https://github.com/vm6502q/FindAFactor
6
6
  Author: Dan Strano
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FindAFactor
3
- Version: 4.3.1
3
+ Version: 4.4.0
4
4
  Summary: Find any nontrivial factor of a number
5
5
  Home-page: https://github.com/vm6502q/FindAFactor
6
6
  Author: Dan Strano
@@ -39,14 +39,14 @@ factor = find_a_factor(
39
39
 
40
40
  The `find_a_factor()` function should return any nontrivial factor of `to_factor` (that is, any factor besides `1` or `to_factor`) if it exists. If a nontrivial factor does _not_ exist (i.e., the number to factor is prime), the function will return `1` or the original `to_factor`.
41
41
 
42
- - `method` (default value: `PRIME_SOLVER`/`0`): `PRIME_SOLVER`/`0` will prove that a number is prime (by failing to find any factors with wheel and gear factorization). `FACTOR_FINDER`/`2` is optimized for the assumption that the number has at least two nontrivial factors. `MIXED`/`1` is a factor-solver that is able to demonstrate that a number is prime, if necessary.
42
+ - `method` (default value: `PRIME_SOLVER`/`0`): `PRIME_SOLVER`/`0` will prove that a number is prime (by failing to find any factors with wheel and gear factorization). `FACTOR_FINDER`/`1` is optimized for the assumption that the number has at least two nontrivial factors.
43
43
  - `node_count` (default value: `1`): `FindAFactor` can perform factorization in a _distributed_ manner, across nodes, without network communication! When `node_count` is set higher than `1`, the search space for factors is segmented equally per node. If the number to factor is semiprime, and brute-force search is used instead of congruence of squares, for example, all nodes except the one that happens to contain the (unknown) prime factor less than the square root of `to_factor` will ultimately return `1`, while one node will find and return this factor. For best performance, every node involved in factorization should have roughly the same CPU throughput capacity.
44
44
  - `node_id` (default value: `0`): This is the identifier of this node, when performing distributed factorization with `node_count` higher than `1`. `node_id` values start at `0` and go as high as `(node_count - 1)`.
45
45
  - `trial_division_level` (default value: `2**20`): Trial division is carried out as a preliminary round for all primes up this number. If you need more primes for your smoothness bound, increase this level.
46
46
  - `gear_factorization_level` (default value: `11`): This is the value up to which "wheel (and gear) factorization" and trial division are used to check factors and optimize "brute force," in general. The default value of `11` includes all prime factors of `11` and below and works well in general, though significantly higher might be preferred in certain cases.
47
47
  - `wheel_factorization_level` (default value: `11`): "Wheel" vs. "gear" factorization balances two types of factorization wheel ("wheel" vs. "gear" design) that often work best when the "wheel" is only a few prime number levels lower than gear factorization. Optimized implementation for wheels is only available up to `13`. The primes above "wheel" level, up to "gear" level, are the primes used specifically for "gear" factorization.
48
48
  - `smoothness_bound_multiplier` (default value: `1.0`): starting with the first prime number after wheel factorization, the congruence of squares approach (with Quadratic Sieve) has a "smoothness bound" unit with as many distinct prime numbers as bits in the number to factor (for argument of `1.0` multiplier). To increase or decrease this number, consider it multiplied by the value of `smoothness_bound_multiplier`.
49
- - `batch_size_multiplier` (default value: `8.0`): For `FACTOR_FINDER`/`1` method, each `1.0` increment of the multiplier adds the squared count distinct smooth primes, before reseeding Monte Carlo. For `MIXED`/`1` method, each `1.0` increment of the multiplier adds 2 cycles of gear and wheel factorization, alternating every other cycle between bottom of guessing range and top of guessing range, for every thread in use.
49
+ - `batch_size_multiplier` (default value: `8.0`): For `FACTOR_FINDER`/`1` method, each `1.0` increment of the multiplier adds the squared count distinct smooth primes, before reseeding Monte Carlo.
50
50
 
51
51
  All variables defaults can also be controlled by environment variables:
52
52
  - `FINDAFACTOR_METHOD` (integer value)
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
8
8
 
9
9
  [project]
10
10
  name = "FindAFactor"
11
- version = "4.3.1"
11
+ version = "4.4.0"
12
12
  requires-python = ">=3.8"
13
13
  description = "Find any nontrivial factor of a number"
14
14
  readme = {file = "README.txt", content-type = "text/markdown"}
@@ -40,7 +40,7 @@ ext_modules = [CMakeExtension('_find_a_factor')]
40
40
 
41
41
  setup(
42
42
  name='FindAFactor',
43
- version='4.3.1',
43
+ version='4.4.0',
44
44
  author='Dan Strano',
45
45
  author_email='stranoj@gmail.com',
46
46
  description='Find any nontrivial factor of a number',
File without changes
File without changes