mirror of
https://github.com/triqs/dft_tools
synced 2024-12-25 13:53:40 +01:00
Fix for issue #134
There was a bug in the transpose of the indices. Added a test.
This commit is contained in:
parent
0fd82579e3
commit
173a97d07c
@ -125,15 +125,16 @@ def invert(self):
|
|||||||
|
|
||||||
#---------------------------------------------------
|
#---------------------------------------------------
|
||||||
|
|
||||||
def transpose(self):
|
# FIXME NEVER USED CLEAN UP
|
||||||
"""Transposes the GF Bloc: return a new transposed view"""
|
#def transpose(self):
|
||||||
### WARNING: this depends on the C++ layering ....
|
# """Transposes the GF Bloc: return a new transposed view"""
|
||||||
return self.__class__(
|
# ### WARNING: this depends on the C++ layering ....
|
||||||
indices = list(self.indices),
|
# return self.__class__(
|
||||||
mesh = self.mesh,
|
# indices = list(self.indices),
|
||||||
data = self.data.transpose( (0, 2, 1) ),
|
# mesh = self.mesh,
|
||||||
tail = self.tail.transpose(),
|
# data = self.data.transpose( (0, 2, 1) ),
|
||||||
name = self.name+'(t)')
|
# tail = self.tail.transpose(),
|
||||||
|
# name = self.name+'(t)')
|
||||||
|
|
||||||
#---------------------------------------------------
|
#---------------------------------------------------
|
||||||
|
|
||||||
|
@ -21,3 +21,5 @@ add_triqs_test_hdf(pade " -d 1.e-6")
|
|||||||
# Bug fix #112
|
# Bug fix #112
|
||||||
add_triqs_test_txt(gf_inplace_112)
|
add_triqs_test_txt(gf_inplace_112)
|
||||||
|
|
||||||
|
# Bug fix #134
|
||||||
|
add_triqs_test_txt(gf_transpose)
|
||||||
|
4
test/pytriqs/base/gf_transpose.output
Normal file
4
test/pytriqs/base/gf_transpose.output
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Old data shape = (1000, 3, 5)
|
||||||
|
Old tail shape = (10, 3, 5)
|
||||||
|
New data shape = (1000, 5, 3)
|
||||||
|
New tail shape = (10, 5, 3)
|
9
test/pytriqs/base/gf_transpose.py
Normal file
9
test/pytriqs/base/gf_transpose.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
from pytriqs.gf.local import *
|
||||||
|
|
||||||
|
g = GfImFreq(indicesR = range(5), indicesL = range(3), beta = 40, n_points = 1000)
|
||||||
|
gt = g.transpose()
|
||||||
|
|
||||||
|
print "Old data shape = ", g.data.shape
|
||||||
|
print "Old tail shape = ", g.tail.data.shape
|
||||||
|
print "New data shape = ", gt.data.shape
|
||||||
|
print "New tail shape = ", gt.tail.data.shape
|
@ -162,13 +162,7 @@ namespace gfs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline indices_2 transpose(indices_2 const &x) {
|
inline indices_2 transpose(indices_2 const &x) {
|
||||||
auto ind2 = x.ind;
|
return std::vector<std::vector<std::string>> {x.ind[1],x.ind[0]};
|
||||||
if (x.ind.size() > 0) {
|
|
||||||
int im = x.ind.size(), jm = x.ind[0].size();
|
|
||||||
for (int i = 0; i < im; ++i)
|
|
||||||
for (int j = 0; j < jm; ++j) ind2[i][j] = x.ind[j][i];
|
|
||||||
}
|
|
||||||
return indices_2(std::move(ind2));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user