IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2230


Ignore:
Timestamp:
Oct 28, 2004, 1:03:11 PM (22 years ago)
Author:
gusciora
Message:

Modifying the psBracket code.

Location:
trunk/psLib/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/dataManip/psConstants.h

    r2228 r2230  
    66 *  @author GLG, MHPCC
    77 *
    8  *  @version $Revision: 1.30 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-10-28 22:46:57 $
     8 *  @version $Revision: 1.31 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2004-10-28 23:03:11 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
  • trunk/psLib/src/dataManip/psMinimize.c

    r2228 r2230  
    99 *  @author GLG, MHPCC
    1010 *
    11  *  @version $Revision: 1.73 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2004-10-28 22:46:57 $
     11 *  @version $Revision: 1.74 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2004-10-28 23:03:11 $
    1313 *
    1414 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    10071007    } else { \
    10081008        OUT->data.F32[i] = BASE->data.F32[i]; \
     1009    } \
     1010} \
     1011
     1012#define PS_VECTOR_F32_CHECK_ZERO_VECTOR(IN, BOOL_VAR) \
     1013BOOL_VAR = true; \
     1014for (int i=0;i<IN->n;i++) { \
     1015    if (fabs(IN->data.F32[i]) >= FLT_EPSILON) { \
     1016        BOOL_VAR = false; \
     1017        break; \
     1018    } \
     1019} \
     1020
     1021#define PS_VECTOR_WITH_MASK_F32_CHECK_ZERO_VECTOR(IN, INMASK, BOOL_VAR) \
     1022BOOL_VAR = true; \
     1023for (int i=0;i<IN->n;i++) { \
     1024    if ((INMASK->data.U8[i] == 0) && (fabs(IN->data.F32[i]) >= FLT_EPSILON)) { \
     1025        BOOL_VAR = false; \
     1026        break; \
    10091027    } \
    10101028} \
     
    10581076    float stepSize = PS_DETERMINE_BRACKET_STEP_SIZE;
    10591077    psVector *tmp = NULL;
    1060     psS32 i = 0;
    1061     psS32 null = 0;
     1078    psBool boolLineIsNull = true;
    10621079
    10631080    psTrace(".psLib.dataManip.p_psDetermineBracket", 4,
    10641081            "---- p_psDetermineBracket() begin ----\n");
    10651082
    1066     for (i=0;i<params->n;i++) {
    1067         if (paramMask->data.U8[i] == 0) {
    1068             if (line->data.F32[i] >= FLT_EPSILON) {
    1069                 null = 1;
    1070             }
    1071         }
    1072     }
    1073 
    1074     if (null == 0) {
     1083    // If the line vector is zero, then return NULL.
     1084    PS_VECTOR_WITH_MASK_F32_CHECK_ZERO_VECTOR(params, paramMask, boolLineIsNull);
     1085    if (boolLineIsNull == true) {
    10751086        psTrace(".psLib.dataManip.p_psDetermineBracket", 2,
    10761087                "p_psDetermineBracket() called with zero line vector.\n");
     
    11271138        c =+ stepSize;
    11281139
    1129         for (i=0;i<params->n;i++) {
    1130             if (paramMask->data.U8[i] == 0) {
    1131                 tmp->data.F32[i] = params->data.F32[i] + (a * line->data.F32[i]);
    1132             } else {
    1133                 tmp->data.F32[i] = params->data.F32[i];
    1134             }
    1135         }
     1140        PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, a);
    11361141        fa = func(tmp, coords);
    11371142
    1138         for (i=0;i<params->n;i++) {
    1139             if (paramMask->data.U8[i] == 0) {
    1140                 tmp->data.F32[i] = params->data.F32[i] + (c * line->data.F32[i]);
    1141             } else {
    1142                 tmp->data.F32[i] = params->data.F32[i];
    1143             }
    1144         }
     1143        PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, c);
    11451144        fc = func(tmp, coords);
    11461145
     
    12091208    float stepSize = PS_DETERMINE_BRACKET_STEP_SIZE;
    12101209    psVector *tmp = NULL;
    1211     psS32 i = 0;
    1212     psS32 null = 0;
     1210    psBool boolLineIsNull = true;
    12131211
    12141212    psTrace(".psLib.dataManip.p_psDetermineBracket", 4,
    12151213            "---- p_psDetermineBracket() begin ----\n");
    12161214
    1217     for (i=0;i<params->n;i++) {
    1218         if (paramMask->data.U8[i] == 0) {
    1219             if (line->data.F32[i] >= FLT_EPSILON) {
    1220                 null = 1;
    1221             }
    1222         }
    1223     }
    1224 
    1225     if (null == 0) {
     1215    // If the line vector is zero, then return NULL.
     1216    PS_VECTOR_WITH_MASK_F32_CHECK_ZERO_VECTOR(params, paramMask, boolLineIsNull);
     1217    if (boolLineIsNull == true) {
    12261218        psTrace(".psLib.dataManip.p_psDetermineBracket", 2,
    12271219                "p_psDetermineBracket() called with zero line vector.\n");
     
    12341226    tmp = psVectorAlloc(params->n, PS_TYPE_F32);
    12351227
    1236     b = 0;
    1237     a = -stepSize;
    1238     c = stepSize;
    1239 
    1240     for (i=0;i<params->n;i++) {
    1241         if (paramMask->data.U8[i] == 0) {
    1242             tmp->data.F32[i] = params->data.F32[i] + (a * line->data.F32[i]);
    1243         } else {
    1244             tmp->data.F32[i] = params->data.F32[i];
    1245         }
    1246     }
     1228    a = 0.0;
     1229    b = stepSize;
     1230
     1231    PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, a);
    12471232    fa = func(tmp, coords);
    12481233
    1249     for (i=0;i<params->n;i++) {
    1250         if (paramMask->data.U8[i] == 0) {
    1251             tmp->data.F32[i] = params->data.F32[i] + (b * line->data.F32[i]);
    1252         } else {
    1253             tmp->data.F32[i] = params->data.F32[i];
    1254         }
    1255     }
     1234    PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, b);
    12561235    fb = func(tmp, coords);
    1257 
    1258     for (i=0;i<params->n;i++) {
    1259         if (paramMask->data.U8[i] == 0) {
    1260             tmp->data.F32[i] = params->data.F32[i] + (c * line->data.F32[i]);
    1261         } else {
    1262             tmp->data.F32[i] = params->data.F32[i];
    1263         }
    1264     }
    1265     fc = func(tmp, coords);
    12661236
    12671237    if (fa < fb) {
     
    12961266        c =+ stepSize;
    12971267
    1298         for (i=0;i<params->n;i++) {
    1299             if (paramMask->data.U8[i] == 0) {
    1300                 tmp->data.F32[i] = params->data.F32[i] + (a * line->data.F32[i]);
    1301             } else {
    1302                 tmp->data.F32[i] = params->data.F32[i];
    1303             }
    1304         }
     1268        PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, a);
    13051269        fa = func(tmp, coords);
    13061270
    1307         for (i=0;i<params->n;i++) {
    1308             if (paramMask->data.U8[i] == 0) {
    1309                 tmp->data.F32[i] = params->data.F32[i] + (c * line->data.F32[i]);
    1310             } else {
    1311                 tmp->data.F32[i] = params->data.F32[i];
    1312             }
    1313         }
     1271        PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, c);
    13141272        fc = func(tmp, coords);
    13151273
     
    13911349    psVector *tmpn = NULL;
    13921350    psS32 i = 0;
    1393     psS32 null = 0;
     1351    psS32 boolLineIsNull = true;
    13941352
    13951353    psTrace(".psLib.dataManip.p_psLineMin", 4,
     
    14041362            if (paramMask->data.U8[i] == 0) {
    14051363                if (line->data.F32[i] >= FLT_EPSILON) {
    1406                     null = 1;
     1364                    boolLineIsNull = false;
    14071365                    psTrace(".psLib.dataManip.p_psLineMin", 4,
    14081366                            "line->data.F32[%d] is %f\n", i, line->data.F32[i]);
     
    14131371        for (i=0;i<params->n;i++) {
    14141372            if (line->data.F32[i] >= FLT_EPSILON) {
    1415                 null = 1;
     1373                boolLineIsNull = false;
    14161374                psTrace(".psLib.dataManip.p_psLineMin", 4,
    14171375                        "line->data.F32[%d] is %f\n", i, line->data.F32[i]);
     
    14201378    }
    14211379
    1422     if (null == 0) {
     1380    if (boolLineIsNull == true) {
    14231381        psTrace(".psLib.dataManip.p_psLineMin", 2,
    14241382                "p_psLineMin() called with zero line vector.\n");
  • trunk/psLib/src/math/psConstants.h

    r2228 r2230  
    66 *  @author GLG, MHPCC
    77 *
    8  *  @version $Revision: 1.30 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-10-28 22:46:57 $
     8 *  @version $Revision: 1.31 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2004-10-28 23:03:11 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
  • trunk/psLib/src/math/psMinimize.c

    r2228 r2230  
    99 *  @author GLG, MHPCC
    1010 *
    11  *  @version $Revision: 1.73 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2004-10-28 22:46:57 $
     11 *  @version $Revision: 1.74 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2004-10-28 23:03:11 $
    1313 *
    1414 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    10071007    } else { \
    10081008        OUT->data.F32[i] = BASE->data.F32[i]; \
     1009    } \
     1010} \
     1011
     1012#define PS_VECTOR_F32_CHECK_ZERO_VECTOR(IN, BOOL_VAR) \
     1013BOOL_VAR = true; \
     1014for (int i=0;i<IN->n;i++) { \
     1015    if (fabs(IN->data.F32[i]) >= FLT_EPSILON) { \
     1016        BOOL_VAR = false; \
     1017        break; \
     1018    } \
     1019} \
     1020
     1021#define PS_VECTOR_WITH_MASK_F32_CHECK_ZERO_VECTOR(IN, INMASK, BOOL_VAR) \
     1022BOOL_VAR = true; \
     1023for (int i=0;i<IN->n;i++) { \
     1024    if ((INMASK->data.U8[i] == 0) && (fabs(IN->data.F32[i]) >= FLT_EPSILON)) { \
     1025        BOOL_VAR = false; \
     1026        break; \
    10091027    } \
    10101028} \
     
    10581076    float stepSize = PS_DETERMINE_BRACKET_STEP_SIZE;
    10591077    psVector *tmp = NULL;
    1060     psS32 i = 0;
    1061     psS32 null = 0;
     1078    psBool boolLineIsNull = true;
    10621079
    10631080    psTrace(".psLib.dataManip.p_psDetermineBracket", 4,
    10641081            "---- p_psDetermineBracket() begin ----\n");
    10651082
    1066     for (i=0;i<params->n;i++) {
    1067         if (paramMask->data.U8[i] == 0) {
    1068             if (line->data.F32[i] >= FLT_EPSILON) {
    1069                 null = 1;
    1070             }
    1071         }
    1072     }
    1073 
    1074     if (null == 0) {
     1083    // If the line vector is zero, then return NULL.
     1084    PS_VECTOR_WITH_MASK_F32_CHECK_ZERO_VECTOR(params, paramMask, boolLineIsNull);
     1085    if (boolLineIsNull == true) {
    10751086        psTrace(".psLib.dataManip.p_psDetermineBracket", 2,
    10761087                "p_psDetermineBracket() called with zero line vector.\n");
     
    11271138        c =+ stepSize;
    11281139
    1129         for (i=0;i<params->n;i++) {
    1130             if (paramMask->data.U8[i] == 0) {
    1131                 tmp->data.F32[i] = params->data.F32[i] + (a * line->data.F32[i]);
    1132             } else {
    1133                 tmp->data.F32[i] = params->data.F32[i];
    1134             }
    1135         }
     1140        PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, a);
    11361141        fa = func(tmp, coords);
    11371142
    1138         for (i=0;i<params->n;i++) {
    1139             if (paramMask->data.U8[i] == 0) {
    1140                 tmp->data.F32[i] = params->data.F32[i] + (c * line->data.F32[i]);
    1141             } else {
    1142                 tmp->data.F32[i] = params->data.F32[i];
    1143             }
    1144         }
     1143        PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, c);
    11451144        fc = func(tmp, coords);
    11461145
     
    12091208    float stepSize = PS_DETERMINE_BRACKET_STEP_SIZE;
    12101209    psVector *tmp = NULL;
    1211     psS32 i = 0;
    1212     psS32 null = 0;
     1210    psBool boolLineIsNull = true;
    12131211
    12141212    psTrace(".psLib.dataManip.p_psDetermineBracket", 4,
    12151213            "---- p_psDetermineBracket() begin ----\n");
    12161214
    1217     for (i=0;i<params->n;i++) {
    1218         if (paramMask->data.U8[i] == 0) {
    1219             if (line->data.F32[i] >= FLT_EPSILON) {
    1220                 null = 1;
    1221             }
    1222         }
    1223     }
    1224 
    1225     if (null == 0) {
     1215    // If the line vector is zero, then return NULL.
     1216    PS_VECTOR_WITH_MASK_F32_CHECK_ZERO_VECTOR(params, paramMask, boolLineIsNull);
     1217    if (boolLineIsNull == true) {
    12261218        psTrace(".psLib.dataManip.p_psDetermineBracket", 2,
    12271219                "p_psDetermineBracket() called with zero line vector.\n");
     
    12341226    tmp = psVectorAlloc(params->n, PS_TYPE_F32);
    12351227
    1236     b = 0;
    1237     a = -stepSize;
    1238     c = stepSize;
    1239 
    1240     for (i=0;i<params->n;i++) {
    1241         if (paramMask->data.U8[i] == 0) {
    1242             tmp->data.F32[i] = params->data.F32[i] + (a * line->data.F32[i]);
    1243         } else {
    1244             tmp->data.F32[i] = params->data.F32[i];
    1245         }
    1246     }
     1228    a = 0.0;
     1229    b = stepSize;
     1230
     1231    PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, a);
    12471232    fa = func(tmp, coords);
    12481233
    1249     for (i=0;i<params->n;i++) {
    1250         if (paramMask->data.U8[i] == 0) {
    1251             tmp->data.F32[i] = params->data.F32[i] + (b * line->data.F32[i]);
    1252         } else {
    1253             tmp->data.F32[i] = params->data.F32[i];
    1254         }
    1255     }
     1234    PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, b);
    12561235    fb = func(tmp, coords);
    1257 
    1258     for (i=0;i<params->n;i++) {
    1259         if (paramMask->data.U8[i] == 0) {
    1260             tmp->data.F32[i] = params->data.F32[i] + (c * line->data.F32[i]);
    1261         } else {
    1262             tmp->data.F32[i] = params->data.F32[i];
    1263         }
    1264     }
    1265     fc = func(tmp, coords);
    12661236
    12671237    if (fa < fb) {
     
    12961266        c =+ stepSize;
    12971267
    1298         for (i=0;i<params->n;i++) {
    1299             if (paramMask->data.U8[i] == 0) {
    1300                 tmp->data.F32[i] = params->data.F32[i] + (a * line->data.F32[i]);
    1301             } else {
    1302                 tmp->data.F32[i] = params->data.F32[i];
    1303             }
    1304         }
     1268        PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, a);
    13051269        fa = func(tmp, coords);
    13061270
    1307         for (i=0;i<params->n;i++) {
    1308             if (paramMask->data.U8[i] == 0) {
    1309                 tmp->data.F32[i] = params->data.F32[i] + (c * line->data.F32[i]);
    1310             } else {
    1311                 tmp->data.F32[i] = params->data.F32[i];
    1312             }
    1313         }
     1271        PS_VECTOR_ADD_MULTIPLE(params, paramMask, line, tmp, c);
    13141272        fc = func(tmp, coords);
    13151273
     
    13911349    psVector *tmpn = NULL;
    13921350    psS32 i = 0;
    1393     psS32 null = 0;
     1351    psS32 boolLineIsNull = true;
    13941352
    13951353    psTrace(".psLib.dataManip.p_psLineMin", 4,
     
    14041362            if (paramMask->data.U8[i] == 0) {
    14051363                if (line->data.F32[i] >= FLT_EPSILON) {
    1406                     null = 1;
     1364                    boolLineIsNull = false;
    14071365                    psTrace(".psLib.dataManip.p_psLineMin", 4,
    14081366                            "line->data.F32[%d] is %f\n", i, line->data.F32[i]);
     
    14131371        for (i=0;i<params->n;i++) {
    14141372            if (line->data.F32[i] >= FLT_EPSILON) {
    1415                 null = 1;
     1373                boolLineIsNull = false;
    14161374                psTrace(".psLib.dataManip.p_psLineMin", 4,
    14171375                        "line->data.F32[%d] is %f\n", i, line->data.F32[i]);
     
    14201378    }
    14211379
    1422     if (null == 0) {
     1380    if (boolLineIsNull == true) {
    14231381        psTrace(".psLib.dataManip.p_psLineMin", 2,
    14241382                "p_psLineMin() called with zero line vector.\n");
Note: See TracChangeset for help on using the changeset viewer.