Name: H5Pset_data_transform
Signature:
  herr_t `H5Pset_data_transform` (hid_t `plist_id`, const char *`expression`)
Purpose:
  Sets a data transform expression.
Description:
  `H5Pset_data_transform` sets the data transform to be used for reading and writing data. This function operates on the dataset transfer property lists plist_id.

  The expression parameter is a string containing an algebraic expression, such as `(5/9.0)*(x-32)` or `x*(x-5)`. When a dataset is read or written with this property list, the transform expression is applied with the `x` being replaced by the values in the dataset. When reading data, the values in the file are not changed and the transformed data is returned to the user.

  Data transforms can only be applied to integer or floating-point datasets. Order of operations is obeyed and the only supported operations are +, -, *, and /. Parentheses can be nested arbitrarily and can be used to change precedence.

  When writing data back to the dataset, the transformed data is written to the file and there is no way to recover the original values to which the transform was applied.

Parameters:

hid_t `plist_id` | IN: Identifier of the property list or class
const char *`expression` | IN: Pointer to the null-terminated data transform expression

Returns:
  Success: a non-negative value
  Failure: a negative value
Fortran90 Interface: SUBROUTINE h5pset_data_transform_f

      SUBROUTINE h5pset_data_transform_f(plist_id, expression, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: plist_id
                                          ! Identifier of the property list or class
        CHARACTER(LEN=*), INTENT(IN) :: expression
                                          ! Buffer to hold transform expression
        INTEGER, INTENT(OUT) :: hdferr    ! Error code
                                          ! 0 on success and -1 on failure
      END SUBROUTINE h5pset_data_transform_f

History:

  Release | C
  1.8.0 | Function introduced in this release.