Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

void Impala::Core::Array::InvWiccest ( ArraySet< Array2dScalarReal64 > &  res,
Array2dVec3Real64 *  ooo,
Array2dVec3Real64 *  ooot,
bool  doRotation,
bool  doC,
double  sigma,
double  precision,
bool  useRecGauss 
) [inline]

Definition at line 89 of file InvWiccest.h.

References Add(), Impala::Core::Array::ArraySet< ArrayT >::Array(), ArrayListDelete(), Div(), InvCompDer(), and Sub().

00092 {
00093     // this will keep arrays in a specific order if the set is empty:
00094     res.Array("Wx");
00095     if (doRotation)
00096         res.Array("W45");
00097     res.Array("Wy");
00098     if (doRotation)
00099         res.Array("W135");
00100     res.Array("Wlx");
00101     if (doRotation)
00102         res.Array("Wl45");
00103     res.Array("Wly");
00104     if (doRotation)
00105         res.Array("Wl135");
00106     res.Array("Wllx");
00107     if (doRotation)
00108         res.Array("Wll45");
00109     res.Array("Wlly");
00110     if (doRotation)
00111         res.Array("Wll135");
00112 
00113     if (doC)
00114     {
00115         res.Array("Clx");
00116         res.Array("Cly");
00117         res.Array("Cllx");
00118         res.Array("Clly");
00119     }
00120 
00121     if (ooot) {
00122         res.Array("Et");
00123         res.Array("Elt");
00124         res.Array("Ellt");
00125         res.Array("Wxt");
00126         res.Array("Wyt");
00127         res.Array("Wlxt");
00128         res.Array("Wlyt");
00129         res.Array("Wllxt");
00130         res.Array("Wllyt");
00131     }
00132 
00133     if (!ooo)
00134         return; // call was to figure out what would be the result
00135 
00136     std::vector<Array2dScalarReal64*> oooList;
00137     oooList = InvCompDer(ooo, sigma, precision, useRecGauss);
00138 
00139     /* no invariance
00140     DivVal(res.Array("Wx"), oooList[1], 255.0);
00141     DivVal(res.Array("Wy"), oooList[2], 255.0);
00142     DivVal(res.Array("Wlx"), oooList[4], 255.0);
00143     DivVal(res.Array("Wly"), oooList[5], 255.0);
00144     DivVal(res.Array("Wllx"), oooList[7], 255.0);
00145     DivVal(res.Array("Wlly"), oooList[8], 255.0);
00146     */
00147     Div(res.Array("Wx"), oooList[1], oooList[0]);
00148     Div(res.Array("Wy"), oooList[2], oooList[0]);
00149     Div(res.Array("Wlx"), oooList[4], oooList[0]);
00150     Div(res.Array("Wly"), oooList[5], oooList[0]);
00151     Div(res.Array("Wllx"), oooList[7], oooList[0]);
00152     Div(res.Array("Wlly"), oooList[8], oooList[0]);
00153     if (doRotation)
00154     {
00155                 Add(res.Array("W45"), res.Array("Wx"), res.Array("Wy"));
00156                 Sub(res.Array("W135"), res.Array("Wx"), res.Array("Wy"));
00157                 Add(res.Array("Wl45"), res.Array("Wlx"), res.Array("Wly"));
00158                 Sub(res.Array("Wl135"), res.Array("Wlx"), res.Array("Wly"));
00159                 Add(res.Array("Wll45"), res.Array("Wllx"), res.Array("Wlly"));
00160                 Sub(res.Array("Wll135"), res.Array("Wllx"), res.Array("Wlly"));
00161     }
00162 
00163     if (doC)
00164         InvCxy<Array2dScalarReal64>(res.Array("Clx"), res.Array("Cly"),
00165                                     res.Array("Cllx"), res.Array("Clly"),
00166                                     oooList);
00167 
00168     if (!ooot)
00169     {
00170         ArrayListDelete(&oooList);
00171         return;
00172     }
00173 
00174     std::vector<Array2dScalarReal64*> oootList;
00175     oootList = InvCompDer(ooot, sigma, precision, useRecGauss);
00176     Div(res.Array("Et"),    oootList[0], oooList[0]);
00177     Div(res.Array("Elt"),   oootList[3], oooList[0]);
00178     Div(res.Array("Ellt"),  oootList[6], oooList[0]);
00179     Div(res.Array("Wxt"),   oootList[1], oooList[0]);
00180     Div(res.Array("Wyt"),   oootList[2], oooList[0]);
00181     Div(res.Array("Wlxt"),  oootList[4], oooList[0]);
00182     Div(res.Array("Wlyt"),  oootList[5], oooList[0]);
00183     Div(res.Array("Wllxt"), oootList[7], oooList[0]);
00184     Div(res.Array("Wllyt"), oootList[8], oooList[0]);
00185 
00186     ArrayListDelete(&oooList);
00187     ArrayListDelete(&oootList);
00188 }

Here is the call graph for this function:


Generated on Fri Mar 19 10:57:22 2010 for ImpalaSrc by  doxygen 1.5.1