From 417a7d1d1a6a933dd2181a6860b937969785cb61 Mon Sep 17 00:00:00 2001 From: Jiri Pittner Date: Tue, 18 Nov 2025 15:11:18 +0100 Subject: [PATCH] tensor: add_permuted_contractions works --- t.cc | 46 ++++++++++++++++++++++++++++++++++++++++++++++ tensor.cc | 21 +++++++-------------- 2 files changed, 53 insertions(+), 14 deletions(-) diff --git a/t.cc b/t.cc index f789a56..72c72a2 100644 --- a/t.cc +++ b/t.cc @@ -4169,6 +4169,52 @@ cout<<"resulting index order = "<>nn; +int r=4; +NRVec s(r); +for(int i=0; i x(s); x.randomize(1.); +INDEXNAME xlist[] = {"i","j","k","l"}; +x.names=NRVec(xlist); +Tensor y(s); y.randomize(1.); +INDEXNAME ylist[] = {"m","n","j","i"}; +y.names=NRVec(ylist); + +Tensorz(s); z.clear(); +INDEXNAME zlist[] = {"m","n","k","l"}; +z.names=NRVec(zlist); +Tensorzz(z); + +INDEX i1[]={{0,0},{1,0}}; +INDEX i2[]={{3,0},{2,0}}; +NRVec il1(i1); +NRVec il2(i2); +Tensor zzz = x.contractions(il1,y,il2,1,false,false); +//cout <<"zzz names = "< tmp=rhs1.contractions(il1,rhs2,il2,alpha,conjugate1,conjugate2); if(rank()!=tmp.rank()) laerror("rank mismatch in add_permuted_contractions"); if(tmp.names!=tmpnames) laerror("internal error in add_permuted_contractions"); - -//@@@apply_permutation_algebra(tmp,pb,false,(T)1,beta); apply_permutation_algebra(tmp,pb,true,(T)1,beta); }