1#define PETSCVEC_DLL 2/*$Id: cstringbase.c,v 1.2 2000/02/04 21:37:18 bsmith Exp $*/ 3#include <petscsys.h> 4 5#define NOTLIKELY -1.234567890123 6 7EXTERN_C_BEGIN 8#undef __FUNC__ 9#define __FUNC__ "PFApply_String" 10int PETSCVEC_DLLEXPORT PFApply_String(void *value,int n,Scalar *in,Scalar *out) 11{ 12 int i; 13 Scalar x,y,z,f = NOTLIKELY,x1,x2,x3,x4,x5,f1,f2,f3,f4,f5; 14 15 PetscFunctionBegin; 16 for (i=0; i<n; i++) { 17 x1 = x = in[_MIN_*i]; 18#if (_MIN_ > 1) 19 x2 = y = in[_MIN_*i+1]; 20#endif 21#if (_MIN_ > 2) 22 x3 = z = in[_MIN_*i+2]; 23#endif 24#if (_MIN_ > 3) 25 x4 = in[_MIN_*i+3]; 26#endif 27#if (_MIN_ > 4) 28 x5 = in[_MIN_*i+4]; 29#endif 30 FUNCTION; 31 if (f == NOTLIKELY) { 32 out[_NOUT_*i] = f1; 33 } else { 34 out[_NOUT_*i] = f; 35 } 36#if (_NOUT_ > 1) 37 out[_NOUT_*i+1] = f2; 38#endif 39#if (_NOUT_ > 2) 40 out[_NOUT_*i+2] = f3; 41#endif 42#if (_NOUT_ > 3) 43 out[_NOUT_*i+3] = f4; 44#endif 45#if (_NOUT_ > 4) 46 out[_NOUT_*i+4] = f5; 47#endif 48 } 49 PetscFunctionReturn(0); 50} 51EXTERN_C_END 52