xref: /petsc/src/sys/tests/ex4.c (revision 609caa7c8c030312b00807b4f015fd827bb80932)
1c4762a1bSJed Brown #include <petscsys.h>
2c4762a1bSJed Brown 
3c4762a1bSJed Brown static char help[] = "Test PetscComplex binary operators.\n";
4c4762a1bSJed Brown 
main(int argc,char ** argv)5d71ae5a4SJacob Faibussowitsch int main(int argc, char **argv)
6d71ae5a4SJacob Faibussowitsch {
7327415f7SBarry Smith   PetscFunctionBeginUser;
8b8abcfdeSJacob 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 
179371c9d4SSatish Balay #define TestOps(BOP, IOP) \
189371c9d4SSatish Balay   do { \
199371c9d4SSatish Balay     z = i; \
209371c9d4SSatish Balay     z = z BOP i; \
219371c9d4SSatish Balay     z = i BOP z; \
229371c9d4SSatish Balay     z IOP     i; \
239371c9d4SSatish Balay     (void)(z == i); \
249371c9d4SSatish Balay     (void)(z != i); \
259371c9d4SSatish Balay     z = f; \
269371c9d4SSatish Balay     z = z BOP f; \
279371c9d4SSatish Balay     z = f BOP z; \
289371c9d4SSatish Balay     z IOP     f; \
299371c9d4SSatish Balay     (void)(z == f); \
309371c9d4SSatish Balay     (void)(z != f); \
319371c9d4SSatish Balay     z = d; \
329371c9d4SSatish Balay     z = z BOP d; \
339371c9d4SSatish Balay     z = d BOP z; \
349371c9d4SSatish Balay     z IOP     d; \
359371c9d4SSatish Balay     (void)(z == d); \
369371c9d4SSatish Balay     (void)(z != d); \
379371c9d4SSatish Balay     z = j; \
389371c9d4SSatish Balay     z = z BOP j; \
399371c9d4SSatish Balay     z = r BOP z; \
409371c9d4SSatish Balay     z IOP     j; \
419371c9d4SSatish Balay     (void)(z == j); \
429371c9d4SSatish Balay     (void)(z != j); \
439371c9d4SSatish Balay     z = r; \
449371c9d4SSatish Balay     z = z BOP r; \
459371c9d4SSatish Balay     z = r BOP z; \
469371c9d4SSatish Balay     z IOP     r; \
479371c9d4SSatish Balay     (void)(z == r); \
489371c9d4SSatish Balay     (void)(z != r); \
499371c9d4SSatish Balay   } while (0)
50c4762a1bSJed Brown 
51c4762a1bSJed Brown     TestOps(+, +=);
52c4762a1bSJed Brown     TestOps(-, -=);
53c4762a1bSJed Brown     TestOps(*, *=);
54c4762a1bSJed Brown     TestOps(/, /=);
55c4762a1bSJed Brown   }
56b8abcfdeSJacob Faibussowitsch   PetscCall(PetscFinalize());
57b8abcfdeSJacob Faibussowitsch   return 0;
58c4762a1bSJed Brown }
59c4762a1bSJed Brown 
60c4762a1bSJed Brown /*TEST
61c4762a1bSJed Brown 
62c4762a1bSJed Brown    build:
63c4762a1bSJed Brown       requires: complex
64c4762a1bSJed Brown 
65c4762a1bSJed Brown    test:
66*3886731fSPierre Jolivet      output_file: output/empty.out
67c4762a1bSJed Brown 
68c4762a1bSJed Brown TEST*/
69