You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,4 +95,4 @@ The particular ECM variant used by this library originated from Ben Buhrow's mic
95
95
The Pollard-Rho-Brent algorithm uses an easy extra step that seems to be unmentioned in the literature. The step is a "pre-loop" that advances as quickly as possible through a portion of the initial pseduo-random sequence before beginning the otherwise normal Pollard-Rho Brent algorithm. The rationale for this is that every Pollard-Rho pseudo-random sequence begins with a non-periodic segment, and trying to extract factors from that segment is mostly wasted work since the algorithm logic relies on a periodic sequence. Using a "pre-loop" that does nothing except iterate for a set number of times through the sequence thus improves performance on average, since it quickly gets past some of that unwanted non-periodic segment. In particular, the "pre-loop" avoids calling the greatest common divisor, which would rarely find a factor during the non-periodic segment. This optimization would likely help any form/variant of the basic Pollard-Rho algorithm.
96
96
97
97
## Performance Notes
98
-
If you're interested in experimenting, predefining certain macros when compiling can improve performance - see [macros_for_performance.md](macros_for_performance.md).
98
+
If you're interested in experimenting, defining certain macros when compiling can improve performance - see [macros_for_performance.md](macros_for_performance.md).
Copy file name to clipboardExpand all lines: include/hurchalla/factoring/detail/experimental/README_pollard_rho.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,13 @@
1
1
2
2
The PollardRho\*.h header files in this folder are experimental functors for Pollard-Rho trials.
3
-
To use an experimental functor, predefine the macro HURCHALLA_POLLARD_RHO_TRIAL_FUNCTOR_NAME and give it the name of the experimental functor. For example, if you want PollardRhoTrial and you are compiling with clang, you could invoke clang as follows:
3
+
To use an experimental functor, define the macro HURCHALLA_POLLARD_RHO_TRIAL_FUNCTOR_NAME and give it the name of the experimental functor. For example, if you want PollardRhoTrial and you are compiling with clang, you could invoke clang as follows:
4
4
clang++ -DHURCHALLA_POLLARD_RHO_TRIAL_FUNCTOR_NAME=PollardRhoTrial ...more options and files...
5
5
6
6
valid names to give HURCHALLA_POLLARD_RHO_TRIAL_FUNCTOR_NAME are:
7
7
PollardRhoTrial
8
8
PollardRhoBrentTrial
9
9
PollardRhoBrentTrialParallel
10
-
PollardRhoBrentSwitchingTrial (currently this is the default, so it's not necessary to predefine the macro to this functor)
10
+
PollardRhoBrentSwitchingTrial (currently this is the default, so it's not necessary to define the macro to this functor)
11
11
12
12
The PollardRhoBrentSwitchingTrial functor or the PollardRhoBrentTrialParallel functor will likely perform best on your system, but you can try others.
0 commit comments