2 full-storage.hh -- declare Full_storage
4 source file of the Flower Library
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
10 #ifndef FULL_STORAGE_HH
11 #define FULL_STORAGE_HH
14 #include "matrix-storage.hh"
17 /// simplest matrix storage. refer to its baseclass for the doco.
18 class Full_storage : public Matrix_storage
21 int height_i_,width_i_;
23 int max_height_i_, max_width_i_;
31 height_i_=width_i_=max_height_i_=max_width_i_=0;
35 bool valid(int i, int j) const {
36 return (i>=0 && i < height_i_)
37 && (j < width_i_ && j >=0);
41 void resize_rows(int);
42 void resize_cols(int);
45 virtual int rows() const {
48 virtual int cols() const {
53 virtual void resize(int i, int j);
54 virtual void resize(int i) {
58 virtual Real& elem(int i,int j) {
60 return els_p_p_[i][j];
62 virtual Real elem(int i, int j) const {
64 return els_p_p_[i][j];
67 Full_storage(Matrix_storage*);
71 Full_storage(int i, int j) {
75 Full_storage(Full_storage const&);
81 void operator=(Full_storage const &);
83 virtual void insert_row(int k);
84 virtual void delete_row(int k);
85 virtual void delete_column(int k);
88 virtual bool mult_ok(int i, int j)const;
89 virtual void mult_next(int &i, int &j) const ;
90 virtual bool trans_ok(int i, int j) const;
91 virtual void trans_next(int &i, int &j) const;
92 VIRTUAL_COPY_CONS(Full_storage,Matrix_storage);
93 DECLARE_MY_RUNTIME_TYPEINFO;
94 virtual bool try_right_multiply(Matrix_storage * dest, Matrix_storage const * )const;
97 #endif // FULL_STORAGE_HH