IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 1648


Ignore:
Timestamp:
Aug 27, 2004, 1:34:05 PM (22 years ago)
Author:
harman
Message:

Corrected bug in psScalarCopy

Location:
trunk/psLib
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/collections/psScalar.c

    r1453 r1648  
    99 *  @author Ross Harman, MHPCC
    1010 *
    11  *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2004-08-10 19:27:47 $
     11 *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2004-08-27 23:34:05 $
    1313 *
    1414 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    130130psScalar* psScalarCopy(psScalar *scalar)
    131131{
     132    psElemType dataType;
    132133    psScalar *newScalar = NULL;
    133134
     
    136137    }
    137138
    138     newScalar =  psScalarAlloc(scalar->data.C64, scalar->type.type);
    139     if (newScalar == NULL) {
    140         psAbort(__func__, " : Line %d - Failed to allocate memory", __LINE__);
     139    dataType = scalar->type.type;
     140    switch (dataType) {
     141    case PS_TYPE_S8:
     142        newScalar =  psScalarAlloc(scalar->data.S8, dataType);
     143        break;
     144    case PS_TYPE_U8:
     145        newScalar =  psScalarAlloc(scalar->data.U8, dataType);
     146        break;
     147    case PS_TYPE_S16:
     148        newScalar =  psScalarAlloc(scalar->data.S16, dataType);
     149        break;
     150    case PS_TYPE_U16:
     151        newScalar =  psScalarAlloc(scalar->data.U16, dataType);
     152        break;
     153    case PS_TYPE_S32:
     154        newScalar =  psScalarAlloc(scalar->data.S32, dataType);
     155        break;
     156    case PS_TYPE_U32:
     157        newScalar =  psScalarAlloc(scalar->data.U32, dataType);
     158        break;
     159    case PS_TYPE_S64:
     160        newScalar =  psScalarAlloc(scalar->data.S64, dataType);
     161        break;
     162    case PS_TYPE_U64:
     163        newScalar =  psScalarAlloc(scalar->data.U64, dataType);
     164        break;
     165    case PS_TYPE_F32:
     166        newScalar =  psScalarAlloc(scalar->data.F32, dataType);
     167        break;
     168    case PS_TYPE_F64:
     169        newScalar =  psScalarAlloc(scalar->data.F64, dataType);
     170        break;
     171    case PS_TYPE_C32:
     172        newScalar =  psScalarAlloc(scalar->data.C32, dataType);
     173        break;
     174    case PS_TYPE_C64:
     175        newScalar =  psScalarAlloc(scalar->data.C64, dataType);
     176        break;
     177    default:
     178        psError(__func__, ": Line %d - Invalid PS_TYPE: %d", __LINE__, dataType);
    141179    }
    142180
  • trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c

    r1647 r1648  
    3030 *  @author Ross Harman, MHPCC
    3131 *
    32  *  @version $Revision: 1.26 $ $Name: not supported by cvs2svn $
    33  *  @date $Date: 2004-08-27 23:29:36 $
     32 *  @version $Revision: 1.27 $ $Name: not supported by cvs2svn $
     33 *  @date $Date: 2004-08-27 23:33:31 $
    3434 *
    3535 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    114114    ps##TYPE *i1 = NULL;                                                                                     \
    115115    ps##TYPE *i2 = NULL;                                                                                     \
    116     o  = &((psScalar* )OUT)->data.TYPE;                                                                       \
    117     i1 = &((psScalar* )IN1)->data.TYPE;                                                                       \
    118     i2 = &((psScalar* )IN2)->data.TYPE;                                                                       \
     116    o  = &((psScalar* )OUT)->data.TYPE;                                                                      \
     117    i1 = &((psScalar* )IN1)->data.TYPE;                                                                      \
     118    i2 = &((psScalar* )IN2)->data.TYPE;                                                                      \
    119119    *o = OP;                                                                                                 \
    120120}
     
    127127    ps##TYPE *i1 = NULL;                                                                                     \
    128128    ps##TYPE *i2 = NULL;                                                                                     \
    129     npt  = ((psVector* )IN1)->n;                                                                              \
    130     o  = ((psVector* )OUT)->data.TYPE;                                                                        \
    131     i1 = &((psScalar* )IN1)->data.TYPE;                                                                       \
    132     i2 = ((psVector* )IN2)->data.TYPE;                                                                        \
     129    npt  = ((psVector* )IN1)->n;                                                                             \
     130    o  = ((psVector* )OUT)->data.TYPE;                                                                       \
     131    i1 = &((psScalar* )IN1)->data.TYPE;                                                                      \
     132    i2 = ((psVector* )IN2)->data.TYPE;                                                                       \
    133133    for (i=0; i < npt; i++, o++, i2++) {                                                                     \
    134134        *o = OP;                                                                                             \
     
    145145    ps##TYPE *i1 = NULL;                                                                                     \
    146146    ps##TYPE *i2 = NULL;                                                                                     \
    147     numRows = ((psImage* )IN1)->numRows;                                                                      \
    148     numCols = ((psImage* )IN1)->numCols;                                                                      \
     147    numRows = ((psImage* )IN1)->numRows;                                                                     \
     148    numCols = ((psImage* )IN1)->numCols;                                                                     \
    149149    for(j = 0; j < numCols; j++) {                                                                           \
    150         o  = ((psImage* )OUT)->data.TYPE[j];                                                                  \
    151         i1 = &((psScalar* )IN1)->data.TYPE;                                                                   \
    152         i2 = ((psImage* )IN2)->data.TYPE[j];                                                                  \
     150        o  = ((psImage* )OUT)->data.TYPE[j];                                                                 \
     151        i1 = &((psScalar* )IN1)->data.TYPE;                                                                  \
     152        i2 = ((psImage* )IN2)->data.TYPE[j];                                                                 \
    153153        for(i = 0; i < numRows; i++, o++, i2++) {                                                            \
    154154            *o = OP;                                                                                         \
     
    165165    ps##TYPE *i1 = NULL;                                                                                     \
    166166    ps##TYPE *i2 = NULL;                                                                                     \
    167     n1  = ((psVector* )IN1)->n;                                                                               \
    168     o  = ((psVector* )OUT)->data.TYPE;                                                                        \
    169     i1 = ((psVector* )IN1)->data.TYPE;                                                                        \
    170     i2 = &((psScalar* )IN2)->data.TYPE;                                                                       \
     167    n1  = ((psVector* )IN1)->n;                                                                              \
     168    o  = ((psVector* )OUT)->data.TYPE;                                                                       \
     169    i1 = ((psVector* )IN1)->data.TYPE;                                                                       \
     170    i2 = &((psScalar* )IN2)->data.TYPE;                                                                      \
    171171    for (i=0; i < n1; i++, o++, i1++) {                                                                      \
    172172        *o = OP;                                                                                             \
     
    182182    ps##TYPE *i1 = NULL;                                                                                     \
    183183    ps##TYPE *i2 = NULL;                                                                                     \
    184     n1  = ((psVector* )IN1)->n;                                                                               \
    185     n2  = ((psVector* )IN2)->n;                                                                               \
     184    n1  = ((psVector* )IN1)->n;                                                                              \
     185    n2  = ((psVector* )IN2)->n;                                                                              \
    186186    if(n1 != n2) {                                                                                           \
    187187        psError(__func__, ": Inconsistent element count: %d vs %d", n1, n2);                                 \
    188188        return OUT;                                                                                          \
    189189    }                                                                                                        \
    190     o  = ((psVector* )OUT)->data.TYPE;                                                                        \
    191     i1 = ((psVector* )IN1)->data.TYPE;                                                                        \
    192     i2 = ((psVector* )IN2)->data.TYPE;                                                                        \
     190    o  = ((psVector* )OUT)->data.TYPE;                                                                       \
     191    i1 = ((psVector* )IN1)->data.TYPE;                                                                       \
     192    i2 = ((psVector* )IN2)->data.TYPE;                                                                       \
    193193    for (i=0; i < n1; i++, o++, i1++, i2++) {                                                                \
    194194        *o = OP;                                                                                             \
     
    207207    ps##TYPE *i1 = NULL;                                                                                     \
    208208    ps##TYPE *i2 = NULL;                                                                                     \
    209     n1  = ((psVector* )IN1)->n;                                                                               \
    210     dim1 = ((psVector* )IN1)->type.dimen;                                                                     \
    211     numRows2 = ((psImage* )IN2)->numRows;                                                                     \
    212     numCols2 = ((psImage* )IN2)->numCols;                                                                     \
     209    n1  = ((psVector* )IN1)->n;                                                                              \
     210    dim1 = ((psVector* )IN1)->type.dimen;                                                                    \
     211    numRows2 = ((psImage* )IN2)->numRows;                                                                    \
     212    numCols2 = ((psImage* )IN2)->numCols;                                                                    \
    213213    \
    214214    if(dim1 == PS_DIMEN_VECTOR) { /* Regular vectors */                                                      \
     
    218218        }                                                                                                    \
    219219        \
    220         i1 = ((psVector* )IN1)->data.TYPE;                                                                    \
     220        i1 = ((psVector* )IN1)->data.TYPE;                                                                   \
    221221        for(j = 0; j < numRows2; j++, i1++) {                                                                \
    222             o  = ((psImage* )OUT)->data.TYPE[j];                                                              \
    223             i2 = ((psImage* )IN2)->data.TYPE[j];                                                              \
     222            o  = ((psImage* )OUT)->data.TYPE[j];                                                             \
     223            i2 = ((psImage* )IN2)->data.TYPE[j];                                                             \
    224224            for(i = 0; i < numCols2; i++, o++, i2++) {                                                       \
    225225                *o = OP;                                                                                     \
     
    233233        \
    234234        for(j = 0; j < numRows2; j++) {                                                                      \
    235             o  = ((psImage* )OUT)->data.TYPE[j];                                                              \
    236             i1 = ((psVector* )IN1)->data.TYPE;                                                                \
    237             i2 = ((psImage* )IN2)->data.TYPE[j];                                                              \
     235            o  = ((psImage* )OUT)->data.TYPE[j];                                                             \
     236            i1 = ((psVector* )IN1)->data.TYPE;                                                               \
     237            i2 = ((psImage* )IN2)->data.TYPE[j];                                                             \
    238238            for(i = 0; i < numCols2; i++, o++, i1++, i2++) {                                                 \
    239239                *o = OP;                                                                                     \
     
    253253    ps##TYPE *i1 = NULL;                                                                                     \
    254254    ps##TYPE *i2 = NULL;                                                                                     \
    255     numRows = ((psImage* )IN1)->numRows;                                                                      \
    256     numCols = ((psImage* )IN1)->numCols;                                                                      \
     255    numRows = ((psImage* )IN1)->numRows;                                                                     \
     256    numCols = ((psImage* )IN1)->numCols;                                                                     \
    257257    for(j = 0; j < numRows; j++) {                                                                           \
    258         o  = ((psImage* )OUT)->data.TYPE[j];                                                                  \
    259         i1 = ((psImage* )IN1)->data.TYPE[j];                                                                  \
    260         i2 = &((psScalar* )IN2)->data.TYPE;                                                                   \
     258        o  = ((psImage* )OUT)->data.TYPE[j];                                                                 \
     259        i1 = ((psImage* )IN1)->data.TYPE[j];                                                                 \
     260        i2 = &((psScalar* )IN2)->data.TYPE;                                                                  \
    261261        for(i = 0; i < numCols; i++, o++, i1++) {                                                            \
    262262            *o = OP;                                                                                         \
     
    276276    ps##TYPE *i1 = NULL;                                                                                     \
    277277    ps##TYPE *i2 = NULL;                                                                                     \
    278     n2  = ((psVector* )IN2)->n;                                                                               \
    279     dim2 = ((psVector* )IN2)->type.dimen;                                                                     \
    280     numRows1 = ((psImage* )IN1)->numRows;                                                                     \
    281     numCols1 = ((psImage* )IN1)->numCols;                                                                     \
     278    n2  = ((psVector* )IN2)->n;                                                                              \
     279    dim2 = ((psVector* )IN2)->type.dimen;                                                                    \
     280    numRows1 = ((psImage* )IN1)->numRows;                                                                    \
     281    numCols1 = ((psImage* )IN1)->numCols;                                                                    \
    282282    \
    283283    if(dim2 == PS_DIMEN_VECTOR) { /* Regular vectors */                                                      \
     
    287287        }                                                                                                    \
    288288        \
    289         i2 = ((psVector* )IN2)->data.TYPE;                                                                    \
     289        i2 = ((psVector* )IN2)->data.TYPE;                                                                   \
    290290        for(j = 0; j < numRows1; j++, i1++) {                                                                \
    291             o  = ((psImage* )OUT)->data.TYPE[j];                                                              \
    292             i1 = ((psImage* )IN1)->data.TYPE[j];                                                              \
     291            o  = ((psImage* )OUT)->data.TYPE[j];                                                             \
     292            i1 = ((psImage* )IN1)->data.TYPE[j];                                                             \
    293293            for(i = 0; i < numCols1; i++, o++, i1++) {                                                       \
    294294                *o = OP;                                                                                     \
     
    302302        \
    303303        for(j = 0; j < numRows1; j++) {                                                                      \
    304             o  = ((psImage* )OUT)->data.TYPE[j];                                                              \
    305             i1 = ((psVector* )IN2)->data.TYPE;                                                                \
    306             i2 = ((psImage* )IN1)->data.TYPE[j];                                                              \
     304            o  = ((psImage* )OUT)->data.TYPE[j];                                                             \
     305            i1 = ((psVector* )IN2)->data.TYPE;                                                               \
     306            i2 = ((psImage* )IN1)->data.TYPE[j];                                                             \
    307307            for(i = 0; i < numCols1; i++, o++, i2++, i1++) {                                                 \
    308308                *o = OP;                                                                                     \
     
    323323    ps##TYPE *i1 = NULL;                                                                                     \
    324324    ps##TYPE *i2 = NULL;                                                                                     \
    325     numRows1 = ((psImage* )IN1)->numRows;                                                                     \
    326     numCols1 = ((psImage* )IN1)->numCols;                                                                     \
    327     numRows2 = ((psImage* )IN2)->numRows;                                                                     \
    328     numCols2 = ((psImage* )IN2)->numCols;                                                                     \
     325    numRows1 = ((psImage* )IN1)->numRows;                                                                    \
     326    numCols1 = ((psImage* )IN1)->numCols;                                                                    \
     327    numRows2 = ((psImage* )IN2)->numRows;                                                                    \
     328    numCols2 = ((psImage* )IN2)->numCols;                                                                    \
    329329    if(numRows1!=numRows2 || numCols1!=numCols2) {                                                           \
    330330        psError(__func__, ": Inconsistent element count: numRows: %d vs %d numCols: %d vs %d", numRows1,     \
     
    333333    }                                                                                                        \
    334334    for(j = 0; j < numRows1; j++) {                                                                          \
    335         o  = ((psImage* )OUT)->data.TYPE[j];                                                                  \
    336         i1 = ((psImage* )IN1)->data.TYPE[j];                                                                  \
    337         i2 = ((psImage* )IN2)->data.TYPE[j];                                                                  \
     335        o  = ((psImage* )OUT)->data.TYPE[j];                                                                 \
     336        i1 = ((psImage* )IN1)->data.TYPE[j];                                                                 \
     337        i2 = ((psImage* )IN2)->data.TYPE[j];                                                                 \
    338338        for(i = 0; i < numCols1; i++, o++, i1++, i2++) {                                                     \
    339339            *o = OP;                                                                                         \
  • trunk/psLib/src/mathtypes/psScalar.c

    r1453 r1648  
    99 *  @author Ross Harman, MHPCC
    1010 *
    11  *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2004-08-10 19:27:47 $
     11 *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2004-08-27 23:34:05 $
    1313 *
    1414 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    130130psScalar* psScalarCopy(psScalar *scalar)
    131131{
     132    psElemType dataType;
    132133    psScalar *newScalar = NULL;
    133134
     
    136137    }
    137138
    138     newScalar =  psScalarAlloc(scalar->data.C64, scalar->type.type);
    139     if (newScalar == NULL) {
    140         psAbort(__func__, " : Line %d - Failed to allocate memory", __LINE__);
     139    dataType = scalar->type.type;
     140    switch (dataType) {
     141    case PS_TYPE_S8:
     142        newScalar =  psScalarAlloc(scalar->data.S8, dataType);
     143        break;
     144    case PS_TYPE_U8:
     145        newScalar =  psScalarAlloc(scalar->data.U8, dataType);
     146        break;
     147    case PS_TYPE_S16:
     148        newScalar =  psScalarAlloc(scalar->data.S16, dataType);
     149        break;
     150    case PS_TYPE_U16:
     151        newScalar =  psScalarAlloc(scalar->data.U16, dataType);
     152        break;
     153    case PS_TYPE_S32:
     154        newScalar =  psScalarAlloc(scalar->data.S32, dataType);
     155        break;
     156    case PS_TYPE_U32:
     157        newScalar =  psScalarAlloc(scalar->data.U32, dataType);
     158        break;
     159    case PS_TYPE_S64:
     160        newScalar =  psScalarAlloc(scalar->data.S64, dataType);
     161        break;
     162    case PS_TYPE_U64:
     163        newScalar =  psScalarAlloc(scalar->data.U64, dataType);
     164        break;
     165    case PS_TYPE_F32:
     166        newScalar =  psScalarAlloc(scalar->data.F32, dataType);
     167        break;
     168    case PS_TYPE_F64:
     169        newScalar =  psScalarAlloc(scalar->data.F64, dataType);
     170        break;
     171    case PS_TYPE_C32:
     172        newScalar =  psScalarAlloc(scalar->data.C32, dataType);
     173        break;
     174    case PS_TYPE_C64:
     175        newScalar =  psScalarAlloc(scalar->data.C64, dataType);
     176        break;
     177    default:
     178        psError(__func__, ": Line %d - Invalid PS_TYPE: %d", __LINE__, dataType);
    141179    }
    142180
  • trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic01.c

    r1647 r1648  
    1 /** @file  tst_psMatrix_01.c
     1/** @file  tst_psMatrixVectorArithmetic01.c
    22 *
    33 *  @brief Test driver for psMatrixVector arithmetic functions
     
    1010 *  @author  Ross Harman, MHPCC
    1111 *
    12  *  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
    13  *  @date  $Date: 2004-08-27 23:29:25 $
     12 *  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
     13 *  @date  $Date: 2004-08-27 23:31:22 $
    1414 *
    1515 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
  • trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic02.c

    r1541 r1648  
    11
    2 /** @file  tst_psMatrix_02.c
     2/** @file  tst_psMatrixVectorArithmetic02.c
    33 *
    44 *  @brief Test driver for psMatrixVector arithmetic functions
     
    1010 *  @author  Ross Harman, MHPCC
    1111 *
    12  *  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
    13  *  @date  $Date: 2004-08-14 01:31:30 $
     12 *  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
     13 *  @date  $Date: 2004-08-27 23:31:29 $
    1414 *
    1515 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    3737            printf("Calculated: %.2f\n", (double)(TRUTH));                                                   \
    3838        }                                                                                                    \
    39     }                                                                                                       \
     39    }                                                                                                        \
    4040}                                                                                                            \
    4141printf("\n");
     
    4545for(int i=IMAGE->numRows-1; i>-1; i--) {                                                                     \
    4646    for(int j=0; j<IMAGE->numCols; j++) {                                                                    \
    47         if(cabs(IMAGE->data.TYPE[i][j])-cabs(TRUTH) > FLT_EPSILON){                                         \
     47        if(cabs(IMAGE->data.TYPE[i][j])-cabs(TRUTH) > FLT_EPSILON){                                          \
    4848            printf("ERROR:Truth and calculated values don't match for matrix operation:\n");                 \
    4949            if(PS_IS_PSELEMTYPE_COMPLEX(IMAGE->type.type)) {                                                 \
     
    5757                printf("Calculated: %.2f\n", (double)(TRUTH));                                               \
    5858            }                                                                                                \
    59         }                                                                                                   \
     59        }                                                                                                    \
    6060    }                                                                                                        \
    6161    printf("\n");                                                                                            \
  • trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c

    r1406 r1648  
    1 /** @file  tst_psMatrix_01.c
     1/** @file  tst_psMatrixVectorArithmetic03.c
    22 *
    33 *  @brief Test driver for psMatrixVector arithmetic functions
     
    1515 *  @author  Ross Harman, MHPCC
    1616 *
    17  *  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
    18  *  @date  $Date: 2004-08-06 22:34:06 $
     17 *  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
     18 *  @date  $Date: 2004-08-27 23:31:35 $
    1919 *
    2020 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
Note: See TracChangeset for help on using the changeset viewer.