From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27671 invoked by alias); 15 Aug 2012 14:10:18 -0000 Received: (qmail 27658 invoked by uid 22791); 15 Aug 2012 14:10:16 -0000 X-SWARE-Spam-Status: No, hits=-3.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO sourceware.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 15 Aug 2012 14:10:03 +0000 From: "liubov.dmitrieva at gmail dot com" To: glibc-bugs@sources.redhat.com Subject: [Bug math/14470] New: Inaccurate j1f function on x86_32 Date: Wed, 15 Aug 2012 14:10:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: math X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: liubov.dmitrieva at gmail dot com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org X-SW-Source: 2012-08/txt/msg00071.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=14470 Bug #: 14470 Summary: Inaccurate j1f function on x86_32 Product: glibc Version: 2.17 Status: NEW Severity: normal Priority: P2 Component: math AssignedTo: unassigned@sourceware.org ReportedBy: liubov.dmitrieva@gmail.com Classification: Unclassified Test case: // gcc main.c -std=c99 -lm -m32 #include #include #include // abs function for int argument extern float j1f(float); extern double j1(double); #define i32(a) (((int*)&(a))[0]) int main() { float a,r1,r2; i32(a)=0x4122c68a; //argument fesetround(FE_TONEAREST); r1 = j1f(a); //actual result r2 = j1(a); //actual result 2 printf("inputs: a = (0x%08x)\t%e\n", i32(a), a); printf("actual = (0x%08x)\t%.13e\n", i32(r1), r1); printf("expected = (0x%08x)\t%.13e\n", i32(r2), r2); printf("error = %d ulp\n", abs(i32(r1) - i32(r2))); return 0; } Results: inputs: a = (0x4122c68a) 1.017347e+01 actual = (0xb55e2ad3) -8.2763762065952e-07 expected = (0xb55e40c6) -8.2795702383009e-07 error = 5619 ulp -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.