IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 24, 2006, 1:43:16 PM (20 years ago)
Author:
drobbin
Message:

Changed psArray & psVector to zero 'n' upon allocation. Used to set vector->n = nalloc.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/math/psPolynomial.c

    r6437 r6484  
    77*  polynomials.  It also contains a Gaussian functions.
    88*
    9 *  @version $Revision: 1.143 $ $Name: not supported by cvs2svn $
    10 *  @date $Date: 2006-02-17 00:56:48 $
     9*  @version $Revision: 1.144 $ $Name: not supported by cvs2svn $
     10*  @date $Date: 2006-02-24 23:43:15 $
    1111*
    1212*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    589589    for (unsigned int i = 0; i < Npts; i++) {
    590590        gauss->data.F32[i] = mean + p_psRandomGaussian(r, sigma);
     591        gauss->n++;
    591592    }
    592593    psFree(r);
     
    802803        for (unsigned int i=0;i<x->n;i++) {
    803804            tmp->data.F64[i] = psPolynomial1DEval(poly, x->data.F64[i]);
     805            tmp->n++;
    804806        }
    805807        break;
     
    808810        for (unsigned int i=0;i<x->n;i++) {
    809811            tmp->data.F32[i] = psPolynomial1DEval(poly, x->data.F32[i]);
     812            tmp->n++;
    810813        }
    811814        break;
     
    869872        for (unsigned int i=0; i<vecLen; i++) {
    870873            tmp->data.F32[i] = psPolynomial2DEval(poly,x->data.F32[i],y->data.F32[i]);
     874            tmp->n++;
    871875        }
    872876        break;
     
    883887        for (unsigned int i=0; i<vecLen; i++) {
    884888            tmp->data.F64[i] = psPolynomial2DEval(poly,x->data.F64[i],y->data.F64[i]);
     889            tmp->n++;
    885890        }
    886891        break;
     
    944949    // Evaluate polynomial
    945950    // XXX: Consult with IfA: is this how they want to handle multiple data types?
    946     if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F32)) {
    947         for (unsigned int i = 0; i < vecLen; i++) {
    948             tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i], y->data.F32[i], z->data.F32[i]);
    949         }
    950     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F64)) {
    951         for (unsigned int i = 0; i < vecLen; i++) {
    952             tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i], y->data.F32[i], z->data.F64[i]);
    953         }
    954     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F32)) {
    955         for (unsigned int i = 0; i < vecLen; i++) {
    956             tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i], y->data.F64[i], z->data.F32[i]);
    957         }
    958     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F64)) {
    959         for (unsigned int i = 0; i < vecLen; i++) {
    960             tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i], y->data.F64[i], z->data.F64[i]);
    961         }
    962     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F32)) {
    963         for (unsigned int i = 0; i < vecLen; i++) {
    964             tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i], y->data.F32[i], z->data.F32[i]);
    965         }
    966     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F64)) {
    967         for (unsigned int i = 0; i < vecLen; i++) {
    968             tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i], y->data.F32[i], z->data.F64[i]);
    969         }
    970     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F32)) {
    971         for (unsigned int i = 0; i < vecLen; i++) {
    972             tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i], y->data.F64[i], z->data.F32[i]);
    973         }
    974     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F64)) {
    975         for (unsigned int i = 0; i < vecLen; i++) {
    976             tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i], y->data.F64[i], z->data.F64[i]);
     951    if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32)
     952            && (z->type.type == PS_TYPE_F32)) {
     953        for (unsigned int i = 0; i < vecLen; i++) {
     954            tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i],
     955                                                  y->data.F32[i], z->data.F32[i]);
     956            tmp->n++;
     957        }
     958    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32)
     959               && (z->type.type == PS_TYPE_F64)) {
     960        for (unsigned int i = 0; i < vecLen; i++) {
     961            tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i],
     962                                                  y->data.F32[i], z->data.F64[i]);
     963            tmp->n++;
     964        }
     965    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64)
     966               && (z->type.type == PS_TYPE_F32)) {
     967        for (unsigned int i = 0; i < vecLen; i++) {
     968            tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i],
     969                                                  y->data.F64[i], z->data.F32[i]);
     970            tmp->n++;
     971        }
     972    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64)
     973               && (z->type.type == PS_TYPE_F64)) {
     974        for (unsigned int i = 0; i < vecLen; i++) {
     975            tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i],
     976                                                  y->data.F64[i], z->data.F64[i]);
     977            tmp->n++;
     978        }
     979    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32)
     980               && (z->type.type == PS_TYPE_F32)) {
     981        for (unsigned int i = 0; i < vecLen; i++) {
     982            tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i],
     983                                                  y->data.F32[i], z->data.F32[i]);
     984            tmp->n++;
     985        }
     986    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32)
     987               && (z->type.type == PS_TYPE_F64)) {
     988        for (unsigned int i = 0; i < vecLen; i++) {
     989            tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i],
     990                                                  y->data.F32[i], z->data.F64[i]);
     991            tmp->n++;
     992        }
     993    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64)
     994               && (z->type.type == PS_TYPE_F32)) {
     995        for (unsigned int i = 0; i < vecLen; i++) {
     996            tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i],
     997                                                  y->data.F64[i], z->data.F32[i]);
     998            tmp->n++;
     999        }
     1000    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64)
     1001               && (z->type.type == PS_TYPE_F64)) {
     1002        for (unsigned int i = 0; i < vecLen; i++) {
     1003            tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i],
     1004                                                  y->data.F64[i], z->data.F64[i]);
     1005            tmp->n++;
    9771006        }
    9781007    }
     
    10401069    // Evaluate polynomial
    10411070    // XXX: Consult with IfA: is this how they want to handle multiple data types?
    1042     if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F32)) {
    1043         for (unsigned int i = 0; i < vecLen; i++) {
    1044             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], y->data.F32[i], z->data.F32[i], t->data.F32[i]);
    1045         }
    1046     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F64)) {
    1047         for (unsigned int i = 0; i < vecLen; i++) {
    1048             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], y->data.F32[i], z->data.F32[i], t->data.F64[i]);
    1049         }
    1050     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F32)) {
    1051         for (unsigned int i = 0; i < vecLen; i++) {
    1052             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], y->data.F32[i], z->data.F64[i], t->data.F32[i]);
    1053         }
    1054     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F64)) {
    1055         for (unsigned int i = 0; i < vecLen; i++) {
    1056             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], y->data.F32[i], z->data.F64[i], t->data.F64[i]);
    1057         }
    1058     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F32)) {
    1059         for (unsigned int i = 0; i < vecLen; i++) {
    1060             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], y->data.F64[i], z->data.F32[i], t->data.F32[i]);
    1061         }
    1062     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F64)) {
    1063         for (unsigned int i = 0; i < vecLen; i++) {
    1064             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], y->data.F64[i], z->data.F32[i], t->data.F64[i]);
    1065         }
    1066     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F32)) {
    1067         for (unsigned int i = 0; i < vecLen; i++) {
    1068             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], y->data.F64[i], z->data.F64[i], t->data.F32[i]);
    1069         }
    1070     } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F64)) {
    1071         for (unsigned int i = 0; i < vecLen; i++) {
    1072             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], y->data.F64[i], z->data.F64[i], t->data.F64[i]);
    1073         }
    1074     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F32)) {
    1075         for (unsigned int i = 0; i < vecLen; i++) {
    1076             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], y->data.F32[i], z->data.F32[i], t->data.F32[i]);
    1077         }
    1078     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F64)) {
    1079         for (unsigned int i = 0; i < vecLen; i++) {
    1080             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], y->data.F32[i], z->data.F32[i], t->data.F64[i]);
    1081         }
    1082     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F32)) {
    1083         for (unsigned int i = 0; i < vecLen; i++) {
    1084             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], y->data.F32[i], z->data.F64[i], t->data.F32[i]);
    1085         }
    1086     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F64)) {
    1087         for (unsigned int i = 0; i < vecLen; i++) {
    1088             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], y->data.F32[i], z->data.F64[i], t->data.F64[i]);
    1089         }
    1090     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F32)) {
    1091         for (unsigned int i = 0; i < vecLen; i++) {
    1092             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], y->data.F64[i], z->data.F32[i], t->data.F32[i]);
    1093         }
    1094     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F64)) {
    1095         for (unsigned int i = 0; i < vecLen; i++) {
    1096             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], y->data.F64[i], z->data.F32[i], t->data.F64[i]);
    1097         }
    1098     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F32)) {
    1099         for (unsigned int i = 0; i < vecLen; i++) {
    1100             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], y->data.F64[i], z->data.F64[i], t->data.F32[i]);
    1101         }
    1102     } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F64)) {
    1103         for (unsigned int i = 0; i < vecLen; i++) {
    1104             tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], y->data.F64[i], z->data.F64[i],
     1071    if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32)
     1072            && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F32)) {
     1073        for (unsigned int i = 0; i < vecLen; i++) {
     1074            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i],
     1075                                                  y->data.F32[i], z->data.F32[i], t->data.F32[i]);
     1076            tmp->n++;
     1077        }
     1078    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32)
     1079               && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F64)) {
     1080        for (unsigned int i = 0; i < vecLen; i++) {
     1081            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i],
     1082                                                  y->data.F32[i], z->data.F32[i], t->data.F64[i]);
     1083            tmp->n++;
     1084        }
     1085    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32)
     1086               && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F32)) {
     1087        for (unsigned int i = 0; i < vecLen; i++) {
     1088            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i],
     1089                                                  y->data.F32[i], z->data.F64[i], t->data.F32[i]);
     1090            tmp->n++;
     1091        }
     1092    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32)
     1093               && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F64)) {
     1094        for (unsigned int i = 0; i < vecLen; i++) {
     1095            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i],
     1096                                                  y->data.F32[i], z->data.F64[i], t->data.F64[i]);
     1097            tmp->n++;
     1098        }
     1099    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64)
     1100               && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F32)) {
     1101        for (unsigned int i = 0; i < vecLen; i++) {
     1102            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i],
     1103                                                  y->data.F64[i], z->data.F32[i], t->data.F32[i]);
     1104            tmp->n++;
     1105        }
     1106    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64)
     1107               && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F64)) {
     1108        for (unsigned int i = 0; i < vecLen; i++) {
     1109            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i],
     1110                                                  y->data.F64[i], z->data.F32[i], t->data.F64[i]);
     1111            tmp->n++;
     1112        }
     1113    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64)
     1114               && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F32)) {
     1115        for (unsigned int i = 0; i < vecLen; i++) {
     1116            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i],
     1117                                                  y->data.F64[i], z->data.F64[i], t->data.F32[i]);
     1118            tmp->n++;
     1119        }
     1120    } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64)
     1121               && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F64)) {
     1122        for (unsigned int i = 0; i < vecLen; i++) {
     1123            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i],
     1124                                                  y->data.F64[i], z->data.F64[i], t->data.F64[i]);
     1125            tmp->n++;
     1126        }
     1127    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32)
     1128               && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F32)) {
     1129        for (unsigned int i = 0; i < vecLen; i++) {
     1130            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i],
     1131                                                  y->data.F32[i], z->data.F32[i], t->data.F32[i]);
     1132            tmp->n++;
     1133        }
     1134    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32)
     1135               && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F64)) {
     1136        for (unsigned int i = 0; i < vecLen; i++) {
     1137            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i],
     1138                                                  y->data.F32[i], z->data.F32[i], t->data.F64[i]);
     1139            tmp->n++;
     1140        }
     1141    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32)
     1142               && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F32)) {
     1143        for (unsigned int i = 0; i < vecLen; i++) {
     1144            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i],
     1145                                                  y->data.F32[i], z->data.F64[i], t->data.F32[i]);
     1146            tmp->n++;
     1147        }
     1148    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32)
     1149               && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F64)) {
     1150        for (unsigned int i = 0; i < vecLen; i++) {
     1151            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i],
     1152                                                  y->data.F32[i], z->data.F64[i], t->data.F64[i]);
     1153            tmp->n++;
     1154        }
     1155    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64)
     1156               && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F32)) {
     1157        for (unsigned int i = 0; i < vecLen; i++) {
     1158            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i],
     1159                                                  y->data.F64[i], z->data.F32[i], t->data.F32[i]);
     1160            tmp->n++;
     1161        }
     1162    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64)
     1163               && (z->type.type == PS_TYPE_F32) && (t->type.type == PS_TYPE_F64)) {
     1164        for (unsigned int i = 0; i < vecLen; i++) {
     1165            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i],
     1166                                                  y->data.F64[i], z->data.F32[i], t->data.F64[i]);
     1167            tmp->n++;
     1168        }
     1169    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64)
     1170               && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F32)) {
     1171        for (unsigned int i = 0; i < vecLen; i++) {
     1172            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i],
     1173                                                  y->data.F64[i], z->data.F64[i], t->data.F32[i]);
     1174            tmp->n++;
     1175        }
     1176    } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64)
     1177               && (z->type.type == PS_TYPE_F64) && (t->type.type == PS_TYPE_F64)) {
     1178        for (unsigned int i = 0; i < vecLen; i++) {
     1179            tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i],
     1180                                                  y->data.F64[i], z->data.F64[i],
    11051181                                                  t->data.F64[i]);
     1182            tmp->n++;
    11061183        }
    11071184    }
Note: See TracChangeset for help on using the changeset viewer.