I also plan to implement the 80 bit "extended precision" format, which
is not IEEE 754 compatible. Perhaps the best and simplest is
Number::Pack and Number::Unpack?

Peter

tor. 3. jun. 2021 kl. 11:43 skrev Peter John Acklam <pjack...@gmail.com>:
>
> Hi
>
> I am working on two modules for encoding and decoding numbers as per IEEE754. 
> The pack() function can encode and decode the formats binary32 (single 
> precision) and binary64 (double precision). My module can also handle 
> binary128 (quad precision), binary16 (half precision), bfloat16 (not an 
> IEEE754 format, but it follows the IEEE754 pattern), and a few other formats.
>
> My question is about the namespace. Is Math::IEEE754::Encoder (and 
> ...::Decoder) OK? Or is Number::IEEE754::Encoder better? Or any other?
>
> Here is an example showing how I use it:
>
> my $encoder = Math::IEEE754::Encoder -> new("binary16");
> my $bytes = $encoder -> (3.14159265358979);  # = "\x42\x48"
>
> my $decoder = Math::IEEE754::Decoder -> new("binary16");
> my $number = $decoder -> ($bytes);               # = 3.140625
>
> The reason for returning an anonymous function rather than implementing the 
> function directly, is speed. There are some constants involved, and I don't 
> want to compute them for each function call.
>
> Cheers,
> Peter John Acklam (PJACKLAM)

Reply via email to