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, (char *)0, 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] = 3.14159265;
26: sfloat[1] = ofloat[1] = 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*/