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: {

  9:   PetscInitialize(&argc,&argv,NULL,help);if (ierr) return ierr;
 10:   {
 11:     int          i = 2;
 12:     float        f = 2;
 13:     double       d = 2;
 14:     PetscInt     j = 2;
 15:     PetscReal    r = 2;
 16:     PetscScalar  z;

 18: #define TestOps(BOP,IOP) do {                                             \
 19:     z = i; z = z BOP i; z = i BOP z; z IOP i; (void)(z==i); (void)(z!=i); \
 20:     z = f; z = z BOP f; z = f BOP z; z IOP f; (void)(z==f); (void)(z!=f); \
 21:     z = d; z = z BOP d; z = d BOP z; z IOP d; (void)(z==d); (void)(z!=d); \
 22:     z = j; z = z BOP j; z = r BOP z; z IOP j; (void)(z==j); (void)(z!=j); \
 23:     z = r; z = z BOP r; z = r BOP z; z IOP r; (void)(z==r); (void)(z!=r); } while (0)

 25:     TestOps(+,+=);
 26:     TestOps(-,-=);
 27:     TestOps(*,*=);
 28:     TestOps(/,/=);
 29:   }
 30:   PetscFinalize();
 31:   return ierr;
 32: }

 34: /*TEST

 36:    build:
 37:       requires: complex

 39:    test:

 41: TEST*/