#ifndef __SPARSE_H__
#define __SPARSE_H__
#include "Matrix.h"
#include <cstddef>
namespace Aurora {
    class Sparse
    {
    public:
        Sparse();
        Sparse(Matrix RowIdxs, Matrix ColIdxs, Matrix Values,size_t M, size_t N);
        ~Sparse();
        bool isValid() const;
        Matrix& getColVector() ;
        Matrix& getRowVector() ;
        Matrix& getValVector() ;
        /**
         * @brief Rows
         * 
         * @return size_t 
         */
        size_t getM() const;
        /**
         * @brief Cols
         * 
         * @return size_t 
         */
        size_t getN() const;
        // TODO:add operators
    private:
        Matrix mColIdxVector;
        Matrix mRowIdxVector;
        Matrix mValueVector;
        std::size_t mM;//row count
        std::size_t mN;//col count
    };
}




#endif // __SPARSE_H__