Changeset 1065
- Timestamp:
- Jun 21, 2004, 11:04:24 AM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c
r1064 r1065 29 29 * @author Ross Harman, MHPCC 30 30 * 31 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $32 * @date $Date: 2004-06- 19 02:00:45$31 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 32 * @date $Date: 2004-06-21 21:04:24 $ 33 33 * 34 34 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 46 46 #include "psImage.h" 47 47 #include "psVector.h" 48 #include "psScalar.h" 48 49 49 50 /******************************************************************************/ … … 79 80 #define MAX(A,B) (((A) > (B)) ? (A) : (B)) 80 81 82 83 // VECTOR_XXXX operations 81 84 #define VECTOR_SCALAR(OUT,IN1,OP,IN2,TYPE) \ 82 85 { \ … … 94 97 } \ 95 98 } 99 96 100 #define VECTOR_VECTOR(OUT,IN1,OP,IN2,TYPE) \ 97 101 { \ … … 107 111 for (i=0; i < npt; i++, o++, i1++, i2++) { \ 108 112 *o = OP; \ 113 } \ 114 } 115 116 117 // IMAGE_XXXX operations 118 #define IMAGE_SCALAR(OUT,IN1,OP,IN2,TYPE) \ 119 { \ 120 int i = 0; \ 121 int j = 0; \ 122 int numRows = 0; \ 123 int numCols = 0; \ 124 ps##TYPE *o = NULL; \ 125 ps##TYPE *i1 = NULL; \ 126 ps##TYPE *i2 = NULL; \ 127 numRows = ((psImage*)IN1)->numRows; \ 128 numCols = ((psImage*)IN1)->numCols; \ 129 for(j = 0; j < numCols; j++) { \ 130 o = ((psImage*)OUT)->data.TYPE[j]; \ 131 i1 = ((psImage*)IN1)->data.TYPE[j]; \ 132 i2 = &((psScalar*)IN2)->data.TYPE; \ 133 for(i = 0; i < numRows; i++, o++, i1++) { \ 134 *o = OP; \ 135 } \ 109 136 } \ 110 137 } … … 126 153 i2 = ((psImage*)IN2)->data.TYPE[j]; \ 127 154 for(i = 0; i < numRows; i++, o++, i1++, i2++) { \ 155 *o = OP; \ 156 } \ 157 } \ 158 } 159 160 // SCALAR_XXXX operations 161 #define SCALAR_SCALAR(OUT,IN1,OP,IN2,TYPE) \ 162 { \ 163 int i = 0; \ 164 ps##TYPE *o = NULL; \ 165 ps##TYPE *i1 = NULL; \ 166 ps##TYPE *i2 = NULL; \ 167 o = &((psScalar*)OUT)->data.TYPE; \ 168 i1 = &((psScalar*)IN1)->data.TYPE; \ 169 i2 = &((psScalar*)IN2)->data.TYPE; \ 170 *o = OP; \ 171 } 172 173 #define SCALAR_VECTOR(OUT,IN1,OP,IN2,TYPE) \ 174 { \ 175 int i = 0; \ 176 int npt = 0; \ 177 ps##TYPE *o = NULL; \ 178 ps##TYPE *i1 = NULL; \ 179 ps##TYPE *i2 = NULL; \ 180 npt = ((psVector*)IN1)->n; \ 181 o = ((psVector*)OUT)->data.TYPE; \ 182 i1 = &((psScalar*)IN1)->data.TYPE; \ 183 i2 = ((psVector*)IN2)->data.TYPE; \ 184 for (i=0; i < npt; i++, o++, i2++) { \ 185 *o = OP; \ 186 } \ 187 } 188 189 // SCALAR_XXXX operations 190 #define SCALAR_IMAGE(OUT,IN1,OP,IN2,TYPE) \ 191 { \ 192 int i = 0; \ 193 int j = 0; \ 194 int numRows = 0; \ 195 int numCols = 0; \ 196 ps##TYPE *o = NULL; \ 197 ps##TYPE *i1 = NULL; \ 198 ps##TYPE *i2 = NULL; \ 199 numRows = ((psImage*)IN1)->numRows; \ 200 numCols = ((psImage*)IN1)->numCols; \ 201 for(j = 0; j < numCols; j++) { \ 202 o = ((psImage*)OUT)->data.TYPE[j]; \ 203 i1 = &((psScalar*)IN1)->data.TYPE; \ 204 i2 = ((psImage*)IN2)->data.TYPE[j]; \ 205 for(i = 0; i < numRows; i++, o++, i2++) { \ 128 206 *o = OP; \ 129 207 } \ … … 232 310 if(dim1 == PS_DIMEN_VECTOR) { 233 311 if(dim2 == PS_DIMEN_VECTOR) { 234 LEVEL2(VECTOR,VECTOR,out,psType1,op,psType2); // Vector op vector312 LEVEL2(VECTOR,VECTOR,out,psType1,op,psType2); // vector op vector 235 313 } else if(dim2 == PS_DIMEN_IMAGE) { 236 //LEVEL2(VECTOR,IMAGE,out,in1,op,in2); // Vector op image 314 //LEVEL2(); // vector op image 315 } else if(dim2 == PS_DIMEN_SCALAR) { 316 LEVEL2(VECTOR,VECTOR,out,psType1,op,psType2); // vector op scalar 237 317 } else { 238 318 psError(__func__, ": Line %d - Invalid dimensionality for in2 arg: %d", __LINE__, dim2); … … 240 320 } else if(dim1 == PS_DIMEN_IMAGE) { 241 321 if(dim2 == PS_DIMEN_VECTOR) { 242 //LEVEL2( IMAGE,VECTOR,out,in1,op,in2); // Image op vector322 //LEVEL2(); // image op vector 243 323 } else if(dim2 == PS_DIMEN_IMAGE) { 244 LEVEL2(IMAGE,IMAGE,out,psType1,op,in2); // Image op image 324 LEVEL2(IMAGE,IMAGE,out,psType1,op,psType2); // image op image 325 } else if(dim2 == PS_DIMEN_SCALAR) { 326 LEVEL2(IMAGE,SCALAR,out,psType1,op,psType2); // image op scalar 327 } else { 328 psError(__func__, ": Line %d - Invalid dimensionality for in2 arg: %d", __LINE__, dim2); 329 } 330 } else if(dim1 == PS_DIMEN_SCALAR) { 331 if(dim2 == PS_DIMEN_VECTOR) { 332 LEVEL2(SCALAR,VECTOR,out,psType1,op,psType2); // scalar op vector 333 } else if(dim2 == PS_DIMEN_IMAGE) { 334 LEVEL2(SCALAR,IMAGE,out,psType1,op,psType2); // scalar op image 245 335 } else { 246 336 psError(__func__, ": Line %d - Invalid dimensionality for in2 arg: %d", __LINE__, dim2);
Note:
See TracChangeset
for help on using the changeset viewer.
