Actual source code: ex22.c

  1: static char help[] = "Tests the PetscByteSwap()\n";

  3: #include <petscsys.h>

  5: int main(int argc, char **argv)
  6: {
  7:   PetscInt    oint[2], sint[2];
  8:   PetscBool   obool[2], sbool[2];
  9:   PetscScalar oscalar[2], sscalar[2];
 10:   double      odouble[2], sdouble[2];
 11:   float       ofloat[2], sfloat[2];
 12:   short       oshort[2], sshort[2];

 14:   PetscFunctionBeginUser;
 15:   PetscCall(PetscInitialize(&argc, &argv, NULL, help));

 17:   sint[0] = oint[0] = 5;
 18:   sint[1] = oint[1] = 19;
 19:   sbool[0] = obool[0] = PETSC_FALSE;
 20:   sbool[1] = obool[1] = PETSC_TRUE;
 21:   sscalar[0] = oscalar[0] = 3.14159265;
 22:   sscalar[1] = oscalar[1] = 1.3806504e-23;
 23:   sdouble[0] = odouble[0] = 3.14159265;
 24:   sdouble[1] = odouble[1] = 1.3806504e-23;
 25:   sfloat[0] = ofloat[0] = (float)3.14159265;
 26:   sfloat[1] = ofloat[1] = (float)1.3806504e-23;
 27:   sshort[0] = oshort[0] = 5;
 28:   sshort[1] = oshort[1] = 19;

 30:   PetscCall(PetscByteSwap(sint, PETSC_INT, 2));
 31:   PetscCall(PetscByteSwap(sbool, PETSC_BOOL, 2));
 32:   PetscCall(PetscByteSwap(sscalar, PETSC_SCALAR, 2));
 33:   PetscCall(PetscByteSwap(sdouble, PETSC_DOUBLE, 2));
 34:   PetscCall(PetscByteSwap(sfloat, PETSC_FLOAT, 2));
 35:   PetscCall(PetscByteSwap(sshort, PETSC_SHORT, 2));

 37:   PetscCall(PetscByteSwap(sint, PETSC_INT, 2));
 38:   PetscCall(PetscByteSwap(sbool, PETSC_BOOL, 2));
 39:   PetscCall(PetscByteSwap(sscalar, PETSC_SCALAR, 2));
 40:   PetscCall(PetscByteSwap(sdouble, PETSC_DOUBLE, 2));
 41:   PetscCall(PetscByteSwap(sfloat, PETSC_FLOAT, 2));
 42:   PetscCall(PetscByteSwap(sshort, PETSC_SHORT, 2));

 44:   if ((sint[0] != oint[0]) || (sint[1] != oint[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_INT\n"));
 45:   if ((sbool[0] != obool[0]) || (sbool[1] != obool[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_BOOL\n"));
 46:   if ((sscalar[0] != oscalar[0]) || (sscalar[1] != oscalar[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_SCALAR\n"));
 47:   if ((sdouble[0] != odouble[0]) || (sdouble[1] != odouble[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_DOUBLE\n"));
 48:   if ((sfloat[0] != ofloat[0]) || (sfloat[1] != ofloat[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_FLOAT\n"));
 49:   if ((sshort[0] != oshort[0]) || (sshort[1] != oshort[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_SHORT\n"));

 51:   PetscCall(PetscFinalize());
 52:   return 0;
 53: }

 55: /*TEST

 57:    test:

 59: TEST*/