40void FC_FUNC_(doperate_ri_vec,
41 DOPERATE_RI_VEC)(
const int *opn,
const double *restrict w,
42 const int *opnri,
const int *opri,
43 const int *rimap_inv,
const int *rimap_inv_max,
44 const double *restrict fi,
const int *ldfp,
45 double *restrict fo) {
46 const size_t ldf = ldfp[0];
50 aligned = aligned && (((
long long)fi) % (8 * VEC_SIZE) == 0);
51 aligned = aligned && (((
long long)fo) % (8 * VEC_SIZE) == 0);
52 aligned = aligned && ((1 << ldf) % VEC_SIZE == 0);
68void FC_FUNC_(zoperate_ri_vec,
69 ZOPERATE_RI_VEC)(
const int *opn,
const double *restrict w,
70 const int *opnri,
const int *opri,
71 const int *rimap_inv,
const int *rimap_inv_max,
72 const double *restrict fi,
const int *ldfp,
73 double *restrict fo) {
74 FC_FUNC_(doperate_ri_vec, DOPERATE_RI_VEC)
75 (opn, w, opnri, opri, rimap_inv, rimap_inv_max, fi, ldfp, fo);
78void FC_FUNC_(dgauss_seidel,
79 DGAUSS_SEIDEL)(
const int *opn,
const double *restrict w,
80 const int *opnri,
const int *opri,
81 const int *rimap_inv,
const int *rimap_inv_max,
82 const double *restrict factor,
double *pot,
83 const double *restrict rho) {
86 const int nri = opnri[0];
91 register const double fac = *factor;
93 for (
l = 0;
l <
nri;
l++) {
97 for (;
i < rimap_inv_max[
l];
i++) {
98 a0 = w[0] * pot[
i +
index[0]];
99 for (
j = 1;
j < n;
j++)
101 pot[
i] += fac * (a0 - rho[
i]);
const int *restrict index