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