Skip to content

LLNL/zfp

Folders and files

NameName
Last commit message
Last commit date
Mar 2, 2025
Jul 26, 2022
Oct 11, 2022
Jan 14, 2025
Oct 29, 2024
Dec 16, 2023
Jan 14, 2025
Jul 4, 2024
Jan 14, 2025
Feb 12, 2025
Jan 11, 2024
Jul 26, 2022
Dec 15, 2023
Jan 14, 2025
Jul 29, 2021
Oct 11, 2022
Nov 3, 2021
Dec 1, 2020
Jul 26, 2022
Dec 16, 2023
Jul 4, 2024
Jul 31, 2022
Dec 26, 2019
May 18, 2024
Nov 3, 2021
May 30, 2019
Dec 16, 2023
Aug 4, 2021
Jul 4, 2024
Jul 4, 2024
Mar 29, 2022
Aug 26, 2022

Repository files navigation

ZFP

GitHub Actions Test Status Appveyor Build Status Documentation Status codecov R&D100 - Winner

zfp is a compressed format for representing multidimensional floating-point and integer arrays. zfp provides compressed-array classes that support high throughput read and write random access to individual array elements. zfp also supports serial and parallel (OpenMP and CUDA) compression of whole arrays, e.g., for applications that read and write large data sets to and from disk.

zfp uses lossy but optionally error-bounded compression to achieve high compression ratios. Bit-for-bit lossless compression is also possible through one of zfp's compression modes. zfp works best for 2D, 3D, and 4D arrays that exhibit spatial correlation, such as continuous fields from physics simulations, natural images, regularly sampled terrain surfaces, etc. zfp compression of 1D arrays is possible but generally discouraged.

zfp is freely available as open source and is distributed under a BSD license. zfp is primarily written in C and C++ but also includes Python and Fortran bindings. zfp conforms to various language standards, including C89, C99, C11, C++98, C++11, and C++14, and is supported on Linux, macOS, and Windows.

Quick Start

To download zfp, type:

git clone https://github.com/LLNL/zfp.git

zfp may be built using either CMake or GNU make. To use CMake, type:

cd zfp
mkdir build
cd build
cmake ..
cmake --build . --config Release
ctest

This builds the zfp library in the build/lib directory and the zfp command-line executable in the build/bin directory. It then runs the regression tests. The full test suite may be run by enabling the BUILD_TESTING_FULL CMake option during the build step.

zfp may also be built using GNU make:

cd zfp
make
make test

Note: GNU builds are less flexible and do not support all available features, e.g., CUDA support.

For further configuration and build instructions, please consult the documentation. For examples of how to call the C library and use the C++ array classes, see the examples section.

Documentation

Full HTML documentation is available online. A PDF version is also available.

Further information on the zfp software is included in these files:

Authors

zfp was originally developed by Peter Lindstrom at Lawrence Livermore National Laboratory. Please see the Contributors Page for a full list of contributors.

Citing zfp

If you use zfp for scholarly research, please cite this paper:

The algorithm implemented in the current version of zfp is described in the documentation and in the following paper:

License

zfp is distributed under the terms of the BSD 3-Clause license. See LICENSE and NOTICE for details.

SPDX-License-Identifier: BSD-3-Clause

LLNL-CODE-663824