1 /// @file 2 /// Test CeedVectorGetArrayWrite to modify array 3 /// \test Test CeedVectorGetArrayWrite to modify array 4 #include <ceed.h> 5 #include <stdio.h> 6 7 int main(int argc, char **argv) { 8 Ceed ceed; 9 CeedVector x; 10 const CeedInt len = 10; 11 12 CeedInit(argv[1], &ceed); 13 14 CeedVectorCreate(ceed, len, &x); 15 { 16 CeedScalar *writable_array; 17 18 CeedVectorGetArrayWrite(x, CEED_MEM_HOST, &writable_array); 19 for (CeedInt i = 0; i < len; i++) writable_array[i] = 3 * i; 20 CeedVectorRestoreArray(x, &writable_array); 21 } 22 { 23 const CeedScalar *read_array; 24 25 CeedVectorGetArrayRead(x, CEED_MEM_HOST, (const CeedScalar **)&read_array); 26 for (CeedInt i = 0; i < len; i++) { 27 if (read_array[i] != (CeedScalar)(3 * i)) printf("Error writing array[%" CeedInt_FMT "] = %f\n", i, read_array[i]); 28 } 29 CeedVectorRestoreArrayRead(x, (const CeedScalar **)&read_array); 30 } 31 32 CeedVectorDestroy(&x); 33 CeedDestroy(&ceed); 34 return 0; 35 } 36