Commit Graph

30 Commits

Author SHA1 Message Date
Jerry Quinn
2f18d7a1a8 BigDecimal (divide): Correctly handle ROUND_HALF_EVEN when amount is greater than 0.5.
2003-08-01  Jerry Quinn  <jlquinn@optonline.net>
            Mark Wielaard  <mark@klomp.org>

       * java/math/BigDecimal (divide): Correctly handle
       ROUND_HALF_EVEN when amount is greater than 0.5.
       Simplify and optimize code.

Co-Authored-By: Mark Wielaard <mark@klomp.org>

From-SVN: r70049
2003-08-01 15:07:49 +00:00
Jerry Quinn
afd4910af1 BigInteger.java (probablePrime): New.
2003-04-19  Jerry Quinn  <jlquinn@optonline.net>

	* java/math/BigInteger.java (probablePrime): New.
	* java/math/BigDecimal.java (unscaledValue): New.

From-SVN: r65825
2003-04-19 19:26:41 +00:00
Raif S. Naffah
4c24ac2716 BigInteger.java (euclidInv): Take result array as an argument.
2003-02-20  Raif S. Naffah <raif@fl.net.au>

	* java/math/BigInteger.java (euclidInv): Take result array as an
	argument.  Updated all callers.
	(modInverse): Removed unused variables.

From-SVN: r63170
2003-02-20 16:55:15 +00:00
Raif S. Naffah
b9e16504f9 BigInteger.java (euclidInv): Return array of `BigInteger's.
2003-02-17  Raif S. Naffah <raif@fl.net.au>

	* java/math/BigInteger.java (euclidInv): Return array of
	`BigInteger's.  Changed all callers.

From-SVN: r63014
2003-02-17 23:18:39 +00:00
Mark Wielaard
ce5b5a5e54 BigDecimal.java (BigDecimal(String)): Always set scale to zero when there is an exponent and the significant is zero.
* java/math/BigDecimal.java (BigDecimal(String)): Always set scale to
       zero when there is an exponent and the significant is zero.
       (divide): Always set scale to newScale even in special ZERO case.

From-SVN: r62908
2003-02-14 18:48:50 +00:00
Raif S. Naffah
17e39e5c61 BigInteger.java: Updated notice to include years 2002 and 3.
2003-02-10  Raif S. Naffah <raif@fl.net.au>

	* java/math/BigInteger.java:
	Updated notice to include years 2002 and 3.
	Added 2 private (int) arrays with values from the HAC (Handbook of
	Applied Cryptography -A. Menezes & al): k[] that contains bit lengths
	and t[] that contains nbr. of tests --used in isProbablePrime().

	* java/math/BigInteger.java (make(long)): Merged into valueOf(long).

	* java/math/BigInteger.java (make(int[],int), add(int,int),
	add(BI,BI,int), times(BI,int), divide(long,long,BI,BI,int), gcd(BI),
	isProbablePrime(int), shift(BI,int), valueOf(String,int), neg(BI),
	bitOp(int,BI,BI), and(BI,int)): Use valueOf(long) instead of
	make(long).

	* java/math/BigInteger.java (euclidInv): Reduce number of work vars
	(euclidInv(int,int,int)): Now returns an array of 2 ints instead of 3.
	(euclidInv(BI,BI,BI)): Used to return an array of 2 BIs; now accepts 6
	BIs and returns void.
	(modInverse(BI)): Use new signatures of euclidInv().

	* java/math/BigInteger.java (isProbablePrime(int)): Use divide() with
	static small primes instead of remainder().
	Use pre-computed max nbr of trials based on bitlength of BI to test.
	Use pre-computed small primes for the trial tests instead of random
	numbers.

	* java/math/BigInteger.java (isOdd, isMinusOne, pow): Removed.
	not used.

	* java/math/BigInteger.java (format(int,StringBuffer)): Removed
	invoacation of MPN.chars_per_word().  not used.

	* java/math/BigInteger.java (gcd(int,int)): Declared 'tmp' once as
	local var and used where needed.

	* java/math/BigInteger.java (modPow(BI,BI)): Fixed spelling.
	Combined declaration with initialisation of locals.
	Removed unused var.

	* java/math/BigInteger.java: Style changes
	(pow(int)): Removed 'else' keyword.
	(toString(int)): idem.
	(doubleValue()): idem.
	(bitLength()): idem.
	(equals(Object)): Use static methods name in same class w/o prepending
	class name.
	(doubleValue()): idem.
	(setNegative(BI)): idem.
	(negate()): idem.
	(and(BI,int)): idem.
	(and(BI)): idem.
	(gcd(BI)): idem.
	(byteArrayToIntArray()): Removed casting to (int). this is
	std. behaviour.
	(canonicalize()): idem.
	(alloc(int)): Always instantiate a new BI.

