Changeset 1059
- Timestamp:
- Jun 18, 2004, 1:34:59 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataManip/psMatrixVectorArithmetic.c
r1058 r1059 29 29 * @author Ross Harman, MHPCC 30 30 * 31 * @version $Revision: 1. 1$ $Name: not supported by cvs2svn $32 * @date $Date: 2004-06-18 00:54:43$31 * @version $Revision: 1.2 $ $Name: not supported by cvs2svn $ 32 * @date $Date: 2004-06-18 23:34:59 $ 33 33 * 34 34 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 118 118 #define LEVEL1(DIM1,DIM2,OUT,IN1,OP,IN2) \ 119 119 switch (IN1->type) { \ 120 case PS_TYPE_S8: \121 DIM1##_##DIM2(OUT,IN1,OP,IN2,S8); \122 break; \123 case PS_TYPE_U8: \124 DIM1##_##DIM2(OUT,IN1,OP,IN2,U8); \125 break; \126 case PS_TYPE_S16: \127 DIM1##_##DIM2(OUT,IN1,OP,IN2,S16); \128 break; \129 case PS_TYPE_U16: \130 DIM1##_##DIM2(OUT,IN1,OP,IN2,U16); \131 break; \132 case PS_TYPE_S32: \133 DIM1##_##DIM2(OUT,IN1,OP,IN2,S32); \134 break; \135 case PS_TYPE_U32: \136 DIM1##_##DIM2(OUT,IN1,OP,IN2,U32); \137 break; \138 case PS_TYPE_S64: \139 DIM1##_##DIM2(OUT,IN1,OP,IN2,S64); \140 break; \141 case PS_TYPE_U64: \142 DIM1##_##DIM2(OUT,IN1,OP,IN2,U64); \143 break; \144 case PS_TYPE_F32: \145 DIM1##_##DIM2(OUT,IN1,OP,IN2,F32); \146 break; \147 case PS_TYPE_F64: \148 DIM1##_##DIM2(OUT,IN1,OP,IN2,F64); \149 break; \150 case PS_TYPE_C32: \151 psError(__func__, ": Line %d - C32 support not implemented", __LINE__); \120 case PS_TYPE_S8: \ 121 DIM1##_##DIM2(OUT,IN1,OP,IN2,S8); \ 122 break; \ 123 case PS_TYPE_U8: \ 124 DIM1##_##DIM2(OUT,IN1,OP,IN2,U8); \ 125 break; \ 126 case PS_TYPE_S16: \ 127 DIM1##_##DIM2(OUT,IN1,OP,IN2,S16); \ 128 break; \ 129 case PS_TYPE_U16: \ 130 DIM1##_##DIM2(OUT,IN1,OP,IN2,U16); \ 131 break; \ 132 case PS_TYPE_S32: \ 133 DIM1##_##DIM2(OUT,IN1,OP,IN2,S32); \ 134 break; \ 135 case PS_TYPE_U32: \ 136 DIM1##_##DIM2(OUT,IN1,OP,IN2,U32); \ 137 break; \ 138 case PS_TYPE_S64: \ 139 DIM1##_##DIM2(OUT,IN1,OP,IN2,S64); \ 140 break; \ 141 case PS_TYPE_U64: \ 142 DIM1##_##DIM2(OUT,IN1,OP,IN2,U64); \ 143 break; \ 144 case PS_TYPE_F32: \ 145 DIM1##_##DIM2(OUT,IN1,OP,IN2,F32); \ 146 break; \ 147 case PS_TYPE_F64: \ 148 DIM1##_##DIM2(OUT,IN1,OP,IN2,F64); \ 149 break; \ 150 case PS_TYPE_C32: \ 151 psError(__func__, ": Line %d - C32 support not implemented", __LINE__); \ 152 152 /*DIM1##_##DIM2(OUT,IN1,OP,IN2,C32); */ \ 153 break; \154 case PS_TYPE_C64: \155 psError(__func__, ": Line %d - C64 support not implemented", __LINE__); \156 /*DIM1##_##DIM2(OUT,IN1,OP,IN2,C64); */ \157 break; \158 default: \159 psError(__func__, ": Line %d - Invalid PS_TYPE: %d", __LINE__, IN1->type); \153 break; \ 154 case PS_TYPE_C64: \ 155 psError(__func__, ": Line %d - C64 support not implemented", __LINE__); \ 156 /*DIM1##_##DIM2(OUT,IN1,OP,IN2,C64); */ \ 157 break; \ 158 default: \ 159 psError(__func__, ": Line %d - Invalid PS_TYPE: %d", __LINE__, IN1->type); \ 160 160 } 161 161 162 162 #define LEVEL2(DIM1,DIM2,OUT,IN1,OP,IN2) \ 163 if(!strncmp(OP, "+", 1)) { \164 LEVEL1(DIM1,DIM2,OUT,IN1,*i1 + *i2,IN2); \165 } else if(!strncmp(OP, "-", 1)) { \166 LEVEL1(DIM1, DIM2,OUT,IN1,*i1 - *i2,IN2); \167 } else if(!strncmp(OP, "*", 1)) { \168 LEVEL1(DIM1,DIM2,OUT,IN1,*i1 * *i2,IN2); \169 } else if(!strncmp(OP, "/", 1)) { \170 LEVEL1(DIM1,DIM2,OUT,IN1,*i1 / *i2,IN2); \171 } else if(!strncmp(OP, "^", 1)) { \172 LEVEL1(DIM1,DIM2,OUT,IN1,pow(*i1,*i2),IN2); \173 } else if(!strncmp(OP, "min", 3)) { \174 LEVEL1(DIM1,DIM2,OUT,IN1,MIN(*i1,*i2),IN2); \175 } else if(!strncmp(OP, "max", 3)) { \176 LEVEL1(DIM1,DIM2,OUT,IN1,MAX(*i1,*i2),IN2); \177 } else { \178 psError(__func__, ": Line %d - Invalid operator: %s", __LINE__, #OP); \163 if(!strncmp(OP, "+", 1)) { \ 164 LEVEL1(DIM1,DIM2,OUT,IN1,*i1 + *i2,IN2); \ 165 } else if(!strncmp(OP, "-", 1)) { \ 166 LEVEL1(DIM1, DIM2,OUT,IN1,*i1 - *i2,IN2); \ 167 } else if(!strncmp(OP, "*", 1)) { \ 168 LEVEL1(DIM1,DIM2,OUT,IN1,*i1 * *i2,IN2); \ 169 } else if(!strncmp(OP, "/", 1)) { \ 170 LEVEL1(DIM1,DIM2,OUT,IN1,*i1 / *i2,IN2); \ 171 } else if(!strncmp(OP, "^", 1)) { \ 172 LEVEL1(DIM1,DIM2,OUT,IN1,pow(*i1,*i2),IN2); \ 173 } else if(!strncmp(OP, "min", 3)) { \ 174 LEVEL1(DIM1,DIM2,OUT,IN1,MIN(*i1,*i2),IN2); \ 175 } else if(!strncmp(OP, "max", 3)) { \ 176 LEVEL1(DIM1,DIM2,OUT,IN1,MAX(*i1,*i2),IN2); \ 177 } else { \ 178 psError(__func__, ": Line %d - Invalid operator: %s", __LINE__, #OP); \ 179 179 } 180 180
Note:
See TracChangeset
for help on using the changeset viewer.
