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) do {                                             \
 18:     z = i; z = z BOP i; z = i BOP z; z IOP i; (void)(z==i); (void)(z!=i); \
 19:     z = f; z = z BOP f; z = f BOP z; z IOP f; (void)(z==f); (void)(z!=f); \
 20:     z = d; z = z BOP d; z = d BOP z; z IOP d; (void)(z==d); (void)(z!=d); \
 21:     z = j; z = z BOP j; z = r BOP z; z IOP j; (void)(z==j); (void)(z!=j); \
 22:     z = r; z = z BOP r; z = r BOP z; z IOP r; (void)(z==r); (void)(z!=r); } while (0)

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

 33: /*TEST

 35:    build:
 36:       requires: complex

 38:    test:

 40: TEST*/