Changeset 1648 for trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c
- Timestamp:
- Aug 27, 2004, 1:34:05 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c
r1647 r1648 30 30 * @author Ross Harman, MHPCC 31 31 * 32 * @version $Revision: 1.2 6$ $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 $ 34 34 * 35 35 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 114 114 ps##TYPE *i1 = NULL; \ 115 115 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; \ 119 119 *o = OP; \ 120 120 } … … 127 127 ps##TYPE *i1 = NULL; \ 128 128 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; \ 133 133 for (i=0; i < npt; i++, o++, i2++) { \ 134 134 *o = OP; \ … … 145 145 ps##TYPE *i1 = NULL; \ 146 146 ps##TYPE *i2 = NULL; \ 147 numRows = ((psImage* )IN1)->numRows; \148 numCols = ((psImage* )IN1)->numCols; \147 numRows = ((psImage* )IN1)->numRows; \ 148 numCols = ((psImage* )IN1)->numCols; \ 149 149 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]; \ 153 153 for(i = 0; i < numRows; i++, o++, i2++) { \ 154 154 *o = OP; \ … … 165 165 ps##TYPE *i1 = NULL; \ 166 166 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; \ 171 171 for (i=0; i < n1; i++, o++, i1++) { \ 172 172 *o = OP; \ … … 182 182 ps##TYPE *i1 = NULL; \ 183 183 ps##TYPE *i2 = NULL; \ 184 n1 = ((psVector* )IN1)->n; \185 n2 = ((psVector* )IN2)->n; \184 n1 = ((psVector* )IN1)->n; \ 185 n2 = ((psVector* )IN2)->n; \ 186 186 if(n1 != n2) { \ 187 187 psError(__func__, ": Inconsistent element count: %d vs %d", n1, n2); \ 188 188 return OUT; \ 189 189 } \ 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; \ 193 193 for (i=0; i < n1; i++, o++, i1++, i2++) { \ 194 194 *o = OP; \ … … 207 207 ps##TYPE *i1 = NULL; \ 208 208 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; \ 213 213 \ 214 214 if(dim1 == PS_DIMEN_VECTOR) { /* Regular vectors */ \ … … 218 218 } \ 219 219 \ 220 i1 = ((psVector* )IN1)->data.TYPE; \220 i1 = ((psVector* )IN1)->data.TYPE; \ 221 221 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]; \ 224 224 for(i = 0; i < numCols2; i++, o++, i2++) { \ 225 225 *o = OP; \ … … 233 233 \ 234 234 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]; \ 238 238 for(i = 0; i < numCols2; i++, o++, i1++, i2++) { \ 239 239 *o = OP; \ … … 253 253 ps##TYPE *i1 = NULL; \ 254 254 ps##TYPE *i2 = NULL; \ 255 numRows = ((psImage* )IN1)->numRows; \256 numCols = ((psImage* )IN1)->numCols; \255 numRows = ((psImage* )IN1)->numRows; \ 256 numCols = ((psImage* )IN1)->numCols; \ 257 257 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; \ 261 261 for(i = 0; i < numCols; i++, o++, i1++) { \ 262 262 *o = OP; \ … … 276 276 ps##TYPE *i1 = NULL; \ 277 277 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; \ 282 282 \ 283 283 if(dim2 == PS_DIMEN_VECTOR) { /* Regular vectors */ \ … … 287 287 } \ 288 288 \ 289 i2 = ((psVector* )IN2)->data.TYPE; \289 i2 = ((psVector* )IN2)->data.TYPE; \ 290 290 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]; \ 293 293 for(i = 0; i < numCols1; i++, o++, i1++) { \ 294 294 *o = OP; \ … … 302 302 \ 303 303 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]; \ 307 307 for(i = 0; i < numCols1; i++, o++, i2++, i1++) { \ 308 308 *o = OP; \ … … 323 323 ps##TYPE *i1 = NULL; \ 324 324 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; \ 329 329 if(numRows1!=numRows2 || numCols1!=numCols2) { \ 330 330 psError(__func__, ": Inconsistent element count: numRows: %d vs %d numCols: %d vs %d", numRows1, \ … … 333 333 } \ 334 334 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]; \ 338 338 for(i = 0; i < numCols1; i++, o++, i1++, i2++) { \ 339 339 *o = OP; \
Note:
See TracChangeset
for help on using the changeset viewer.
