// cOccuranceData.cpp: implementation of the cOccuranceData class. // ////////////////////////////////////////////////////////////////////// #include "StdAfx.h" #include "cOccuranceData.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// cOccuranceData::cOccuranceData(const int size): _mat_size(size) {} cOccuranceData::cOccuranceData(istream& in) { int length, number; in >> length; in >> number; _mat_size=length; for (int i=0;iNaiveNormalizeTime()); } SumAll.ScaleSelf(1./_data.size()); // not _mat_size !! return SumAll; } void cOccuranceData::AddPair(const cOccurancePair &NextPair) { _data.push_back(NextPair); if ( _mat_size != NextPair.size() ) { throw("cOccuranceData::AddPair : data of inappropriate matrix size"); } _updateSuffisiontStatistics(); } size_t cOccuranceData::alphabetSize() const { return _mat_size; } // return S^(timeid)_[a,b] + S^(timeid)_[b,a] double cOccuranceData::getSS(const int time_id,const int a,const int b) const { const cSquareMatrix& SS=Matrix(time_id); return (SS[a][b]+SS[b][a]); } const double& cOccuranceData::getSstar(const int a) const { return (_SstarDelta[a]); } void cOccuranceData::print(ostream& sout) const { int number=_data.size(); sout<< number <print(sout); } }