From owner-freebsd-java Sun Jul 11 3:26:11 1999 Delivered-To: freebsd-java@freebsd.org Received: from cafe.muraoka.info.waseda.ac.jp (cafe.muraoka.info.waseda.ac.jp [133.9.68.49]) by hub.freebsd.org (Postfix) with ESMTP id 8B21714E38 for ; Sun, 11 Jul 1999 03:26:05 -0700 (PDT) (envelope-from shudoh@muraoka.info.waseda.ac.jp) Received: from muraoka.info.waseda.ac.jp (shudoh@localhost [127.0.0.1]) by cafe.muraoka.info.waseda.ac.jp (8.9.1a/3.7W) with ESMTP id TAA17788 for ; Sun, 11 Jul 1999 19:22:58 +0900 Message-Id: <199907111022.TAA17788@cafe.muraoka.info.waseda.ac.jp> To: freebsd-java@FreeBSD.ORG Subject: Re: strange java calculation errors In-reply-to: Your message of "Fri, 09 Jul 1999 16:04:32 CST." <199907092204.QAA09955@mt.sri.com> Date: Sun, 11 Jul 1999 19:22:57 +0900 From: SHUDO Kazuyuki Sender: owner-freebsd-java@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > > > > >I use the latest jdk1.1.8_ELF.V99-6-3.tar.gz with applied net-patch. > > > > >On a few-weeks-old 3.2-STABLE. > > > > >I have strange arithmetic errors. > > Ok, I set up a sample program. I think it needs to be an awt-application. > > I don't get any errors without setVisible(), but with a visible frame > > I get errors every few seconds. It has to be a Thread, too, I think. > > Martin > > > > //BugTest.java ---------------------------------------------- I could simplify this code a bit. Math.pow(...) returns a strange value occasionally. Moving a mouse pointer on the frame seems to increase the frequency of errors. Kazuyuki SHUDO Happy Hacking! Muraoka Lab., Grad. School of Sci. & Eng., Waseda Univ. ========== import java.awt.*; import java.util.Random; public class BugTest extends Frame implements Runnable { public BugTest(){ setSize(100,100); setVisible(true); } public void run(){ double base, pow; Random random = new Random(); while (true){ base = random.nextDouble() * 10.0; pow = Math.pow(base, 3.9); if (pow < 1.0e-200) { System.out.println(); System.out.println("base: " + base + " (0x" + Long.toHexString(Double.doubleToLongBits(base)) + ")"); System.out.println("pow: " + pow + " (0x" + Long.toHexString(Double.doubleToLongBits(pow)) + ")"); } } } public static void main(String args[]){ BugTest bug = new BugTest(); Thread bugThread = new Thread(bug); bugThread.setPriority(Thread.MIN_PRIORITY); bugThread.start(); } } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-java" in the body of the message