00001 #ifndef SCIL_COLUMN_H 00002 #define SCIL_COLUMN_H 00003 00004 #include<list> 00005 #include<scil/column_entry.h> 00006 00007 namespace SCIL { 00008 00010 class column { 00011 00012 private: 00013 std::list<column_entry> NZ; 00014 00015 public: 00016 00018 column() { 00019 }; 00020 00021 column(double d); 00022 00024 column(cons c); 00025 00027 column(std::list<column_entry>& L); 00028 00030 column operator* (double d); 00031 00033 column operator+ (column c1); 00034 00035 column operator+ (cons c1); 00036 00037 column operator+ (double d); 00038 00040 column operator- (column c1); 00041 00043 column& operator+= (column c1); 00044 00046 column& operator-= (column r); 00047 00050 void normalize(); 00051 00053 std::list<column_entry>::const_iterator begin() const; 00054 00056 std::list<column_entry>::const_iterator end() const; 00057 00059 std::list<column_entry>::iterator begin(); 00060 00062 std::list<column_entry>::iterator end(); 00063 00065 int size() const; 00066 }; 00067 00069 column operator*(double d, cons c1); 00070 00072 column operator*(double d, column c1); 00073 00074 } 00075 00076 #endif