jhendersonHDF 90429f5e7d Implement support for complex number datatypes (#4630)
* Implement support for complex number datatypes

Adds the new datatype class H5T_COMPLEX

Adds the new API function H5Tcomplex_create which creates a complex
number datatype from an ID of a base floating-point datatype

Adds the new feature check macros H5_HAVE_COMPLEX_NUMBERS and
H5_HAVE_C99_COMPLEX_NUMBERS

Adds the new datatype size macros H5_SIZEOF_FLOAT_COMPLEX,
H5_SIZEOF_DOUBLE_COMPLEX and H5_SIZEOF_LONG_DOUBLE_COMPLEX

Adds the new datatype ID macros H5T_NATIVE_FLOAT_COMPLEX,
H5T_NATIVE_DOUBLE_COMPLEX, H5T_NATIVE_LDOUBLE_COMPLEX,
H5T_CPLX_IEEE_F16LE, H5T_CPLX_IEEE_F16BE,
H5T_CPLX_IEEE_F32LE, H5T_CPLX_IEEE_F32BE,
H5T_CPLX_IEEE_F64LE and H5T_CPLX_IEEE_F64BE

Adds hard and soft datatype conversion paths between complex number
datatypes and all the integer and floating-point datatypes, as well as
between other complex number datatypes

Adds a special conversion path between complex number datatypes and
array or compound datatypes where the in-memory layout of data is the
same between the datatypes and data can be converted directly

Adds support for complex number datatypes to the h5dump, h5ls and
h5diff/ph5diff tools. Allows h5dump '-m' option to change floating-point
printing format for float complex and double complex datatypes, as well
as long double complex if it has the same size as double complex

Adds minimal support to the h5watch and h5import tools

Adds support for the predefined complex number datatypes and
H5Tcomplex_create function to the Java wrappers. Also adds initial,
untested support to the JNI for future use with HDFView

Adds support for just the H5T_COMPLEX datatype class to the Fortran
wrappers

Adds support for the predefined complex number datatypes and
H5Tcomplex_create function to the high level library H5LT interface
for use with the H5LTtext_to_dtype and H5LTdtype_to_text functions

Changes some usages of "complex" in the library since it conflicts with
the "complex" keyword from the complex.h header. Also changes various
usages of the word "complex" throughout the library to distinguish
compound datatypes from complex datatypes.
2024-10-31 13:54:25 -07:00
2024-10-18 21:13:04 -07:00
2024-10-18 21:13:04 -07:00
2024-05-23 16:44:33 -05:00
2024-10-18 21:13:04 -07:00
2024-10-18 21:13:04 -07:00
2024-05-23 16:44:33 -05:00
2024-10-18 21:13:04 -07:00
2024-10-18 21:13:04 -07:00
2023-06-18 22:14:56 -07:00

HDF5 version 2.0.0 currently under development

HDF5 Logo

develop cmake build status develop autotools build status HDF-EOS5 build status netCDF build status h5py build status CVE regression HDF5 VOL connectors build status HDF5 VFD build status BSD

HPC configure/build/test results

Please refer to the release_docs/INSTALL file for installation instructions.

This repository contains a high-performance library's source code and a file format specification that implements the HDF5® data model. The model has been adopted across many industries, and this implementation has become a de facto data management standard in science, engineering, and research communities worldwide.

The HDF Group is the developer, maintainer, and steward of HDF5 software. Find more information about The HDF Group, the HDF5 Community, and other HDF5 software projects, tools, and services at The HDF Group's website.

DOCUMENTATION

Documentation for all HDF software is available at:

https://support.hdfgroup.org/documentation/index.html

Documentation for the current HDF5 library release is available at:

https://support.hdfgroup.org/releases/hdf5/latest-docs.html

The latest Doxygen documentation generated on changes to develop, which does not correspond to any particular library release, is available at:

https://hdfgroup.github.io/hdf5/develop

See the RELEASE.txt file in the release_docs/ directory for information specific to the features and updates included in this release of the library.

Several more files are located within the release_docs/ directory with specific details for several common platforms and configurations.

INSTALL - Start Here. General instructions for compiling and installing the library
INSTALL_CMAKE  - instructions for building with CMake (Kitware.com)
INSTALL_parallel - instructions for building and configuring Parallel HDF5
INSTALL_Windows and INSTALL_Cygwin - MS Windows installations.

HELP AND SUPPORT

Information regarding Help Desk and Support services is available at

https://help.hdfgroup.org

FORUM and NEWS

The HDF Forum is provided for public announcements and discussions of interest to the general HDF5 Community.

These forums are provided as an open and public service for searching and reading. Posting requires completing a simple registration and allows one to join in the conversation. Please read the instructions pertaining to the Forum's use and configuration.

RELEASE SCHEDULE

HDF5 release schedule

HDF5 does not release on a regular schedule. Instead, releases are driven by new features and bug fixes, though we try to have at least one release of each maintenance branch per year. Future HDF5 releases indicated on this schedule are tentative.

Release New Features
2.0.0 Drop Autotools support, drop the C++ API, drop the HDF5 <--> GIF tools, add complex number support, update library defaults (cache sizes, etc.), use semantic versioning
FUTURE Multi-threaded HDF5, crashproofing / metadata journaling, Full (VFD) SWMR, encryption, digital signatures, sparse datasets, improved storage for variable-length datatypes, better Unicode support (especially on Windows)

NOTE: In the March 2025 release we will begin using semantic versioning (https://semver.org/) and the previously announced 1.16.0 version will instead be numbered 2.0.0.

A list of planned HDF5 2.0 features and bugfixes can be found here.

This list of feature release versions is also tentative, and the specific release in which a feature is introduced may change.

SNAPSHOTS, PREVIOUS RELEASES AND SOURCE CODE

Periodically development code snapshots are provided at the following URL:

https://github.com/HDFGroup/hdf5/releases/tag/snapshot

Source packages for current and previous releases are located at:

hdf5 1.14 releases: https://support.hdfgroup.org/releases/hdf5/v1_14/index.html

Archived releases: https://support.hdfgroup.org/archive/support/ftp/HDF5/releases/index.html

Development code is available at our Github location:

https://github.com/HDFGroup/hdf5.git

S
Description
No description provided
Readme Cite this repository
966 MiB
Languages
C 76.4%
Java 9%
Fortran 5.2%
CMake 3.1%
HTML 2.2%
Other 4%