FPC 1.1

This page is a mirror of http://www.csl.cornell.edu/~burtscher/research/FPC/


FPC is a fast and effective lossless compressor/decompressor for IEEE 754 64-bit double-precision floating-point data.

Click here to obtain the source code. Save it in a file called fpc.c.  A description of FPC is available here.  A line-by-line description of the source code is available here.  Sample little-endian datasets are available here.  Note that FPC is protected by this license.

The source code in file fpc.c can be compiled into an executable called fpc as follows:

gcc -O3 fpc.c -o fpc

The executable compresses/decompresses data with level x from the standard input and writes the result to the standard output.  x is a positive integer that specifies the internal table size (2x+4 bytes).  Larger x typically result in better compression ratios but slower processing.

To compress the file file.in with level 20 and store the result in a file called file.fpc, enter:

./fpc 20 < file.in > file.fpc

To decompress the file file.fpc and store the result in file file.out, enter:

./fpc < file.fpc > file.out

Note that the raw data file has to be a multiple of 8 bytes long and must contain nothing but binary double-precision values.  Only little-endian systems are supported.  FPC works particularly well on 64-bit machines and on hard-to-compress data.




This work is supported in part by the Department of Energy under Grant No. DE-FG02-06ER25722.





M. Burtscher and P. Ratanaworabhan. “High Throughput Compression of Double-Precision Floating-Point Data.” 2007 Data Compression Conference, pp. 293-302. March 2007. [pdf]

M. Burtscher and P. Ratanaworabhan. “FPC: A High-Speed Compressor for Double-Precision Floating-Point Data.” IEEE Transactions on Computers, Vol. 58, No. 1, pp. 18-31. January 2009. [pdf]

Page maintained by Martin Burtscher
Last update: 20 April 2019