Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 61a180e7 authored by hhakim's avatar hhakim
Browse files

Add MatSparse::col_nonzero_inds, row_nonzero_inds.

parent 4fff39b5
Branches
Tags
No related merge requests found
...@@ -392,6 +392,9 @@ namespace Faust ...@@ -392,6 +392,9 @@ namespace Faust
void swap_rows(faust_unsigned_int id1, faust_unsigned_int id2); void swap_rows(faust_unsigned_int id1, faust_unsigned_int id2);
void swap_cols(faust_unsigned_int id1, faust_unsigned_int id2); void swap_cols(faust_unsigned_int id1, faust_unsigned_int id2);
std::vector<int> col_nonzero_inds(faust_unsigned_int col_id) const;
std::vector<int> row_nonzero_inds(faust_unsigned_int row_id) const;
std::list<std::pair<int,int>> nonzeros_indices() const; std::list<std::pair<int,int>> nonzeros_indices() const;
/** /**
......
...@@ -1056,6 +1056,26 @@ Faust::MatSparse<FPP,Cpu>* Faust::MatSparse<FPP,Cpu>::get_rows(const faust_unsig ...@@ -1056,6 +1056,26 @@ Faust::MatSparse<FPP,Cpu>* Faust::MatSparse<FPP,Cpu>::get_rows(const faust_unsig
return subMatrix; return subMatrix;
} }
template<typename FPP>
std::vector<int> Faust::MatSparse<FPP, Cpu>::col_nonzero_inds(faust_unsigned_int col_id) const
{
std::vector<int> ids;
for (int i=0; i < mat.outerSize(); i++)
for (typename Eigen::SparseMatrix<FPP,Eigen::RowMajor>::InnerIterator it(mat,i); it; ++it)
if(it.col() == col_id)
ids.push_back(it.row());
return ids;
}
template<typename FPP>
std::vector<int> Faust::MatSparse<FPP, Cpu>::row_nonzero_inds(faust_unsigned_int row_id) const
{
std::vector<int> ids;
for (typename Eigen::SparseMatrix<FPP,Eigen::RowMajor>::InnerIterator it(mat,row_id); it; ++it)
ids.push_back(it.col());
return ids;
}
template<typename FPP> template<typename FPP>
Faust::MatSparse<FPP, Cpu>* Faust::MatSparse<FPP, Cpu>::randMat(faust_unsigned_int num_rows, faust_unsigned_int num_cols, Real<FPP> density) Faust::MatSparse<FPP, Cpu>* Faust::MatSparse<FPP, Cpu>::randMat(faust_unsigned_int num_rows, faust_unsigned_int num_cols, Real<FPP> density)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment