1*547d9b97Sjeremylt /// @file 2*547d9b97Sjeremylt /// Test vector norms 3*547d9b97Sjeremylt /// \test Test vector norms 4*547d9b97Sjeremylt #include <ceed.h> 5*547d9b97Sjeremylt #include <math.h> 6*547d9b97Sjeremylt 7*547d9b97Sjeremylt int main(int argc, char **argv) { 8*547d9b97Sjeremylt Ceed ceed; 9*547d9b97Sjeremylt CeedVector x; 10*547d9b97Sjeremylt CeedInt n = 10; 11*547d9b97Sjeremylt CeedScalar a[10]; 12*547d9b97Sjeremylt 13*547d9b97Sjeremylt CeedInit(argv[1], &ceed); 14*547d9b97Sjeremylt 15*547d9b97Sjeremylt CeedVectorCreate(ceed, n, &x); 16*547d9b97Sjeremylt for (CeedInt i=0; i<n; i++) 17*547d9b97Sjeremylt a[i] = i * (i % 2 ? 1 : -1); 18*547d9b97Sjeremylt CeedVectorSetArray(x, CEED_MEM_HOST, CEED_USE_POINTER, a); 19*547d9b97Sjeremylt 20*547d9b97Sjeremylt CeedScalar norm; 21*547d9b97Sjeremylt CeedVectorNorm(x, CEED_NORM_1, &norm); 22*547d9b97Sjeremylt if (fabs(norm - 45.) > 1e-14) 23*547d9b97Sjeremylt // LCOV_EXCL_START 24*547d9b97Sjeremylt printf("Error: L1 norm %f != 45.\n", norm); 25*547d9b97Sjeremylt // LCOV_EXCL_STOP 26*547d9b97Sjeremylt 27*547d9b97Sjeremylt CeedVectorNorm(x, CEED_NORM_2, &norm); 28*547d9b97Sjeremylt if (fabs(norm - sqrt(285.)) > 1e-14) 29*547d9b97Sjeremylt // LCOV_EXCL_START 30*547d9b97Sjeremylt printf("Error: L2 norm %f != sqrt(285.)\n", norm); 31*547d9b97Sjeremylt // LCOV_EXCL_STOP 32*547d9b97Sjeremylt 33*547d9b97Sjeremylt CeedVectorNorm(x, CEED_NORM_MAX, &norm); 34*547d9b97Sjeremylt if (fabs(norm - 9.) > 1e-14) 35*547d9b97Sjeremylt // LCOV_EXCL_START 36*547d9b97Sjeremylt printf("Error: Max norm %f != 9.\n", norm); 37*547d9b97Sjeremylt // LCOV_EXCL_STOP 38*547d9b97Sjeremylt 39*547d9b97Sjeremylt CeedVectorDestroy(&x); 40*547d9b97Sjeremylt CeedDestroy(&ceed); 41*547d9b97Sjeremylt return 0; 42*547d9b97Sjeremylt } 43