Recent Releases of zfp
zfp - 1.0.1
1.0.1 (December 15, 2023)
This patch release primarily addresses minor bug fixes and is needed to update the zfpy Python wheels.
Added
- A new build macro,
BUILD_TESTING_FULL, specifies that all unit tests be built;BUILD_TESTINGproduces a smaller subset of tests. Full tests and documentation are now included in releases.
Fixed
- #169:
libmdependency is not always correctly detected. - #171:
ptrdiff_tis not always imported in Cython. - #176: cfp API is not exposed via CMake configuration file.
- #177: Full test suite is not included in release.
- #181:
rpathis not set correctly in executables. - #204: Array strides are not passed by value in zFORp.
- #220: Errors reported with scikit-build when building zfpy.
- C++
Published by lindstro about 2 years ago
zfp - 1.0.0
1.0.0 (August 1, 2022)
This release is not ABI compatible with prior releases due to numerous changes
to function signatures and data structures like zfp_field. However, few of
the API changes, other than to the cfp C API for compressed arrays, should
impact existing code. Note that numerous header files have been renamed or
moved relative to prior versions.
Added
zfp::const_array: read-only variable-rate array that supports fixed-precision, fixed-accuracy, and reversible modes.- Compressed-array classes for 4D data.
constversions of array references, pointers, and iterators.- A more complete API for pointers and iterators.
- cfp support for proxy references and pointers, iterators, and (de)serialization.
- Support for pointers and iterators into array views.
zfp::array::size_bytes()allows querying the size of different components of an array object (e.g., payload, cache, index, metadata, ...).- Templated C++ wrappers around the low-level C API.
- A generic codec for storing blocks of uncompressed scalars in zfp's C++ arrays.
- Additional functions for querying
zfp_fieldandzfp_streamstructs. zfp_config: struct that encapsulates compression mode and parameters.- Rounding modes for reducing bias in compression errors.
- New examples:
array,iteratorC, andppm.
Changed
- Headers from
array/,cfp/include/, andinclude/have been renamed and reorganized into a commoninclude/directory.- The libzfp API is now confined to
zfp.h,zfp.hpp, andzfp.modfor C, C++, and Fortran bindings, respectively. These all appear in the top-levelinclude/directory upon installation. - C++ headers now use a
.hppsuffix; C headers use a.hsuffix. - C++ headers like
array/zfparray.hhave been renamedzfp/array.hpp. - C headers like
cfp/include/cfparrays.hhave been renamedzfp/array.h.
- The libzfp API is now confined to
size_tandptrdiff_treplaceuintandintfor array sizes and strides in the array classes and C/Fortran APIs.zfp_boolreplacesintas Boolean type in the C API.bitstream_offsetandbitstream_sizereplacesize_tto ensure support for 64-bit offsets into and lengths of bit streams. Consequently, thebitstreamAPI has changed accordingly.- All array and view iterators are now random-access iterators.
- Array inspectors now return
const_referencerather than a scalar type likefloatto allow obtaining aconst_pointerto an element of an immutable array. zfp::array::compressed_data()now returnsvoid*instead ofuchar*.- The array (de)serialization API has been revised, resulting in new
zfp::array::headerandzfp::exceptionclasses with new exception messages. - The array
codecclass is now responsible for all details regarding compression. - The compressed-array C++ implementation has been completely refactored to make it more modular, extensible, and reusable across array types.
- Array block shapes are now computed on the fly rather than stored.
- The cfp C API now wraps array objects in structs.
- The zfpy Python API now supports the more general
memoryviewoverbytesobjects for decompression. - The zFORp Fortran module name is now
zfpinstead ofzforp_module. - Some command-line options for the
diffusionexample have changed. - CMake 3.9 or later is now required for CMake builds.
Removed
zfp::array::get_header()has been replaced with azfp::array::headerconstructor that accepts an array object.ZFP_VERSION_RELEASEis no longer defined (useZFP_VERSION_PATCH).
Fixed
- #66:
make installoverwrites googletest. - #84: Incorrect order of parameters in CUDA
memset(). - #86: C++ compiler warns when
__STDC_VERSION__is undefined. - #87:
CXXFLAGSis misspelled incfp/src/Makefile. - #98:
zfp_stream_maximum_size()underestimates size in reversible mode. - #99: Incorrect
private_viewreads due to missing writeback. - #109: Unused CPython array is incompatible with PyPy.
- #112: PGI compiler bug causes issues with memory alignment.
- #119: All-subnormal blocks may cause floating-point overflow.
- #121: CUDA bit offsets are limited to 32 bits.
- #122:
make installdoes not install zfp command-line utility. - #125: OpenMP bit offsets are limited to 32 bits.
- #126:
make installdoes not install Fortran module. - #127: Reversible mode reports incorrect compressed block size.
- #150: cmocka tests do not build on macOS.
- #154: Thread safety is broken in
private_viewandprivate_const_view. ZFP_MAX_BITSis off by one.diffusionC,iteratorCare not being built withgmake.
- C++
Published by lindstro over 3 years ago
zfp - 0.5.5
0.5.5 (May 5, 2019)
Added support for reversible (lossless) compression of floating-point and integer data.
Added methods for serializing and deserializing zfp's compressed arrays.
Added Python bindings for compressing NumPy arrays.
Added Fortran bindings to zfp's high-level C API.
Change:
- The default compressed-array cache size is now a function of the total number of array elements, irrespective of array shape.
Bug fixes:
- Incorrect handling of execution policy in zfp utility.
- Incorrect handling of decompression via header in zfp utility.
- Incorrect cleanup of device memory in CUDA decompress.
- Tests for failing mallocs.
- CMake installation of CFP when built.
- zfp_write_header and zfp_field_metadata now fail if array dimensions are too large to fit in header.
- C++
Published by lindstro almost 7 years ago
zfp - 0.5.4
0.5.4 (October 1, 2018)
Added support for CUDA fixed-rate compression and decompression.
Added views into compressed arrays for thread safety, nested array indexing, slicing, and array subsetting.
Added C language bindings for compressed arrays.
Added support for compressing and decompressing 4D data.
Changes:
- Execution policy now applies to both compression and decompression.
- Compressed array accessors now return Scalar type instead of const Scalar& to avoid stale references to evicted cache lines.
Bug fixes:
- Handling of negative strides.
- Command line tool handling of arrays with more than 2^32 elements.
- bitstream C++ compatibility.
- Respect minimum cache size request.
- C++
Published by salasoom over 7 years ago
zfp - 0.5.3
0.5.3 (March 28, 2018)
Added support for OpenMP multithreaded compression (but not decompression).
Added options for OpenMP execution to zfp command-line tool.
Changed return value of zfp_decompress to indicate the number of compressed bytes processed so far (now returns same value as zfp_compress on success).
Added compressed array support for copy construction and assignment via deep copies.
Added virtual destructors to enable inheritance from zfp arrays.
- C++
Published by salasoom almost 8 years ago
zfp -
0.5.2 (September 28, 2017)
Added iterators and proxy objects for pointers and references.
Added example illustrating how to use iterators and pointers.
Modified diffusion example to optionally use iterators.
Moved internal headers under array to array/zfp.
Modified 64-bit integer typedefs to avoid the C89 non-compliant long long and allow for user-supplied types and literal suffixes.
Renamed compile-time macros that did not have a ZFP prefix.
Fixed issue with setting stream word type via CMake.
Rewrote documentation in reStructuredText and added complete documentation of all public functions, classes, types, and macros. Removed ASCII documentation.
- C++
Published by salasoom over 8 years ago