-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 (CC to the Classpath list)
Busy night :) The BigInteger.euclidInv bug has to do with the transition between the BigInteger-based version of the function to the int-based one. See: LINE 1104: ~ if (a.words == null) ~ { ~ int[] xyInt = euclidInv(b.ival, a.ival % b.ival, a.ival / b.ival); ~ xy = new BigInteger[3]; ~ xy[0] = new BigInteger(xyInt[0]); ~ xy[1] = new BigInteger(xyInt[1]); ~ } This conditional does not consider if (b.words == null), which means it may recurse with a value of `b==1' (not good!). It may be the case that always `a > b' for this algorithm (is this so?), but it is not the case right now that `b' is stored as int-only if `a' is. So a fix involves changing line 1104 to read: ~ if (a.words == null && b.words == null) Cheers, - -- Casey Marshall < [EMAIL PROTECTED] > http://metastatic.org/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQE9+ZqEgAuWMgRGsWsRAtRAAJ0dUY1T8iZuJK/9LwFddGHU8P5tsQCfYXD0 IAEKvw5BJ31XOLYw7Z6qM0w= =4N44 -----END PGP SIGNATURE----- _______________________________________________ Classpath mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/classpath