Skip to content

Commit 817e8bc

Browse files
committed
optimize long operations
1 parent 5b71576 commit 817e8bc

10 files changed

+26
-26
lines changed

src/main/java/de/tilman_neumann/jml/factor/siqs/sieve/Sieve03h.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -506,8 +506,8 @@ private SmoothCandidate tdivUnsievedPrimeBaseElements(BigInteger A, BigInteger Q
506506
// Compute x%p using long-valued Barrett reduction, see https://en.wikipedia.org/wiki/Barrett_reduction.
507507
// We can use the long-variant here because x*m will never overflow positive long values.
508508
final long m = pinvArrayL[pIndex];
509-
final long q = ((x*m)>>>32);
510-
xModP = (int) (x - q * p);
509+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
510+
xModP = (int) ( ((long)x) - q * p);
511511
if (xModP<0) xModP += p;
512512
else if (xModP>=p) xModP -= p;
513513
if (DEBUG) {

src/main/java/de/tilman_neumann/jml/factor/siqs/sieve/Sieve03hU.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -618,8 +618,8 @@ private SmoothCandidate tdivUnsievedPrimeBaseElements(BigInteger A, BigInteger Q
618618
// Compute x%p using long-valued Barrett reduction, see https://en.wikipedia.org/wiki/Barrett_reduction.
619619
// We can use the long-variant here because x*m will never overflow positive long values.
620620
final long m = pinvArrayL[pIndex];
621-
final long q = ((x*m)>>>32);
622-
xModP = (int) (x - q * p);
621+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
622+
xModP = (int) ( ((long)x) - q * p);
623623
if (xModP<0) xModP += p;
624624
else if (xModP>=p) xModP -= p;
625625
if (DEBUG) {

src/main/java/de/tilman_neumann/jml/factor/siqs/sieve/SingleBlockSieve.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -507,8 +507,8 @@ private SmoothCandidate tdivUnsievedPrimeBaseElements(BigInteger A, BigInteger Q
507507
// Compute x%p using long-valued Barrett reduction, see https://en.wikipedia.org/wiki/Barrett_reduction.
508508
// We can use the long-variant here because x*m will never overflow positive long values.
509509
final long m = pinvArrayL[pIndex];
510-
final long q = ((x*m)>>>32);
511-
xModP = (int) (x - q * p);
510+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
511+
xModP = (int) ( ((long)x) - q * p);
512512
if (xModP<0) xModP += p;
513513
else if (xModP>=p) xModP -= p;
514514
if (DEBUG) {

src/main/java/de/tilman_neumann/jml/factor/siqs/sieve/SingleBlockSieveU.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -617,8 +617,8 @@ private SmoothCandidate tdivUnsievedPrimeBaseElements(BigInteger A, BigInteger Q
617617
// Compute x%p using long-valued Barrett reduction, see https://en.wikipedia.org/wiki/Barrett_reduction.
618618
// We can use the long-variant here because x*m will never overflow positive long values.
619619
final long m = pinvArrayL[pIndex];
620-
final long q = ((x*m)>>>32);
621-
xModP = (int) (x - q * p);
620+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
621+
xModP = (int) ( ((long)x) - q * p);
622622
if (xModP<0) xModP += p;
623623
else if (xModP>=p) xModP -= p;
624624
if (DEBUG) {

src/main/java/de/tilman_neumann/jml/factor/siqs/tdiv/TDiv_QS_2LP.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,8 @@ private AQPair test(BigInteger A, BigInteger QRest0, int x) {
250250
xModP = x+p;
251251
} else {
252252
final long m = pinvArrayL[pIndex];
253-
final long q = ((x*m)>>>32);
254-
xModP = (int) (x - q * p);
253+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
254+
xModP = (int) ( ((long)x) - q * p);
255255
if (xModP<0) xModP += p;
256256
if (DEBUG) {
257257
// 0 <= xModP < p
@@ -287,8 +287,8 @@ private AQPair test(BigInteger A, BigInteger QRest0, int x) {
287287
xModP = x;
288288
} else {
289289
final long m = pinvArrayL[pIndex];
290-
final long q = ((x*m)>>>32);
291-
xModP = (int) (x - q * p);
290+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
291+
xModP = (int) ( ((long)x) - q * p);
292292
if (xModP>=p) xModP -= p;
293293
if (DEBUG) {
294294
// 0 <= xModP < p

src/main/java/de/tilman_neumann/jml/factor/siqs/tdiv/TDiv_QS_2LP_Full.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,8 @@ private AQPair test(BigInteger A, BigInteger Q, int x) {
228228
// Compute x%p using long-valued Barrett reduction, see https://en.wikipedia.org/wiki/Barrett_reduction.
229229
// We can use the long-variant here because x*m will never overflow positive long values.
230230
final long m = pinvArrayL[pIndex];
231-
final long q = ((x*m)>>>32);
232-
xModP = (int) (x - q * p);
231+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
232+
xModP = (int) ( ((long)x) - q * p);
233233
if (xModP<0) xModP += p;
234234
else if (xModP>=p) xModP -= p;
235235
if (DEBUG) {

src/main/java/de/tilman_neumann/jml/factor/siqs/tdiv/TDiv_QS_3LP.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,8 @@ private AQPair test(BigInteger A, BigInteger QRest0, int x) {
253253
xModP = x+p;
254254
} else {
255255
final long m = pinvArrayL[pIndex];
256-
final long q = ((x*m)>>>32);
257-
xModP = (int) (x - q * p);
256+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
257+
xModP = (int) ( ((long)x) - q * p);
258258
if (xModP<0) xModP += p;
259259
if (DEBUG) {
260260
// 0 <= xModP < p
@@ -290,8 +290,8 @@ private AQPair test(BigInteger A, BigInteger QRest0, int x) {
290290
xModP = x;
291291
} else {
292292
final long m = pinvArrayL[pIndex];
293-
final long q = ((x*m)>>>32);
294-
xModP = (int) (x - q * p);
293+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
294+
xModP = (int) ( ((long)x) - q * p);
295295
if (xModP>=p) xModP -= p;
296296
if (DEBUG) {
297297
// 0 <= xModP < p

src/main/java/de/tilman_neumann/jml/factor/siqs/tdiv/TDiv_QS_Small.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,8 @@ private AQPair test(BigInteger A, BigInteger Q, int x) {
204204
// Compute x%p using long-valued Barrett reduction, see https://en.wikipedia.org/wiki/Barrett_reduction.
205205
// We can use the long-variant here because x*m will never overflow positive long values.
206206
final long m = pinvArrayL[pIndex];
207-
final long q = ((x*m)>>>32);
208-
xModP = (int) (x - q * p);
207+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
208+
xModP = (int) ( ((long)x) - q * p);
209209
if (xModP<0) xModP += p;
210210
else if (xModP>=p) xModP -= p;
211211
if (DEBUG) {

src/main/java/de/tilman_neumann/jml/factor/siqs/tdiv/TDiv_QS_nLP.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,8 @@ private AQPair test(BigInteger A, BigInteger QRest0, int x) {
252252
xModP = x+p;
253253
} else {
254254
final long m = pinvArrayL[pIndex];
255-
final long q = ((x*m)>>>32);
256-
xModP = (int) (x - q * p);
255+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
256+
xModP = (int) ( ((long)x) - q * p);
257257
if (xModP<0) xModP += p;
258258
if (DEBUG) {
259259
// 0 <= xModP < p
@@ -289,8 +289,8 @@ private AQPair test(BigInteger A, BigInteger QRest0, int x) {
289289
xModP = x;
290290
} else {
291291
final long m = pinvArrayL[pIndex];
292-
final long q = ((x*m)>>>32);
293-
xModP = (int) (x - q * p);
292+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
293+
xModP = (int) ( ((long)x) - q * p);
294294
if (xModP>=p) xModP -= p;
295295
if (DEBUG) {
296296
// 0 <= xModP < p

src/main/java/de/tilman_neumann/jml/factor/siqs/tdiv/TDiv_QS_nLP_Full.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ private AQPair test(BigInteger A, BigInteger Q, int x) {
230230
// Compute x%p using long-valued Barrett reduction, see https://en.wikipedia.org/wiki/Barrett_reduction.
231231
// We can use the long-variant here because x*m will never overflow positive long values.
232232
final long m = pinvArrayL[pIndex];
233-
final long q = ((x*m)>>>32);
234-
xModP = (int) (x - q * p);
233+
final long q = ( ( ((long)x) * m) >>> 32); // first argument long optimizes register usage
234+
xModP = (int) ( ((long)x) - q * p);
235235
if (xModP<0) xModP += p;
236236
else if (xModP>=p) xModP -= p;
237237
if (DEBUG) {

0 commit comments

Comments
 (0)