xref: /petsc/src/vec/pf/impls/string/cstringbase.template (revision f236b2ad18af65eafb1995156e06d20e80c6f49d)
1c4da4110SBarry Smith#define PETSCVEC_DLL
2c6db04a5SJed Brown#include <petscsys.h>
3c4da4110SBarry Smith
4c4da4110SBarry Smith#define NOTLIKELY -1.234567890123
5c4da4110SBarry Smith
6c4da4110SBarry SmithEXTERN_C_BEGIN
7*f236b2adSBarry Smithint PETSC_VISIBILITY_PUBLIC PFApply_String(void *value,PetscInt n,PetscScalar *in,PetscScalar *out)
8c4da4110SBarry Smith{
9*f236b2adSBarry Smith  PetscInt    i;
10*f236b2adSBarry Smith  PetscScalar x,y,z,f = NOTLIKELY,x1 = 0,x2 = 0,x3 = 0,x4 = 0,x5 = 0;
11*f236b2adSBarry Smith  PetscScalar f1  = NOTLIKELY, f2 = 0,f3 = 0,f4 = 0,f5 = 0;
12c4da4110SBarry Smith
13*f236b2adSBarry Smith  (void)x;
14*f236b2adSBarry Smith  (void)y;
15*f236b2adSBarry Smith  (void)z;
16*f236b2adSBarry Smith  (void)f;
17*f236b2adSBarry Smith  (void)x1;
18*f236b2adSBarry Smith  (void)x2;
19*f236b2adSBarry Smith  (void)x3;
20*f236b2adSBarry Smith  (void)x4;
21*f236b2adSBarry Smith  (void)x5;
22*f236b2adSBarry Smith  (void)f1;
23*f236b2adSBarry Smith  (void)f2;
24*f236b2adSBarry Smith  (void)f3;
25*f236b2adSBarry Smith  (void)f4;
26*f236b2adSBarry Smith  (void)f5;
27c4da4110SBarry Smith  for (i=0; i<n; i++) {
28*f236b2adSBarry Smith    x1 = x = in[_NIN_*i];
29*f236b2adSBarry Smith#if (_NIN_ > 1)
30*f236b2adSBarry Smith    x2 = y = in[_NIN_*i+1];
31c4da4110SBarry Smith#endif
32*f236b2adSBarry Smith#if (_NIN_ > 2)
33*f236b2adSBarry Smith    x3 = z = in[_NIN_*i+2];
34c4da4110SBarry Smith#endif
35*f236b2adSBarry Smith#if (_NIN_ > 3)
36*f236b2adSBarry Smith    x4 = in[_NIN_*i+3];
37c4da4110SBarry Smith#endif
38*f236b2adSBarry Smith#if (_NIN_ > 4)
39*f236b2adSBarry Smith    x5 = in[_NIN_*i+4];
40c4da4110SBarry Smith#endif
41c4da4110SBarry Smith    FUNCTION;
42c4da4110SBarry Smith    if (f == NOTLIKELY) {
43c4da4110SBarry Smith      out[_NOUT_*i] = f1;
44c4da4110SBarry Smith    } else {
45c4da4110SBarry Smith      out[_NOUT_*i] = f;
46c4da4110SBarry Smith    }
47c4da4110SBarry Smith#if (_NOUT_ > 1)
48c4da4110SBarry Smith    out[_NOUT_*i+1] = f2;
49c4da4110SBarry Smith#endif
50c4da4110SBarry Smith#if (_NOUT_ > 2)
51c4da4110SBarry Smith    out[_NOUT_*i+2] = f3;
52c4da4110SBarry Smith#endif
53c4da4110SBarry Smith#if (_NOUT_ > 3)
54c4da4110SBarry Smith    out[_NOUT_*i+3] = f4;
55c4da4110SBarry Smith#endif
56c4da4110SBarry Smith#if (_NOUT_ > 4)
57c4da4110SBarry Smith    out[_NOUT_*i+4] = f5;
58c4da4110SBarry Smith#endif
59c4da4110SBarry Smith  }
60*f236b2adSBarry Smith  return(0);
61c4da4110SBarry Smith}
62c4da4110SBarry SmithEXTERN_C_END
63