>>>MAF<<< MAkichan for Floating

MAF is a double-precision floating point number compression algorithm proposed by Hisanobu Tomari. This package includes a program that can encode binary dump of double-precision floating point numbers into MAF format and decode the MAF-formatted image back to original double-precision numbers.

Download

Notice that you need to `tar -Jxf maf-1.1.tar.xz' to extract files from a .tar.xz archive. This software is provided as a public domain software.

Technical Details

On which machine does the MAF program run?

You need a C99-compliant compiler to successfully build the executable. Floating point numbers are assumed to be stored in IEEE754 style, so you'll need to pass appropriate options to HP C on OpenVMS systems. (I haven't tested this program on my OpenVMS systems yet.)

This program is verified under:

MAF compression utility properly handles big-endian and little-endian systems.

How does MAF compress floating point numbers?

In MAF compression, only the exponent part of floating-point numbers are compressed. This leads to extremely fast compression/decompression, without severe loss of compression ratio for most datasets. In our experiment, MAF compressed a dataset obtained from scientific simulation better than GZip and Bzip2 does.

Why is it called `maf'?

The method in which the MAF compresses the extracted exponent parts of a floating point number stream is inspired by a popular Japanese computer-generated image compression algorithm: MAG. The name MAG, in turn, is an acronym for MAKIchan Graphic [2]. Naturally, as my method is for floating point numbers, the resulting name for my method is called MAF.

Is the programming interface documented anywhere?

No, the source code is fairly straightforward, and the algorithm is documented in [1].

References

  1. Tomari, H.; Inaba, M.; Hiraki, K.; , "Compressing Floating-Point Number Stream for Numerical Applications," Networking and Computing (ICNC), 2010 First International Conference on , pp.112-119, 17-19 Nov. 2010
  2. MAG-loader Specification/Not for resale[In Japanese]