Skip to content

Commit dad878d

Browse files
committed
comment
1 parent 0bdbf1a commit dad878d

File tree

5 files changed

+10
-0
lines changed

5 files changed

+10
-0
lines changed

src/main/java/de/tilman_neumann/jml/factor/tdiv/TDiv31.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public void factor(BigInteger Nbig, SortedMultiset<BigInteger> primeFactors) {
4949
} while (N%p == 0);
5050
primeFactors.add(BigInteger.valueOf(p), exp);
5151
}
52+
// for random composite N, it is much much faster to check the termination condition after each p;
53+
// for semiprime N, it would be ~40% faster to do it only after sucessful divisions
5254
if (((long)p) * p > N) { // move p as long into registers makes a performance difference
5355
if (N>1) primeFactors.add(BigInteger.valueOf(N));
5456
break;

src/main/java/de/tilman_neumann/jml/factor/tdiv/TDiv31Barrett.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ public void factor(BigInteger Nbig, int Nexp, SortedMultiset<BigInteger> primeFa
8989
primeFactors.add(BigInteger.valueOf(p), Nexp);
9090
N = q;
9191
}
92+
// for random composite N, it is much much faster to check the termination condition after each p;
93+
// for semiprime N, it would be ~40% faster to do it only after sucessful divisions
9294
if (((long)p) * p > N) { // move p as long into registers makes a performance difference
9395
break;
9496
}

src/main/java/de/tilman_neumann/jml/factor/tdiv/TDiv31Inverse.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ public void factor(BigInteger Nbig, int Nexp, SortedMultiset<BigInteger> primeFa
8080
primeFactors.add(BigInteger.valueOf(p), Nexp);
8181
N = q; // avoiding a division here by storing q benefits the int version but not the long version
8282
}
83+
// for random composite N, it is much much faster to check the termination condition after each p;
84+
// for semiprime N, it would be ~40% faster to do it only after sucessful divisions
8385
if (((long)p) * p > N) { // move p as long into registers makes a performance difference
8486
break;
8587
}

src/main/java/de/tilman_neumann/jml/factor/tdiv/TDiv63.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ public void factor(BigInteger Nbig, SortedMultiset<BigInteger> primeFactors) {
6464
} while (N%p == 0);
6565
primeFactors.add(BigInteger.valueOf(p), exp);
6666
}
67+
// for random composite N, it is much much faster to check the termination condition after each p;
68+
// for semiprime N, it would be ~40% faster to do it only after sucessful divisions
6769
if (((long)p) * p > N) { // move p as long into registers makes a performance difference
6870
break;
6971
}

src/main/java/de/tilman_neumann/jml/factor/tdiv/TDiv63Inverse.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ public void factor(BigInteger Nbig, SortedMultiset<BigInteger> primeFactors) {
128128
if (exp>0) {
129129
primeFactors.add(BigInteger.valueOf(p), exp);
130130
}
131+
// for random composite N, it is much much faster to check the termination condition after each p;
132+
// for semiprime N, it would be ~40% faster to do it only after sucessful divisions
131133
if (((long)p) * p > N) { // move p as long into registers makes a performance difference
132134
break; // the remaining N is prime
133135
}

0 commit comments

Comments
 (0)