1.5.0
CCC
 
PrecisionOpMulti.cpp File Reference

Macros

#define EVALOP(IN, OUT, TAB, getmat, OP, IY, COMPUTEOP, XORY, START, END, IVAR, JVAR)
 

Macro Definition Documentation

◆ EVALOP

#define EVALOP (   IN,
  OUT,
  TAB,
  getmat,
  OP,
  IY,
  COMPUTEOP,
  XORY,
  START,
  END,
  IVAR,
  JVAR 
)
Value:
{\
int nvar = _getNVar();\
int ncov = _getNCov();\
int iad_x = 0;\
int iad_struct = 0;\
vect y;\
for (int icov = 0; icov < ncov; icov++)\
{\
int napices = size(icov);\
if ( (nvar == 1) && (ncov == 1) )\
{\
y = vect(OUT);\
}\
else\
{\
y = vect();\
if (COMPUTEOP)\
{\
_works[icov].resize(napices);\
y = vect(_works[icov]);\
std::fill(y.begin(),y.end(),0.);\
}\
}\
for (int jvar = 0; jvar < nvar; jvar++)\
{\
int iad_y = IY;\
constvect x(IN.data() + iad_x, napices);\
if (nvar == 1)\
y = vect(OUT.data() + iad_y, napices);\
if (COMPUTEOP) \
_pops[icov]->OP(x, y);\
if ( (nvar == 1) && (ncov == 1) ) break;\
if (nvar == 1)\
{\
iad_x += napices;\
continue;\
}\
for (int ivar = START; ivar < END; ivar++)\
{\
if (_isNoStatForVariance[icov])\
{\
constvect i1(TAB##NoStat[icov][IND(IVAR,JVAR,nvar)]);\
constvect i2(XORY);\
vect i3(OUT);\
}\
else\
{\
constvect i1(XORY);\
vect i2(OUT);\
VectorHelper::addMultiplyConstantInPlace(TAB##Stat[icov].getmat(IVAR,JVAR),i1,i2,iad_y);\
}\
iad_y += napices;\
}\
iad_x += napices; \
}\
iad_struct += napices * nvar;\
}\
if (COMPUTEOP) return 0;\
}
#define x
#define IND(i, j, nvar)
Definition: PrecisionOpMulti.hpp:24
static void addMultiplyConstantInPlace(double val1, const constvect in, vect out, int iad)
Definition: VectorHelper.cpp:1585
static void addMultiplyVectVectInPlace(const constvect in1, const constvect in2, vect out, int iad)
Definition: VectorHelper.cpp:1571
std::span< double > vect
Definition: geoslib_define.h:89