Skip to content

Commit 0547609

Browse files
authored
inline function of complexarray (#5964)
1 parent 76751ea commit 0547609

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

source/module_base/complexarray.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -262,18 +262,4 @@ void point_mult(ComplexArray &in1, ComplexArray &in2, ComplexArray &out){
262262
in1.ptr[i].real() * in2.ptr[i].imag() +
263263
in1.ptr[i].imag() * in2.ptr[i].real());}
264264
}
265-
const std::complex <double> &ComplexArray::operator()(const int ind1, const int ind2, const int ind3, const int ind4) const{
266-
assert(ind1>=0); assert(ind1<bound1);
267-
assert(ind2>=0); assert(ind2<bound2);
268-
assert(ind3>=0); assert(ind3<bound3);
269-
assert(ind4>=0); assert(ind4<bound4);
270-
const int ind = ((ind1 * bound2 + ind2) * bound3 + ind3) * bound4 + ind4;
271-
return ptr[ind];}
272-
std::complex<double>& ComplexArray::operator()(const int ind1,const int ind2,const int ind3,const int ind4){
273-
assert(ind1>=0); assert(ind1<bound1);
274-
assert(ind2>=0); assert(ind2<bound2);
275-
assert(ind3>=0); assert(ind3<bound3);
276-
assert(ind4>=0); assert(ind4<bound4);
277-
const int ind = ((ind1 * bound2 + ind2) * bound3 + ind3) * bound4 + ind4;
278-
return ptr[ind];}
279265
}

source/module_base/complexarray.h

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <iostream>
66
#include <fstream>
77
#include <iomanip>
8+
#include <cassert>
89

910
namespace ModuleBase
1011
{
@@ -58,11 +59,27 @@ class ComplexArray
5859

5960
/// overloaded subscript operator for non-const std::complex Array const reference return creates an lvakue
6061
std::complex <double> &operator()
61-
(const int ind1=0, const int ind2=0, const int ind3=0, const int ind4=0);
62+
(const int ind1=0, const int ind2=0, const int ind3=0, const int ind4=0)
63+
{
64+
assert(ind1>=0); assert(ind1<bound1);
65+
assert(ind2>=0); assert(ind2<bound2);
66+
assert(ind3>=0); assert(ind3<bound3);
67+
assert(ind4>=0); assert(ind4<bound4);
68+
const int ind = ((ind1 * bound2 + ind2) * bound3 + ind3) * bound4 + ind4;
69+
return ptr[ind];
70+
};
6271
// std::complex < double> &operator()(int, int, int, int, int);
6372
/// overloaded subscript operator for const std::complex Array const reference return creates an cvakue
6473
const std::complex <double> &operator()
65-
(const int ind1=0, const int ind2=0, const int ind3=0, const int ind4=0)const;
74+
(const int ind1=0, const int ind2=0, const int ind3=0, const int ind4=0) const
75+
{
76+
assert(ind1>=0); assert(ind1<bound1);
77+
assert(ind2>=0); assert(ind2<bound2);
78+
assert(ind3>=0); assert(ind3<bound3);
79+
assert(ind4>=0); assert(ind4<bound4);
80+
const int ind = ((ind1 * bound2 + ind2) * bound3 + ind3) * bound4 + ind4;
81+
return ptr[ind];
82+
};
6683
// const std::complex < double> &operator()(int, int, int, int, int)const;
6784

6885
/****************************************************

0 commit comments

Comments
 (0)