xref: /petsc/src/sys/tests/ex4.c (revision d5b43468fb8780a8feea140ccd6fa3e6a50411cc)
1 #include <petscsys.h>
2 
3 static char help[] = "Test PetscComplex binary operators.\n";
4 
5 int main(int argc, char **argv)
6 {
7   PetscFunctionBeginUser;
8   PetscCall(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;
16 
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)
50 
51     TestOps(+, +=);
52     TestOps(-, -=);
53     TestOps(*, *=);
54     TestOps(/, /=);
55   }
56   PetscCall(PetscFinalize());
57   return 0;
58 }
59 
60 /*TEST
61 
62    build:
63       requires: complex
64 
65    test:
66 
67 TEST*/
68