Changeset 10246 for trunk/psLib/src/math/psUnaryOp.c
- Timestamp:
- Nov 28, 2006, 2:49:21 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/math/psUnaryOp.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/math/psUnaryOp.c
r9552 r10246 16 16 * Power of 10 (ten) 17 17 * Log (log) 18 * Square root (sqrt) 18 19 * Sine (sin or dsin) 19 20 * Cosine (cos or dcos) … … 30 31 * @author Robert DeSonia, MHPCC 31 32 * 32 * @version $Revision: 1.1 1$ $Name: not supported by cvs2svn $33 * @date $Date: 2006-1 0-14 00:02:31 $33 * @version $Revision: 1.12 $ $Name: not supported by cvs2svn $ 34 * @date $Date: 2006-11-29 00:49:21 $ 34 35 * 35 36 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 170 171 if(!strncmp(OP, "abs", 3)) { \ 171 172 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 172 UNARY_TYPE(DIM,OUT,IN,cabs(*i1)); \ 173 } else { \ 174 UNARY_TYPE(DIM,OUT,IN,fabs(*i1)); \ 173 UNARY_TYPE(DIM,OUT,IN,cabs((double complex)*i1)); \ 174 } else { \ 175 UNARY_TYPE(DIM,OUT,IN,fabs((double)*i1)); \ 176 } \ 177 } else if(!strncmp(OP, "sqrt", 4)) { \ 178 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 179 UNARY_TYPE(DIM,OUT,IN,csqrt((double complex)*i1)); \ 180 } else { \ 181 UNARY_TYPE(DIM,OUT,IN,sqrt((double)*i1)); \ 175 182 } \ 176 183 } else if(!strncmp(OP, "exp", 3)) { \ 177 184 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 178 UNARY_TYPE(DIM,OUT,IN,cexp( *i1)); \179 } else { \ 180 UNARY_TYPE(DIM,OUT,IN,exp( *i1)); \185 UNARY_TYPE(DIM,OUT,IN,cexp((double complex)*i1)); \ 186 } else { \ 187 UNARY_TYPE(DIM,OUT,IN,exp((double)*i1)); \ 181 188 } \ 182 189 } else if(!strncmp(OP, "ln", 2)) { \ 183 190 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 184 UNARY_TYPE(DIM,OUT,IN,clog( *i1)); \185 } else { \ 186 UNARY_TYPE(DIM,OUT,IN,log( *i1)); \191 UNARY_TYPE(DIM,OUT,IN,clog((double complex)*i1)); \ 192 } else { \ 193 UNARY_TYPE(DIM,OUT,IN,log((double)*i1)); \ 187 194 } \ 188 195 } else if(!strncmp(OP, "ten", 3)) { \ 189 196 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 190 UNARY_TYPE(DIM,OUT,IN,cpow(10.0, *i1)); \191 } else { \ 192 UNARY_TYPE(DIM,OUT,IN,pow(10.0, *i1)); \197 UNARY_TYPE(DIM,OUT,IN,cpow(10.0,(double complex)*i1)); \ 198 } else { \ 199 UNARY_TYPE(DIM,OUT,IN,pow(10.0,(double)*i1)); \ 193 200 } \ 194 201 } else if(!strncmp(OP, "log", 3)) { \ 195 202 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 196 UNARY_TYPE(DIM,OUT,IN,clog( *i1)/log(10.0)); \197 } else { \ 198 UNARY_TYPE(DIM,OUT,IN,log10( *i1)); \203 UNARY_TYPE(DIM,OUT,IN,clog((double complex)*i1)/log(10.0)); \ 204 } else { \ 205 UNARY_TYPE(DIM,OUT,IN,log10((double)*i1)); \ 199 206 } \ 200 207 } else if(!strncmp(OP, "sin", 3)) { \ 201 208 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 202 UNARY_TYPE(DIM,OUT,IN,csin( *i1)); \203 } else { \ 204 UNARY_TYPE(DIM,OUT,IN,sin( *i1)); \209 UNARY_TYPE(DIM,OUT,IN,csin((double complex)*i1)); \ 210 } else { \ 211 UNARY_TYPE(DIM,OUT,IN,sin((double)*i1)); \ 205 212 } \ 206 213 } else if(!strncmp(OP, "dsin", 4)) { \ 207 214 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 208 UNARY_TYPE(DIM,OUT,IN,csin( *i1*D2R)); \209 } else { \ 210 UNARY_TYPE(DIM,OUT,IN,sin( *i1*D2R)); \215 UNARY_TYPE(DIM,OUT,IN,csin((double complex)*i1*D2R)); \ 216 } else { \ 217 UNARY_TYPE(DIM,OUT,IN,sin((double)*i1*D2R)); \ 211 218 } \ 212 219 } else if(!strncmp(OP, "cos", 3)) { \ 213 220 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 214 UNARY_TYPE(DIM,OUT,IN,ccos( *i1)); \215 } else { \ 216 UNARY_TYPE(DIM,OUT,IN,cos( *i1)); \221 UNARY_TYPE(DIM,OUT,IN,ccos((double complex)*i1)); \ 222 } else { \ 223 UNARY_TYPE(DIM,OUT,IN,cos((double)*i1)); \ 217 224 } \ 218 225 } else if(!strncmp(OP, "dcos", 4)) { \ 219 226 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 220 UNARY_TYPE(DIM,OUT,IN,ccos( *i1*D2R)); \221 } else { \ 222 UNARY_TYPE(DIM,OUT,IN,cos( *i1*D2R)); \227 UNARY_TYPE(DIM,OUT,IN,ccos((double complex)*i1*D2R)); \ 228 } else { \ 229 UNARY_TYPE(DIM,OUT,IN,cos((double)*i1*D2R)); \ 223 230 } \ 224 231 } else if(!strncmp(OP, "tan", 3)) { \ 225 232 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 226 UNARY_TYPE(DIM,OUT,IN,ctan( *i1)); \227 } else { \ 228 UNARY_TYPE(DIM,OUT,IN,tan( *i1)); \233 UNARY_TYPE(DIM,OUT,IN,ctan((double complex)*i1)); \ 234 } else { \ 235 UNARY_TYPE(DIM,OUT,IN,tan((double)*i1)); \ 229 236 } \ 230 237 } else if(!strncmp(OP, "dtan", 4)) { \ 231 238 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 232 UNARY_TYPE(DIM,OUT,IN,ctan( *i1*D2R)); \233 } else { \ 234 UNARY_TYPE(DIM,OUT,IN,tan( *i1*D2R)); \239 UNARY_TYPE(DIM,OUT,IN,ctan((double complex)*i1*D2R)); \ 240 } else { \ 241 UNARY_TYPE(DIM,OUT,IN,tan((double)*i1*D2R)); \ 235 242 } \ 236 243 } else if(!strncmp(OP, "asin", 4)) { \ 237 244 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 238 UNARY_TYPE(DIM,OUT,IN,casin( *i1)); \239 } else { \ 240 UNARY_TYPE(DIM,OUT,IN,asin( *i1)); \245 UNARY_TYPE(DIM,OUT,IN,casin((double complex)*i1)); \ 246 } else { \ 247 UNARY_TYPE(DIM,OUT,IN,asin((double)*i1)); \ 241 248 } \ 242 249 } else if(!strncmp(OP, "dasin", 5)) { \ 243 250 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 244 UNARY_TYPE(DIM,OUT,IN,R2D*casin(*i1)); \ 245 } else if(PS_IS_PSELEMTYPE_INT(IN->type)) { \ 246 UNARY_TYPE(DIM,OUT,IN,(R2D*asin(*i1))); \ 247 } else { \ 248 UNARY_TYPE(DIM,OUT,IN,(R2D*asin(*i1))); \ 251 UNARY_TYPE(DIM,OUT,IN,R2D*casin((double complex)*i1)); \ 252 } else { \ 253 UNARY_TYPE(DIM,OUT,IN,(R2D*asin((double)*i1))); \ 249 254 } \ 250 255 } else if(!strncmp(OP, "acos", 4)) { \ 251 256 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 252 UNARY_TYPE(DIM,OUT,IN,cacos( *i1)); \253 } else { \ 254 UNARY_TYPE(DIM,OUT,IN,acos( *i1)); \257 UNARY_TYPE(DIM,OUT,IN,cacos((double complex)*i1)); \ 258 } else { \ 259 UNARY_TYPE(DIM,OUT,IN,acos((double)*i1)); \ 255 260 } \ 256 261 } else if(!strncmp(OP, "dacos", 5)) { \ 257 262 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 258 UNARY_TYPE(DIM,OUT,IN,R2D*cacos(*i1)); \ 259 } else if(PS_IS_PSELEMTYPE_INT(IN->type)) { \ 260 UNARY_TYPE(DIM,OUT,IN,(R2D*acos(*i1))); \ 261 } else { \ 262 UNARY_TYPE(DIM,OUT,IN,R2D*acos(*i1)); \ 263 UNARY_TYPE(DIM,OUT,IN,R2D*cacos((double complex)*i1)); \ 264 } else { \ 265 UNARY_TYPE(DIM,OUT,IN,R2D*acos((double)*i1)); \ 263 266 } \ 264 267 } else if(!strncmp(OP, "atan", 4)) { \ 265 268 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 266 UNARY_TYPE(DIM,OUT,IN,catan( *i1)); \267 } else { \ 268 UNARY_TYPE(DIM,OUT,IN,atan( *i1)); \269 UNARY_TYPE(DIM,OUT,IN,catan((double complex)*i1)); \ 270 } else { \ 271 UNARY_TYPE(DIM,OUT,IN,atan((double)*i1)); \ 269 272 } \ 270 273 } else if(!strncmp(OP, "datan", 5)) { \ 271 274 if(PS_IS_PSELEMTYPE_COMPLEX(IN->type)) { \ 272 UNARY_TYPE(DIM,OUT,IN,R2D*catan( *i1)); \273 } else { \ 274 UNARY_TYPE(DIM,OUT,IN,R2D*atan( *i1)); \275 UNARY_TYPE(DIM,OUT,IN,R2D*catan((double complex)*i1)); \ 276 } else { \ 277 UNARY_TYPE(DIM,OUT,IN,R2D*atan((double)*i1)); \ 275 278 } \ 276 279 } else { \
Note:
See TracChangeset
for help on using the changeset viewer.