From-SVN: r62656
2003-02-10 23:45:31 +00:00
Stephen Crawley
364df9fc18 BigDecimal (valueOf): fix DiagBigDecimal val008, val013 tests; see patch #1016 on Savannah.
2003-02-07  Stephen Crawley  <crawley@dstc.edu.au>

       * java/math/BigDecimal(valueOf): fix DiagBigDecimal val008, val013
       tests; see patch #1016 on Savannah.

2003-02-07  Stephen Crawley  <crawley@dstc.edu.au>

       * java/math/BigDecimal.java (BigDecimal): enhance parsing of exponents
       (toString): do not return Strings starting with . and - erroneously.
       Improves Mauve results to 12 of 600 instead of 16 of 338 on
       DiagBigDecimal.

From-SVN: r62540
2003-02-07 21:05:12 +00:00
Raif Naffah
a17cf75b73 BigInteger.java (euclidInv): Make sure quot and rem are in canonical form after divide().
2002-12-18  Raif Naffah  <raif@fl.net.au>

	* java/math/BigInteger.java (euclidInv): Make sure quot and rem are in
	canonical form after divide().
	(modInverse): Likewise.

From-SVN: r60292
2002-12-19 06:59:46 +00:00
Mark Wielaard
894286989e [multiple changes]
2002-02-14  Mark Wielaard  <mark@klomp.org>

    * java/math/BigInteger.java: import gnu.java.math.MPN not the whole
    package as a workaround for gcj 3.0.x

2002-02-14  Mark Wielaard <mark@klomp.org>

    * java/security/BasicPermission.java: extends with fully qualified
    classname as workaround for gcj 3.0.4.

2002-02-14  Eric Blake  <ebb9@email.byu.edu>

    * java/net/DatagramSocketImpl.java (setOption, getOption): Work
    around gcj bug of wrong emitted qualifier for inherited method.
    * java/net/SocketImpl.java (setOption, getOption): Ditto.
    * java/util/WeakHashMap.java (WeakEntrySet): Add non-private
    constructor to reduce amount of emitted bytecode. While this
    happens to work around a jikes 1.15 bug, it is still a useful
    patch even for correct compilers.
    * java/rmi/server/RMIClassLoader.java (MyClassLoader): Ditto.
    * gnu/java/rmi/server/UnicastRemoteCall.java
    (DummyObjectOutputStream, DummyObjectInputStream): Ditto.

2002-02-14  Eric Blake  <ebb9@email.byu.edu>

    * java/net/DatagramSocketImpl.java: Reformat (no code changes).
    * java/net/SocketImpl.java: Ditto.
    * java/rmi/server/RMIClassLoader.java: Ditto.
    * gnu/java/rmi/server/UnicastRemoteCall.java: Ditto.

2002-02-14  Mark Wielaard <mark@klomp.org>

    Thanks to Takashi Okamoto
    * java/util/Arrays.java (ArrayList.indexOf()): this.equals().
    * java/util/Arrays.java (ArrayList.lastIndexOf()): Likewise.
    * java/util/WeakHashMap.java (WeakEntry.getEntry()): this.get().

From-SVN: r49778
2002-02-14 23:16:11 +00:00
Mark Wielaard
92aaa24628 Add license clarification.
From-SVN: r49104
2002-01-22 22:40:42 +00:00
Tom Tromey
495513eea6 Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Removed old file;
	added new file.
	* gnu/java/math/MPN.java: New file.
	* gnu/gcj/math/MPN.java: Removed.
	* java/math/BigInteger.java: Merged with Classpath.

From-SVN: r48080
2001-12-16 22:25:14 +00:00
Tom Tromey
200f4143a2 re PR libgcj/4583 (problems BigDecimal(double) ctor.)
Fix for PR libgcj/4583:
	* java/math/BigDecimal.java (BigDecimal(double)): Rewrote.
	(BigDecimal(String)): Likewise.

