Add sparse matrix.

This commit is contained in:
kradchen
2023-05-29 09:37:04 +08:00
parent ef2ee6e0a6
commit 320d6c81cb
2 changed files with 55 additions and 0 deletions

29
src/Sparse.cpp Normal file
View File

@@ -0,0 +1,29 @@
#include "Sparse.h"
#include "Matrix.h"
namespace Aurora
{
Sparse::Sparse()
{
}
Sparse::~Sparse()
{
}
Sparse::Sparse(Matrix& Cols, Matrix& Rows, Matrix& Values,size_t M, size_t N)
: mColIdxVector(Cols),
mRowIdxVector(Rows),
mValueVector(Values),
mM(M),
mN(N)
{
}
bool Sparse::isValid() const
{
return mColIdxVector.isVector() && mRowIdxVector.isVector() && mValueVector.isVector()
&& mColIdxVector.getDataSize() == mRowIdxVector.getDataSize()
&& mColIdxVector.getDataSize() == mValueVector.getDataSize();
}
}

26
src/Sparse.h Normal file
View File

@@ -0,0 +1,26 @@
#ifndef __SPARSE_H__
#define __SPARSE_H__
#include "Matrix.h"
#include <cstddef>
namespace Aurora {
class Sparse
{
public:
Sparse();
Sparse(Matrix& Cols, Matrix& Rows, Matrix& Values,size_t M, size_t N);
~Sparse();
bool isValid() 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__