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