summaryrefslogtreecommitdiffstats
path: root/src/H5Tconv.c
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2005-02-10 22:19:39 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2005-02-10 22:19:39 (GMT)
commit479bdb0bbdb3ba2f75cf374ff6086e1f711c624d (patch)
tree5f040666d5e964651bfefcccd2ca40654cdf2cb0 /src/H5Tconv.c
parent39e11427c5845a9520e63e760ca5cc9fe62d98d6 (diff)
downloadhdf5-479bdb0bbdb3ba2f75cf374ff6086e1f711c624d.zip
hdf5-479bdb0bbdb3ba2f75cf374ff6086e1f711c624d.tar.gz
hdf5-479bdb0bbdb3ba2f75cf374ff6086e1f711c624d.tar.bz2
[svn-r9984] Purpose: New feature and test
Description: Added support of hardware conversion between "long double" and integers(mainly in H5Tconv.c) and some test cases(mainly in test/dtypes.c). Platforms tested: h5committest and fuss. Misc. update: RELEASE.txt
Diffstat (limited to 'src/H5Tconv.c')
-rw-r--r--src/H5Tconv.c687
1 files changed, 671 insertions, 16 deletions
diff --git a/src/H5Tconv.c b/src/H5Tconv.c
index 1e66513..e8905c0 100644
--- a/src/H5Tconv.c
+++ b/src/H5Tconv.c
@@ -123,14 +123,22 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
* least as large as the destination. Overflows can occur when
* the destination is narrower than the source.
*
- * xF: Integers to float-point values where the desination is
+ * xF: Integers to float-point(float or double) values where the desination
+ * is at least as wide as the source. This case cannot generate
+ * overflows.
+ *
+ * Fx: Float-point(float or double) values to integer where the source is
+ * at least as wide as the destination. Overflow can occur
+ * when the source magnitude is too large for the destination.
+ *
+ * xL: Integers to float-point(long double) values where the desination is
* at least as wide as the source. This case cannot generate
* overflows.
*
- * Fx: Float-point values to integer where the source is
+ * Lx: Float-point(long double) values to integer where the source is
* at least as wide as the destination. Overflow can occur
* when the source magnitude is too large for the destination.
- *
+
* The macros take a subset of these arguments in the order listed here:
*
* CDATA: A pointer to the H5T_cdata_t structure that was passed to the
@@ -459,6 +467,14 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
H5T_CONV(H5T_CONV_Xx, double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX) \
}
+#define H5T_CONV_xL(STYPE,DTYPE,ST,DT,D_MIN,D_MAX) { \
+ H5T_CONV(H5T_CONV_xX, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX) \
+}
+
+#define H5T_CONV_Lx(STYPE,DTYPE,ST,DT,D_MIN,D_MAX) { \
+ H5T_CONV(H5T_CONV_Xx, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX) \
+}
+
/* The main part of every integer hardware conversion macro */
#define H5T_CONV(GUTS,ATYPE,STYPE,DTYPE,ST,DT,D_MIN,D_MAX) { \
size_t elmtno; /*element number */ \
@@ -7083,6 +7099,38 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_schar_ldouble
+ *
+ * Purpose: Convert native signed char to native long double using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_schar_ldouble, FAIL);
+
+ H5T_CONV_xL(SCHAR, LDOUBLE, signed char, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_uchar_float
*
* Purpose: Convert native unsigned char to native float using hardware.
@@ -7147,6 +7195,38 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_uchar_ldouble
+ *
+ * Purpose: Convert native unsigned char to native long double using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_uchar_ldouble, FAIL);
+
+ H5T_CONV_xL(UCHAR, LDOUBLE, unsigned char, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_short_float
*
* Purpose: Convert native short to native float using hardware.
@@ -7211,6 +7291,38 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_short_ldouble
+ *
+ * Purpose: Convert native short to native long double using hardware.
+ * This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_short_ldouble, FAIL);
+
+ H5T_CONV_xL(SHORT, LDOUBLE, short, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_ushort_float
*
* Purpose: Convert native unsigned short to native float using hardware.
@@ -7275,6 +7387,38 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ushort_ldouble
+ *
+ * Purpose: Convert native unsigned short to native long double using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ushort_ldouble, FAIL);
+
+ H5T_CONV_xL(USHORT, LDOUBLE, unsigned short, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_int_float
*
* Purpose: Convert native integer to native float using hardware.
@@ -7339,6 +7483,38 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_int_ldouble
+ *
+ * Purpose: Convert native integer to native long double using hardware.
+ * This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_int_ldouble, FAIL);
+
+ H5T_CONV_xL(INT, LDOUBLE, int, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_uint_float
*
* Purpose: Convert native unsigned integer to native float using
@@ -7403,6 +7579,38 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_uint_ldouble
+ *
+ * Purpose: Convert native unsigned integer to native long double using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_uint_ldouble, FAIL);
+
+ H5T_CONV_xL(UINT, LDOUBLE, unsigned int, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_long_float
*
* Purpose: Convert native long to native float using hardware.
@@ -7467,9 +7675,41 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_long_ldouble
+ *
+ * Purpose: Convert native long to native long double using hardware.
+ * This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_long_ldouble, FAIL);
+
+ H5T_CONV_xL(LONG, LDOUBLE, long, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_ulong_float
*
- * Purpose: Convert native native long to native float using hardware.
+ * Purpose: Convert native unsigned long to native float using hardware.
* This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -7501,7 +7741,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_ulong_double
*
- * Purpose: Convert native native long to native double using hardware.
+ * Purpose: Convert native unsigned long to native double using hardware.
* This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -7529,6 +7769,37 @@ done:
FUNC_LEAVE_NOAPI(ret_value);
}
+
+/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ulong_ldouble
+ *
+ * Purpose: Convert native unsigned long to native long double using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ulong_ldouble, FAIL);
+
+ H5T_CONV_xL(ULONG, LDOUBLE, unsigned long, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
/*-------------------------------------------------------------------------
@@ -7594,9 +7865,41 @@ done:
FUNC_LEAVE_NOAPI(ret_value);
}
-#ifdef H5_ULLONG_TO_FP_CAST_WORKS
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_llong_ldouble
+ *
+ * Purpose: Convert native long long to native long double using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_llong_ldouble, FAIL);
+
+ H5T_CONV_xL(LLONG, LDOUBLE, long_long, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+#ifdef H5_ULLONG_TO_FP_CAST_WORKS
+/*-------------------------------------------------------------------------
* Function: H5T_conv_ullong_float
*
* Purpose: Convert native unsigned long long to native float using
@@ -7658,6 +7961,38 @@ H5T_conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
done:
FUNC_LEAVE_NOAPI(ret_value);
}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ullong_ldouble
+ *
+ * Purpose: Convert native unsigned long long to native long double using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ullong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ullong_ldouble, FAIL);
+
+ H5T_CONV_xL(ULLONG, LDOUBLE, unsigned long_long, long double, -, -);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
#endif /* H5_ULLONG_TO_FP_CAST_WORKS */
@@ -7728,7 +8063,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_schar
*
- * Purpose: Convert native float to native signed char using
+ * Purpose: Convert native double to native signed char using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -7760,7 +8095,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_uchar
*
- * Purpose: Convert native float to native unsigned char using
+ * Purpose: Convert native double to native unsigned char using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -7790,6 +8125,70 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_schar
+ *
+ * Purpose: Convert native long double to native signed char using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_schar, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, SCHAR, long double, signed char, SCHAR_MIN, SCHAR_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_uchar
+ *
+ * Purpose: Convert native long double to native unsigned char using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_uchar, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, UCHAR, long double, unsigned char, 0, UCHAR_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_float_short
*
* Purpose: Convert native float to native short using
@@ -7856,7 +8255,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_short
*
- * Purpose: Convert native float to native short using
+ * Purpose: Convert native double to native short using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -7888,7 +8287,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_ushort
*
- * Purpose: Convert native float to native unsigned short using
+ * Purpose: Convert native double to native unsigned short using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -7918,6 +8317,70 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_short
+ *
+ * Purpose: Convert native long double to native short using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_short, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, SHORT, long double, short, SHRT_MIN, SHRT_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_ushort
+ *
+ * Purpose: Convert native long double to native unsigned short using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_ushort, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, USHORT, long double, unsigned short, 0, USHRT_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_float_int
*
* Purpose: Convert native float to native int using
@@ -7984,7 +8447,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_int
*
- * Purpose: Convert native float to native int using
+ * Purpose: Convert native double to native int using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -8016,7 +8479,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_uint
*
- * Purpose: Convert native float to native unsigned int using
+ * Purpose: Convert native double to native unsigned int using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -8046,6 +8509,70 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_int
+ *
+ * Purpose: Convert native long double to native int using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_int, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, INT, long double, int, INT_MIN, INT_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_uint
+ *
+ * Purpose: Convert native long double to native unsigned int using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_uint, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, UINT, long double, unsigned int, 0, UINT_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_float_long
*
* Purpose: Convert native float to native long using
@@ -8112,7 +8639,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_long
*
- * Purpose: Convert native float to native long using
+ * Purpose: Convert native double to native long using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -8144,7 +8671,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_ulong
*
- * Purpose: Convert native float to native unsigned long using
+ * Purpose: Convert native double to native unsigned long using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -8174,6 +8701,70 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_long
+ *
+ * Purpose: Convert native long double to native long using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_long, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, LONG, long double, long, LONG_MIN, LONG_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_ulong
+ *
+ * Purpose: Convert native long double to native unsigned long using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_ulong, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, ULONG, long double, unsigned long, 0, ULONG_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_float_llong
*
* Purpose: Convert native float to native long long using
@@ -8240,7 +8831,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_llong
*
- * Purpose: Convert native float to native long long using
+ * Purpose: Convert native double to native long long using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -8272,7 +8863,7 @@ done:
/*-------------------------------------------------------------------------
* Function: H5T_conv_double_ullong
*
- * Purpose: Convert native float to native unsigned long long using
+ * Purpose: Convert native double to native unsigned long long using
* hardware. This is a fast special case.
*
* Return: Non-negative on success/Negative on failure
@@ -8302,6 +8893,70 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_llong
+ *
+ * Purpose: Convert native long double to native long long using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t UNUSED dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_llong, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, LLONG, long double, long_long, LLONG_MIN, LLONG_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5T_conv_ldouble_ullong
+ *
+ * Purpose: Convert native long double to native unsigned long long using
+ * hardware. This is a fast special case.
+ *
+ * Return: Non-negative on success/Negative on failure
+ *
+ * Programmer: Raymond Lu
+ * Tuesday, Febuary 1, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5T_conv_ldouble_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
+ size_t nelmts, size_t buf_stride,
+ size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+ hid_t dxpl_id)
+{
+ herr_t ret_value=SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5T_conv_ldouble_ullong, FAIL);
+
+ H5T_CONV_Lx(LDOUBLE, ULLONG, long double, unsigned long_long, 0, ULLONG_MAX);
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: H5T_conv_i32le_f64le
*
* Purpose: Converts 4-byte little-endian integers (signed or unsigned)