@@ -62,37 +62,33 @@ namespace LR_Util
6262 template <>
6363 void matsym<double >(const double * in, const int n, const Parallel_2D& pmat, double * out)
6464 {
65- for (int i = 0 ;i < pmat.get_local_size ();++i) {out[i] = in[i];
66- }
65+ for (int i = 0 ;i < pmat.get_local_size ();++i) { out[i] = in[i]; }
6766 const double alpha = 0.5 , beta = 0.5 ;
6867 const int i1 = 1 ;
6968 pdtran_ (&n, &n, &alpha, in, &i1, &i1, pmat.desc , &beta, out, &i1, &i1, pmat.desc );
7069 }
7170 template <>
7271 void matsym<double >(double * inout, const int n, const Parallel_2D& pmat)
7372 {
74- std::vector<double > tmp (n * n);
75- for (int i = 0 ;i < pmat.get_local_size ();++i) {tmp[i] = inout[i];
76- }
73+ std::vector<double > tmp (pmat.get_local_size ());
74+ std::copy (inout, inout + pmat.get_local_size (), tmp.begin ());
7775 const double alpha = 0.5 , beta = 0.5 ;
7876 const int i1 = 1 ;
7977 pdtran_ (&n, &n, &alpha, tmp.data (), &i1, &i1, pmat.desc , &beta, inout, &i1, &i1, pmat.desc );
8078 }
8179 template <>
8280 void matsym<std::complex <double >>(const std::complex <double >* in, const int n, const Parallel_2D& pmat, std::complex <double >* out)
8381 {
84- for (int i = 0 ;i < pmat.get_local_size ();++i) {out[i] = in[i];
85- }
82+ for (int i = 0 ;i < pmat.get_local_size ();++i) { out[i] = in[i]; }
8683 const std::complex <double > alpha (0.5 , 0.0 ), beta (0.5 , 0.0 );
8784 const int i1 = 1 ;
8885 pztranc_ (&n, &n, &alpha, in, &i1, &i1, pmat.desc , &beta, out, &i1, &i1, pmat.desc );
8986 }
9087 template <>
9188 void matsym<std::complex <double >>(std::complex <double >* inout, const int n, const Parallel_2D& pmat)
9289 {
93- std::vector<std::complex <double >> tmp (n * n);
94- for (int i = 0 ;i < pmat.get_local_size ();++i) {tmp[i] = inout[i];
95- }
90+ std::vector<std::complex <double >> tmp (pmat.get_local_size ());
91+ std::copy (inout, inout + pmat.get_local_size (), tmp.begin ());
9692 const std::complex <double > alpha (0.5 , 0.0 ), beta (0.5 , 0.0 );
9793 const int i1 = 1 ;
9894 pztranc_ (&n, &n, &alpha, tmp.data (), &i1, &i1, pmat.desc , &beta, inout, &i1, &i1, pmat.desc );
0 commit comments