1.6.0
CCC
 
Loading...
Searching...
No Matches
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\
{\
if (COMPUTEOP)\
{\
_works[icov].resize(napices);\
y = vect(_works[icov]);\
}\
}\
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) \
{\
if ( (nvar > 1) || (ncov > 1) )\
std::fill(y.begin(),y.end(),0.);\
_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);\
VectorHelper::addMultiplyVectVectInPlace(i1,i2,i3,iad_y); \
}\
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 TAB(ijvar, ipadir)
Definition AModelOptimSills.cpp:27
#define x
#define IND(i, j, nvar)
Definition PrecisionOpMulti.hpp:24
std::span< double > vect
Definition geoslib_define.h:100
DISABLE_WARNING_NOT_EXPORTED_FROM_DLL DISABLE_WARNING_BASE_NOT_EXPORTED_FROM_DLL typedef std::span< const double > constvect
Definition geoslib_define.h:99