IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 18, 2006, 12:42:12 PM (20 years ago)
Author:
Paul Price
Message:

Updating to psLib rel11. Most changes are setting the 'n' element of the vector or array upon allocation. Needed to change the way the image subsets are done: not sure why we switched back to the old method of trim regions, but it seems we did.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/pois/src/poisKernelBasisFunctions.c

    r5717 r6891  
    1414    int yKernelHalfSize = config->yKernel; // Half size of kernel in y
    1515    int spatialOrder = config->spatialOrder; // Order of spatial variations
    16        
     16
    1717    // Number of basis functions
    1818    int nBF = (2 * xKernelHalfSize + 1) * (2 * yKernelHalfSize + 1) * (spatialOrder + 1) *
    19         (spatialOrder + 2) / 2;
     19        (spatialOrder + 2) / 2;
    2020
    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;
    2223
    23     int num = 0;                        // Kernel parameter number
     24    int num = 0;                        // Kernel parameter number
    2425
    2526    // Put the (u,v) = (0,0) component right at the start of the list for convenience
    2627    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;
    3435
    35             // Stuff into the array
    36             array->data[num] = kernel;
     36            // Stuff into the array
     37            array->data[num] = kernel;
    3738
    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        }
    4243    }
    4344
    4445    // Iterate over (u,v)
    4546    for (int u = -xKernelHalfSize; u <= xKernelHalfSize; u++) {
    46         for (int v = -yKernelHalfSize; v <= yKernelHalfSize; v++) {
     47        for (int v = -yKernelHalfSize; v <= yKernelHalfSize; v++) {
    4748
    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)) {
    5051
    51                 // Iterate over spatial order
    52                 for (int order = 0; order <= spatialOrder; order++) {
     52                // Iterate over spatial order
     53                for (int order = 0; order <= spatialOrder; order++) {
    5354
    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));
    5758
    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;
    6263
    63                         // Stuff into the array
    64                         array->data[num] = kernel;
     64                        // Stuff into the array
     65                        array->data[num] = kernel;
    6566
    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 order
    71             } // 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        }
    7374    } // Iterating over (u,v)
    7475
Note: See TracChangeset for help on using the changeset viewer.