xref: /petsc/src/sys/tests/ex4.c (revision 9371c9d470a9602b6d10a8bf50c9b2280a79e45a)
1c4762a1bSJed Brown #include <petscsys.h>
2c4762a1bSJed Brown 
3c4762a1bSJed Brown static char help[] = "Test PetscComplex binary operators.\n";
4c4762a1bSJed Brown 
5*9371c9d4SSatish Balay int main(int argc, char **argv) {
6327415f7SBarry Smith   PetscFunctionBeginUser;
7b8abcfdeSJacob Faibussowitsch   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
8c4762a1bSJed Brown   {
9c4762a1bSJed Brown     int         i = 2;
10c4762a1bSJed Brown     float       f = 2;
11c4762a1bSJed Brown     double      d = 2;
12c4762a1bSJed Brown     PetscInt    j = 2;
13c4762a1bSJed Brown     PetscReal   r = 2;
14c4762a1bSJed Brown     PetscScalar z;
15c4762a1bSJed Brown 
16*9371c9d4SSatish Balay #define TestOps(BOP, IOP) \
17*9371c9d4SSatish Balay   do { \
18*9371c9d4SSatish Balay     z = i; \
19*9371c9d4SSatish Balay     z = z BOP i; \
20*9371c9d4SSatish Balay     z = i BOP z; \
21*9371c9d4SSatish Balay     z IOP     i; \
22*9371c9d4SSatish Balay     (void)(z == i); \
23*9371c9d4SSatish Balay     (void)(z != i); \
24*9371c9d4SSatish Balay     z = f; \
25*9371c9d4SSatish Balay     z = z BOP f; \
26*9371c9d4SSatish Balay     z = f BOP z; \
27*9371c9d4SSatish Balay     z IOP     f; \
28*9371c9d4SSatish Balay     (void)(z == f); \
29*9371c9d4SSatish Balay     (void)(z != f); \
30*9371c9d4SSatish Balay     z = d; \
31*9371c9d4SSatish Balay     z = z BOP d; \
32*9371c9d4SSatish Balay     z = d BOP z; \
33*9371c9d4SSatish Balay     z IOP     d; \
34*9371c9d4SSatish Balay     (void)(z == d); \
35*9371c9d4SSatish Balay     (void)(z != d); \
36*9371c9d4SSatish Balay     z = j; \
37*9371c9d4SSatish Balay     z = z BOP j; \
38*9371c9d4SSatish Balay     z = r BOP z; \
39*9371c9d4SSatish Balay     z IOP     j; \
40*9371c9d4SSatish Balay     (void)(z == j); \
41*9371c9d4SSatish Balay     (void)(z != j); \
42*9371c9d4SSatish Balay     z = r; \
43*9371c9d4SSatish Balay     z = z BOP r; \
44*9371c9d4SSatish Balay     z = r BOP z; \
45*9371c9d4SSatish Balay     z IOP     r; \
46*9371c9d4SSatish Balay     (void)(z == r); \
47*9371c9d4SSatish Balay     (void)(z != r); \
48*9371c9d4SSatish Balay   } while (0)
49c4762a1bSJed Brown 
50c4762a1bSJed Brown     TestOps(+, +=);
51c4762a1bSJed Brown     TestOps(-, -=);
52c4762a1bSJed Brown     TestOps(*, *=);
53c4762a1bSJed Brown     TestOps(/, /=);
54c4762a1bSJed Brown   }
55b8abcfdeSJacob Faibussowitsch   PetscCall(PetscFinalize());
56b8abcfdeSJacob Faibussowitsch   return 0;
57c4762a1bSJed Brown }
58c4762a1bSJed Brown 
59c4762a1bSJed Brown /*TEST
60c4762a1bSJed Brown 
61c4762a1bSJed Brown    build:
62c4762a1bSJed Brown       requires: complex
63c4762a1bSJed Brown 
64c4762a1bSJed Brown    test:
65c4762a1bSJed Brown 
66c4762a1bSJed Brown TEST*/
67