Difference between revisions of "Talk:Ieee arithmetic"

(Not IEEE arithmetic, nor maths)
(Not IEEE arithmetic, nor maths)
Line 10: Line 10:
  
 
'''--[[User:Colin-adams|Colin-adams]] 14:48, 3 February 2010 (UTC)'''
 
'''--[[User:Colin-adams|Colin-adams]] 14:48, 3 February 2010 (UTC)'''
== Not IEEE arithmetic, nor maths ==
+
'''Not IEEE arithmetic, nor maths''', NaN = NaN is never true. And placing NaNs in a sort order isn't write either - REAL_32/64 are not totally ordered types.
NaN = NaN is never true.  
+
 
+
And placing NaNs in a sort order isn't write either - REAL_32/64 are not totally ordered types.
+
  
 
:'''--[[User:Manus|manus]] 17:57, 3 February 2010 (UTC)''' How do you solve the problem of assertions then in ARRAY.put for example?
 
:'''--[[User:Manus|manus]] 17:57, 3 February 2010 (UTC)''' How do you solve the problem of assertions then in ARRAY.put for example?

Revision as of 09:57, 3 February 2010

Most probably C compilers inline functions, but just to be sure, I'd convert them into the macros:

#define to_raw_bits(d) *((EIF_NATURAL_64*)&(d))
 
#define eif_is_nan_bits(value) ((value & ~RTU64C(0x8000000000000000)) > RTU64C(0x7ff0000000000000))
 
#define eif_is_nan(v) ((*((EIF_NATURAL_64 *)&(v)) & ~RTU64C(0x8000000000000000)) > RTU64C(0x7ff0000000000000))

Does it affect the benchmarks?

--Colin-adams 14:48, 3 February 2010 (UTC) Not IEEE arithmetic, nor maths, NaN = NaN is never true. And placing NaNs in a sort order isn't write either - REAL_32/64 are not totally ordered types.

--manus 17:57, 3 February 2010 (UTC) How do you solve the problem of assertions then in ARRAY.put for example?