From-SVN: r47329
2001-11-25 19:32:28 +00:00
Per Bothner
4046760603 BigInteger.java (init(int,Random)): New method.
* java/math/BigInteger.java (init(int,Random)):  New method.
	Move body of constructor <init>(int,Random)) here.
	Re-write it to avoid constructing unneeded temporaries.
	(<init>(int,int,Random)):  Use new init method to avoid constructing
	extra temporary BigIntegers.

From-SVN: r45240
2001-08-28 15:16:11 -07:00
Mark J Roberts
62ee966e9c BigInteger.java (randBytes): New method.
2001-08-17  Mark J Roberts  <mjr@anarcast.net>

	* java/math/BigInteger.java (randBytes): New method.
	(BigInteger(int,Random)): Use randBytes.

From-SVN: r44984
2001-08-17 22:21:02 +00:00
Hans Boehm
552bf3d6af * BigInteger.java: fix right shifts by nonzero multiples of 32.
From-SVN: r44963
2001-08-17 16:28:32 +00:00
Mark J. Roberts
a0d4ddde2c BigInteger.java (byteArrayToIntArray): Don't include extraneous/malformed sign word.
2001-06-19  Mark J. Roberts  <mjr@statesmean.com>

	* java/math/BigInteger.java (byteArrayToIntArray): Don't include
	extraneous/malformed sign word.

