xref: /petsc/src/sys/tests/ex4.c (revision b8abcfde4cf799610cd89775278ac4145d1798ce)
1c4762a1bSJed Brown #include <petscsys.h>
2c4762a1bSJed Brown 
3c4762a1bSJed Brown static char help[] = "Test PetscComplex binary operators.\n";
4c4762a1bSJed Brown 
5c4762a1bSJed Brown int main(int argc,char **argv)
6c4762a1bSJed Brown {
7c4762a1bSJed Brown 
8*b8abcfdeSJacob Faibussowitsch   PetscCall(PetscInitialize(&argc,&argv,NULL,help));
9c4762a1bSJed Brown   {
10c4762a1bSJed Brown     int          i = 2;
11c4762a1bSJed Brown     float        f = 2;
12c4762a1bSJed Brown     double       d = 2;
13c4762a1bSJed Brown     PetscInt     j = 2;
14c4762a1bSJed Brown     PetscReal    r = 2;
15c4762a1bSJed Brown     PetscScalar  z;
16c4762a1bSJed Brown 
17c4762a1bSJed Brown #define TestOps(BOP,IOP) do {                                             \
18c4762a1bSJed Brown     z = i; z = z BOP i; z = i BOP z; z IOP i; (void)(z==i); (void)(z!=i); \
19c4762a1bSJed Brown     z = f; z = z BOP f; z = f BOP z; z IOP f; (void)(z==f); (void)(z!=f); \
20c4762a1bSJed Brown     z = d; z = z BOP d; z = d BOP z; z IOP d; (void)(z==d); (void)(z!=d); \
21c4762a1bSJed Brown     z = j; z = z BOP j; z = r BOP z; z IOP j; (void)(z==j); (void)(z!=j); \
22c4762a1bSJed Brown     z = r; z = z BOP r; z = r BOP z; z IOP r; (void)(z==r); (void)(z!=r); } while (0)
23c4762a1bSJed Brown 
24c4762a1bSJed Brown     TestOps(+,+=);
25c4762a1bSJed Brown     TestOps(-,-=);
26c4762a1bSJed Brown     TestOps(*,*=);
27c4762a1bSJed Brown     TestOps(/,/=);
28c4762a1bSJed Brown   }
29*b8abcfdeSJacob Faibussowitsch   PetscCall(PetscFinalize());
30*b8abcfdeSJacob Faibussowitsch   return 0;
31c4762a1bSJed Brown }
32c4762a1bSJed Brown 
33c4762a1bSJed Brown /*TEST
34c4762a1bSJed Brown 
35c4762a1bSJed Brown    build:
36c4762a1bSJed Brown       requires: complex
37c4762a1bSJed Brown 
38c4762a1bSJed Brown    test:
39c4762a1bSJed Brown 
40c4762a1bSJed Brown TEST*/
41