Code review request for 6560935: BigInteger.modPow() throws ArithmeticException for negative exponent (original) (raw)
Joseph D. Darcy Joe.Darcy at Sun.COM
Tue Oct 20 21:45:13 UTC 2009
- Previous message: hg: jdk7/tl/langtools: 6893062: remove support for obsolete attributes
- Next message: Code review request for 6560935: BigInteger.modPow() throws ArithmeticException for negative exponent
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello.
Please review this small doc clarification; modPow is not defined for negative exponents unless the BigInteger being operated on is relatively prime to the modulus. There are a few stylistic javadoc cleanups in the patch below too.
Webrev: http://cr.openjdk.java.net/~darcy/6560935.0/
Thanks,
-Joe
--- old/src/share/classes/java/math/BigInteger.java 2009-10-20 14:40:35.000000000 -0700 +++ new/src/share/classes/java/math/BigInteger.java 2009-10-20 14:40:35.000000000 -0700 @@ -478,7 +478,7 @@
/**
* Constructs a randomly generated BigInteger, uniformly
distributed over
* the range {@code 0} to (2<sup>{@code numBits}</sup> - 1), inclusive.
* the range 0 to (2<sup>{@code numBits}</sup> - 1), inclusive. * The uniformity of the distribution assumes that a fair source of
random * bits is provided in {@code rnd}. Note that this constructor always * constructs a non-negative BigInteger. @@ -1332,7 +1332,7 @@ * * @param val value by which this BigInteger is to be divided. * @return {@code this / val}
* @throws ArithmeticException {@code val==0}
public BigInteger divide(BigInteger val) { MutableBigInteger q = new MutableBigInteger(),* @throws ArithmeticException if {@code val} is zero. */
@@ -1352,7 +1352,7 @@ * @return an array of two BigIntegers: the quotient {@code (this / val)} * is the initial element, and the remainder {@code (this % val)} * is the final element.
* @throws ArithmeticException {@code val==0}
public BigInteger[] divideAndRemainder(BigInteger val) { BigInteger[] result = new BigInteger[2];* @throws ArithmeticException if {@code val} is zero. */
@@ -1371,7 +1371,7 @@ * @param val value by which this BigInteger is to be divided, and the * remainder computed. * @return {@code this % val}
* @throws ArithmeticException {@code val==0}
public BigInteger remainder(BigInteger val) { MutableBigInteger q = new MutableBigInteger(),* @throws ArithmeticException if {@code val} is zero. */
@@ -1547,7 +1547,7 @@ * * @param m the modulus. * @return {@code this mod m}
* @throws ArithmeticException {@code m <= 0}
public BigInteger mod(BigInteger m) { @@ -1566,7 +1566,9 @@ * @param exponent the exponent. * @param m the modulus. * @return thisexponent mod m* @throws ArithmeticException {@code m} ≤ 0 * @see #remainder */
* @throws ArithmeticException {@code m <= 0}
* @throws ArithmeticException {@code m} ≤ 0 or the exponent is
* negative and this BigInteger is not <i>relatively
public BigInteger modPow(BigInteger exponent, BigInteger m) { @@ -2015,7 +2017,7 @@ * * @param m the modulus. * @return {@code this}-1 {@code mod m}.* prime</i> to m. * @see #modInverse */
* @throws ArithmeticException {@code m <= 0}, or this BigInteger
* @throws ArithmeticException {@code m} ≤ 0, or this BigInteger * has no multiplicative inverse mod m (that is, this
BigInteger * is not relatively prime to m). / @@ -2449,7 +2451,7 @@ /* * Returns {@code true} if this BigInteger is probably prime, * {@code false} if it's definitely composite. If
* {@code certainty} is {@code <= 0}, {@code true} is
* {@code certainty} is ≤ 0, {@code true} is * returned. * * @param certainty a measure of the uncertainty that the caller is
- Previous message: hg: jdk7/tl/langtools: 6893062: remove support for obsolete attributes
- Next message: Code review request for 6560935: BigInteger.modPow() throws ArithmeticException for negative exponent
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]