This is the mail archive of the ecos-patches@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1001539] Single precision floating point math library


Please do not reply to this email, use the link below.

http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001539

--- Comment #27 from Ilija Kocho <ilijak@siva.com.mk> ---
(In reply to comment #25)
> Ilija, I have tested the current patches on the "psim" target (big-endian).
> 
> In the default configuration (CYGNUM_LIBM_COMPATIBILITY), I see 5 libm test
> failures (out of tolerance):  frexpf, asinf, logf, acosf, log10f
> 
> In IEEE-only configuration (CYGSEM_LIBM_COMPAT_IEEE_ONLY), I get a build
> error (EDOM undeclared). If I fix the build error by including <errno.h>
> unconditionally from vector_support_float.h then I see 1 libm test failure
> (out of tolerance):  frexpf
> 
> I hope this helps.

I reproduced your tests and it come back to me. In case of default
CYGNUM_LIBM_COMPATIBILITY configuration the real error is EDOM, but POSIX model
doesn't seem to support it. The cases that test EDOM should be excluded for
POSIX. (Please see comment 21 and patch sample below.

frexpf on the other hand seem to fail and we need to check why.



--- patch sample -----------


--- logf.h    2013-06-07 20:56:07.943683244 +0200
+++ logf_new.h    2013-06-07 20:56:16.235683588 +0200
@@ -63,12 +63,12 @@
 #include <cyg/infra/cyg_type.h>    // Common type definitions and support
 #include "vectors/vector_support_float.h"// extra support for math tests

-//#define LOG_TOLERANCE 1.0E-04
-#define LOG_TOLERANCE 1.0E-05
+#define LOG_TOLERANCE 1.0E-04

 static const Cyg_libm_test_float_vec_t logf_vec[] = {

-// AUTOMATICALLY GENERATED VECTORS START
+    // AUTOMATICALLY GENERATED VECTORS START
+#if defined CYGNUM_LIBM_COMPATIBILITY_IEEE || defined
CYGSEM_LIBM_COMPAT_IEEE_ONLY
 {0, 3214514586u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
 {1, 3214430700u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
 {2, 3214346813u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
@@ -189,6 +189,7 @@
 {117, 3170222735u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
 {118, 3164854026u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
 {119, 3156465418u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+#endif //defined CYGNUM_LIBM_COMPATIBILITY_IEEE || defined
CYGSEM_LIBM_COMPAT_IEEE_ONLY
 {120, 646742016u, 3255452089u, 3255452089u, 0, LOG_TOLERANCE, 0},
 {121, 1008981770u, 3230883214u, 3230883214u, 0, LOG_TOLERANCE, 0},
 {122, 1017370378u, 3229245078u, 3229245078u, 0, LOG_TOLERANCE, 0},
@@ -309,6 +310,7 @@
 {237, 1066779279u, 1042335124u, 1042335124u, 0, LOG_TOLERANCE, 0},
 {238, 1066863165u, 1042906267u, 1042906267u, 0, LOG_TOLERANCE, 0},
 {239, 1066947052u, 1043472596u, 1043472596u, 0, LOG_TOLERANCE, 0},
+#if defined CYGNUM_LIBM_COMPATIBILITY_IEEE || defined
CYGSEM_LIBM_COMPAT_IEEE_ONLY
 {240, 3234402267u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
 {241, 3231108068u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
 {242, 3226013659u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
@@ -335,6 +337,7 @@
 {263, 3230662656u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
 {264, 3224580915u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
 {265, 3213675725u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+#endif // defined CYGNUM_LIBM_COMPATIBILITY_IEEE || defined
CYGSEM_LIBM_COMPAT_IEEE_ONLY
 {266, 1058642330u, 3204629879u, 3204629879u, 0, LOG_TOLERANCE, 0},
 {267, 1075000115u, 1062549896u, 1062549896u, 0, LOG_TOLERANCE, 0},
 {268, 1082130432u, 1068593688u, 1068593688u, 0, LOG_TOLERANCE, 0},

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]