From dc0b823c3ae508895ff43552ad11e81aed51a32a Mon Sep 17 00:00:00 2001 From: Jiri Pittner Date: Thu, 11 Aug 2022 15:52:58 +0200 Subject: [PATCH] realpart() for sparsemat --- nonclass.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/nonclass.cc b/nonclass.cc index 3a18a08..14690ca 100644 --- a/nonclass.cc +++ b/nonclass.cc @@ -1317,6 +1317,29 @@ for(int i=0; i +const SparseMat realpart > >(const SparseMat< std::complex > &a) +{ +SparseMat result(a.nrows(), a.ncols()); +for(SparseMat< std::complex >::iterator p=a.begin(); p!=a.end(); ++p) + { + result.add(p->row,p->col,p->elem.real()); + } +if(a.issymmetric()) result.setsymmetric(); +return result; +} + +template<> +const SparseMat imagpart > >(const SparseMat< std::complex > &a) +{ +SparseMat result(a.nrows(), a.ncols()); +for(SparseMat< std::complex >::iterator p=a.begin(); p!=a.end(); ++p) + { + result.add(p->row,p->col,p->elem.imag()); + } +if(a.issymmetric()) result.setsymmetric(); +return result; +} template<> const NRMat realpart > >(const NRMat< std::complex > &a)