xref: /petsc/src/sys/tests/ex4.c (revision 327415f76d85372a4417cf1aaa14db707d4d6c04)
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*327415f7SBarry Smith   PetscFunctionBeginUser;
9b8abcfdeSJacob Faibussowitsch   PetscCall(PetscInitialize(&argc,&argv,NULL,help));
10c4762a1bSJed Brown   {
11c4762a1bSJed Brown     int          i = 2;
12c4762a1bSJed Brown     float        f = 2;
13c4762a1bSJed Brown     double       d = 2;
14c4762a1bSJed Brown     PetscInt     j = 2;
15c4762a1bSJed Brown     PetscReal    r = 2;
16c4762a1bSJed Brown     PetscScalar  z;
17c4762a1bSJed Brown 
18c4762a1bSJed Brown #define TestOps(BOP,IOP) do {                                             \
19c4762a1bSJed Brown     z = i; z = z BOP i; z = i BOP z; z IOP i; (void)(z==i); (void)(z!=i); \
20c4762a1bSJed Brown     z = f; z = z BOP f; z = f BOP z; z IOP f; (void)(z==f); (void)(z!=f); \
21c4762a1bSJed Brown     z = d; z = z BOP d; z = d BOP z; z IOP d; (void)(z==d); (void)(z!=d); \
22c4762a1bSJed Brown     z = j; z = z BOP j; z = r BOP z; z IOP j; (void)(z==j); (void)(z!=j); \
23c4762a1bSJed Brown     z = r; z = z BOP r; z = r BOP z; z IOP r; (void)(z==r); (void)(z!=r); } while (0)
24c4762a1bSJed Brown 
25c4762a1bSJed Brown     TestOps(+,+=);
26c4762a1bSJed Brown     TestOps(-,-=);
27c4762a1bSJed Brown     TestOps(*,*=);
28c4762a1bSJed Brown     TestOps(/,/=);
29c4762a1bSJed Brown   }
30b8abcfdeSJacob Faibussowitsch   PetscCall(PetscFinalize());
31b8abcfdeSJacob Faibussowitsch   return 0;
32c4762a1bSJed Brown }
33c4762a1bSJed Brown 
34c4762a1bSJed Brown /*TEST
35c4762a1bSJed Brown 
36c4762a1bSJed Brown    build:
37c4762a1bSJed Brown       requires: complex
38c4762a1bSJed Brown 
39c4762a1bSJed Brown    test:
40c4762a1bSJed Brown 
41c4762a1bSJed Brown TEST*/
42