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