xref: /petsc/src/vec/pf/impls/string/cstringbase.template (revision c6db04a5321582041def2b1e244c75985478b3ef)
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