1*d99fa3c5SJeremy L Thompson /// @file 2*d99fa3c5SJeremy L Thompson /// Test taking the reciprocal of a vector 3*d99fa3c5SJeremy L Thompson /// \test Test taking the reciprocal of a vector 4*d99fa3c5SJeremy L Thompson #include <math.h> 5*d99fa3c5SJeremy L Thompson #include <ceed.h> 6*d99fa3c5SJeremy L Thompson 7*d99fa3c5SJeremy L Thompson int main(int argc, char **argv) { 8*d99fa3c5SJeremy L Thompson Ceed ceed; 9*d99fa3c5SJeremy L Thompson CeedVector x; 10*d99fa3c5SJeremy L Thompson CeedInt n; 11*d99fa3c5SJeremy L Thompson CeedScalar a[10]; 12*d99fa3c5SJeremy L Thompson const CeedScalar *b; 13*d99fa3c5SJeremy L Thompson 14*d99fa3c5SJeremy L Thompson CeedInit(argv[1], &ceed); 15*d99fa3c5SJeremy L Thompson 16*d99fa3c5SJeremy L Thompson n = 10; 17*d99fa3c5SJeremy L Thompson CeedVectorCreate(ceed, n, &x); 18*d99fa3c5SJeremy L Thompson for (CeedInt i=0; i<n; i++) 19*d99fa3c5SJeremy L Thompson a[i] = 10 + i; 20*d99fa3c5SJeremy L Thompson CeedVectorSetArray(x, CEED_MEM_HOST, CEED_USE_POINTER, a); 21*d99fa3c5SJeremy L Thompson CeedVectorReciprocal(x); 22*d99fa3c5SJeremy L Thompson 23*d99fa3c5SJeremy L Thompson CeedVectorGetArrayRead(x, CEED_MEM_HOST, &b); 24*d99fa3c5SJeremy L Thompson for (CeedInt i=0; i<n; i++) 25*d99fa3c5SJeremy L Thompson if (fabs(b[i] - 1./(10+i)) > 1e-15) 26*d99fa3c5SJeremy L Thompson // LCOV_EXCL_START 27*d99fa3c5SJeremy L Thompson printf("Error reading array b[%d] = %f",i,(double)b[i]); 28*d99fa3c5SJeremy L Thompson // LCOV_EXCL_STOP 29*d99fa3c5SJeremy L Thompson CeedVectorRestoreArrayRead(x, &b); 30*d99fa3c5SJeremy L Thompson 31*d99fa3c5SJeremy L Thompson CeedVectorDestroy(&x); 32*d99fa3c5SJeremy L Thompson CeedDestroy(&ceed); 33*d99fa3c5SJeremy L Thompson return 0; 34*d99fa3c5SJeremy L Thompson } 35