/* * MatrixContainer.hpp * * Created on: Sep 15, 2011 * Author: heber */ #ifndef MATRIXCONTAINER_HPP_ #define MATRIXCONTAINER_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "boost/serialization/array.hpp" #include "boost/multi_array.hpp" /** Contains a sequence of matrices parsed from file. * */ class MatrixContainer { public: double ***Matrix; int **Indices; char **Header; int MatrixCounter; int *RowCounter; int *ColumnCounter; MatrixContainer(); virtual ~MatrixContainer(); bool InitialiseIndices(class MatrixContainer *Matrix = NULL); bool ParseMatrix(std::istream &input, int skiplines, int skipcolumns, int MatrixNr); virtual bool ParseFragmentMatrix(const char *name, const char *prefix, std::string suffix, int skiplines, int skipcolumns); bool AllocateMatrix(char **GivenHeader, int MCounter, int *RCounter, int *CCounter); bool ResetMatrix(); double FindMinValue(); double FindMaxValue(); bool SetLastMatrix(double value, int skipcolumns); bool SetLastMatrix(double **values, int skipcolumns); //bool ParseIndices(); //bool SumSubValues(); bool SumSubManyBodyTerms(class MatrixContainer &Matrix, class KeySetsContainer &KeySets, int Order); bool WriteTotalFragments(const char *name, const char *prefix); bool WriteLastMatrix(const char *name, const char *prefix, const char *suffix); }; std::ostream & operator << (std::ostream &ost, const MatrixContainer &m); #endif /* MATRIXCONTAINER_HPP_ */