[CLN-list] Patch to convert cl_I to and from a byte stream
Richard B. Kreckel
kreckel at ginac.de
Thu Aug 17 00:26:11 CEST 2006
Igor Khavkine wrote:
> Recently, I've had to use CLN in conjunction with GiNaC.
> Unfortunately, I've found that it's hard to pass numbers from
> applications that use CLN to applications that use other libraries,
> such as GMP or Python. The most efficient method I've found is through
> a base-16 or base-32 string representation.
>
> I think the conversion would be much simpler if CLN could export its
> numbers as byte streams (basically in base-256), say little endian and
> signed. Conversion through this intermediate format would then simply
> be a matter of memory copying together with some fiddling that each
> library has to do to construct its internal number representation.
>
> I've written a few simple routines that allow the conversion based on
> the conversion to and from a digit sequence (DS) that CLN already
> supports (although does not export). I'm attaching a patch with these
> routines. Please consider adding it to the next CLN release.
>
> As is, the patch probably needs some work to seamlessly fit into the
> library. For instance, I'm sure some of the code could be shortened if
> some of the internal CLN macros for working with different endian
> storage schemes were used. For another thing, I'm not sure where to
> place the prototypes of these routines to add them to the library's
> exported interface.
Thanks for your patch suggestion. I haven't looked closely at it and
won't find the time during the next few weeks (traveling). The macros
are just one minor issue. Some quick thoughts that come to mind are: Is
it really necessary to add the byte-endianness of the sequence to the
signature to I_to_BS? Couldn't we leave the string reversal to the user?
It only appears to swap bytes within a digit: What's the point of that?
Also, couldn't the existing read_integer function be enhanced to do what
you want?
More, will have to wait.
Regards
-richy.
--
Richard B. Kreckel
<http://www.ginac.de/~kreckel/>
More information about the CLN-list
mailing list