Message133004
I see the distinction about the rounding error now. Thanks for clarifying; I've added more tests as suggested.
Looking at _struct.c, line 2085:
/* Skip float and double, could be
"unknown" float format */
if (ptr->format == 'd' || ptr->format == 'f')
break;
ptr->pack = native->pack;
ptr->unpack = native->unpack;
break;
I'm going to assume that it's okay to allow 'e' to pass through here, since the 'e' type is *always* going to be in IEEE 754 (not "unknown") floating point format, and the handling routines don't rely on the C conversions the way the float/double ones do. Is that a good assumption to make?
Also, looking at the line in the native_table declaration:
{'e', sizeof(short), SHORT_ALIGN, nu_halffloat, np_halffloat},
Does it make sense to have an entry here since there isn't actually a native representation? ATM it's implemented as just figuring out the platform endianness, and then calling the corresponding lp_/lu_ or bp_/bu_ function. |
|
Date |
User |
Action |
Args |
2011-04-05 06:53:49 | Eli.Stevens | set | recipients:
+ Eli.Stevens, mark.dickinson, mark.wiebe |
2011-04-05 06:53:49 | Eli.Stevens | set | messageid: <1301986429.17.0.414601790109.issue11734@psf.upfronthosting.co.za> |
2011-04-05 06:53:48 | Eli.Stevens | link | issue11734 messages |
2011-04-05 06:53:48 | Eli.Stevens | create | |
|