00001 #include <vector> 00002 #include <map> 00003 #include <algorithm> 00004 00005 00010 template <class ScalarType> 00011 class SparseMatrix{ 00012 00013 public: 00014 00015 std::vector<int> _Ap; 00016 std::vector<int> _Ai; 00017 std::vector<double> _Ax; 00018 00019 typedef typename std::pair<int,int> IndexType; 00020 00021 int _dimension; 00022 00023 public: 00024 00026 virtual void Initalize(int dimension) 00027 {_dimension=dimension;} 00028 00031 virtual void CreateSparse(std::vector<IndexType> Entries) 00032 {} 00033 00035 virtual ScalarType &A(int row,int col) 00036 {return (_Ax[0]);} 00037 00039 virtual bool IsSymmetric() 00040 {return false;} 00041 00042 virtual void Zero() 00043 {} 00044 00046 virtual int Size(){return _dimension;} 00047 00048 };