[Xorp-hackers] Floating-point types in IPC

Steven Simpson ss at comp.lancs.ac.uk
Tue Aug 30 07:58:43 PDT 2011


Hi Ben, all,

It's been pointed out to me that there are no floating-point types 
supported by XrlAtom, and we might need them in the ECODE project.  Has 
there been any plan for adding them?  How far did it get?  What stopped it?

I've gone through the motions of adding an fp64 type, conforming to 
IEEE754 binary64, so it should be able to transmit NaN and signed 
zero/infinity.  It maps to an alias fp64_t, which is either double or 
long double.  The implementation uses only C99 functions, so that should 
avoid introducing new dependencies.

I've introduced <libxipc/fp64.h> which chooses the fp64_t alias, and 
<libxipc/fp64serial.h> which provides C functions for converting between 
fp64_t and uint_fast64_t.  They should not need to be accessed directly 
by user code, as xrl_atom.hh handles it.

The algorithm has been tested in isolation, but I haven't made a start 
yet on an integrated test - I guess something in libxipc/tests would be 
appropriate.  From what I recall, enable_tests=True is required for 
programs in there.

Let me know if that sounds up to scratch, and I'll send you the patch 
when I have the tests in place.

Cheers,

Steven



More information about the Xorp-hackers mailing list