Closed HugoStrand closed 5 years ago
One was not supposed to use the same placeholder twice in the LHS, the lib should reject this. Anyway, it should be fixed, or not compile. @Wentzell : or use 17 for loop + structured bindings.
a(i,j) << anything (i,j) is rewritten triqs_auto_assign( a, [](auto i, auto j) { return anything(i,j);}) It will iterate on the whole domain, so the placeholders must be different.
Fixed in unstable
I am trying to build a tensor two-particle Green's function from a sampled block2 Green's function on AABB block form. To do so I want to first populate the AABB blocks of the tensor Green's function using a simple clef expression
The problem is that this expression (surprisingly) does not take into account that A and B are repeated on the left hand side. Hence, it also assigns to, e.g.
g2_tensor(n1, n2, n3)(0, 0, 0, 1)
, i.e. not following the(A, A, B, B)
index constraint given in the above clef expression.This is a serious bug. Is it possible to fix it?
Seemingly we need more test coverage of the clef machinery, debugging it while trying to solve the BSE is a bit painful. The current workaround is plain stupid
Best, Hugo
Below is a test that currently fails for
unstable
to be put in./test/triqs/gfs/multivar/clef_block_tensor.cpp