00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef MATVEC_DBLOCK_H
00023 #define MATVEC_DBLOCK_H
00024
00025 #include <iostream>
00026 #include <vector>
00027 #include "doublematrix.h"
00028
00029 namespace matvec {
00030
00031
00032
00033
00034
00035
00036
00037 class Dblock
00038 {
00039 protected:
00040 int ndim,nrow,ncol;
00041 Vector < doubleMatrix > block;
00042
00043 public:
00044 int iw;
00045 Dblock(void) {ndim=0,nrow=0,ncol=0;}
00046 Dblock(int nd, int nr, int nc);
00047
00048 void resize(int nd, int nr, int nc);
00049 void resize (int nd, int nr, int nc, double init);
00050 doubleMatrix & operator[](int i){return block[i];};
00051 double& operator()(int i,int j, int k){return block(i)(j,k);};
00052 int get_ndim(void) {return ndim;}
00053 int get_nrow(void) {return nrow;}
00054 int get_ncol(void) {return ncol;}
00055 void init(double val);
00056 friend std::ostream& operator << (std::ostream &stream, Dblock& D);
00057 };
00058 }
00059
00060 #endif