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:
|