368
364
return total_diff;
371
int compare_data(char * variable_name, void *data1, void *data2, int item, enum ADIOS_DATATYPES adiosvartype){
367
int compare_data(char * variable_name, void *data1, void *data2, int item, enum ADIOS_DATATYPES adiosvartype)
373
370
if (data1 == NULL || data2 == NULL) {
374
371
print("null data");
379
376
// print next data item into vstr
380
377
switch(adiosvartype) {
381
378
case adios_unsigned_byte:
382
if(((unsigned char *) data1)[item] != ((unsigned char *) data2)[item] )//not identical
384
print("%s : %hhu in %s | %hhu in %s\n", variable_name, ((unsigned char *) data1)[item], infilename1, ((unsigned char *) data2)[item], infilename2);
379
if(((unsigned char *) data1)[item] != ((unsigned char *) data2)[item] )//not identical
381
print("%s : %hhu in %s | %hhu in %s\n", variable_name, ((unsigned char *) data1)[item], infilename1, ((unsigned char *) data2)[item], infilename2);
389
if(((signed char *) data1)[item] != ((signed char *) data2)[item])//not identical
391
print("%s : %hhd in %s | %hhd in %s\n", variable_name, ((signed char *) data1)[item], infilename1, ((signed char *) data2)[item], infilename2);
386
if(((signed char *) data1)[item] != ((signed char *) data2)[item])//not identical
388
print("%s : %hhd in %s | %hhd in %s\n", variable_name, ((signed char *) data1)[item], infilename1, ((signed char *) data2)[item], infilename2);
395
392
case adios_string:
396
if(strcmp(((char *) data1), ((char *) data2))!= 0 )//not identical
398
print("%s : %s in %s | %s in %s\n", variable_name, ((char *) data1)[item], infilename1, ((char *) data2)[item], infilename2);
393
if(strcmp(((char *) data1), ((char *) data2))!= 0 )//not identical
395
print("%s : %s in %s | %s in %s\n", variable_name, (char *) data1, infilename1, (char *) data2, infilename2);
402
399
case adios_unsigned_short:
403
if(((unsigned short*) data1)[item] != ((unsigned short *) data2)[item])//not identical
405
print("%s : %hu in %s | %hu in %s\n", variable_name, ((unsigned short *) data1)[item], infilename1, ((unsigned short *) data2)[item], infilename2);
400
if(((unsigned short*) data1)[item] != ((unsigned short *) data2)[item])//not identical
402
print("%s : %hu in %s | %hu in %s\n", variable_name, ((unsigned short *) data1)[item], infilename1, ((unsigned short *) data2)[item], infilename2);
409
406
case adios_short:
410
if(((signed short*) data1)[item] != ((signed short *) data2)[item])//not identical
412
print("%s : %hd in %s | %hd in %s\n", variable_name, ((signed short *) data1)[item], infilename1, ((signed short *) data2)[item], infilename2);
407
if(((signed short*) data1)[item] != ((signed short *) data2)[item])//not identical
409
print("%s : %hd in %s | %hd in %s\n", variable_name, ((signed short *) data1)[item], infilename1, ((signed short *) data2)[item], infilename2);
416
413
case adios_unsigned_integer:
417
if(((unsigned int*) data1)[item] != ((unsigned int*) data2)[item])//not identical
419
print("%s : %u in %s | %u in %s\n", variable_name, ((unsigned int*) data1)[item], infilename1, ((unsigned int*) data2)[item], infilename2);
414
if(((unsigned int*) data1)[item] != ((unsigned int*) data2)[item])//not identical
416
print("%s : %u in %s | %u in %s\n", variable_name, ((unsigned int*) data1)[item], infilename1, ((unsigned int*) data2)[item], infilename2);
423
420
case adios_integer:
424
if(((signed int*) data1)[item] != ((signed int*) data2)[item] != 0 )//not identical
426
print("%s : %d in %s | %d in %s\n", variable_name, ((signed int*) data1)[item], infilename1, ((signed int*) data2)[item], infilename2);
421
if(((signed int*) data1)[item] != ((signed int*) data2)[item])//not identical
423
print("%s : %d in %s | %d in %s\n", variable_name, ((signed int*) data1)[item], infilename1, ((signed int*) data2)[item], infilename2);
430
427
case adios_unsigned_long:
431
if(((unsigned long long*) data1)[item] != ((unsigned long long*) data2)[item])//not identical
433
print("%s : %llu in %s | %llu in %s\n", variable_name, ((unsigned long long*) data1)[item], infilename1, ((unsigned long long*) data2)[item], infilename2);
428
if(((unsigned long long*) data1)[item] != ((unsigned long long*) data2)[item])//not identical
430
print("%s : %llu in %s | %llu in %s\n", variable_name, ((unsigned long long*) data1)[item], infilename1, ((unsigned long long*) data2)[item], infilename2);
438
if(((unsigned long long*) data1)[item] != ((unsigned long long*) data2)[item])//not identical
440
print("%s : %lld in %s | %lld in %s\n", variable_name, ((signed long long*) data1)[item], infilename1, ((signed long long*) data2)[item], infilename2);
435
if(((unsigned long long*) data1)[item] != ((unsigned long long*) data2)[item])//not identical
437
print("%s : %lld in %s | %lld in %s\n", variable_name, ((signed long long*) data1)[item], infilename1, ((signed long long*) data2)[item], infilename2);
447
a = ((float *) data1)[item];
448
b = ((float *) data2)[item];
449
if(abs(a-b)> fuzz_factor){
450
print("%s : %g in %s | %g in %s\n", variable_name, a, infilename1, b, infilename2);
444
a = ((float *) data1)[item];
445
b = ((float *) data2)[item];
446
if(abs(a-b)> fuzz_factor){
447
print("%s : %g in %s | %g in %s\n", variable_name, a, infilename1, b, infilename2);
455
452
case adios_double:
458
aa = ((double *) data1)[item];
459
bb = ((double *) data2)[item];
460
if(abs(aa-bb)> fuzz_factor){
461
print("%s : %g in %s | %g in %s\n", variable_name, aa, infilename1, bb, infilename2);
455
aa = ((double *) data1)[item];
456
bb = ((double *) data2)[item];
457
if(abs(aa-bb)> fuzz_factor){
458
print("%s : %g in %s | %g in %s\n", variable_name, aa, infilename1, bb, infilename2);
466
463
case adios_long_double:
467
464
//fprintf(outf,(f ? format : "%g "), ((double *) data1)[item]);
468
// fprintf(outf,(f ? format : "????????"));
465
// fprintf(outf,(f ? format : "????????"));
470
467
case adios_complex:
472
float a11, a12, b11, b12;
473
a11 = ((float *) data1)[2*item];
474
a12 = ((float *) data1)[2*item+1];
475
b11 = ((float *) data2)[2*item];
476
b12 = ((float *) data2)[2*item+1];
477
if(abs(a11-b11)> fuzz_factor || abs(a12-b12)>fuzz_factor){
478
print("%s : %g i%g in %s | %g i%g in %s\n", variable_name, a11, b11, infilename1, a12, b12, infilename2);
469
float a11, a12, b11, b12;
470
a11 = ((float *) data1)[2*item];
471
a12 = ((float *) data1)[2*item+1];
472
b11 = ((float *) data2)[2*item];
473
b12 = ((float *) data2)[2*item+1];
474
if(abs(a11-b11)> fuzz_factor || abs(a12-b12)>fuzz_factor){
475
print("%s : %g i%g in %s | %g i%g in %s\n", variable_name, a11, b11, infilename1, a12, b12, infilename2);
484
481
case adios_double_complex:
486
double a21, a22, b21, b22;
487
a21 = ((float *) data1)[2*item];
488
a22 = ((float *) data1)[2*item+1];
489
b21 = ((float *) data2)[2*item];
490
b22 = ((float *) data2)[2*item+1];
491
if(abs(a21-b21)> fuzz_factor || abs(a22-b22)>fuzz_factor){
492
print("%s : %g i%g in %s | %g i%g in %s\n", variable_name, a21, b21, infilename1, a22, b22, infilename2);
483
double a21, a22, b21, b22;
484
a21 = ((float *) data1)[2*item];
485
a22 = ((float *) data1)[2*item+1];
486
b21 = ((float *) data2)[2*item];
487
b22 = ((float *) data2)[2*item+1];
488
if(abs(a21-b21)> fuzz_factor || abs(a22-b22)>fuzz_factor){
489
print("%s : %g i%g in %s | %g i%g in %s\n", variable_name, a21, b21, infilename1, a22, b22, infilename2);