Listing 4

//matrix package

#include "cvector.hpp"

class Cmatrix  {

private:
  void init(int row=1,int col=1,int b=0);
public:
  complex** m;
  int rowkt,colkt,base;
  
  Cmatrix(int rowkt,int colkt,int b)
    { init( rowkt, colkt, b);} //constructor
  Cmatrix() {init();}      // "
  Cmatrix( Cmatrix&);      // init
      ~Cmatrix();         // destructor
  void operator=(Cmatrix& );
  inline complex& elemnt(int i,int j)
    {return m[i-base] [j-base];}
  void check(int,int);
  complex& element(int,int);
  inline void setelemnt(int i,int j,complex value)
    {m[i][j]=value;    }
  void setelement(int,int, complex);
  friend Cmatrix operator*(Cmatrix&,Cmatrix&); //Mat*Mat
  friend Cvector operator*(Cmatrix&,Cvector&); //Mat*Vector
};