#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include "TClass.h"
#include "TMath.h"
#include "AliMatrixSq.h"
ClassImp(AliMatrixSq)
AliMatrixSq & AliMatrixSq::operator=(const AliMatrixSq &src)
{
if (this == &src) return *this;
TMatrixDBase::operator=(src);
fSymmetric = src.fSymmetric;
return *this;
}
void AliMatrixSq::MultiplyByVec(const Double_t *vecIn,Double_t *vecOut) const
{
for (int i=GetSize();i--;) {
vecOut[i] = 0.0;
for (int j=GetSize();j--;) vecOut[i] += vecIn[j]*(*this)(i,j);
}
}
void AliMatrixSq::PrintCOO() const
{
int nnz = 0;
int sz = GetSize();
for (int ir=0;ir<sz;ir++) for (int ic=0;ic<sz;ic++) if (Query(ir,ic)!=0) nnz++;
printf("%d %d %d\n",sz,sz,nnz);
double vl;
for (int ir=0;ir<sz;ir++) for (int ic=0;ic<sz;ic++) if ((vl=Query(ir,ic))!=0) printf("%d %d %f\n",ir,ic,vl);
}