Actual source code: ex4.c

  1: #include <petscsys.h>

  3: static char help[] = "Test PetscComplex binary operators.\n";

  5: int main(int argc, char **argv)
  6: {
  8:   PetscInitialize(&argc, &argv, NULL, help);
  9:   {
 10:     int         i = 2;
 11:     float       f = 2;
 12:     double      d = 2;
 13:     PetscInt    j = 2;
 14:     PetscReal   r = 2;
 15:     PetscScalar z;

 17: #define TestOps(BOP, IOP) \
 18:   do { \
 19:     z = i; \
 20:     z = z BOP i; \
 21:     z = i BOP z; \
 22:     z IOP     i; \
 23:     (void)(z == i); \
 24:     (void)(z != i); \
 25:     z = f; \
 26:     z = z BOP f; \
 27:     z = f BOP z; \
 28:     z IOP     f; \
 29:     (void)(z == f); \
 30:     (void)(z != f); \
 31:     z = d; \
 32:     z = z BOP d; \
 33:     z = d BOP z; \
 34:     z IOP     d; \
 35:     (void)(z == d); \
 36:     (void)(z != d); \
 37:     z = j; \
 38:     z = z BOP j; \
 39:     z = r BOP z; \
 40:     z IOP     j; \
 41:     (void)(z == j); \
 42:     (void)(z != j); \
 43:     z = r; \
 44:     z = z BOP r; \
 45:     z = r BOP z; \
 46:     z IOP     r; \
 47:     (void)(z == r); \
 48:     (void)(z != r); \
 49:   } while (0)

 51:     TestOps(+, +=);
 52:     TestOps(-, -=);
 53:     TestOps(*, *=);
 54:     TestOps(/, /=);
 55:   }
 56:   PetscFinalize();
 57:   return 0;
 58: }

 60: /*TEST

 62:    build:
 63:       requires: complex

 65:    test:

 67: TEST*/