libkate
0.4.1
|
Floating point values are stored as a series of digitized fixed point values in the Kate bitstream format. Several distinct streams of floating point values may be saved at the same time. A stream has a constant format (number of bits saved per value). Streams may be merged together (eg, merging 2 streams of V values yields a single stream of 2*V values). Streams stored together always have the same number of values.
When loading N streams, the bitstream format is as follows:
If the streams to load are merged, the different streams are stored as a single stream. In this case, N is set to 1, and the number of values is equal to the total number of values in all streams (eg, the original N times the number of values in a single stream).
Then, for each stream:
Then, for each value:
Each number may then be reconstructed by concatenating the given number of high zero bits (‘head’), the middle bits, the given number of low zero bits (‘tail’), and negating the number if the sign bit was 1.