>>>MAF<<< MAkichan for Floating

MAF is a lossless double-precision floating point number compression algorithm. 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.


Please visit MAF repository at GitLab.

Technical Details

What machine does the MAF program run on?

You need a C99-compliant compiler to build an 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 affecting 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].


  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]