summaryrefslogtreecommitdiffstats
path: root/tools/lib/h5diff_array.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lib/h5diff_array.c')
-rw-r--r--tools/lib/h5diff_array.c627
1 files changed, 260 insertions, 367 deletions
diff --git a/tools/lib/h5diff_array.c b/tools/lib/h5diff_array.c
index 2a45913..fc5b97a 100644
--- a/tools/lib/h5diff_array.c
+++ b/tools/lib/h5diff_array.c
@@ -17,6 +17,8 @@
#include "h5diff.h"
#include "ph5diff.h"
+#define ATTR_NAME_MAX 255
+
/*-------------------------------------------------------------------------
* printf formatting
*-------------------------------------------------------------------------
@@ -153,7 +155,7 @@ static void print_char_pos(int *ph, int pp, hsize_t curr_pos, size_t u,
hsize_t *acc, hsize_t *pos, int rank, hsize_t *dims, const char *obj1,
const char *obj2);
static void h5diff_print_char(char ch);
-static hsize_t diff_datum(void *_mem1, void *_mem2, hid_t m_type, hsize_t index,
+static hsize_t diff_datum(void *_mem1, void *_mem2, hid_t m_type, hsize_t idx,
int rank, hsize_t *dims, hsize_t *acc, hsize_t *pos,
diff_opt_t *opts, const char *obj1, const char *obj2,
hid_t container1_id, hid_t container2_id, /*where the reference came from*/
@@ -241,7 +243,6 @@ typedef enum dtype_t {
} dtype_t;
#endif
-static hbool_t my_isnan(dtype_t type, void *val);
/*-------------------------------------------------------------------------
* XCAO, 11/10/2010
@@ -259,19 +260,9 @@ static void close_member_types(mcomp_t *members);
*-------------------------------------------------------------------------
*/
-hsize_t diff_array(
- void *_mem1,
- void *_mem2,
- hsize_t nelmts,
- hsize_t hyper_start,
- int rank,
- hsize_t *dims,
- diff_opt_t *opts,
- const char *name1,
- const char *name2,
- hid_t m_type,
- hid_t container1_id,
- hid_t container2_id) /* dataset where the reference came from*/
+hsize_t diff_array(void *_mem1, void *_mem2, hsize_t nelmts, hsize_t hyper_start,
+ int rank, hsize_t *dims, diff_opt_t *opts, const char *name1, const char *name2,
+ hid_t m_type, hid_t container1_id, hid_t container2_id)
{
hsize_t nfound = 0; /* number of differences found */
size_t size; /* size of datum */
@@ -285,7 +276,7 @@ hsize_t diff_array(
mcomp_t members;
H5T_class_t type_class;
- h5diffdebug2("diff_array start - errstat:%d\n", opts->err_stat);
+ H5TOOLS_START_DEBUG(" - errstat:%d", opts->err_stat);
/* get the size. */
size = H5Tget_size(m_type);
type_class = H5Tget_class(m_type);
@@ -310,6 +301,7 @@ hsize_t diff_array(
pos[j] = 0;
}
+ H5TOOLS_DEBUG("diff_array type_class:%d", type_class);
switch (type_class) {
case H5T_NO_CLASS:
case H5T_TIME:
@@ -370,6 +362,7 @@ hsize_t diff_array(
case H5T_REFERENCE:
HDmemset(&members, 0, sizeof(mcomp_t));
get_member_types(m_type, &members);
+ H5TOOLS_DEBUG("call diff_datum nelmts:%d - errstat:%d", nelmts, opts->err_stat);
for (i = 0; i < nelmts; i++) {
nfound += diff_datum(mem1 + i * size, mem2 + i * size, m_type, i, rank, dims, acc, pos, opts,
name1, name2, container1_id, container2_id, &ph, &members);
@@ -378,8 +371,7 @@ hsize_t diff_array(
} /* i */
close_member_types(&members);
} /* switch */
- h5diffdebug3("diff_array finish:%d - errstat:%d\n", nfound, opts->err_stat);
-
+ H5TOOLS_ENDDEBUG(":%d - errstat:%d", nfound, opts->err_stat);
return nfound;
}
@@ -416,20 +408,11 @@ hsize_t diff_array(
* Dereference the object and compare the type (basic object type).
*-------------------------------------------------------------------------
*/
-static hsize_t diff_datum(
- void *_mem1,
- void *_mem2,
- hid_t m_type,
- hsize_t index,
- int rank,
- hsize_t *dims,
- hsize_t *acc,
- hsize_t *pos,
- diff_opt_t *opts,
- const char *obj1,
- const char *obj2,
- hid_t container1_id,
- hid_t container2_id, /*where the reference came from*/
+static hsize_t
+diff_datum(void *_mem1, void *_mem2, hid_t m_type, hsize_t idx, int rank,
+ hsize_t *dims, hsize_t *acc, hsize_t *pos, diff_opt_t *opts,
+ const char *obj1, const char *obj2,
+ hid_t container1_id, hid_t container2_id,
int *ph, /*print header */
mcomp_t *members) /*compound members */
{
@@ -447,11 +430,11 @@ static hsize_t diff_datum(
hbool_t iszero1;
hbool_t iszero2;
hsize_t nfound = 0; /* differences found */
- hsize_t ret_value = opts->err_stat;
double per;
hbool_t both_zero;
+ diff_err_t ret_value = opts->err_stat;
- h5difftrace("diff_datum start\n");
+ H5TOOLS_START_DEBUG(" - errstat:%d", opts->err_stat);
type_size = H5Tget_size(m_type);
type_class = H5Tget_class(m_type);
@@ -465,14 +448,14 @@ static hsize_t diff_datum(
type_class != H5T_STRING &&
type_class != H5T_VLEN &&
HDmemcmp(mem1, mem2, type_size) == 0)
- HGOTO_DONE(opts->err_stat);
+ H5TOOLS_GOTO_DONE(opts->err_stat);
switch (H5Tget_class(m_type)) {
case H5T_NO_CLASS:
case H5T_TIME:
case H5T_NCLASSES:
default:
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Invalid type class");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Invalid type class");
break;
/*-------------------------------------------------------------------------
@@ -480,16 +463,16 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
case H5T_COMPOUND:
- h5difftrace("diff_datum H5T_COMPOUND\n");
+ H5TOOLS_DEBUG("diff_datum H5T_COMPOUND");
{
- hid_t memb_type = -1;
+ hid_t memb_type = H5I_INVALID_HID;
nmembs = members->n;
for (j = 0; j < nmembs; j++) {
offset = members->offsets[j];
memb_type = members->ids[j];
- nfound += diff_datum(mem1 + offset, mem2 + offset, memb_type, index,
+ nfound += diff_datum(mem1 + offset, mem2 + offset, memb_type, idx,
rank, dims, acc, pos, opts, obj1, obj2, container1_id, container2_id, ph, members->m[j]);
}
}
@@ -500,7 +483,7 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
case H5T_STRING:
- h5difftrace("diff_datum H5T_STRING\n");
+ H5TOOLS_DEBUG("diff_datum H5T_STRING");
{
char *s = NULL;
char *sx = NULL;
@@ -514,7 +497,7 @@ static hsize_t diff_datum(
/* if variable length string */
if (H5Tis_variable_str(m_type)) {
- h5difftrace("diff_datum H5T_STRING variable\n");
+ H5TOOLS_DEBUG("diff_datum H5T_STRING variable");
/* Get pointer to first string */
s1 = *(char **)((void *)mem1);
if (s1)
@@ -530,7 +513,7 @@ static hsize_t diff_datum(
size2 = 0;
}
else if (H5T_STR_NULLTERM == pad) {
- h5difftrace("diff_datum H5T_STRING null term\n");
+ H5TOOLS_DEBUG("diff_datum H5T_STRING null term");
/* Get pointer to first string */
s1 = (char*) mem1;
if (s1)
@@ -567,10 +550,10 @@ static hsize_t diff_datum(
* of length of strings.
* For now mimic the previous way.
*/
- h5diffdebug2("diff_datum string size:%d\n", size1);
- h5diffdebug2("diff_datum string size:%d\n", size2);
+ H5TOOLS_DEBUG("diff_datum string size:%d", size1);
+ H5TOOLS_DEBUG("diff_datum string size:%d", size2);
if (size1 != size2) {
- h5difftrace("diff_datum string sizes\n");
+ H5TOOLS_DEBUG("diff_datum string sizes difference");
nfound++;
}
if (size1 < size2) {
@@ -593,11 +576,11 @@ static hsize_t diff_datum(
if (size1 != size2)
if (print_data(opts))
for (u = size; u < sizex; u++)
- character_compare(s + u, sx + u, index, u, rank, dims, acc, pos, opts, obj1, obj2, ph);
+ character_compare(s + u, sx + u, idx, u, rank, dims, acc, pos, opts, obj1, obj2, ph);
}
else
for (u = 0; u < size; u++)
- nfound += character_compare(s + u, sx + u, index, u, rank, dims, acc, pos, opts, obj1, obj2, ph);
+ nfound += character_compare(s + u, sx + u, idx, u, rank, dims, acc, pos, opts, obj1, obj2, ph);
} /* end check for NULL pointer for string */
}
break;
@@ -607,10 +590,10 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
case H5T_BITFIELD:
- h5difftrace("diff_datum H5T_BITFIELD\n");
+ H5TOOLS_DEBUG("diff_datum H5T_BITFIELD");
/* byte-by-byte comparison */
for (u = 0; u < type_size; u++)
- nfound += character_compare_opt(mem1 + u, mem2 + u, index, rank, dims, acc, pos, opts, obj1, obj2, ph);
+ nfound += character_compare_opt(mem1 + u, mem2 + u, idx, rank, dims, acc, pos, opts, obj1, obj2, ph);
break;
/*-------------------------------------------------------------------------
@@ -618,10 +601,10 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
case H5T_OPAQUE:
- h5difftrace("diff_datum H5T_OPAQUE\n");
+ H5TOOLS_DEBUG("diff_datum H5T_OPAQUE");
/* byte-by-byte comparison */
for (u = 0; u < type_size; u++)
- nfound += character_compare_opt(mem1 + u, mem2 + u, index, rank, dims, acc, pos, opts, obj1, obj2, ph);
+ nfound += character_compare_opt(mem1 + u, mem2 + u, idx, rank, dims, acc, pos, opts, obj1, obj2, ph);
break;
/*-------------------------------------------------------------------------
@@ -634,7 +617,7 @@ static hsize_t diff_datum(
* compared, we convert both bit patterns to their corresponding
* enumeration constant and do a string comparison
*/
- h5difftrace("diff_datum H5T_ENUM\n");
+ H5TOOLS_DEBUG("diff_datum H5T_ENUM");
{
char enum_name1[1024];
char enum_name2[1024];
@@ -662,7 +645,7 @@ static hsize_t diff_datum(
*/
nfound += 1;
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(S_FORMAT, enum_name1, enum_name2);
}
@@ -672,14 +655,14 @@ static hsize_t diff_datum(
if (HDstrcmp(enum_name1, enum_name2) != 0) {
nfound = 1;
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(S_FORMAT, enum_name1, enum_name2);
}
}
else {
for (u = 0; u < type_size; u++)
- nfound += character_compare_opt(mem1 + u, mem2 + u, index, rank, dims, acc, pos, opts, obj1, obj2, ph);
+ nfound += character_compare_opt(mem1 + u, mem2 + u, idx, rank, dims, acc, pos, opts, obj1, obj2, ph);
}
}
/* enable error reporting */
@@ -693,10 +676,11 @@ static hsize_t diff_datum(
*/
case H5T_ARRAY:
{
- hid_t memb_type = -1;
+ hid_t memb_type = H5I_INVALID_HID;
hsize_t adims[H5S_MAX_RANK];
int ndims;
+ H5TOOLS_DEBUG("diff_datum H5T_ARRAY");
/* get the array's base datatype for each element */
memb_type = H5Tget_super(m_type);
size = H5Tget_size(memb_type);
@@ -708,7 +692,7 @@ static hsize_t diff_datum(
for (u = 0, nelmts = 1; u < (unsigned) ndims; u++)
nelmts *= adims[u];
for (u = 0; u < nelmts; u++) {
- nfound += diff_datum(mem1 + u * size, mem2 + u * size, memb_type, index,
+ nfound += diff_datum(mem1 + u * size, mem2 + u * size, memb_type, idx,
rank, dims, acc, pos, opts, obj1, obj2, container1_id, container2_id, ph, members);
}
H5Tclose(memb_type);
@@ -720,40 +704,43 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
case H5T_REFERENCE:
+ H5TOOLS_DEBUG("diff_datum H5T_REFERENCE");
iszero1 = all_zero(_mem1, H5Tget_size(m_type));
iszero2 = all_zero(_mem2, H5Tget_size(m_type));
if (iszero1 != iszero2) {
nfound++;
- HGOTO_DONE (opts->err_stat);
+ H5TOOLS_GOTO_DONE(opts->err_stat);
}
else if (!iszero1 && !iszero2) {
+ hid_t obj1_id = H5I_INVALID_HID;
+ hid_t obj2_id = H5I_INVALID_HID;
+
/*-------------------------------------------------------------------------
* H5T_STD_REF_DSETREG
* Dataset region reference
*-------------------------------------------------------------------------
*/
- hid_t obj1_id = -1;
- hid_t obj2_id = -1;
-
if (type_size == H5R_DSET_REG_REF_BUF_SIZE) {
- hid_t region1_id = -1;
- hid_t region2_id = -1;
+ hid_t region1_id = H5I_INVALID_HID;
+ hid_t region2_id = H5I_INVALID_HID;
+
+ H5TOOLS_INFO("H5T_STD_REF_DSETREG reference type");
if ((obj1_id = H5Rdereference2(container1_id, H5P_DEFAULT, H5R_DATASET_REGION, _mem1)) < 0) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "H5Rdereference2 object 1 failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("H5Rdereference2 object 1 failed");
}
if ((obj2_id = H5Rdereference2(container2_id, H5P_DEFAULT, H5R_DATASET_REGION, _mem2)) < 0) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "H5Rdereference2 object 2 failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("H5Rdereference2 object 2 failed");
}
if ((region1_id = H5Rget_region(container1_id, H5R_DATASET_REGION, _mem1)) < 0) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "H5Rget_region object 1 failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("H5Rget_region object 1 failed");
}
if ((region2_id = H5Rget_region(container2_id, H5R_DATASET_REGION, _mem2)) < 0) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "H5Rget_region object 2 failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("H5Rget_region object 2 failed");
}
nfound = diff_region(obj1_id, obj2_id, region1_id, region2_id, opts);
@@ -773,29 +760,31 @@ static hsize_t diff_datum(
H5O_type_t obj1_type;
H5O_type_t obj2_type;
+ H5TOOLS_INFO("H5T_STD_REF_OBJ reference type");
+
if (H5Rget_obj_type2(container1_id, H5R_OBJECT, _mem1, &obj1_type) < 0) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "H5Rget_obj_type2 object 1 failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("H5Rget_obj_type2 object 1 failed");
}
if (H5Rget_obj_type2(container2_id, H5R_OBJECT, _mem2, &obj2_type) < 0) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "H5Rget_obj_type2 object 2 failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("H5Rget_obj_type2 object 2 failed");
}
/* check object type */
if (obj1_type != obj2_type) {
parallel_print("Different object types referenced: <%s> and <%s>", obj1, obj2);
opts->not_cmp = 1;
- HGOTO_DONE (opts->err_stat);
+ H5TOOLS_GOTO_DONE(opts->err_stat);
}
if ((obj1_id = H5Rdereference2(container1_id, H5P_DEFAULT, H5R_OBJECT, _mem1)) < 0) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "H5Rdereference2 object 1 failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("H5Rdereference2 object 1 failed");
}
if ((obj2_id = H5Rdereference2(container2_id, H5P_DEFAULT, H5R_OBJECT, _mem2)) < 0) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "H5Rdereference2 object 2 failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("H5Rdereference2 object 2 failed");
}
/* compare */
@@ -803,9 +792,7 @@ static hsize_t diff_datum(
nfound = diff_datasetid(obj1_id, obj2_id, NULL, NULL, opts);
else {
if (opts->m_verbose)
- parallel_print(
- "Warning: Comparison not possible of object types referenced: <%s> and <%s>\n",
- obj1, obj2);
+ parallel_print("Warning: Comparison not possible of object types referenced: <%s> and <%s>\n", obj1, obj2);
opts->not_cmp = 1;
}
@@ -813,6 +800,7 @@ static hsize_t diff_datum(
H5Oclose(obj2_id);
}/*object reference*/
}/*is zero*/
+ H5TOOLS_DEBUG("diff_datum H5T_REFERENCE complete");
break;
/*-------------------------------------------------------------------------
@@ -821,8 +809,9 @@ static hsize_t diff_datum(
*/
case H5T_VLEN:
{
- hid_t memb_type = -1;
+ hid_t memb_type = H5I_INVALID_HID;
+ H5TOOLS_DEBUG("diff_datum H5T_VLEN");
/* get the VL sequences's base datatype for each element */
memb_type = H5Tget_super(m_type);
size = H5Tget_size(memb_type);
@@ -831,7 +820,7 @@ static hsize_t diff_datum(
nelmts = ((hvl_t *)((void *)mem1))->len;
for (j = 0; j < nelmts; j++)
- nfound += diff_datum(((char *) (((hvl_t *)((void *)mem1))->p)) + j * size, ((char *) (((hvl_t *)((void *)mem2))->p)) + j * size, memb_type, index, /* Extra (void *) cast to quiet "cast to create alignment" warning - 2019/07/05, QAK */
+ nfound += diff_datum(((char *) (((hvl_t *)((void *)mem1))->p)) + j * size, ((char *) (((hvl_t *)((void *)mem2))->p)) + j * size, memb_type, idx, /* Extra (void *) cast to quiet "cast to create alignment" warning - 2019/07/05, QAK */
rank, dims, acc, pos, opts, obj1, obj2, container1_id, container2_id, ph, members);
H5Tclose(memb_type);
@@ -843,6 +832,7 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
case H5T_INTEGER:
+ H5TOOLS_DEBUG("diff_datum H5T_INTEGER");
type_sign = H5Tget_sign(m_type);
/*-------------------------------------------------------------------------
* H5T_NATIVE_SCHAR
@@ -853,14 +843,14 @@ static hsize_t diff_datum(
char temp2_char;
if(type_size != sizeof(char))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not char size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not char size");
HDmemcpy(&temp1_char, mem1, sizeof(char));
HDmemcpy(&temp2_char, mem2, sizeof(char));
/* -d and !-p */
if (opts->d && !opts->p) {
if (ABS(temp1_char-temp2_char) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_char, temp2_char, ABS(temp1_char - temp2_char));
}
@@ -873,7 +863,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_char, temp2_char, ABS(temp1_char - temp2_char));
}
@@ -881,7 +871,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_char, temp2_char, ABS(temp1_char - temp2_char), per);
}
@@ -894,7 +884,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_char, temp2_char, ABS(temp1_char - temp2_char));
}
@@ -902,7 +892,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && ABS(temp1_char - temp2_char) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_char, temp2_char, ABS(temp1_char - temp2_char), per);
}
@@ -911,7 +901,7 @@ static hsize_t diff_datum(
}
else if (temp1_char != temp2_char) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_char, temp2_char, ABS(temp1_char - temp2_char));
}
@@ -928,7 +918,7 @@ static hsize_t diff_datum(
unsigned char temp2_uchar;
if(type_size != sizeof(unsigned char))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not unsigned char size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not unsigned char size");
HDmemcpy(&temp1_uchar, mem1, sizeof(unsigned char));
HDmemcpy(&temp2_uchar, mem2, sizeof(unsigned char));
@@ -936,7 +926,7 @@ static hsize_t diff_datum(
if (opts->d && !opts->p) {
if (PDIFF(temp1_uchar, temp2_uchar) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_uchar, temp2_uchar, PDIFF(temp1_uchar, temp2_uchar));
}
@@ -949,7 +939,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_uchar, temp2_uchar, PDIFF(temp1_uchar, temp2_uchar));
}
@@ -957,7 +947,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_uchar, temp2_uchar, PDIFF(temp1_uchar, temp2_uchar), per);
}
@@ -970,7 +960,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_uchar, temp2_uchar, PDIFF(temp1_uchar, temp2_uchar));
}
@@ -978,7 +968,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && PDIFF(temp1_uchar, temp2_uchar) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_uchar, temp2_uchar, PDIFF(temp1_uchar, temp2_uchar), per);
}
@@ -987,7 +977,7 @@ static hsize_t diff_datum(
}
else if (temp1_uchar != temp2_uchar) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_uchar, temp2_uchar, PDIFF(temp1_uchar, temp2_uchar));
}
@@ -1004,7 +994,7 @@ static hsize_t diff_datum(
short temp2_short;
if(type_size != sizeof(short))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not short size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not short size");
HDmemcpy(&temp1_short, mem1, sizeof(short));
HDmemcpy(&temp2_short, mem2, sizeof(short));
@@ -1012,7 +1002,7 @@ static hsize_t diff_datum(
if (opts->d && !opts->p) {
if (ABS(temp1_short - temp2_short) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_short, temp2_short, ABS(temp1_short - temp2_short));
}
@@ -1025,7 +1015,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_short, temp2_short, ABS(temp1_short - temp2_short));
}
@@ -1033,7 +1023,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_short, temp2_short, ABS(temp1_short - temp2_short), per);
}
@@ -1046,7 +1036,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_short, temp2_short, ABS(temp1_short - temp2_short));
}
@@ -1054,7 +1044,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && ABS(temp1_short - temp2_short) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_short, temp2_short, ABS(temp1_short - temp2_short), per);
}
@@ -1063,7 +1053,7 @@ static hsize_t diff_datum(
}
else if (temp1_short != temp2_short) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_short, temp2_short, ABS(temp1_short - temp2_short));
}
@@ -1080,7 +1070,7 @@ static hsize_t diff_datum(
unsigned short temp2_ushort;
if(type_size != sizeof(unsigned short))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not unsigned short size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not unsigned short size");
HDmemcpy(&temp1_ushort, mem1, sizeof(unsigned short));
HDmemcpy(&temp2_ushort, mem2, sizeof(unsigned short));
@@ -1088,7 +1078,7 @@ static hsize_t diff_datum(
if (opts->d && !opts->p) {
if (PDIFF(temp1_ushort, temp2_ushort) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_ushort, temp2_ushort, PDIFF(temp1_ushort, temp2_ushort));
}
@@ -1101,7 +1091,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_ushort, temp2_ushort, PDIFF(temp1_ushort, temp2_ushort));
}
@@ -1109,7 +1099,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_ushort, temp2_ushort, PDIFF(temp1_ushort, temp2_ushort), per);
}
@@ -1122,7 +1112,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_ushort, temp2_ushort, PDIFF(temp1_ushort, temp2_ushort));
}
@@ -1130,7 +1120,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && PDIFF(temp1_ushort, temp2_ushort) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_ushort, temp2_ushort, PDIFF(temp1_ushort, temp2_ushort), per);
}
@@ -1139,7 +1129,7 @@ static hsize_t diff_datum(
}
else if (temp1_ushort != temp2_ushort) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_ushort, temp2_ushort, PDIFF(temp1_ushort, temp2_ushort));
}
@@ -1156,7 +1146,7 @@ static hsize_t diff_datum(
int temp2_int;
if(type_size != sizeof(int))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not int size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not int size");
HDmemcpy(&temp1_int, mem1, sizeof(int));
HDmemcpy(&temp2_int, mem2, sizeof(int));
@@ -1164,7 +1154,7 @@ static hsize_t diff_datum(
if (opts->d && !opts->p) {
if (ABS(temp1_int-temp2_int) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_int, temp2_int, ABS(temp1_int - temp2_int));
}
@@ -1177,7 +1167,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_int, temp2_int, ABS(temp1_int - temp2_int));
}
@@ -1185,7 +1175,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_int, temp2_int, ABS(temp1_int - temp2_int), per);
}
@@ -1198,7 +1188,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P_NOTCOMP, temp1_int, temp2_int, ABS(temp1_int - temp2_int));
}
@@ -1206,7 +1196,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && ABS(temp1_int - temp2_int) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT_P, temp1_int, temp2_int, ABS(temp1_int - temp2_int), per);
}
@@ -1215,7 +1205,7 @@ static hsize_t diff_datum(
}
else if (temp1_int != temp2_int) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(I_FORMAT, temp1_int, temp2_int, ABS(temp1_int - temp2_int));
}
@@ -1232,7 +1222,7 @@ static hsize_t diff_datum(
unsigned int temp2_uint;
if(type_size != sizeof(unsigned int))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not unsigned int size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not unsigned int size");
HDmemcpy(&temp1_uint, mem1, sizeof(unsigned int));
HDmemcpy(&temp2_uint, mem2, sizeof(unsigned int));
@@ -1240,7 +1230,7 @@ static hsize_t diff_datum(
if (opts->d && !opts->p) {
if (PDIFF(temp1_uint, temp2_uint) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(UI_FORMAT, temp1_uint, temp2_uint, PDIFF(temp1_uint, temp2_uint));
}
@@ -1253,7 +1243,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(UI_FORMAT_P_NOTCOMP, temp1_uint, temp2_uint, PDIFF(temp1_uint, temp2_uint));
}
@@ -1261,7 +1251,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(UI_FORMAT_P, temp1_uint, temp2_uint, PDIFF(temp1_uint, temp2_uint), per);
}
@@ -1274,7 +1264,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(UI_FORMAT_P_NOTCOMP, temp1_uint, temp2_uint, PDIFF(temp1_uint, temp2_uint));
}
@@ -1282,7 +1272,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && PDIFF(temp1_uint,temp2_uint) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(UI_FORMAT_P, temp1_uint, temp2_uint, PDIFF(temp1_uint, temp2_uint), per);
}
@@ -1291,7 +1281,7 @@ static hsize_t diff_datum(
}
else if (temp1_uint != temp2_uint) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(UI_FORMAT, temp1_uint, temp2_uint, PDIFF(temp1_uint, temp2_uint));
}
@@ -1308,7 +1298,7 @@ static hsize_t diff_datum(
long temp2_long;
if(type_size != sizeof(long))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not long size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not long size");
HDmemcpy(&temp1_long, mem1, sizeof(long));
HDmemcpy(&temp2_long, mem2, sizeof(long));
@@ -1316,7 +1306,7 @@ static hsize_t diff_datum(
if (opts->d && !opts->p) {
if (ABS(temp1_long-temp2_long) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LI_FORMAT, temp1_long, temp2_long, ABS(temp1_long - temp2_long));
}
@@ -1329,7 +1319,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LI_FORMAT_P_NOTCOMP, temp1_long, temp2_long, ABS(temp1_long - temp2_long));
}
@@ -1337,7 +1327,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LI_FORMAT_P, temp1_long, temp2_long, ABS(temp1_long - temp2_long), per);
}
@@ -1350,7 +1340,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LI_FORMAT_P_NOTCOMP, temp1_long, temp2_long, ABS(temp1_long - temp2_long));
}
@@ -1358,7 +1348,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && ABS(temp1_long-temp2_long) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LI_FORMAT_P, temp1_long, temp2_long, ABS(temp1_long - temp2_long), per);
}
@@ -1367,7 +1357,7 @@ static hsize_t diff_datum(
}
else if (temp1_long != temp2_long) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LI_FORMAT, temp1_long, temp2_long, ABS(temp1_long - temp2_long));
}
@@ -1384,7 +1374,7 @@ static hsize_t diff_datum(
unsigned long temp2_ulong;
if(type_size != sizeof(unsigned long))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not unsigned long size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not unsigned long size");
HDmemcpy(&temp1_ulong, mem1, sizeof(unsigned long));
HDmemcpy(&temp2_ulong, mem2, sizeof(unsigned long));
@@ -1392,7 +1382,7 @@ static hsize_t diff_datum(
if (opts->d && !opts->p) {
if (PDIFF(temp1_ulong, temp2_ulong) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(ULI_FORMAT, temp1_ulong, temp2_ulong, PDIFF(temp1_ulong, temp2_ulong));
}
@@ -1405,7 +1395,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(ULI_FORMAT_P_NOTCOMP, temp1_ulong, temp2_ulong, PDIFF(temp1_ulong, temp2_ulong));
}
@@ -1413,7 +1403,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(ULI_FORMAT_P, temp1_ulong, temp2_ulong, PDIFF(temp1_ulong, temp2_ulong), per);
}
@@ -1426,7 +1416,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(ULI_FORMAT_P_NOTCOMP, temp1_ulong, temp2_ulong, PDIFF(temp1_ulong, temp2_ulong));
}
@@ -1434,7 +1424,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && PDIFF(temp1_ulong,temp2_ulong) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(ULI_FORMAT_P, temp1_ulong, temp2_ulong, PDIFF(temp1_ulong, temp2_ulong), per);
}
@@ -1443,7 +1433,7 @@ static hsize_t diff_datum(
}
else if (temp1_ulong != temp2_ulong) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(ULI_FORMAT, temp1_ulong, temp2_ulong, PDIFF(temp1_ulong, temp2_ulong));
}
@@ -1461,6 +1451,7 @@ static hsize_t diff_datum(
* H5T_NATIVE_FLOAT
*-------------------------------------------------------------------------
*/
+ H5TOOLS_DEBUG("diff_datum H5T_FLOAT");
if (type_size == 4) {
float temp1_float;
float temp2_float;
@@ -1468,7 +1459,7 @@ static hsize_t diff_datum(
hbool_t isnan2 = FALSE;
if(type_size != sizeof(float))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not float size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not float size");
HDmemcpy(&temp1_float, mem1, sizeof(float));
HDmemcpy(&temp2_float, mem2, sizeof(float));
@@ -1485,15 +1476,15 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_FLOAT, &temp1_float);
- isnan2 = my_isnan(FLT_FLOAT, &temp2_float);
+ isnan1 = HDisnan(temp1_float);
+ isnan2 = HDisnan(temp2_float);
}
/* both not NaN, do the comparison */
if (!isnan1 && !isnan2) {
if (ABS(temp1_float-temp2_float) > (float) opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, (double) temp1_float, (double) temp2_float, (double) ABS(temp1_float - temp2_float));
}
@@ -1503,7 +1494,7 @@ static hsize_t diff_datum(
/* only one is NaN, assume difference */
else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, (double) temp1_float, (double) temp2_float, (double) ABS(temp1_float - temp2_float));
}
@@ -1520,8 +1511,8 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_FLOAT, &temp1_float);
- isnan2 = my_isnan(FLT_FLOAT, &temp2_float);
+ isnan1 = HDisnan(temp1_float);
+ isnan2 = HDisnan(temp2_float);
}
/* both not NaN, do the comparison */
@@ -1530,7 +1521,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT_P_NOTCOMP, (double) temp1_float, (double) temp2_float, (double) ABS(temp1_float - temp2_float));
}
@@ -1538,7 +1529,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && (double) ABS(temp1_float - temp2_float) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT_P, (double) temp1_float, (double) temp2_float,
(double) ABS(temp1_float - temp2_float), (double) ABS(1 - temp2_float / temp1_float));
@@ -1549,7 +1540,7 @@ static hsize_t diff_datum(
/* only one is NaN, assume difference */
else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, (double) temp1_float, (double) temp2_float, (double) ABS(temp1_float - temp2_float));
}
@@ -1566,8 +1557,8 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_FLOAT, &temp1_float);
- isnan2 = my_isnan(FLT_FLOAT, &temp2_float);
+ isnan1 = HDisnan(temp1_float);
+ isnan2 = HDisnan(temp2_float);
}
/* both not NaN, do the comparison */
@@ -1576,7 +1567,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT_P_NOTCOMP, (double) temp1_float, (double) temp2_float, (double) ABS(temp1_float - temp2_float));
}
@@ -1584,7 +1575,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT_P, (double) temp1_float, (double) temp2_float,
(double) ABS(temp1_float - temp2_float), (double) ABS(1 - temp2_float / temp1_float));
@@ -1595,7 +1586,7 @@ static hsize_t diff_datum(
/* only one is NaN, assume difference */
else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, (double) temp1_float, (double) temp2_float, (double) ABS(temp1_float - temp2_float));
}
@@ -1608,7 +1599,7 @@ static hsize_t diff_datum(
*/
else if (equal_float(temp1_float, temp2_float, opts) == FALSE) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, (double) temp1_float, (double) temp2_float, (double) ABS(temp1_float - temp2_float));
}
@@ -1627,7 +1618,7 @@ static hsize_t diff_datum(
hbool_t isnan2 = FALSE;
if(type_size != sizeof(double))
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not double size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not double size");
HDmemcpy(&temp1_double, mem1, sizeof(double));
HDmemcpy(&temp2_double, mem2, sizeof(double));
@@ -1643,15 +1634,15 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_DOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_DOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
if (!isnan1 && !isnan2) {
if (ABS(temp1_double-temp2_double) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1661,7 +1652,7 @@ static hsize_t diff_datum(
/* only one is NaN, assume difference */
else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1678,8 +1669,8 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_DOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_DOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
@@ -1688,7 +1679,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT_P_NOTCOMP, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1696,7 +1687,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT_P, temp1_double, temp2_double, ABS(temp1_double - temp2_double), ABS(1 - temp2_double / temp1_double));
}
@@ -1706,7 +1697,7 @@ static hsize_t diff_datum(
/* only one is NaN, assume difference */
else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1723,8 +1714,8 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_DOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_DOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
@@ -1733,7 +1724,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT_P_NOTCOMP, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1742,7 +1733,7 @@ static hsize_t diff_datum(
else if (per > opts->percent &&
ABS(temp1_double-temp2_double) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT_P, temp1_double, temp2_double, ABS(temp1_double - temp2_double), ABS(1 - temp2_double / temp1_double));
}
@@ -1752,7 +1743,7 @@ static hsize_t diff_datum(
/* only one is NaN, assume difference */
else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1765,7 +1756,7 @@ static hsize_t diff_datum(
*/
else if (equal_double(temp1_double, temp2_double, opts) == FALSE) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1786,7 +1777,7 @@ static hsize_t diff_datum(
hbool_t isnan2 = FALSE;
if(type_size != sizeof(long double)) {
- HGOTO_ERROR(1, H5E_tools_min_id_g, "Type size is not long double size");
+ H5TOOLS_GOTO_ERROR(H5DIFF_ERR, "Type size is not long double size");
}
HDmemcpy(&temp1_double, mem1, sizeof(long double));
@@ -1804,15 +1795,15 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_LDOUBLE,&temp1_double);
- isnan2 = my_isnan(FLT_LDOUBLE,&temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
if (!isnan1 && !isnan2) {
if (ABS(temp1_double-temp2_double) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LD_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1822,7 +1813,7 @@ static hsize_t diff_datum(
/* only one is NaN, assume difference */
else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1839,8 +1830,8 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_LDOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_LDOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
@@ -1849,7 +1840,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LD_FORMAT_P_NOTCOMP, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1857,7 +1848,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LD_FORMAT_P, temp1_double, temp2_double, ABS(temp1_double - temp2_double), ABS(1 - temp2_double / temp1_double));
}
@@ -1867,7 +1858,7 @@ static hsize_t diff_datum(
/* only one is NaN, assume difference */
else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1884,8 +1875,8 @@ static hsize_t diff_datum(
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_LDOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_LDOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
@@ -1894,7 +1885,7 @@ static hsize_t diff_datum(
if (not_comparable && !both_zero) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LD_FORMAT_P_NOTCOMP, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1902,7 +1893,7 @@ static hsize_t diff_datum(
}
else if (per > opts->percent && ABS(temp1_double-temp2_double) > opts->delta) {
if (print_data(opts)) {
- print_pos(ph, 1, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 1, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LD_FORMAT_P, temp1_double, temp2_double, ABS(temp1_double - temp2_double), ABS(1 - temp2_double / temp1_double));
}
@@ -1912,7 +1903,7 @@ static hsize_t diff_datum(
/* only one is NaN, assume difference */
else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(F_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1925,7 +1916,7 @@ static hsize_t diff_datum(
*/
else if (equal_ldouble(temp1_double, temp2_double, opts) == FALSE) {
if (print_data(opts)) {
- print_pos(ph, 0, index, acc, pos, rank, dims, obj1, obj2);
+ print_pos(ph, 0, idx, acc, pos, rank, dims, obj1, obj2);
parallel_print(SPACES);
parallel_print(LD_FORMAT, temp1_double, temp2_double, ABS(temp1_double - temp2_double));
}
@@ -1941,8 +1932,7 @@ static hsize_t diff_datum(
done:
opts->err_stat = opts->err_stat | ret_value;
- h5diffdebug3("diff_datum finish:%d - errstat:%d\n", nfound, opts->err_stat);
-
+ H5TOOLS_ENDDEBUG(":%d - errstat:%d", nfound, opts->err_stat);
return nfound;
}
@@ -2019,7 +2009,6 @@ void print_points(int i, hsize_t *ptdata, int ndims) {
static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id, hid_t region1_id, hid_t region2_id, diff_opt_t *opts)
{
- hsize_t ret_value = 0;
hssize_t nblocks1, npoints1;
hssize_t nblocks2, npoints2;
hsize_t alloc_size;
@@ -2030,6 +2019,9 @@ static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id, hid_t region1_id, hid_t
int i, j;
hsize_t nfound_b = 0; /* block differences found */
hsize_t nfound_p = 0; /* point differences found */
+ hsize_t ret_value = 0;
+
+ H5TOOLS_START_DEBUG("");
ndims1 = H5Sget_simple_extent_ndims(region1_id);
ndims2 = H5Sget_simple_extent_ndims(region2_id);
@@ -2046,10 +2038,12 @@ static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id, hid_t region1_id, hid_t
npoints1 = H5Sget_select_elem_npoints(region1_id);
npoints2 = H5Sget_select_elem_npoints(region2_id);
} H5E_END_TRY;
+ H5TOOLS_DEBUG("diff_region blocks: 1=%ld-2=%ld", nblocks1, nblocks2);
+ H5TOOLS_DEBUG("diff_region points: 1=%ld-2=%ld", npoints1, npoints2);
if (nblocks1 != nblocks2 || npoints1 != npoints2 || ndims1 != ndims2) {
opts->not_cmp = 1;
- HGOTO_DONE (0);
+ H5TOOLS_GOTO_DONE(0);
}
/*-------------------------------------------------------------------------
@@ -2057,21 +2051,22 @@ static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id, hid_t region1_id, hid_t
*-------------------------------------------------------------------------
*/
if (nblocks1 > 0) {
+ H5TOOLS_DEBUG("region compare blocks");
HDassert(ndims1 > 0);
alloc_size = (hsize_t) nblocks1 * (unsigned) ndims1 * 2 * sizeof(ptdata1[0]);
HDassert(alloc_size == (hsize_t)((size_t )alloc_size)); /*check for overflow*/
if((ptdata1 = (hsize_t *) HDmalloc((size_t )alloc_size)) == NULL) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "Buffer allocation failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("Buffer allocation failed");
}
else {
H5_CHECK_OVERFLOW(nblocks1, hssize_t, hsize_t);
H5Sget_select_hyper_blocklist(region1_id, (hsize_t) 0, (hsize_t) nblocks1, ptdata1);
if((ptdata2 = (hsize_t *) HDmalloc((size_t )alloc_size)) == NULL) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "Buffer allocation failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("Buffer allocation failed");
}
else {
H5_CHECK_OVERFLOW(nblocks2, hssize_t, hsize_t);
@@ -2121,20 +2116,21 @@ static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id, hid_t region1_id, hid_t
*-------------------------------------------------------------------------
*/
if (npoints1 > 0) {
+ H5TOOLS_DEBUG("region compare points");
alloc_size = (hsize_t) npoints1 * (unsigned) ndims1 * sizeof(ptdata1[0]);
HDassert(alloc_size == (hsize_t)((size_t )alloc_size)); /*check for overflow*/
if((ptdata1 = (hsize_t *) HDmalloc((size_t )alloc_size)) == NULL) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "Buffer allocation failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("Buffer allocation failed");
}
else {
H5_CHECK_OVERFLOW(npoints1, hssize_t, hsize_t);
H5Sget_select_elem_pointlist(region1_id, (hsize_t) 0, (hsize_t) npoints1, ptdata1);
if((ptdata2 = (hsize_t *) HDmalloc((size_t )alloc_size)) == NULL) {
- opts->err_stat = 1;
- H5TOOLS_INFO(H5E_tools_min_id_g, "Buffer allocation failed");
+ opts->err_stat = H5DIFF_ERR;
+ H5TOOLS_INFO("Buffer allocation failed");
}
else {
H5_CHECK_OVERFLOW(npoints1, hssize_t, hsize_t);
@@ -2185,6 +2181,7 @@ static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id, hid_t region1_id, hid_t
parallel_print(")");
}
+ parallel_print("\n");
#endif
HDfree(ptdata1);
@@ -2197,6 +2194,7 @@ static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id, hid_t region1_id, hid_t
ret_value = nfound_p + nfound_b;
done:
+ H5TOOLS_ENDDEBUG(" with diffs:%d", ret_value);
return ret_value;
}
@@ -2218,7 +2216,7 @@ static hsize_t character_compare(char *mem1, char *mem2, hsize_t i, size_t u,
HDmemcpy(&temp1_uchar, mem1, sizeof(unsigned char));
HDmemcpy(&temp2_uchar, mem2, sizeof(unsigned char));
- h5diffdebug3("character_compare start %d=%d\n",temp1_uchar,temp2_uchar);
+ H5TOOLS_START_DEBUG(" %d=%d",temp1_uchar,temp2_uchar);
if (temp1_uchar != temp2_uchar) {
if (print_data(opts)) {
@@ -2231,8 +2229,7 @@ static hsize_t character_compare(char *mem1, char *mem2, hsize_t i, size_t u,
}
nfound++;
}
- h5difftrace("character_compare finish\n");
-
+ H5TOOLS_ENDDEBUG(": %d", nfound);
return nfound;
}
@@ -2257,7 +2254,6 @@ static hsize_t character_compare_opt(unsigned char *mem1, unsigned char *mem2,
HDmemcpy(&temp1_uchar, mem1, sizeof(unsigned char));
HDmemcpy(&temp2_uchar, mem2, sizeof(unsigned char));
- h5difftrace("character_compare_opt start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
@@ -2301,7 +2297,7 @@ static hsize_t character_compare_opt(unsigned char *mem1, unsigned char *mem2,
parallel_print(I_FORMAT, temp1_uchar, temp2_uchar, PDIFF(temp1_uchar, temp2_uchar));
}
nfound++;
- } h5difftrace("character_compare_opt finish\n");
+ }
return nfound;
}
@@ -2329,8 +2325,6 @@ static hsize_t diff_float(unsigned char *mem1, unsigned char *mem2,
hbool_t isnan1 = FALSE;
hbool_t isnan2 = FALSE;
- h5difftrace("diff_float start\n");
-
/*-------------------------------------------------------------------------
* -d and !-p
*-------------------------------------------------------------------------
@@ -2346,8 +2340,8 @@ static hsize_t diff_float(unsigned char *mem1, unsigned char *mem2,
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_FLOAT, &temp1_float);
- isnan2 = my_isnan(FLT_FLOAT, &temp2_float);
+ isnan1 = HDisnan(temp1_float);
+ isnan2 = HDisnan(temp2_float);
}
/* both not NaN, do the comparison */
@@ -2391,8 +2385,8 @@ static hsize_t diff_float(unsigned char *mem1, unsigned char *mem2,
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_FLOAT, &temp1_float);
- isnan2 = my_isnan(FLT_FLOAT, &temp2_float);
+ isnan1 = HDisnan(temp1_float);
+ isnan2 = HDisnan(temp2_float);
}
/* both not NaN, do the comparison */
if ((!isnan1 && !isnan2)) {
@@ -2446,8 +2440,8 @@ static hsize_t diff_float(unsigned char *mem1, unsigned char *mem2,
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_FLOAT, &temp1_float);
- isnan2 = my_isnan(FLT_FLOAT, &temp2_float);
+ isnan1 = HDisnan(temp1_float);
+ isnan2 = HDisnan(temp2_float);
}
/* both not NaN, do the comparison */
@@ -2514,7 +2508,6 @@ static hsize_t diff_float(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_float finish\n");
return nfound;
}
@@ -2542,7 +2535,6 @@ static hsize_t diff_double(unsigned char *mem1, unsigned char *mem2,
hbool_t isnan1 = FALSE;
hbool_t isnan2 = FALSE;
- h5difftrace("diff_double start\n");
/*-------------------------------------------------------------------------
* -d and !-p
*-------------------------------------------------------------------------
@@ -2558,8 +2550,8 @@ static hsize_t diff_double(unsigned char *mem1, unsigned char *mem2,
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_DOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_DOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
@@ -2604,8 +2596,8 @@ static hsize_t diff_double(unsigned char *mem1, unsigned char *mem2,
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_DOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_DOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
if (!isnan1 && !isnan2) {
@@ -2660,8 +2652,8 @@ static hsize_t diff_double(unsigned char *mem1, unsigned char *mem2,
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_DOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_DOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
@@ -2725,7 +2717,6 @@ static hsize_t diff_double(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_double finish\n");
return nfound;
}
@@ -2763,8 +2754,6 @@ static hsize_t diff_ldouble(unsigned char *mem1,
hbool_t isnan1 = FALSE;
hbool_t isnan2 = FALSE;
- h5difftrace("diff_ldouble start\n");
-
/*-------------------------------------------------------------------------
* -d and !-p
*-------------------------------------------------------------------------
@@ -2780,8 +2769,8 @@ static hsize_t diff_ldouble(unsigned char *mem1,
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_LDOUBLE,&temp1_double);
- isnan2 = my_isnan(FLT_LDOUBLE,&temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
@@ -2826,8 +2815,8 @@ static hsize_t diff_ldouble(unsigned char *mem1,
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_LDOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_LDOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
if (!isnan1 && !isnan2) {
@@ -2880,8 +2869,8 @@ static hsize_t diff_ldouble(unsigned char *mem1,
*-------------------------------------------------------------------------
*/
if (opts->do_nans) {
- isnan1 = my_isnan(FLT_LDOUBLE, &temp1_double);
- isnan2 = my_isnan(FLT_LDOUBLE, &temp2_double);
+ isnan1 = HDisnan(temp1_double);
+ isnan2 = HDisnan(temp2_double);
}
/* both not NaN, do the comparison */
@@ -2943,7 +2932,6 @@ static hsize_t diff_ldouble(unsigned char *mem1,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_ldouble finish\n");
return nfound;
}
@@ -2970,7 +2958,6 @@ static hsize_t diff_schar(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_schar start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -3071,7 +3058,6 @@ static hsize_t diff_schar(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_schar finish\n");
return nfound;
}
@@ -3096,7 +3082,6 @@ static hsize_t diff_uchar(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_uchar start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -3197,7 +3182,6 @@ static hsize_t diff_uchar(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_uchar finish\n");
return nfound;
}
@@ -3222,7 +3206,6 @@ static hsize_t diff_short(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_short start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -3323,7 +3306,6 @@ static hsize_t diff_short(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_short finish\n");
return nfound;
}
@@ -3349,7 +3331,6 @@ static hsize_t diff_ushort(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_ushort start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -3450,7 +3431,6 @@ static hsize_t diff_ushort(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_ushort finish\n");
return nfound;
}
@@ -3475,7 +3455,6 @@ static hsize_t diff_int(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_int start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -3577,7 +3556,6 @@ static hsize_t diff_int(unsigned char *mem1, unsigned char *mem2,
} /* nelmts */
}
- h5difftrace("diff_int finish\n");
return nfound;
}
@@ -3601,7 +3579,6 @@ static hsize_t diff_uint(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_uint start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -3703,7 +3680,6 @@ static hsize_t diff_uint(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_uint finish\n");
return nfound;
}
@@ -3728,7 +3704,6 @@ static hsize_t diff_long(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_long start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -3831,7 +3806,6 @@ static hsize_t diff_long(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_long finish\n");
return nfound;
}
@@ -3856,8 +3830,6 @@ static hsize_t diff_ulong(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_ulong start\n");
-
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -3961,7 +3933,6 @@ static hsize_t diff_ulong(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_ulong finish\n");
return nfound;
}
@@ -3986,7 +3957,6 @@ static hsize_t diff_llong(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_llong start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -4088,7 +4058,6 @@ static hsize_t diff_llong(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_llong finish\n");
return nfound;
}
@@ -4114,7 +4083,6 @@ static hsize_t diff_ullong(unsigned char *mem1, unsigned char *mem2,
double per;
hbool_t both_zero;
- h5difftrace("diff_ullong start\n");
/* -d and !-p */
if (opts->d && !opts->p) {
for (i = 0; i < nelmts; i++) {
@@ -4220,7 +4188,6 @@ static hsize_t diff_ullong(unsigned char *mem1, unsigned char *mem2,
return nfound;
} /* nelmts */
}
- h5difftrace("diff_ullong finish\n");
return nfound;
}
@@ -4234,26 +4201,26 @@ static hsize_t diff_ullong(unsigned char *mem1, unsigned char *mem2,
static
int ull2float(unsigned long long ull_value, float *f_value)
{
- int ret_value = SUCCEED;
- hid_t dxpl_id = -1;
+ hid_t dxpl_id = H5I_INVALID_HID;
unsigned char *buf = NULL;
size_t src_size;
size_t dst_size;
+ int ret_value = 0;
- h5difftrace("ull2float start\n");
+ H5TOOLS_START_DEBUG("");
if ((dxpl_id = H5Pcreate(H5P_DATASET_XFER)) < 0)
- HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Pcreate failed");
+ H5TOOLS_GOTO_ERROR(FAIL, "H5Pcreate failed");
src_size = H5Tget_size(H5T_NATIVE_ULLONG);
dst_size = H5Tget_size(H5T_NATIVE_FLOAT);
if((buf = (unsigned char*) HDcalloc((size_t )1, MAX(src_size, dst_size))) == NULL)
- HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "Could not allocate buffer for dims");
+ H5TOOLS_GOTO_ERROR(FAIL, "Could not allocate buffer for dims");
HDmemcpy(buf, &ull_value, src_size);
/* do conversion */
if (H5Tconvert(H5T_NATIVE_ULLONG, H5T_NATIVE_FLOAT, (size_t) 1, buf, NULL, dxpl_id) < 0)
- HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "H5Tconvert failed");
+ H5TOOLS_GOTO_ERROR(FAIL, "H5Tconvert failed");
HDmemcpy(f_value, buf, dst_size);
@@ -4265,8 +4232,7 @@ done:
if (buf)
HDfree(buf);
- h5difftrace("ull2float finish\n");
-
+ H5TOOLS_ENDDEBUG("");
return ret_value;
}
@@ -4277,14 +4243,13 @@ done:
*-------------------------------------------------------------------------
*/
static hbool_t equal_double(double value, double expected, diff_opt_t *opts) {
- h5difftrace("equal_double start\n");
if (opts->do_nans) {
/*-------------------------------------------------------------------------
* detect NaNs
*-------------------------------------------------------------------------
*/
- hbool_t isnan1 = my_isnan(FLT_DOUBLE, &value);
- hbool_t isnan2 = my_isnan(FLT_DOUBLE, &expected);
+ hbool_t isnan1 = HDisnan(value);
+ hbool_t isnan2 = HDisnan(expected);
/*-------------------------------------------------------------------------
* we consider NaN == NaN to be true
@@ -4301,14 +4266,16 @@ static hbool_t equal_double(double value, double expected, diff_opt_t *opts) {
return FALSE;
}
- if (value == expected)
- return TRUE;
-
- if (opts->use_system_epsilon)
- if (ABS((value-expected)) < DBL_EPSILON)
+ if (opts->use_system_epsilon) {
+ /* Check equality within some epsilon */
+ if (H5_DBL_ABS_EQUAL(value, expected))
return TRUE;
-
- h5difftrace("equal_double finish\n");
+ }
+ else {
+ /* Check bits */
+ if (!HDmemcmp(&value, &expected, sizeof(double)))
+ return TRUE;
+ }
return FALSE;
}
@@ -4324,14 +4291,13 @@ static hbool_t equal_double(double value, double expected, diff_opt_t *opts) {
static
hbool_t equal_ldouble(long double value, long double expected, diff_opt_t *opts)
{
- h5difftrace("equal_ldouble start\n");
if (opts->do_nans) {
/*-------------------------------------------------------------------------
* detect NaNs
*-------------------------------------------------------------------------
*/
- hbool_t isnan1 = my_isnan(FLT_LDOUBLE, &value);
- hbool_t isnan2 = my_isnan(FLT_LDOUBLE, &expected);
+ hbool_t isnan1 = HDisnan(value);
+ hbool_t isnan2 = HDisnan(expected);
/*-------------------------------------------------------------------------
* we consider NaN == NaN to be true
@@ -4348,14 +4314,16 @@ hbool_t equal_ldouble(long double value, long double expected, diff_opt_t *opts)
return FALSE;
}
- if (value == expected)
- return TRUE;
-
- if (opts->use_system_epsilon)
- if (ABS((value-expected)) < DBL_EPSILON)
+ if (opts->use_system_epsilon) {
+ /* Check equality within some epsilon */
+ if (H5_LDBL_ABS_EQUAL(value, expected))
return TRUE;
-
- h5difftrace("equal_ldouble finish\n");
+ }
+ else {
+ /* Check bits */
+ if (!HDmemcmp(&value, &expected, sizeof(long double)))
+ return TRUE;
+ }
return FALSE;
}
@@ -4369,14 +4337,13 @@ hbool_t equal_ldouble(long double value, long double expected, diff_opt_t *opts)
*-------------------------------------------------------------------------
*/
static hbool_t equal_float(float value, float expected, diff_opt_t *opts) {
- h5difftrace("equal_float start\n");
if (opts->do_nans) {
/*-------------------------------------------------------------------------
* detect NaNs
*-------------------------------------------------------------------------
*/
- hbool_t isnan1 = my_isnan(FLT_FLOAT, &value);
- hbool_t isnan2 = my_isnan(FLT_FLOAT, &expected);
+ hbool_t isnan1 = HDisnan(value);
+ hbool_t isnan2 = HDisnan(expected);
/*-------------------------------------------------------------------------
* we consider NaN == NaN to be true
@@ -4393,95 +4360,21 @@ static hbool_t equal_float(float value, float expected, diff_opt_t *opts) {
return FALSE;
}
- if (value == expected)
- return TRUE;
-
- if (opts->use_system_epsilon)
- if (ABS( (value-expected) ) < FLT_EPSILON)
+ if (opts->use_system_epsilon) {
+ /* Check equality within some epsilon */
+ if (H5_FLT_ABS_EQUAL(value, expected))
return TRUE;
-
- h5difftrace("equal_float finish\n");
-
- return FALSE;
-}
-
-/*-------------------------------------------------------------------------
- * Function: my_isnan
- *
- * Purpose: Determines whether VAL points to NaN.
- *
- * Return: TRUE or FALSE
- *-------------------------------------------------------------------------
- */
-static hbool_t my_isnan(dtype_t type, void *val) {
- hbool_t retval = FALSE;
- char s[256];
-
- h5difftrace("my_isnan start\n");
- if (FLT_FLOAT == type) {
- float x;
-
- HDmemcpy(&x, val, sizeof(float));
- retval = (x != x);
- }
- else if (FLT_DOUBLE == type) {
- double x;
-
- HDmemcpy(&x, val, sizeof(double));
- retval = (x != x);
- }
-#if H5_SIZEOF_LONG_DOUBLE != H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE != 0
- else if (FLT_LDOUBLE == type) {
- long double x;
-
- HDmemcpy(&x, val, sizeof(long double));
- retval = (x!=x);
}
-#endif
- else
- return FALSE;
-
- /*
- * Sometimes NaN==NaN (e.g., DEC Alpha) so we try to print it and see if
- * the result contains a NaN string.
- */
- if (!retval) {
- if (FLT_FLOAT == type) {
- float x;
-
- HDmemcpy(&x, val, sizeof(float));
- HDsnprintf(s, sizeof(s), "%g", (double) x);
- }
- else if (FLT_DOUBLE == type) {
- double x;
-
- HDmemcpy(&x, val, sizeof(double));
- HDsnprintf(s, sizeof(s), "%g", x);
- }
-#if H5_SIZEOF_LONG_DOUBLE != H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE != 0
- else if (FLT_LDOUBLE == type) {
- long double x;
-
- HDmemcpy(&x, val, sizeof(long double));
- HDsnprintf(s, sizeof(s), "%Lg", x);
- }
-#endif
- else
- return FALSE;
-
- if (HDstrstr(s, "NaN") ||
- HDstrstr(s, "NAN") ||
- HDstrstr(s, "nan") ||
- HDstrstr(s, "-1.#IND")) {
- retval = TRUE;
- }
+ else {
+ /* Check bits */
+ if (!HDmemcmp(&value, &expected, sizeof(float)))
+ return TRUE;
}
- h5difftrace("my_isnan finish\n");
-
- return retval;
+ return FALSE;
}
+
/*-------------------------------------------------------------------------
*
* Local functions