PaCO++  0.05
CommMatrix.cc
Go to the documentation of this file.
00001 #include "CommMatrix.h"
00002 #include <stdlib.h>
00003 #include <string.h>
00004 #include <iostream>
00005 
00006 CommMatrix::CommMatrix(unsigned ssz, unsigned rsz)
00007 {
00008   _ssz=ssz;
00009   _rsz=rsz;
00010   _mat=new long[ssz*rsz];
00011 
00012   std::cerr<<"[new] CommMatrix -- ssz: "<<_ssz<<"  rsz:"<<_rsz<<std::endl;
00013   std::cerr<<"[new] Alloc"<<(void*)_mat<<std::endl;
00014 }
00015 
00016 CommMatrix::CommMatrix(CommMatrix* cm)
00017 {
00018   _ssz=cm->getSenderSize();
00019   _rsz=cm->getReceiverSize();
00020   _mat=new long[_ssz*_rsz];
00021 
00022   std::cerr<<"[new/copy] Alloc"<<(void*)_mat<<std::endl;
00023 
00024   long* omat= cm->_get_mat();
00025   memcpy(_mat, omat, sizeof(long)*_ssz*_rsz);
00026 
00027   std::cerr<<"[new/copy] CommMatrix -- ssz: "<<_ssz<<"  rsz:"<<_rsz<<std::endl;
00028 
00029 }
00030 
00031 CommMatrix::~CommMatrix()
00032 {
00033   if (_mat) {
00034     std::cerr<<"[del] free"<<(void*)_mat<<std::endl;
00035     delete[] _mat;
00036   }
00037   _mat=NULL;
00038   std::cerr<<"[del] CommMatrix"<<std::endl;
00039 }
00040 
00041 
00042 void
00043 CommMatrix::dump() const
00044 {
00045   std::cerr<<"[dump] CommMatrix -- ssz: "<<_ssz<<"  rsz:"<<_rsz<<std::endl;
00046   for(unsigned i=0;i<_ssz;i++) {
00047     for(unsigned j=0;j<_rsz;j++) {
00048       std::cerr << "[dump] "<<i<<" -> "<<j<<" : "<<this->get(i,j)<<std::endl;
00049     }
00050   }
00051 }