Mentions légales du service

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

Add MatSparse::submatrix.

parent 135cdb7f
Branches
Tags
No related merge requests found
......@@ -352,6 +352,9 @@ namespace Faust
const FPP& operator()(faust_unsigned_int i, faust_unsigned_int j)const{return const_cast<Eigen::SparseMatrix<FPP,Eigen::RowMajor>*>(&mat)->coeffRef(i,j);}
void submatrix(const std::vector<int> &row_ids, const std::vector<int> &col_ids, MatDense<FPP, Cpu> & submat) const;
Vect<FPP,Cpu> get_col(faust_unsigned_int id) const;
void get_col(faust_unsigned_int id, Vect<FPP, Cpu> &out_vec) const;
/*
......
......@@ -904,6 +904,16 @@ Real<FPP> Faust::MatSparse<FPP, Cpu>::normInf(faust_unsigned_int& row_id, const
return normL1(row_id, !transpose);
}
template<typename FPP>
void Faust::MatSparse<FPP, Cpu>::submatrix(const std::vector<int> &row_ids, const std::vector<int> &col_ids, MatDense<FPP, Cpu> & submat) const
{
if(this->dim1 != row_ids.size() || this->dim2 != col_ids.size())
submat.resize(row_ids.size(), col_ids.size());
for(int i=0;i<row_ids.size();i++)
for(int j=0;j<col_ids.size();j++)
submat.mat(i,j) = mat.coeff(row_ids[i], col_ids[j]);
}
template<typename FPP>
Faust::Vect<FPP,Cpu> Faust::MatSparse<FPP,Cpu>::get_col(faust_unsigned_int id) const
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment