Changeset 6891 for trunk/pois/src/poisKernelBasisFunctions.c
- Timestamp:
- Apr 18, 2006, 12:42:12 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/pois/src/poisKernelBasisFunctions.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pois/src/poisKernelBasisFunctions.c
r5717 r6891 14 14 int yKernelHalfSize = config->yKernel; // Half size of kernel in y 15 15 int spatialOrder = config->spatialOrder; // Order of spatial variations 16 16 17 17 // Number of basis functions 18 18 int nBF = (2 * xKernelHalfSize + 1) * (2 * yKernelHalfSize + 1) * (spatialOrder + 1) * 19 (spatialOrder + 2) / 2;19 (spatialOrder + 2) / 2; 20 20 21 psArray *array = psArrayAlloc(nBF); // Array to hold the basis functions 21 psArray *array = psArrayAlloc(nBF); // Array to hold the basis functions 22 array->n = nBF; 22 23 23 int num = 0; // Kernel parameter number24 int num = 0; // Kernel parameter number 24 25 25 26 // Put the (u,v) = (0,0) component right at the start of the list for convenience 26 27 for (int order = 0; order <= spatialOrder; order++) { 27 for (int i = 0; i <= order; i++) {28 int j = order - i;29 poisKernelBasis *kernel = psAlloc(sizeof(poisKernelBasis));30 kernel->u = 0;31 kernel->v = 0;32 kernel->xOrder = i;33 kernel->yOrder = j;28 for (int i = 0; i <= order; i++) { 29 int j = order - i; 30 poisKernelBasis *kernel = psAlloc(sizeof(poisKernelBasis)); 31 kernel->u = 0; 32 kernel->v = 0; 33 kernel->xOrder = i; 34 kernel->yOrder = j; 34 35 35 // Stuff into the array36 array->data[num] = kernel;36 // Stuff into the array 37 array->data[num] = kernel; 37 38 38 psTrace("pois.kernelBasisFunctions", 3, "--> %d: (%d,%d) x^%d y^%d\n", i, kernel->u,39 kernel->v, kernel->xOrder, kernel->yOrder);40 num++;41 }39 psTrace("pois.kernelBasisFunctions", 3, "--> %d: (%d,%d) x^%d y^%d\n", i, kernel->u, 40 kernel->v, kernel->xOrder, kernel->yOrder); 41 num++; 42 } 42 43 } 43 44 44 45 // Iterate over (u,v) 45 46 for (int u = -xKernelHalfSize; u <= xKernelHalfSize; u++) { 46 for (int v = -yKernelHalfSize; v <= yKernelHalfSize; v++) {47 for (int v = -yKernelHalfSize; v <= yKernelHalfSize; v++) { 47 48 48 // Already did (u,v) = (0,0): it's at the start, so skip it now.49 if ((u != 0) || (v != 0)) {49 // Already did (u,v) = (0,0): it's at the start, so skip it now. 50 if ((u != 0) || (v != 0)) { 50 51 51 // Iterate over spatial order52 for (int order = 0; order <= spatialOrder; order++) {52 // Iterate over spatial order 53 for (int order = 0; order <= spatialOrder; order++) { 53 54 54 for (int i = 0; i <= order; i++) {55 int j = order - i;56 poisKernelBasis *kernel = psAlloc(sizeof(poisKernelBasis));55 for (int i = 0; i <= order; i++) { 56 int j = order - i; 57 poisKernelBasis *kernel = psAlloc(sizeof(poisKernelBasis)); 57 58 58 kernel->u = u;59 kernel->v = v;60 kernel->xOrder = i;61 kernel->yOrder = j;59 kernel->u = u; 60 kernel->v = v; 61 kernel->xOrder = i; 62 kernel->yOrder = j; 62 63 63 // Stuff into the array64 array->data[num] = kernel;64 // Stuff into the array 65 array->data[num] = kernel; 65 66 66 psTrace("pois.kernelBasisFunctions", 3, "--> %d: (%d,%d) x^%d y^%d\n", num,67 kernel->u, kernel->v, kernel->xOrder, kernel->yOrder);68 num++;69 }70 } // Iterating over spatial order71 } // Except (u,v) = (0,0)72 }67 psTrace("pois.kernelBasisFunctions", 3, "--> %d: (%d,%d) x^%d y^%d\n", num, 68 kernel->u, kernel->v, kernel->xOrder, kernel->yOrder); 69 num++; 70 } 71 } // Iterating over spatial order 72 } // Except (u,v) = (0,0) 73 } 73 74 } // Iterating over (u,v) 74 75
Note:
See TracChangeset
for help on using the changeset viewer.
