PartialGenericMatrix.h 970 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * @file PartialGenericMatrix.h
  3. * @brief matrix interface for indirect sub-matrix multiplications
  4. * @author Erik Rodner
  5. * @date 01/26/2011
  6. */
  7. #ifndef PARTIALGENERICMATRIXINCLUDE
  8. #define PARTIALGENERICMATRIXINCLUDE
  9. #include <set>
  10. #include <vector>
  11. #include "GenericMatrix.h"
  12. namespace NICE
  13. {
  14. /** matrix interface for indirect sub-matrix multiplications */
  15. class PartialGenericMatrix : public GenericMatrix
  16. {
  17. public:
  18. typedef std::vector<int> SetType;
  19. /** multiply a sub-matrix with a given vector: Asub * xsub = ysub */
  20. virtual void multiply ( const SetType & rowSet, const SetType & columnSet, NICE::Vector & y, const NICE::Vector & x) const = 0;
  21. /** multiply with a vector: A*x = y */
  22. virtual void multiply (NICE::Vector & y, const NICE::Vector & x) const = 0;
  23. virtual double getDiagonalElement ( uint i ) const = 0;
  24. /** simple destructor */
  25. virtual ~ PartialGenericMatrix ()
  26. {
  27. };
  28. };
  29. } // namespace
  30. #endif