Skip to content
Lossless compressor of multidimensional floating-point arrays
C++ C CMake Makefile
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
include Add fpzip_data_model Dec 21, 2019
src Add fpzip_data_model Dec 21, 2019
tests Use 31-bit RNG in testfpzip Dec 21, 2019
utils Silence MSVC warnings Dec 20, 2019
.gitignore Create repo Dec 19, 2019
CMakeLists.txt Add regression tests Dec 20, 2019
Config Use 31-bit RNG in testfpzip Dec 21, 2019
LICENSE Create repo Dec 19, 2019
Makefile Create repo Dec 19, 2019
NOTICE Create repo Dec 19, 2019 Verify data model and floating-point mode Dec 21, 2019 Finalize VERSIONS doc for release Dec 21, 2019 Create repo Dec 19, 2019



fpzip is a library and command-line utility for lossless and optionally lossy compression of 2D and 3D floating-point arrays. fpzip assumes spatially correlated scalar-valued data, such as regularly sampled continuous functions, and is not suitable for compressing unstructured streams of floating-point numbers. In lossy mode, fpzip discards some number of least significant mantissa bits and losslessly compresses the result. fpzip currently supports IEEE-754 single (32-bit) and double (64-bit) precision floating-point data. fpzip is written in C++ but has a C compatible API that can be called from C and other languages. It conforms to the C++98 and C89 language standards.

fpzip is released as Open Source under a three-clause BSD license. Please see the file LICENSE for further details.


CMake builds

fpzip was developed for Linux and macOS but can be built on Windows using CMake. To use CMake, type:

cd fpzip
mkdir build
cd build
cmake ..
cmake --build . --config Release

fpzip can be configured using compile-time options, e.g.:


To display the available options, type:

cmake .. -L

Basic regression testing is available:

ctest -V -C Release

GNU builds

fpzip may also be built using GNU make:

cd fpzip

This builds lib/libfpzip.a and bin/fpzip.

The GNU make options are listed in the file Config and should preferably be set on the command line, e.g.:


To run the regression tests, type:

gmake test


Documentation is currently limited to the source files themselves. For information on the API, please see the header file include/fpzip.h. For an example of how to call fpzip, please see the source file utils/fpzip.cpp. This utility may be used to compress binary files of raw floating-point numbers. Usage is given by:

fpzip -h


fpzip was written by Peter Lindstrom at Lawrence Livermore National Laboratory.

CITING fpzip

If you use fpzip for scholarly research, please cite the following paper:

Peter Lindstrom and Martin Isenburg
"Fast and Efficient Compression of Floating-Point Data"
IEEE Transactions on Visualization and Computer Graphics, 12(5):1245-1250, 2006


fpzip is distributed under the terms of the BSD license. See the files LICENSE and NOTICE for details.

SPDX-License-Identifier: BSD



For questions and comments, please contact us at Please submit bug reports and feature requests via the GitHub issue tracker.

You can’t perform that action at this time.