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

template<class ArrayT>
void Impala::Core::Array::Statistics< ArrayT >::CheckStatValid (  )  [inline, private]

Definition at line 197 of file Statistics.h.

Referenced by Impala::Core::Array::Statistics< Impala::Core::Array::Array2dTemrray2dTem< Real64, 1, Real64 > >::CheckStDevValid(), Impala::Core::Array::Statistics< Impala::Core::Array::Array2dTemrray2dTem< Real64, 1, Real64 > >::GetMean(), and Impala::Core::Array::Statistics< Impala::Core::Array::Array2dTemrray2dTem< Real64, 1, Real64 > >::GetVariance().

00198     {
00199         if (mStatValid)
00200             return;
00201 
00202         typedef typename ArrayT::ArithType ArithT;
00203         ArithT num = Element::E1Cast(mNum, ArithT());
00204         ArithT num1 = num - Element::E1Cast(1, ArithT());
00205         if (mRunning)
00206         {
00207             Set(mSum, mRunList[0]);
00208             Mul(mSumSqr, mSum, mSum);
00209             Abs(mSumAbs, mSum);
00210             if (mTmp == 0)
00211                 Set(mTmp, mSum);
00212             for (int i=1 ; i<mRunList.size() ; i++)
00213             {
00214                 Add(mSum, mSum, mRunList[i]);
00215                 Mul(mTmp, mRunList[i], mRunList[i]);
00216                 Add(mSumSqr, mSumSqr, mTmp);
00217                 Abs(mTmp, mRunList[i]);
00218                 Add(mSumAbs, mSumAbs, mTmp);
00219             }
00220         }
00221         DivVal(mMean, mSum, num);
00222         if (mNum == 1)
00223             SetVal(mVariance, mTmp, Element::E1Cast(0, ArithT()));
00224         else
00225         {
00226             Mul(mTmp, mSum, mSum);
00227             DivVal(mTmp, mTmp, num);
00228             Sub(mTmp, mSumSqr, mTmp);
00229             DivVal(mVariance, mTmp, num1);
00230         }
00231         mStatValid = true;
00232     }


Generated on Thu Jan 13 09:17:22 2011 for ImpalaSrc by  doxygen 1.5.1