Create a compressed copy of an NDF using DELTA compression NDF_ZDELT
Further compression is achieved by replacing runs of equal input values by a single occurrence of the value with a correspsonding repetition count.
It should be noted that the degree of compression achieved is dependent on the nature of the data, and it is possible for a compressed array to occupy more space than the uncompressed array. The mean compression factor actually achieved is returned in argument ZRATIO (the ratio of the supplied NDF size to the compressed NDF size).
’
DATA, ’
VARIANCE’
or ’
QUALITY’
. Additionally, if
’
’
is supplied all three components will be compressed. ’
_BYTE’
, ’
_WORD’
or ’
_INTEGER’
. Additionally, a blank string may be supplied in which
case a default value will be selected for each array that gives the greatest compression. An error is reported if any of the arrays to be compressed holds floating point values. The exception is that floating point values that are stored as scaled integers (see NDF_ZSCAL) are accepted.
If the input NDF is already stored in DELTA format, it will be uncompressed and then recompressed using the supplied parameter values.
An error will result if any of the specified array components of the input NDF are currently mapped for access.
Complex arrays cannot be compressed using this routine. An error will be reported if the input NDF
has a complex type, or if "
TYPE"
represents a complex data type.
Delta compressed arrays are read-only. An error will be reported if an attempt is made to map a delta compressed array for WRITE or UPDATE access.
When delta compressed arrays are mapped for READ access, uncompression occurs automatically. The pointer returned by NDF_MAP provides access to the uncompressed array values.
The result of copying a compressed NDF (for instance, using NDF_PROP, etc.) will be an equivalent uncompressed NDF.
When applied to a compressed NDF, the NDF_TYPE and NDF_FTYPE routines return information about the data type of the uncompressed NDF.
If this routine is called with STATUS set, then a value of NDF__NOID will be returned for the INDF2 argument, although no further processing will occur. The same value will also be returned if the routine should fail for any reason. In either event, the placeholder will still be annulled. The NDF__NOID constant is defined in the include file NDF_PAR.