00001 #ifndef SCIL_COLUMN_H
00002 #define SCIL_COLUMN_H
00003
00004 #include<LEDA/list.h>
00005 #include<scil/column_entry.h>
00006
00007 namespace SCIL {
00008
00010 class column {
00011
00012 public:
00013 LEDA_MEMORY(column)
00014
00015 typedef LEDA::list_item item;
00016
00017 private:
00018 LEDA::list<column_entry> NZ;
00019
00020 public:
00021
00023 column() {
00024 };
00025
00026 column(double d);
00027
00029 column(cons c);
00030
00032 column(LEDA::list<column_entry>& L);
00033
00035 column operator* (double d);
00036
00038 column operator+ (column c1);
00039
00040 column operator+ (cons c1);
00041
00042 column operator+ (double d);
00043
00045 column operator- (column c1);
00046
00048 column& operator+= (column c1);
00049
00051 column& operator-= (column r);
00052
00055 void normalize();
00056
00057 column_entry inf(const item i) const;
00058
00059 int size();
00060
00061 item first_item() const;
00062
00063 item next_item(item i) const;
00064
00065 };
00066
00067
00068
00069
00071 column operator*(double d, cons c1);
00072
00074 column operator*(double d, column c1);
00075
00076 }
00077
00078 #endif