From 2aeef9d5187a255e4856eac176e1f927793d6871 Mon Sep 17 00:00:00 2001 From: lindstro Date: Fri, 23 Mar 2018 15:52:17 -0700 Subject: [PATCH] Update version number, release notes --- LICENSE | 2 +- README.md | 4 +- VERSIONS | 247 ---------------------------------- VERSIONS.md | 250 +++++++++++++++++++++++++++++++++++ appveyor.yml | 2 +- docs/source/conf.py | 2 +- docs/source/contributors.rst | 4 +- docs/source/installation.rst | 2 +- docs/source/versions.rst | 15 ++- include/zfp.h | 4 +- src/zfp.c | 2 +- 11 files changed, 269 insertions(+), 265 deletions(-) delete mode 100644 VERSIONS create mode 100644 VERSIONS.md diff --git a/LICENSE b/LICENSE index c22352e10..019e75fc6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ Copyright (c) 2014-2018, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory. -Written by Peter Lindstrom. +Written by Peter Lindstrom and Markus Salasoo. LLNL-CODE-663824. All rights reserved. diff --git a/README.md b/README.md index ca183cf19..b426aebeb 100644 --- a/README.md +++ b/README.md @@ -46,9 +46,9 @@ DOCUMENTATION ------------- Full -[documentation](http://zfp.readthedocs.io/en/release0.5.2/) +[documentation](http://zfp.readthedocs.io/en/release0.5.3/) is available online via Read the Docs. A -[PDF](http://readthedocs.org/projects/zfp/downloads/pdf/release0.5.2/) +[PDF](http://readthedocs.org/projects/zfp/downloads/pdf/release0.5.3/) version is also available. diff --git a/VERSIONS b/VERSIONS deleted file mode 100644 index 440f8f959..000000000 --- a/VERSIONS +++ /dev/null @@ -1,247 +0,0 @@ -feature/deep-copy - - - Added support for copy construction and assignment via deep copies. - - - Added virtual destructors to enable inheritance from zfp arrays. - -feature/omp - - - Added support for OpenMP multithreaded compression (but not decompression). - - - 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). - - -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. - - -zfp 0.5.1, March 28, 2017 - - - This release primarily fixes a few minor issues but also includes - changes in anticipation of a large number of planned future additions - to the library. No changes have been made to the compressed format, - which is backwards compatible with version 0.5.0. - - - Added high-level API support for integer types. - - - Separated library version from CODEC version and added version string. - - - Added example that illustrates in-place compression. - - - Added support for CMake builds. - - - Corrected inconsistent naming of BIT_STREAM macros in code and - documentation. - - - Renamed some of the header bit mask macros. - - - Added return values to stream_skip and stream_flush to indicate the - number of bits skipped or output. - - - Renamed stream_block and stream_delta to make it clear that they refer - to strided streams. Added missing definition of stream_stride_block. - - - Changed int/uint types in places to use ptrdiff_t/size_t where - appropriate. - - - Changed API for zfp_set_precision and zfp_set_accuracy to not require - the scalar type. - - - Added missing static keyword in decode_block. - - - Changed testzfp to allow specifying which tests to perform on the - command line. - - - Fixed bug that prevented defining uninitialized arrays. - - - Fixed incorrect computation of array sizes in zfp_field_size. - - - Fixed minor issues that prevented code from compiling on Windows. - - - Fixed issue with fixed-accuracy headers that caused unnecessary storage. - - - Modified directory structure. - - - Added documentation that discusses common issues with using zfp. - - -zfp 0.5.0, February 29, 2016 - - - Modified CODEC to more efficiently encode blocks whose values are all - zero or are smaller in magnitude than the absolute error tolerance. - This allows representing "empty" blocks using only one bit each. This - version is not backwards compatible with prior zfp versions. - - - Changed behavior of zfp_compress and zfp_decompress to not automatically - rewind the bit stream. This makes it easier to concatenate multiple - compressed bit streams, e.g. when compressing vector fields or multiple - scalars together. - - - Added functions for compactly encoding the compression parameters - and field meta data, e.g. for producing self-contained compressed - streams. Also added functions for reading and writing a header - containing these parameters. - - - Changed the zfp example program interface to allow reading and writing - compressed streams, optionally with a header. The zfp tool can now be - used to compress and decompress files as a stand alone utility. - - -zfp 0.4.1, December 28, 2015 - - - Fixed bug that caused segmentation fault when compressing 3D arrays - whose dimensions are not multiples of four. Specifically, arrays of - dimensions nx * ny * nz, with ny not a multiple of four, were not - handled correctly. - - - Modified examples/fields.h to ensure standard compliance. Previously, - C99 support was needed to handle the hex float constants, which are - not supported in C++98. - - - Added simple.c as a minimal example of how to call the compressor. - - - Changed compilation of diffusion example to output two executables: - one with and one without compression. - - -zfp 0.4.0, December 5, 2015 - - - Substantial changes to the compression algorithm that improve PSNR - by about 6 dB and speed by a factor of 2-3. These changes are not - backward compatible with previous versions of zfp. - - - Added support for 31-bit and 63-bit integer data, as well as shorter - integer types. - - - Rewrote compression codec entirely in C to make linking and calling - easier from other programming languages, and to expose the low-level - interface through C instead of C++. This necessitated significant - changes to the API as well. - - - Minor changes to the C++ compressed array API, as well as major - implementation changes to support the C library. The namespace and - public types are now all in lower case. - - - Deprecated support for general fixed-point decorrelating transforms - and slimmed down implementation. - - - Added new examples for evaluating the throughput of the (de)compressor - and for compressing grayscale images in the pgm format. - - - Added FAQ. - - -zfp 0.3.2, December 3, 2015 - - - Fixed bug in Array::get() that caused the wrong cached block to be - looked up, thus occasionally copying incorrect values back to parts - of the array. - - -zfp 0.3.1, May 6, 2015 - - - Fixed rare bug caused by exponent underflow in blocks with no normal - and some denormal numbers. - - -zfp 0.3.0, March 3, 2015 - - - Modified the default decorrelating transform to one that uses only - additions and bit shifts. This new transform, in addition to being - faster, also has some theoretical optimality properties and tends to - improve rate distortion. - - - Added compile-time support for parameterized transforms, e.g. to - support other popular transforms like DCT, HCT, and Walsh-Hadamard. - - - Made forward transform range preserving: (-1, 1) is mapped to (-1, 1). - Consequently Q1.62 fixed point can be used throughout. - - - Changed the order in which bits are emitted within each bit plane - to be more intelligent. Group tests are now deferred until they - are needed, i.e. just before the value bits for the group being - tested. This improves the quality of fixed-rate encodings, but - has no impact on compressed size. - - - Made several optimizations to improve performance. - - - Added floating-point traits to reduce the number of template - parameters. It is now possible to declare a 3D array as - Array3, for example. - - - Added functions for setting the array scalar type and dimensions. - - - Consolidated several header files. - - - Added testzfp for regression testing. - - -zfp 0.2.1, December 12, 2014 - - - Added Win64 support via Microsoft Visual Studio compiler. - - - Fixed broken support for IBM's xlc compiler. - - - Made several minor changes to suppress compiler warnings. - - - Documented expected output for the diffusion example. - - -zfp 0.2.0, December 2, 2014 - - - The compression interface from zfpcompress was relocated to a - separate library, called libzfp, and modified to be callable from C. - This API now uses a parameter object (zfp_params) to specify array - type and dimensions as well as compression parameters. - - - Several utility functions were added to simplify libzfp usage: - - o Functions for setting the rate, precision, and accuracy. - Corresponding functions were also added to the Codec class. - - o A function for estimating the buffer size needed for compression. - - - The Array class functionality was expanded: - - o Support for accessing the compressed bit stream stored with an - array, e.g. for offline compressed storage and for initializing - an already compressed array. - - o Functions for dynamically specifying the cache size. - - o The default cache is now direct-mapped instead of two-way - associative. - - - Minor bug fixes: - - o Corrected the value of the lowest possible bit plane to account for - both the smallest exponent and the number of bits in the significand. - - o Corrected inconsistent use of rate and precision. The rate refers - to the number of compressed bits per floating-point value, while - the precision refers to the number of uncompressed bits. The Array - API was changed accordingly. - - -zfp 0.1.0, November 12, 2014 - - - Initial beta release. diff --git a/VERSIONS.md b/VERSIONS.md new file mode 100644 index 000000000..7aa53951d --- /dev/null +++ b/VERSIONS.md @@ -0,0 +1,250 @@ +# zfp Release Notes + +## 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. + + +## 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. + + +## 0.5.1 (March 28, 2017) + +- This release primarily fixes a few minor issues but also includes + changes in anticipation of a large number of planned future additions + to the library. No changes have been made to the compressed format, + which is backwards compatible with version 0.5.0. + +- Added high-level API support for integer types. + +- Separated library version from CODEC version and added version string. + +- Added example that illustrates in-place compression. + +- Added support for CMake builds. + +- Corrected inconsistent naming of BIT\_STREAM macros in code and + documentation. + +- Renamed some of the header bit mask macros. + +- Added return values to stream\_skip and stream\_flush to indicate the + number of bits skipped or output. + +- Renamed stream\_block and stream\_delta to make it clear that they refer + to strided streams. Added missing definition of stream\_stride\_block. + +- Changed int/uint types in places to use ptrdiff\_t/size\_t where + appropriate. + +- Changed API for zfp\_set\_precision and zfp\_set\_accuracy to not require + the scalar type. + +- Added missing static keyword in decode\_block. + +- Changed testzfp to allow specifying which tests to perform on the + command line. + +- Fixed bug that prevented defining uninitialized arrays. + +- Fixed incorrect computation of array sizes in zfp\_field\_size. + +- Fixed minor issues that prevented code from compiling on Windows. + +- Fixed issue with fixed-accuracy headers that caused unnecessary storage. + +- Modified directory structure. + +- Added documentation that discusses common issues with using zfp. + + +## 0.5.0 (February 29, 2016) + +- Modified CODEC to more efficiently encode blocks whose values are all + zero or are smaller in magnitude than the absolute error tolerance. + This allows representing "empty" blocks using only one bit each. This + version is not backwards compatible with prior zfp versions. + +- Changed behavior of zfp\_compress and zfp\_decompress to not automatically + rewind the bit stream. This makes it easier to concatenate multiple + compressed bit streams, e.g. when compressing vector fields or multiple + scalars together. + +- Added functions for compactly encoding the compression parameters + and field meta data, e.g. for producing self-contained compressed + streams. Also added functions for reading and writing a header + containing these parameters. + +- Changed the zfp example program interface to allow reading and writing + compressed streams, optionally with a header. The zfp tool can now be + used to compress and decompress files as a stand alone utility. + + +## 0.4.1 (December 28, 2015) + +- Fixed bug that caused segmentation fault when compressing 3D arrays + whose dimensions are not multiples of four. Specifically, arrays of + dimensions nx * ny * nz, with ny not a multiple of four, were not + handled correctly. + +- Modified examples/fields.h to ensure standard compliance. Previously, + C99 support was needed to handle the hex float constants, which are + not supported in C++98. + +- Added simple.c as a minimal example of how to call the compressor. + +- Changed compilation of diffusion example to output two executables: + one with and one without compression. + + +## 0.4.0 (December 5, 2015) + +- Substantial changes to the compression algorithm that improve PSNR + by about 6 dB and speed by a factor of 2-3. These changes are not + backward compatible with previous versions of zfp. + +- Added support for 31-bit and 63-bit integer data, as well as shorter + integer types. + +- Rewrote compression codec entirely in C to make linking and calling + easier from other programming languages, and to expose the low-level + interface through C instead of C++. This necessitated significant + changes to the API as well. + +- Minor changes to the C++ compressed array API, as well as major + implementation changes to support the C library. The namespace and + public types are now all in lower case. + +- Deprecated support for general fixed-point decorrelating transforms + and slimmed down implementation. + +- Added new examples for evaluating the throughput of the (de)compressor + and for compressing grayscale images in the pgm format. + +- Added FAQ. + + +## 0.3.2 (December 3, 2015) + +- Fixed bug in Array::get() that caused the wrong cached block to be + looked up, thus occasionally copying incorrect values back to parts + of the array. + + +## 0.3.1 (May 6, 2015) + +- Fixed rare bug caused by exponent underflow in blocks with no normal + and some denormal numbers. + + +## 0.3.0 (March 3, 2015) + +- Modified the default decorrelating transform to one that uses only + additions and bit shifts. This new transform, in addition to being + faster, also has some theoretical optimality properties and tends to + improve rate distortion. + +- Added compile-time support for parameterized transforms, e.g. to + support other popular transforms like DCT, HCT, and Walsh-Hadamard. + +- Made forward transform range preserving: (-1, 1) is mapped to (-1, 1). + Consequently Q1.62 fixed point can be used throughout. + +- Changed the order in which bits are emitted within each bit plane + to be more intelligent. Group tests are now deferred until they + are needed, i.e. just before the value bits for the group being + tested. This improves the quality of fixed-rate encodings, but + has no impact on compressed size. + +- Made several optimizations to improve performance. + +- Added floating-point traits to reduce the number of template + parameters. It is now possible to declare a 3D array as + Array3, for example. + +- Added functions for setting the array scalar type and dimensions. + +- Consolidated several header files. + +- Added testzfp for regression testing. + + +## 0.2.1 (December 12, 2014) + +- Added Win64 support via Microsoft Visual Studio compiler. + +- Fixed broken support for IBM's xlc compiler. + +- Made several minor changes to suppress compiler warnings. + +- Documented expected output for the diffusion example. + + +## 0.2.0 (December 2, 2014) + +- The compression interface from zfpcompress was relocated to a + separate library, called libzfp, and modified to be callable from C. + This API now uses a parameter object (zfp\_params) to specify array + type and dimensions as well as compression parameters. + +- Several utility functions were added to simplify libzfp usage: + + * Functions for setting the rate, precision, and accuracy. + Corresponding functions were also added to the Codec class. + + * A function for estimating the buffer size needed for compression. + +- The Array class functionality was expanded: + + * Support for accessing the compressed bit stream stored with an + array, e.g. for offline compressed storage and for initializing + an already compressed array. + + * Functions for dynamically specifying the cache size. + + * The default cache is now direct-mapped instead of two-way + associative. + +- Minor bug fixes: + + * Corrected the value of the lowest possible bit plane to account for + both the smallest exponent and the number of bits in the significand. + + * Corrected inconsistent use of rate and precision. The rate refers + to the number of compressed bits per floating-point value, while + the precision refers to the number of uncompressed bits. The Array + API was changed accordingly. + + +## 0.1.0 (November 12, 2014) + +- Initial beta release. diff --git a/appveyor.yml b/appveyor.yml index 9efb30939..b6e1a1a62 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 0.5.1-{build} +version: 0.5.3-{build} environment: matrix: diff --git a/docs/source/conf.py b/docs/source/conf.py index bf9063809..3bbe0fa83 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -56,7 +56,7 @@ # The short X.Y version. version = u'0.5' # The full version, including alpha/beta/rc tags. -release = u'0.5.2' +release = u'0.5.3' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/source/contributors.rst b/docs/source/contributors.rst index eca1341ef..356be273e 100644 --- a/docs/source/contributors.rst +++ b/docs/source/contributors.rst @@ -6,10 +6,10 @@ Contributors * LLNL |zfp| team - - Peter Lindstrom (Project Lead) + - Peter Lindstrom (Project Lead and original developer) - Matt Larsen (`CUDA port `_) - Mark Miller (`HDF5 plugin `_) - - Markus Salasoo (regression tests, software engineering) + - Markus Salasoo (testing, backwards compatibility, software engineering) * External contributors diff --git a/docs/source/installation.rst b/docs/source/installation.rst index db104aa16..2843f31ad 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -127,7 +127,7 @@ builds, use the :code:`-D` option on the cmake line, e.g. 0 or OFF to disable OpenMP support. For GNU builds, OpenMP is disabled by default. Set this macro to 1 or ON to enable OpenMP support. See also OMPFLAGS in :file:`Config` in case the compiler does not recognize - :code:`-fopenmp`. + :code:`-fopenmp`. NOTE: clang currently does not support OpenMP on macOS. CMake default: on. GNU make default: off. diff --git a/docs/source/versions.rst b/docs/source/versions.rst index 0f8049af9..875566bd5 100644 --- a/docs/source/versions.rst +++ b/docs/source/versions.rst @@ -3,19 +3,20 @@ Release Notes ============= -feature/deep-copy - - - Added support for copy construction and assignment via deep copies. - - - Added virtual destructors to enable inheritance from zfp arrays. - -feature/omp +zfp 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. + zfp 0.5.2, September 28, 2017 diff --git a/include/zfp.h b/include/zfp.h index 4b6fbd407..3d223cdb8 100644 --- a/include/zfp.h +++ b/include/zfp.h @@ -1,7 +1,7 @@ /* ** Copyright (c) 2014-2018, Lawrence Livermore National Security, LLC. ** Produced at the Lawrence Livermore National Laboratory. -** Written by Peter Lindstrom. +** Authors: Peter Lindstrom (original developer), Markus Salasoo. ** LLNL-CODE-663824. ** All rights reserved. ** @@ -74,7 +74,7 @@ /* library version information */ #define ZFP_VERSION_MAJOR 0 /* library major version number */ #define ZFP_VERSION_MINOR 5 /* library minor version number */ -#define ZFP_VERSION_PATCH 2 /* library patch version number */ +#define ZFP_VERSION_PATCH 3 /* library patch version number */ #define ZFP_VERSION_RELEASE ZFP_VERSION_PATCH /* codec version number (see also zfp_codec_version) */ diff --git a/src/zfp.c b/src/zfp.c index 84948dd4f..c72306939 100644 --- a/src/zfp.c +++ b/src/zfp.c @@ -10,7 +10,7 @@ export_ const uint zfp_codec_version = ZFP_CODEC; export_ const uint zfp_library_version = ZFP_VERSION; -export_ const char* const zfp_version_string = "zfp version " ZFP_VERSION_STRING " (September 28, 2017)"; +export_ const char* const zfp_version_string = "zfp version " ZFP_VERSION_STRING " (March 28, 2018)"; /* private functions ------------------------------------------------------- */