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