43 DOPERATE_RI_VEC)(
const int *opn,
const double *restrict w,
44 const int *opnri,
const int *opri,
45 const int *rimap_inv,
const int *rimap_inv_max,
46 const double *restrict fi,
const int *ldfp,
47 double *restrict fo) {
48 const size_t ldf = ldfp[0];
52 aligned = aligned && (((
long long)fi) % (8 * VEC_SIZE) == 0);
53 aligned = aligned && (((
long long)fo) % (8 * VEC_SIZE) == 0);
54 aligned = aligned && ((1 << ldf) % VEC_SIZE == 0);
71 ZOPERATE_RI_VEC)(
const int *opn,
const double *restrict w,
72 const int *opnri,
const int *opri,
73 const int *rimap_inv,
const int *rimap_inv_max,
74 const double *restrict fi,
const int *ldfp,
75 double *restrict fo) {
76 FC_FUNC_(doperate_ri_vec, DOPERATE_RI_VEC)
77 (opn, w, opnri, opri, rimap_inv, rimap_inv_max, fi, ldfp, fo);
81 DGAUSS_SEIDEL)(
const int *opn,
const double *restrict w,
82 const int *opnri,
const int *opri,
83 const int *rimap_inv,
const int *rimap_inv_max,
84 const double *restrict factor,
double *pot,
85 const double *restrict rho) {
88 const int nri = opnri[0];
93 register const double fac = *factor;
95 for (
l = 0;
l <
nri;
l++) {
99 for (;
i < rimap_inv_max[
l];
i++) {
100 a0 = w[0] * pot[
i +
index[0]];
101 for (
j = 1;
j < n;
j++)
103 pot[
i] += fac * (a0 - rho[
i]);
111 char * vector = VECTORIZATION_LEVEL;
112 size_t len = strlen(vector) + 1;
113 strncpy(level, vector, len);
void FC_FUNC_(zoperate_ri_vec, ZOPERATE_RI_VEC) const
void get_vectorization_level(char *level)
const int *restrict index