test_class.file: pross-common/src/test/java/com/ibm/pross/common/util/ExponentiationTest.java
test_class.identifier: ExponentiationTest
test_case.body: @Test
  	public void testModPow() {
  		fail("Not yet implemented");
  	}
test_case.class_method_signature: ExponentiationTest.testModPow()
test_case.full_signature: @Test public void testModPow()
test_case.identifier: testModPow
test_case.invocations: fail
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testModPow()
focal_class.declarator: USE_SECURE_MOD_POW = false
focal_class.modifier: public static final
focal_class.original_string: public static final boolean USE_SECURE_MOD_POW = false;
focal_class.type: boolean
focal_class.var_name: USE_SECURE_MOD_POW
focal_class.declarator: GMP_AVAILABLE
focal_class.modifier: public static final
focal_class.original_string: public static final boolean GMP_AVAILABLE;
focal_class.type: boolean
focal_class.var_name: GMP_AVAILABLE
focal_class.file: pross-common/src/main/java/com/ibm/pross/common/util/Exponentiation.java
focal_class.identifier: Exponentiation
focal_class.class_method_signature: Exponentiation.canLoadGmp()
focal_class.full_signature: private static boolean canLoadGmp()
focal_class.identifier: canLoadGmp
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean canLoadGmp()
focal_class.class_method_signature: Exponentiation.modPowSecure(final BigInteger base, final BigInteger exponent,
  			final BigInteger modulus)
focal_class.full_signature: protected static BigInteger modPowSecure(final BigInteger base, final BigInteger exponent,
  			final BigInteger modulus)
focal_class.identifier: modPowSecure
focal_class.modifiers: protected static
focal_class.parameters: (final BigInteger base, final BigInteger exponent,
  			final BigInteger modulus)
focal_class.return: BigInteger
focal_class.signature: BigInteger modPowSecure(final BigInteger base, final BigInteger exponent,
  			final BigInteger modulus)
focal_class.class_method_signature: Exponentiation.modPowerSecureJava(final BigInteger base, final BigInteger exponent,
  			final BigInteger modulus)
focal_class.full_signature: protected static BigInteger modPowerSecureJava(final BigInteger base, final BigInteger exponent,
  			final BigInteger modulus)
focal_class.identifier: modPowerSecureJava
focal_class.modifiers: protected static
focal_class.parameters: (final BigInteger base, final BigInteger exponent,
  			final BigInteger modulus)
focal_class.return: BigInteger
focal_class.signature: BigInteger modPowerSecureJava(final BigInteger base, final BigInteger exponent,
  			final BigInteger modulus)
focal_class.class_method_signature: Exponentiation.modPow(BigInteger base, BigInteger exponent, BigInteger modulus)
focal_class.full_signature: public static BigInteger modPow(BigInteger base, BigInteger exponent, BigInteger modulus)
focal_class.identifier: modPow
focal_class.modifiers: public static
focal_class.parameters: (BigInteger base, BigInteger exponent, BigInteger modulus)
focal_class.return: BigInteger
focal_class.signature: BigInteger modPow(BigInteger base, BigInteger exponent, BigInteger modulus)
focal_class.class_method_signature: Exponentiation.modInverse(final BigInteger a, final BigInteger modulus)
focal_class.full_signature: public static BigInteger modInverse(final BigInteger a, final BigInteger modulus)
focal_class.identifier: modInverse
focal_class.modifiers: public static
focal_class.parameters: (final BigInteger a, final BigInteger modulus)
focal_class.return: BigInteger
focal_class.signature: BigInteger modInverse(final BigInteger a, final BigInteger modulus)
focal_method.body: public static BigInteger modPow(BigInteger base, BigInteger exponent, BigInteger modulus) {
  		if (GMP_AVAILABLE) {
  			if (USE_SECURE_MOD_POW) {
  				return exponent.signum() < 0 // Gmp library can't handle negative exponents
  						? modInverse(Gmp.modPowSecure(base, exponent.negate(), modulus), modulus)
  						: Gmp.modPowSecure(base, exponent, modulus);
  			} else {
  				return exponent.signum() < 0 // Gmp library can't handle negative exponents
  						? modInverse(Gmp.modPowInsecure(base, exponent.negate(), modulus), modulus)
  						: Gmp.modPowInsecure(base, exponent, modulus);
  			}
  		} else {
  			return base.modPow(exponent, modulus);
  		}
  	}
focal_method.class_method_signature: Exponentiation.modPow(BigInteger base, BigInteger exponent, BigInteger modulus)
focal_method.full_signature: public static BigInteger modPow(BigInteger base, BigInteger exponent, BigInteger modulus)
focal_method.identifier: modPow
focal_method.invocations: signum modInverse modPowSecure negate modPowSecure signum modInverse modPowInsecure negate modPowInsecure modPow
focal_method.modifiers: public static
focal_method.parameters: (BigInteger base, BigInteger exponent, BigInteger modulus)
focal_method.return: BigInteger
focal_method.signature: BigInteger modPow(BigInteger base, BigInteger exponent, BigInteger modulus)