IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 5, 2006, 12:32:35 PM (20 years ago)
Author:
Paul Price
Message:

Moving temporary variables into where they are defined, ala C99.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/imageops/psImageConvolve.c

    r7071 r7076  
    55 *  @author Robert DeSonia, MHPCC
    66 *
    7  *  @version $Revision: 1.32 $ $Name: not supported by cvs2svn $
    8  *  @date $Date: 2006-05-05 02:48:34 $
     7 *  @version $Revision: 1.33 $ $Name: not supported by cvs2svn $
     8 *  @date $Date: 2006-05-05 22:32:35 $
    99 *
    1010 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    587587    PS_ASSERT_IMAGE_NON_NULL(image, NULL);
    588588
    589     int Nx, Ny, Npixel, Nrange, Nr;
    590     double factor, g, s, sum;
    591     psVector *temp;
    592 
    593589    // relevant terms
    594     Nrange = sigma*Nsigma + 0.5;
    595     Npixel = 2*Nrange + 1;
    596     factor = -0.5/(sigma*sigma);
    597 
    598     Nx = image->numCols;
    599     Ny = image->numRows;
     590    int Nrange = sigma*Nsigma + 0.5;
     591    int Npixel = 2*Nrange + 1;
     592    double factor = -0.5/(sigma*sigma);
     593
     594    int Nx = image->numCols;
     595    int Ny = image->numRows;
    600596
    601597    #define IMAGESMOOTH_CASE(TYPE) \
     
    604600        psVector *gaussnorm = psVectorAlloc (Npixel, PS_TYPE_##TYPE); \
    605601        gaussnorm->n = gaussnorm->nalloc; \
    606         sum = 0.0; \
     602        double sum = 0.0; \
    607603        for (int i = -Nrange; i < Nrange + 1; i++) { \
    608604            gaussnorm->data.TYPE[i+Nrange] = exp (factor*i*i); \
     
    615611        \
    616612        /* smooth in X direction */ \
    617         temp = psVectorAlloc (Nx, PS_TYPE_##TYPE); \
     613        psVector *temp = psVectorAlloc (Nx, PS_TYPE_##TYPE); \
    618614        temp->n = temp->nalloc; \
    619615        for (int j = 0; j < Ny; j++) { \
     
    625621                ps##TYPE *vr = vi - i; \
    626622                ps##TYPE *vg = gauss - i; \
    627                 g = s = 0; \
     623                double g = 0; \
     624                double s = 0; \
    628625                for (int n = -i; n < Nrange + 1; n++, vr++, vg++) { \
    629626                    s += *vg * *vr; \
     
    636633                ps##TYPE *vr = vi - Nrange; \
    637634                ps##TYPE *vg = gauss - Nrange; \
    638                 s = 0; \
     635                double s = 0; \
    639636                for (int n = -Nrange; n < Nrange + 1; n++, vr++, vg++) { \
    640637                    s += *vg * *vr; \
     
    647644                ps##TYPE *vr = vi - Nrange; \
    648645                ps##TYPE *vg = gauss - Nrange; \
    649                 g = s = 0; \
     646                double g = 0; \
     647                double s = 0; \
    650648                for (int n = -Nrange; n < Nx - i - 1; n++, vr++, vg++) { \
    651649                    s += *vg * *vr; \
     
    670668                ps##TYPE *vi = image->data.TYPE[j+n]; \
    671669                ps##TYPE *vo = temp->data.TYPE; \
    672                 g = gauss[n]; \
     670                double g = gauss[n]; \
    673671                for (int i = 0; i < Nx; i++, vi++, vo++) { \
    674672                    *vo += *vi * g; \
     
    680678        for (int j = Nrange; j < Ny - Nrange; j++) { \
    681679            /* save the Nrange-offset output row, then zero */ \
    682             Nr = j % Nrange; \
     680            int Nr = j % Nrange; \
    683681            temp = temprows->data[Nr]; \
    684682            memcpy (image->data.TYPE[j-Nrange], temp->data.TYPE, Nx*sizeof(ps##TYPE)); \
     
    687685                ps##TYPE *vi = image->data.TYPE[j+n]; \
    688686                ps##TYPE *vo = temp->data.TYPE; \
    689                 g = gauss[n]; \
     687                double g = gauss[n]; \
    690688                for (int i = 0; i < Nx; i++, vi++, vo++) { \
    691689                    *vo += *vi * g; \
     
    695693        for (int j = Ny - Nrange; j < Ny; j++) { \
    696694            /* save the Nrange-offset output row, then zero */ \
    697             Nr = j % Nrange; \
     695            int Nr = j % Nrange; \
    698696            temp = temprows->data[Nr]; \
    699697            memcpy (image->data.TYPE[j-Nrange], temp->data.TYPE, Nx*sizeof(ps##TYPE)); \
     
    703701                ps##TYPE *vi = image->data.TYPE[j+n]; \
    704702                ps##TYPE *vo = temp->data.TYPE; \
    705                 g = gauss[n]; \
     703                double g = gauss[n]; \
    706704                for (int i = 0; i < Nx; i++, vi++, vo++) { \
    707705                    *vo += *vi * g; \
     
    711709        for (int j = Ny; j < Ny + Nrange; j++) { \
    712710            /* save the Nrange-offset output row, then zero */ \
    713             Nr = j % Nrange; \
     711            int Nr = j % Nrange; \
    714712            temp = temprows->data[Nr]; \
    715713            memcpy (image->data.TYPE[j-Nrange], temp->data.TYPE, Nx*sizeof(ps##TYPE)); \
Note: See TracChangeset for help on using the changeset viewer.