Changeset 6484 for trunk/psLib/src/math/psPolynomial.c
- Timestamp:
- Feb 24, 2006, 1:43:16 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/math/psPolynomial.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/math/psPolynomial.c
r6437 r6484 7 7 * polynomials. It also contains a Gaussian functions. 8 8 * 9 * @version $Revision: 1.14 3$ $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 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 589 589 for (unsigned int i = 0; i < Npts; i++) { 590 590 gauss->data.F32[i] = mean + p_psRandomGaussian(r, sigma); 591 gauss->n++; 591 592 } 592 593 psFree(r); … … 802 803 for (unsigned int i=0;i<x->n;i++) { 803 804 tmp->data.F64[i] = psPolynomial1DEval(poly, x->data.F64[i]); 805 tmp->n++; 804 806 } 805 807 break; … … 808 810 for (unsigned int i=0;i<x->n;i++) { 809 811 tmp->data.F32[i] = psPolynomial1DEval(poly, x->data.F32[i]); 812 tmp->n++; 810 813 } 811 814 break; … … 869 872 for (unsigned int i=0; i<vecLen; i++) { 870 873 tmp->data.F32[i] = psPolynomial2DEval(poly,x->data.F32[i],y->data.F32[i]); 874 tmp->n++; 871 875 } 872 876 break; … … 883 887 for (unsigned int i=0; i<vecLen; i++) { 884 888 tmp->data.F64[i] = psPolynomial2DEval(poly,x->data.F64[i],y->data.F64[i]); 889 tmp->n++; 885 890 } 886 891 break; … … 944 949 // Evaluate polynomial 945 950 // 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++; 977 1006 } 978 1007 } … … 1040 1069 // Evaluate polynomial 1041 1070 // 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], 1105 1181 t->data.F64[i]); 1182 tmp->n++; 1106 1183 } 1107 1184 }
Note:
See TracChangeset
for help on using the changeset viewer.
