@@ -102,105 +102,6 @@ out[i] = in[i];
102102 pztranc_ (&n, &n, &alpha, tmp.data (), &i1, &i1, pmat.desc , &beta, inout, &i1, &i1, pmat.desc );
103103 }
104104#endif
105- container::Tensor mat2ten_double (ModuleBase::matrix& m)
106- {
107- container::Tensor t (DAT::DT_DOUBLE, DEV::CpuDevice, { m.nr , m.nc });
108- for (int i = 0 ;i < t.NumElements ();++i) {
109- t.data <double >()[i] = m.c [i];
110- }
111- return t;
112- }
113- std::vector<container::Tensor> mat2ten_double (std::vector<ModuleBase::matrix>& m)
114- {
115- std::vector<container::Tensor> t;
116- for (int i = 0 ;i < m.size ();++i) {
117- t.push_back (mat2ten_double (m[i]));
118- }
119- return t;
120- }
121- ModuleBase::matrix ten2mat_double (container::Tensor& t)
122- {
123- ModuleBase::matrix m (t.shape ().dims ()[0 ], t.shape ().dims ()[1 ]);
124- for (int i = 0 ;i < t.NumElements ();++i) {
125- m.c [i] = t.data <double >()[i];
126- }
127- return m;
128- }
129- std::vector<ModuleBase::matrix> ten2mat_double (std::vector<container::Tensor>& t)
130- {
131- std::vector<ModuleBase::matrix> m;
132- for (int i = 0 ;i < t.size ();++i) {
133- m.push_back (ten2mat_double (t[i]));
134- }
135- return m;
136- }
137- container::Tensor mat2ten_complex (ModuleBase::ComplexMatrix& m)
138- {
139- container::Tensor t (DAT::DT_COMPLEX_DOUBLE, DEV::CpuDevice, { m.nr , m.nc });
140- for (int i = 0 ;i < t.NumElements ();++i) {
141- t.data <std::complex <double >>()[i] = m.c [i];
142- }
143- return t;
144- }
145- std::vector<container::Tensor> mat2ten_complex (std::vector<ModuleBase::ComplexMatrix>& m)
146- {
147- std::vector<container::Tensor> t;
148- for (int i = 0 ;i < m.size ();++i) {
149- t.push_back (mat2ten_complex (m[i]));
150- }
151- return t;
152- }
153- ModuleBase::ComplexMatrix ten2mat_complex (container::Tensor& t)
154- {
155- ModuleBase::ComplexMatrix m (t.shape ().dims ()[0 ], t.shape ().dims ()[1 ]);
156- for (int i = 0 ;i < t.NumElements ();++i) {
157- m.c [i] = t.data <std::complex <double >>()[i];
158- }
159- return m;
160- }
161- std::vector<ModuleBase::ComplexMatrix> ten2mat_complex (std::vector<container::Tensor>& t)
162- {
163- std::vector<ModuleBase::ComplexMatrix> m;
164- for (int i = 0 ;i < t.size ();++i) {
165- m.push_back (ten2mat_complex (t[i]));
166- }
167- return m;
168- }
169-
170- ModuleBase::matrix vec2mat (const std::vector<double >& v, const int nr, const int nc)
171- {
172- assert (v.size () == nr * nc);
173- ModuleBase::matrix m (nr, nc, false );
174- for (int i = 0 ;i < v.size ();++i) {
175- m.c [i] = v[i];
176- }
177- return m;
178- }
179- ModuleBase::ComplexMatrix vec2mat (const std::vector<std::complex <double >>& v, const int nr, const int nc)
180- {
181- assert (v.size () == nr * nc);
182- ModuleBase::ComplexMatrix m (nr, nc, false );
183- for (int i = 0 ;i < v.size ();++i) {
184- m.c [i] = v[i];
185- }
186- return m;
187- }
188- std::vector<ModuleBase::matrix> vec2mat (const std::vector<std::vector<double >>& v, const int nr, const int nc)
189- {
190- std::vector<ModuleBase::matrix> m (v.size ());
191- for (int i = 0 ;i < v.size ();++i) {
192- m[i] = vec2mat (v[i], nr, nc);
193- }
194- return m;
195- }
196- std::vector<ModuleBase::ComplexMatrix> vec2mat (const std::vector<std::vector<std::complex <double >>>& v, const int nr, const int nc)
197- {
198- std::vector<ModuleBase::ComplexMatrix> m (v.size ());
199- for (int i = 0 ;i < v.size ();++i) {
200- m[i] = vec2mat (v[i], nr, nc);
201- }
202- return m;
203- }
204105
205106 // for the first matrix in the commutator
206107 void setup_2d_division (Parallel_2D& pv, int nb, int gr, int gc)
0 commit comments