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