Changeset 1648
- Timestamp:
- Aug 27, 2004, 1:34:05 PM (22 years ago)
- Location:
- trunk/psLib
- Files:
-
- 6 edited
-
src/collections/psScalar.c (modified) (3 diffs)
-
src/dataManip/psMatrixVectorArithmetic.c (modified) (15 diffs)
-
src/mathtypes/psScalar.c (modified) (3 diffs)
-
test/dataManip/tst_psMatrixVectorArithmetic01.c (modified) (2 diffs)
-
test/dataManip/tst_psMatrixVectorArithmetic02.c (modified) (5 diffs)
-
test/dataManip/tst_psMatrixVectorArithmetic03.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/collections/psScalar.c
r1453 r1648 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1. 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2004-08- 10 19:27:47$11 * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2004-08-27 23:34:05 $ 13 13 * 14 14 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 130 130 psScalar* psScalarCopy(psScalar *scalar) 131 131 { 132 psElemType dataType; 132 133 psScalar *newScalar = NULL; 133 134 … … 136 137 } 137 138 138 newScalar = psScalarAlloc(scalar->data.C64, scalar->type.type); 139 if (newScalar == NULL) { 140 psAbort(__func__, " : Line %d - Failed to allocate memory", __LINE__); 139 dataType = scalar->type.type; 140 switch (dataType) { 141 case PS_TYPE_S8: 142 newScalar = psScalarAlloc(scalar->data.S8, dataType); 143 break; 144 case PS_TYPE_U8: 145 newScalar = psScalarAlloc(scalar->data.U8, dataType); 146 break; 147 case PS_TYPE_S16: 148 newScalar = psScalarAlloc(scalar->data.S16, dataType); 149 break; 150 case PS_TYPE_U16: 151 newScalar = psScalarAlloc(scalar->data.U16, dataType); 152 break; 153 case PS_TYPE_S32: 154 newScalar = psScalarAlloc(scalar->data.S32, dataType); 155 break; 156 case PS_TYPE_U32: 157 newScalar = psScalarAlloc(scalar->data.U32, dataType); 158 break; 159 case PS_TYPE_S64: 160 newScalar = psScalarAlloc(scalar->data.S64, dataType); 161 break; 162 case PS_TYPE_U64: 163 newScalar = psScalarAlloc(scalar->data.U64, dataType); 164 break; 165 case PS_TYPE_F32: 166 newScalar = psScalarAlloc(scalar->data.F32, dataType); 167 break; 168 case PS_TYPE_F64: 169 newScalar = psScalarAlloc(scalar->data.F64, dataType); 170 break; 171 case PS_TYPE_C32: 172 newScalar = psScalarAlloc(scalar->data.C32, dataType); 173 break; 174 case PS_TYPE_C64: 175 newScalar = psScalarAlloc(scalar->data.C64, dataType); 176 break; 177 default: 178 psError(__func__, ": Line %d - Invalid PS_TYPE: %d", __LINE__, dataType); 141 179 } 142 180 -
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; \ -
trunk/psLib/src/mathtypes/psScalar.c
r1453 r1648 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1. 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2004-08- 10 19:27:47$11 * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2004-08-27 23:34:05 $ 13 13 * 14 14 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 130 130 psScalar* psScalarCopy(psScalar *scalar) 131 131 { 132 psElemType dataType; 132 133 psScalar *newScalar = NULL; 133 134 … … 136 137 } 137 138 138 newScalar = psScalarAlloc(scalar->data.C64, scalar->type.type); 139 if (newScalar == NULL) { 140 psAbort(__func__, " : Line %d - Failed to allocate memory", __LINE__); 139 dataType = scalar->type.type; 140 switch (dataType) { 141 case PS_TYPE_S8: 142 newScalar = psScalarAlloc(scalar->data.S8, dataType); 143 break; 144 case PS_TYPE_U8: 145 newScalar = psScalarAlloc(scalar->data.U8, dataType); 146 break; 147 case PS_TYPE_S16: 148 newScalar = psScalarAlloc(scalar->data.S16, dataType); 149 break; 150 case PS_TYPE_U16: 151 newScalar = psScalarAlloc(scalar->data.U16, dataType); 152 break; 153 case PS_TYPE_S32: 154 newScalar = psScalarAlloc(scalar->data.S32, dataType); 155 break; 156 case PS_TYPE_U32: 157 newScalar = psScalarAlloc(scalar->data.U32, dataType); 158 break; 159 case PS_TYPE_S64: 160 newScalar = psScalarAlloc(scalar->data.S64, dataType); 161 break; 162 case PS_TYPE_U64: 163 newScalar = psScalarAlloc(scalar->data.U64, dataType); 164 break; 165 case PS_TYPE_F32: 166 newScalar = psScalarAlloc(scalar->data.F32, dataType); 167 break; 168 case PS_TYPE_F64: 169 newScalar = psScalarAlloc(scalar->data.F64, dataType); 170 break; 171 case PS_TYPE_C32: 172 newScalar = psScalarAlloc(scalar->data.C32, dataType); 173 break; 174 case PS_TYPE_C64: 175 newScalar = psScalarAlloc(scalar->data.C64, dataType); 176 break; 177 default: 178 psError(__func__, ": Line %d - Invalid PS_TYPE: %d", __LINE__, dataType); 141 179 } 142 180 -
trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic01.c
r1647 r1648 1 /** @file tst_psMatrix _01.c1 /** @file tst_psMatrixVectorArithmetic01.c 2 2 * 3 3 * @brief Test driver for psMatrixVector arithmetic functions … … 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $13 * @date $Date: 2004-08-27 23: 29:25$12 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2004-08-27 23:31:22 $ 14 14 * 15 15 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii -
trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic02.c
r1541 r1648 1 1 2 /** @file tst_psMatrix _02.c2 /** @file tst_psMatrixVectorArithmetic02.c 3 3 * 4 4 * @brief Test driver for psMatrixVector arithmetic functions … … 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1. 4$ $Name: not supported by cvs2svn $13 * @date $Date: 2004-08- 14 01:31:30$12 * @version $Revision: 1.5 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2004-08-27 23:31:29 $ 14 14 * 15 15 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 37 37 printf("Calculated: %.2f\n", (double)(TRUTH)); \ 38 38 } \ 39 } \39 } \ 40 40 } \ 41 41 printf("\n"); … … 45 45 for(int i=IMAGE->numRows-1; i>-1; i--) { \ 46 46 for(int j=0; j<IMAGE->numCols; j++) { \ 47 if(cabs(IMAGE->data.TYPE[i][j])-cabs(TRUTH) > FLT_EPSILON){ \47 if(cabs(IMAGE->data.TYPE[i][j])-cabs(TRUTH) > FLT_EPSILON){ \ 48 48 printf("ERROR:Truth and calculated values don't match for matrix operation:\n"); \ 49 49 if(PS_IS_PSELEMTYPE_COMPLEX(IMAGE->type.type)) { \ … … 57 57 printf("Calculated: %.2f\n", (double)(TRUTH)); \ 58 58 } \ 59 } \59 } \ 60 60 } \ 61 61 printf("\n"); \ -
trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c
r1406 r1648 1 /** @file tst_psMatrix _01.c1 /** @file tst_psMatrixVectorArithmetic03.c 2 2 * 3 3 * @brief Test driver for psMatrixVector arithmetic functions … … 15 15 * @author Ross Harman, MHPCC 16 16 * 17 * @version $Revision: 1. 2$ $Name: not supported by cvs2svn $18 * @date $Date: 2004-08- 06 22:34:06$17 * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $ 18 * @date $Date: 2004-08-27 23:31:35 $ 19 19 * 20 20 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii
Note:
See TracChangeset
for help on using the changeset viewer.