From-SVN: r43455
2001-06-19 11:42:03 +00:00
Per Bothner
c04278f74f Changes merged from Kawa's gnu.math.
* java/math/BigInteger.java
	* gnu/gcj/math/MPN.java (rshift0): New method handles zero shift count.
	(rshift(int[],int[],int,int):  Removed - not needed.
	(gcd):  Use rshift0 rather than rshift.
	* java/math/BigInteger.java (setShiftRight):  Likewise.
	(divide):  Simplify by using rshift0.
	(divide):  Zero-extend results if high-order bit set.

From-SVN: r40177
2001-03-01 22:55:33 -08:00
Warren Levy
19c976393d * java/math/BigInteger.java: Update Copyright year.
From-SVN: r39082
2001-01-17 04:13:17 +00:00
Hans Boehm
c7fb0b9218 BigInteger.java (setShiftRight): Only do negative shift if count != 0.
2001-01-16  Hans Boehm  <hans_boehm@hp.com>

	* java/math/BigInteger.java (setShiftRight): Only do negative shift
	if count != 0.

From-SVN: r39080
2001-01-17 01:00:53 +00:00
Warren Levy
737c87df28 * java/math/BigDecimal.java (divide): Fixed comment.
From-SVN: r38862
2001-01-10 10:26:34 +00:00
Warren Levy
698489049d re PR libgcj/1596 (setScale() missing from java.math.BigDecimal)
Fix for PR libgcj/1596:
	* java/math/BigDecimal.java (divide): Check newScale for validity.
	Ensure that BigInteger.pow() is called with a non-negative value.
	(setScale (int)): New public method.
	(setScale (int,int)): New public method.

From-SVN: r38861
2001-01-10 09:38:08 +00:00
Warren Levy
df98a50bb0 Makefile.am: Added locale files from Classpath.
* Makefile.am: Added locale files from Classpath.
	* Makefile.in: Rebuilt.
	* gnu/java/locale/Calendar.java: New file.
	* gnu/java/locale/Calendar_de.java: New file.
	* gnu/java/locale/Calendar_en.java: New file.
	* gnu/java/locale/Calendar_nl.java: New file.
	* java/lang/ClassNotFoundException.java: Replaced with Classpath file.
	* java/math/BigDecimal.java (intVal): Renamed from 'num' for
	serialization compatibility.
	(scale): Made private.
	(serialVersionUID): New field.
	* java/math/BigInteger.java (ival): Made transient.
	(words): Made transient.
	(bitCount): New serialization field.
	(bitLength): Ditto.
	(firstNonzeroByteNum): Ditto.
	(lowestSetBit): Ditto.
	(magnitude): Ditto.
	(signum): Ditto.
	(serialVersionUID): New field.
	(readObject): New method.
	(writeObject): New method.
	* java/util/BitSet.java (serialVersionUID): New field.
	* java/util/Calendar.java: Replaced with Classpath file.
	* java/util/GregorianCalendar.java (GregorianCalendar): Pass result
	of getDefault() for TimeZone or Locale instead of passing nulls.
	* java/util/Locale.java (serialVersionUID): New field.
	(writeObject): New method.
	(readObject): New method.
	* java/util/SimpleTimeZone.java: Replaced with Classpath file.

Serialization mods.

From-SVN: r37080
2000-10-27 10:33:46 +00:00
Warren Levy
d0123c54ca ObjectStreamException.java: New file.
* java/io/ObjectStreamException.java: New file.
	* java/io/OptionalDataException.java: New file.
	* java/io/StreamCorruptedException.java: New file.
	* java/math/BigDecimal.java: New file.
	* java/sql/CallableStatement.java: New file.
	* java/sql/Connection.java: New file.
	* java/sql/DataTruncation.java: New file.
	* java/sql/DatabaseMetaData.java: New file.
	* java/sql/Date.java: New file.
	* java/sql/Driver.java: New file.
	* java/sql/DriverManager.java: New file.
	* java/sql/DriverPropertyInfo.java: New file.
	* java/sql/PreparedStatement.java: New file.
	* java/sql/ResultSet.java: New file.
	* java/sql/ResultSetMetaData.java: New file.
	* java/sql/SQLException.java: New file.
	* java/sql/SQLWarning.java: New file.
	* java/sql/Statement.java: New file.
	* java/sql/Time.java: New file.
	* java/sql/Timestamp.java: New file.
	* java/sql/Types.java: New file.
	* Makefile.am: Added above new files.
	* Makefile.in: Rebuilt.

	* mauve-libgcj: Turned on java.math, java.sql and java.security tests.
	* java/net/MulticastSocket.java (MulticastSocket): Pass values a la
	DatagramSocket constructor instead of null.

java.sql is JDK 1.1 Compliant

From-SVN: r33077
2000-04-11 09:21:53 +00:00
Warren Levy
552cc5b57e BigInteger.java (divide): Handle the special case when dividing by 1 and the high bit of the dividend is set.
* java/math/BigInteger.java(divide): Handle the special case when
	dividing by 1 and the high bit of the dividend is set.
	(setShiftRight): Handle case when count == 0.

From-SVN: r32724
2000-03-24 09:18:12 +00:00
Warren Levy
d98729aa0e * java/math/BigInteger.java(signum): Handle zero properly.
From-SVN: r32441
2000-03-09 04:35:30 +00:00
Tom Tromey
2ba5f77454 All files: Updated copyright information.
* All files: Updated copyright information.
	* COPYING: New file.
	* COPYING.LIB: Removed.
	* LIBGCJ_LICENSE: We now use GPL + special exception.

From-SVN: r32387
2000-03-07 19:55:28 +00:00
Warren Levy
12b595c7c4 BigInteger.java (ival): Made private.
* java/math/BigInteger.java(ival): Made private.
	(words): Ditto.
	(neg): Ditto.

From-SVN: r32143
2000-02-25 04:00:09 +00:00
Warren Levy
34540fe35e MPN.java (findLowestBit): Made methods public.
* gnu/gcj/math/MPN.java(findLowestBit): Made methods public.

	* java/math/BigInteger.java(BigInteger(int,int,java.util.Random):
	  New constructor.
	(min): Implemented.
	(max): Implemented.
	(modPow): Rewritten to not use the naive, slow, brute force approach.
	(isProbablePrime): Implemented.
	(testBit): Implemented.
	(flipBit): Implemented.
	(getLowestSetBit): Implemented.

From-SVN: r31966
2000-02-14 10:23:29 +00:00
Warren Levy
136b5d77fc BigInteger.java (BigInteger(String, int)): New constructor.
* java/math/BigInteger.java(BigInteger(String, int)): New constructor.
	(BigInteger(String)): New constructor.
	(not): Rewritten using version from Kawa's BitOps class.
	(valueOf): New private methods from Kawa's BitOps class.
	(swappedOp): ditto.
	(bitOp): ditto.
	(setBitOp): ditto.
	(and): Implemented.
	(or): Implemented.
	(xor): Implemented.
	(andNot): Implemented.
	(clearBit): Implemented.
	(setBit): Implemented.
	(bitCount): Implemented.
	(toByteArray): Implemented.

From-SVN: r31926
2000-02-11 19:09:03 +00:00
Warren Levy
25c449becf Makefile.am: Added MPN.java and BigInteger.java.
* Makefile.am: Added MPN.java and BigInteger.java.
	* Makefile.in: Rebuilt.
	* gnu/gcj/math/MPN.java: New file.
	* java/math/BigInteger.java: New file.

From-SVN: r31794
2000-02-04 22:00:36 +00:00