Definition at line 715 of file mainIm.cpp. References Impala::atol(), Impala::Core::Matrix::MatrixTem< C >::covariance(), Impala::CmdOptions::GetArg(), Impala::Util::Database::GetInstance(), Impala::CmdOptions::GetInstance(), Impala::CmdOptions::GetNrArg(), ILOG_ERROR, ILOG_INFO, ILOG_VAR, Impala::Core::Matrix::MatCovariance(), Impala::Core::Matrix::MatTranspose(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::mCH, Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::mCW, Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::mData, Impala::Core::Array::ReadRaw(), and Impala::Timer::SplitTime(). Referenced by mainIm(). 00716 { 00717 ILOG_VAR(Impala.Application.Im.DoMatrix); 00718 CmdOptions& options = CmdOptions::GetInstance(); 00719 if (options.GetNrArg() < 3) 00720 { 00721 ILOG_ERROR("Need more arguments"); 00722 return; 00723 } 00724 Util::Database* db = &Util::Database::GetInstance(); 00725 00726 String fileName = options.GetArg(1); 00727 int version = atol(options.GetArg(2)); 00728 00729 typedef Array2dScalarReal64 Mat; 00730 //typedef VecScalarReal64 Vec; 00731 00732 Mat* m1 = 0; 00733 ReadRaw(m1, fileName, db); 00734 Mat* m2 = MatTranspose(m1); 00735 delete m1; 00736 MatrixDouble m(m2->mCH, m2->mCW, m2->mData); 00737 Timer timer(1); 00738 if (version == 1) 00739 { 00740 ILOG_INFO("time: " << timer.SplitTime() << " Array based "); 00741 //m1 = MatKLM(m2, 4); 00742 m1 = MatCovariance(m2, (Mat*) 0); 00743 } 00744 else 00745 { 00746 ILOG_INFO("time: " << timer.SplitTime() << " Matrix based "); 00747 //m = m.klm(4); 00748 VectorTem<double> v; 00749 m = m.covariance(v); 00750 } 00751 ILOG_INFO("time: " << timer.SplitTime()); 00752 }
Here is the call graph for this function:
|