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