Actual source code: setval.h
2: /* This file contains definitions for INLINING some popular operations
3: All arguments should be simple and in register if possible.
4: */
6: #ifndef SET
8: #ifdef PETSC_USE_UNROLL_KERNELS
9: #define SET(v,n,val) \
10: switch (n&0x3) { \
11: case 3: *v++ = val;\
12: case 2: *v++ = val;\
13: case 1: *v++ = val;n-=4;\
14: case 0: while (n>0) {v[0]=val;v[1]=val;v[2]=val;v[3]=val;v+=4;n-=4;}}
16: #elif defined(PETSC_USE_WHILE_KERNELS)
17: #define SET(v,n,val) while (n--) *v++ = val;
19: #else
20: #define SET(v,n,val) {PetscInt __i;for(__i=0;__i<n;__i++)v[__i] = val;}
21: #endif
23: #endif