From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20354 invoked by alias); 15 Aug 2012 13:59:50 -0000 Received: (qmail 20331 invoked by uid 22791); 15 Aug 2012 13:59:48 -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 13:59:35 +0000 From: "liubov.dmitrieva at gmail dot com" To: glibc-bugs@sources.redhat.com Subject: [Bug math/14468] New: Inaccurate j0f function Date: Wed, 15 Aug 2012 13:59: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/msg00069.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=14468 Bug #: 14468 Summary: Inaccurate j0f function 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 #include #include #include // abs function for int argument extern float j0f(float); extern double j0(double); #define i32(a) (((int*)&(a))[0]) int main() { float a,r1,r2; i32(a)=0x413caa1f; //argument fesetround(FE_TONEAREST); r1 = j0f(a); //actual result r2 = j0(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; } Result: inputs: a = (0x413caa1f) 1.179153e+01 actual = (0xb471e828) -2.2529331999976e-07 expected = (0xb471d452) -2.2522115727952e-07 error = 5078 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.