Changeset 9730 for trunk/psLib/src/math/psPolynomial.c
- Timestamp:
- Oct 24, 2006, 12:55:05 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/math/psPolynomial.c (modified) (31 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/math/psPolynomial.c
r9540 r9730 7 7 * polynomials. It also contains a Gaussian functions. 8 8 * 9 * @version $Revision: 1.15 1$ $Name: not supported by cvs2svn $10 * @date $Date: 2006-10- 13 22:04:58$9 * @version $Revision: 1.152 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2006-10-24 22:52:56 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 266 266 // General case where the Chebyshev poly has 2 or more terms. 267 267 d = psVectorAlloc(nTerms, PS_TYPE_F64); 268 d->n = d->nalloc;269 268 if(poly->mask[nTerms-1] == 0) { 270 269 d->data.F64[nTerms-1] = poly->coeff[nTerms-1]; … … 571 570 psTrace("psLib.math", 4, "---- %s() end ----\n", __func__); 572 571 return(tmp * exp(-((x - mean) * (x - mean)) / (2.0 * sigma * sigma))); 573 }574 575 /*****************************************************************************576 p_psGaussianDev()577 This private routine (formerly a psLib API routine) creates a psVector of the578 specified size and type F32 and fills it with a random Gaussian distribution579 of numbers with the specified mean and sigma.580 581 XXX: It's possible to have a different seed everytime. However, for now,582 for testability, we use a common seed.583 *****************************************************************************/584 #define PS_XXX_GAUSSIAN_SEED 1995585 psVector* p_psGaussianDev(psF32 mean,586 psF32 sigma,587 unsigned int Npts)588 {589 PS_ASSERT_INT_NONNEGATIVE(Npts, NULL);590 591 // psRandom *r = psRandomAlloc(PS_RANDOM_TAUS, p_psRandomGetSystemSeed());592 psRandom *r = psRandomAlloc(PS_RANDOM_TAUS, PS_XXX_GAUSSIAN_SEED);593 psVector* gauss = psVectorAlloc(Npts, PS_TYPE_F32);594 for (unsigned int i = 0; i < Npts; i++) {595 gauss->data.F32[i] = mean + p_psRandomGaussian(r, sigma);596 gauss->n++;597 }598 psFree(r);599 600 return(gauss);601 572 } 602 573 … … 808 779 for (unsigned int i=0;i<x->n;i++) { 809 780 tmp->data.F64[i] = psPolynomial1DEval(poly, x->data.F64[i]); 810 tmp->n++;811 781 } 812 782 break; … … 815 785 for (unsigned int i=0;i<x->n;i++) { 816 786 tmp->data.F32[i] = psPolynomial1DEval(poly, x->data.F32[i]); 817 tmp->n++;818 787 } 819 788 break; … … 877 846 for (unsigned int i=0; i<vecLen; i++) { 878 847 tmp->data.F32[i] = psPolynomial2DEval(poly,x->data.F32[i],y->data.F32[i]); 879 tmp->n++;880 848 } 881 849 break; … … 892 860 for (unsigned int i=0; i<vecLen; i++) { 893 861 tmp->data.F64[i] = psPolynomial2DEval(poly,x->data.F64[i],y->data.F64[i]); 894 tmp->n++;895 862 } 896 863 break; … … 959 926 tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i], 960 927 y->data.F32[i], z->data.F32[i]); 961 tmp->n++;962 928 } 963 929 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) … … 966 932 tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i], 967 933 y->data.F32[i], z->data.F64[i]); 968 tmp->n++;969 934 } 970 935 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) … … 973 938 tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i], 974 939 y->data.F64[i], z->data.F32[i]); 975 tmp->n++;976 940 } 977 941 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) … … 980 944 tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F32[i], 981 945 y->data.F64[i], z->data.F64[i]); 982 tmp->n++;983 946 } 984 947 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) … … 987 950 tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i], 988 951 y->data.F32[i], z->data.F32[i]); 989 tmp->n++;990 952 } 991 953 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) … … 994 956 tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i], 995 957 y->data.F32[i], z->data.F64[i]); 996 tmp->n++;997 958 } 998 959 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) … … 1001 962 tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i], 1002 963 y->data.F64[i], z->data.F32[i]); 1003 tmp->n++;1004 964 } 1005 965 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) … … 1008 968 tmp->data.F64[i] = psPolynomial3DEval(poly, x->data.F64[i], 1009 969 y->data.F64[i], z->data.F64[i]); 1010 tmp->n++;1011 970 } 1012 971 } … … 1079 1038 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], 1080 1039 y->data.F32[i], z->data.F32[i], t->data.F32[i]); 1081 tmp->n++;1082 1040 } 1083 1041 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) … … 1086 1044 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], 1087 1045 y->data.F32[i], z->data.F32[i], t->data.F64[i]); 1088 tmp->n++;1089 1046 } 1090 1047 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) … … 1093 1050 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], 1094 1051 y->data.F32[i], z->data.F64[i], t->data.F32[i]); 1095 tmp->n++;1096 1052 } 1097 1053 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F32) … … 1100 1056 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], 1101 1057 y->data.F32[i], z->data.F64[i], t->data.F64[i]); 1102 tmp->n++;1103 1058 } 1104 1059 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) … … 1107 1062 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], 1108 1063 y->data.F64[i], z->data.F32[i], t->data.F32[i]); 1109 tmp->n++;1110 1064 } 1111 1065 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) … … 1114 1068 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], 1115 1069 y->data.F64[i], z->data.F32[i], t->data.F64[i]); 1116 tmp->n++;1117 1070 } 1118 1071 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) … … 1121 1074 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], 1122 1075 y->data.F64[i], z->data.F64[i], t->data.F32[i]); 1123 tmp->n++;1124 1076 } 1125 1077 } else if ((x->type.type == PS_TYPE_F32) && (y->type.type == PS_TYPE_F64) … … 1128 1080 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F32[i], 1129 1081 y->data.F64[i], z->data.F64[i], t->data.F64[i]); 1130 tmp->n++;1131 1082 } 1132 1083 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) … … 1135 1086 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], 1136 1087 y->data.F32[i], z->data.F32[i], t->data.F32[i]); 1137 tmp->n++;1138 1088 } 1139 1089 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) … … 1142 1092 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], 1143 1093 y->data.F32[i], z->data.F32[i], t->data.F64[i]); 1144 tmp->n++;1145 1094 } 1146 1095 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) … … 1149 1098 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], 1150 1099 y->data.F32[i], z->data.F64[i], t->data.F32[i]); 1151 tmp->n++;1152 1100 } 1153 1101 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F32) … … 1156 1104 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], 1157 1105 y->data.F32[i], z->data.F64[i], t->data.F64[i]); 1158 tmp->n++;1159 1106 } 1160 1107 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) … … 1163 1110 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], 1164 1111 y->data.F64[i], z->data.F32[i], t->data.F32[i]); 1165 tmp->n++;1166 1112 } 1167 1113 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) … … 1170 1116 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], 1171 1117 y->data.F64[i], z->data.F32[i], t->data.F64[i]); 1172 tmp->n++;1173 1118 } 1174 1119 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) … … 1177 1122 tmp->data.F64[i] = psPolynomial4DEval(poly, x->data.F64[i], 1178 1123 y->data.F64[i], z->data.F64[i], t->data.F32[i]); 1179 tmp->n++;1180 1124 } 1181 1125 } else if ((x->type.type == PS_TYPE_F64) && (y->type.type == PS_TYPE_F64) … … 1185 1129 y->data.F64[i], z->data.F64[i], 1186 1130 t->data.F64[i]); 1187 tmp->n++;1188 1131 } 1189 1132 }
Note:
See TracChangeset
for help on using the changeset viewer.
