1 /// @file 2 /// Test getting and restoring work vectors 3 /// \test Test getting and restoring work vectors 4 5 #include <ceed.h> 6 #include <ceed/backend.h> 7 #include <stdio.h> 8 9 int main(int argc, char **argv) { 10 Ceed ceed; 11 12 CeedInit(argv[1], &ceed); 13 14 // Check for getting the same work vector back 15 { 16 CeedVector x, y; 17 18 CeedGetWorkVector(ceed, 20, &x); 19 // Do not do this! 20 CeedVector x_copy = x; 21 22 CeedRestoreWorkVector(ceed, &x); 23 CeedGetWorkVector(ceed, 20, &y); 24 if (y != x_copy) printf("failed to return same work vector"); 25 CeedRestoreWorkVector(ceed, &y); 26 } 27 28 // Check for getting a new work vector back 29 { 30 CeedVector x, y; 31 32 CeedGetWorkVector(ceed, 20, &x); 33 // Do not do this! 34 CeedVector x_copy = x; 35 36 CeedRestoreWorkVector(ceed, &x); 37 CeedGetWorkVector(ceed, 30, &y); 38 if (y == x_copy) printf("failed to return new work vector"); 39 CeedRestoreWorkVector(ceed, &y); 40 } 41 42 CeedDestroy(&ceed); 43 return 0; 44 } 45