Skip to content

Commit 2d5fd31

Browse files
committed
replaced relabels() set_labels() and set_label() by relabel()
1 parent 033ece3 commit 2d5fd31

File tree

7 files changed

+59
-59
lines changed

7 files changed

+59
-59
lines changed

example/DMRG/dmrg_two_sites_U1.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def matvec(self, v):
1919
lbl = v.labels()
2020
self.anet.PutUniTensor("psi",v)
2121
out = self.anet.Launch()
22-
out.relabels_(lbl)
22+
out.relabel_(lbl)
2323
return out
2424

2525
def optimize_psi(psi, functArgs, maxit=2, krydim=4):
@@ -98,7 +98,7 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
9898
A[k] = cytnx.UniTensor([B1,B2,B3],rowrank=2)
9999

100100
lbl = [str(2*k),str(2*k+1),str(2*k+2)]
101-
A[k].set_labels(lbl)
101+
A[k].relabel(lbl)
102102

103103
A[k].get_block_()[0] = 1
104104
lbls.append(lbl) # store the labels for later convinience.
@@ -132,12 +132,12 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
132132

133133
psi.set_rowrank_(2) # maintain rowrank to perform the svd
134134
s,A[p],A[p+1] = cytnx.linalg.Svd_truncate(psi,new_dim)
135-
A[p+1].relabels_(lbls[p+1]); # set the label back to be consistent
135+
A[p+1].relabel_(lbls[p+1]); # set the label back to be consistent
136136

137137
s = s/s.Norm().item() # normalize s
138138

139139
A[p] = cytnx.Contract(A[p],s) # absorb s into next neighbor
140-
A[p].relabels_(lbls[p]); # set the label back to be consistent
140+
A[p].relabel_(lbls[p]); # set the label back to be consistent
141141

142142
# update LR from right to left:
143143
anet = cytnx.Network()
@@ -154,7 +154,7 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
154154

155155
A[0].set_rowrank_(1)
156156
_,A[0] = cytnx.linalg.Gesvd(A[0],is_U=False, is_vT=True)
157-
A[0].relabels_(lbls[0]); #set the label back to be consistent
157+
A[0].relabel_(lbls[0]); #set the label back to be consistent
158158

159159
for p in range(Nsites-1):
160160
dim_l = A[p].shape()[0]
@@ -167,12 +167,12 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
167167

168168
psi.set_rowrank_(2) # maintain rowrank to perform the svd
169169
s,A[p],A[p+1] = cytnx.linalg.Svd_truncate(psi,new_dim)
170-
A[p].relabels_(lbls[p]); #set the label back to be consistent
170+
A[p].relabel_(lbls[p]); #set the label back to be consistent
171171

172172
s = s/s.Norm().item() # normalize s
173173

174174
A[p+1] = cytnx.Contract(s,A[p+1]) ## absorb s into next neighbor.
175-
A[p+1].relabels_(lbls[p+1]); #set the label back to be consistent
175+
A[p+1].relabel_(lbls[p+1]); #set the label back to be consistent
176176

177177
# update LR from left to right:
178178
anet = cytnx.Network()
@@ -189,7 +189,7 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
189189

190190
A[-1].set_rowrank_(2)
191191
_,A[-1] = cytnx.linalg.Gesvd(A[-1],is_U=True,is_vT=False) ## last one.
192-
A[-1].relabels_(lbls[-1]); #set the label back to be consistent
192+
A[-1].relabel_(lbls[-1]); #set the label back to be consistent
193193

194194
return Ekeep
195195

example/DMRG/dmrg_two_sites_dense.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def matvec(self, v):
1818
lbl = v.labels()
1919
self.anet.PutUniTensor("psi",v)
2020
out = self.anet.Launch()
21-
out.relabels_(lbl)
21+
out.relabel_(lbl)
2222
return out
2323

2424
def optimize_psi(psi, functArgs, maxit=2, krydim=4):
@@ -61,7 +61,7 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
6161
lbls = [] # List for storing the MPS labels
6262
A = [None for i in range(Nsites)]
6363
A[0] = cytnx.UniTensor(cytnx.random.normal([1, d, min(chi, d)], 0., 1.), rowrank = 2)
64-
A[0].relabels_(["0","1","2"])
64+
A[0].relabel_(["0","1","2"])
6565
lbls.append(["0","1","2"]) # store the labels for later convinience.
6666

6767
for k in range(1,Nsites):
@@ -70,7 +70,7 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
7070
A[k] = cytnx.UniTensor(cytnx.random.normal([dim1, dim2, dim3],0.,1.), rowrank = 2)
7171

7272
lbl = [str(2*k),str(2*k+1),str(2*k+2)]
73-
A[k].relabels_(lbl)
73+
A[k].relabel_(lbl)
7474
lbls.append(lbl) # store the labels for later convinience.
7575

7676
LR = [None for i in range(Nsites+1)]
@@ -97,11 +97,11 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
9797
LR[p+1] = anet.Launch()
9898

9999
# Recover the original MPS labels
100-
A[p].relabels_(lbls[p])
101-
A[p+1].relabels_(lbls[p+1])
100+
A[p].relabel_(lbls[p])
101+
A[p+1].relabel_(lbls[p+1])
102102

103103
_,A[-1] = cytnx.linalg.Gesvd(A[-1],is_U=True,is_vT=False) ## last one.
104-
A[-1].relabels_(lbls[-1]) # Recover the original MPS labels
104+
A[-1].relabel_(lbls[-1]) # Recover the original MPS labels
105105

106106
Ekeep = []
107107
for k in range(1, numsweeps+1):
@@ -117,12 +117,12 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
117117

118118
psi.set_rowrank_(2) # maintain rowrank to perform the svd
119119
s,A[p],A[p+1] = cytnx.linalg.Svd_truncate(psi,new_dim)
120-
A[p+1].relabels_(lbls[p+1]); # set the label back to be consistent
120+
A[p+1].relabel_(lbls[p+1]); # set the label back to be consistent
121121

122122
s = s/s.Norm().item() # normalize s
123123

124124
A[p] = cytnx.Contract(A[p],s) # absorb s into next neighbor
125-
A[p].relabels_(lbls[p]); # set the label back to be consistent
125+
A[p].relabel_(lbls[p]); # set the label back to be consistent
126126

127127
# update LR from right to left:
128128
anet = cytnx.Network()
@@ -140,7 +140,7 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
140140

141141
A[0].set_rowrank_(1)
142142
_,A[0] = cytnx.linalg.Gesvd(A[0],is_U=False, is_vT=True)
143-
A[0].relabels_(lbls[0]); #set the label back to be consistent
143+
A[0].relabel_(lbls[0]); #set the label back to be consistent
144144

145145
for p in range(Nsites-1):
146146
dim_l = A[p].shape()[0]
@@ -153,12 +153,12 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
153153

154154
psi.set_rowrank_(2) # maintain rowrank to perform the svd
155155
s,A[p],A[p+1] = cytnx.linalg.Svd_truncate(psi,new_dim)
156-
A[p].relabels_(lbls[p]); #set the label back to be consistent
156+
A[p].relabel_(lbls[p]); #set the label back to be consistent
157157

158158
s = s/s.Norm().item() # normalize s
159159

160160
A[p+1] = cytnx.Contract(s,A[p+1]) ## absorb s into next neighbor.
161-
A[p+1].relabels_(lbls[p+1]); #set the label back to be consistent
161+
A[p+1].relabel_(lbls[p+1]); #set the label back to be consistent
162162

163163
# update LR from left to right:
164164
anet = cytnx.Network()
@@ -177,7 +177,7 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
177177

178178
A[-1].set_rowrank_(2)
179179
_,A[-1] = cytnx.linalg.Gesvd(A[-1],is_U=True,is_vT=False) ## last one.
180-
A[-1].relabels_(lbls[-1]); #set the label back to be consistent
180+
A[-1].relabel_(lbls[-1]); #set the label back to be consistent
181181
return Ekeep
182182

183183
if __name__ == '__main__':

example/Network/Construct.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ int main(int argc, char* argv[]) {
99
auto tc = UniTensor(arange(24).reshape(2, 3, 4), 1);
1010
auto td = UniTensor(arange(24).reshape(2, 3, 4), 1);
1111

12-
ta.set_labels({0, 1, 2});
13-
tb.set_labels({0, 3, 4});
14-
tc.set_labels({5, 1, 6});
15-
td.set_labels({5, 7, 8});
12+
ta.relabel({0, 1, 2});
13+
tb.relabel({0, 3, 4});
14+
tc.relabel({5, 1, 6});
15+
td.relabel({5, 7, 8});
1616

1717
UniTensor oot =
1818
Network::Contract(

example/TDVP/tdvp1_dense.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def __init__(self, L, M, R):
2525
def matvec(self, v):
2626
self.anet.PutUniTensor("psi",v)
2727
out = self.anet.Launch()
28-
out.relabels_(v.labels())
28+
out.relabel_(v.labels())
2929
return out
3030

3131
class ZeroSiteOp(cytnx.LinOp):
@@ -44,7 +44,7 @@ def __init__(self, L, R):
4444
def matvec(self, v):
4545
self.anet.PutUniTensor("C",v)
4646
out = self.anet.Launch()
47-
out.relabels_(v.labels())
47+
out.relabel_(v.labels())
4848
return out
4949

5050
def time_evolve_Lan_f(psi, functArgs, delta):
@@ -54,7 +54,7 @@ def time_evolve_Lan_f(psi, functArgs, delta):
5454
R = R.astype(cytnx.Type.ComplexDouble)
5555
op = OneSiteOp(L,M,R)
5656
exp_iH_v = cytnx.linalg.Lanczos_Exp(op, psi, -1.0j*delta*0.5, 1.0e-8)
57-
exp_iH_v.relabels_(psi.labels())
57+
exp_iH_v.relabel_(psi.labels())
5858
return exp_iH_v
5959

6060
def time_evolve_Lan_b(psi, functArgs, delta):
@@ -63,7 +63,7 @@ def time_evolve_Lan_b(psi, functArgs, delta):
6363
R = R.astype(cytnx.Type.ComplexDouble)
6464
op = ZeroSiteOp(L,R)
6565
exp_iH_v = cytnx.linalg.Lanczos_Exp(op, psi, 1.0j*delta*0.5, 1.0e-8)
66-
exp_iH_v.relabels_(psi.labels())
66+
exp_iH_v.relabel_(psi.labels())
6767
return exp_iH_v
6868

6969
def get_energy(A, M):
@@ -117,7 +117,7 @@ def get_energy(A, M):
117117

118118
for k in range(1,Nsites):
119119
lbl = [str(2*k),str(2*k+1),str(2*k+2)]
120-
A[k].relabels_(lbl)
120+
A[k].relabel_(lbl)
121121
lbls.append(lbl) # store the labels for later convinience.
122122

123123
LR = [None for i in range(Nsites+1)]
@@ -144,8 +144,8 @@ def get_energy(A, M):
144144
LR[p+1] = anet.Launch()
145145

146146
# Recover the original MPS labels
147-
A[p].relabels_(lbls[p])
148-
A[p+1].relabels_(lbls[p+1])
147+
A[p].relabel_(lbls[p])
148+
A[p+1].relabel_(lbls[p+1])
149149

150150
As = []
151151
As.append(A.copy())
@@ -168,7 +168,7 @@ def get_energy(A, M):
168168

169169
psi.set_rowrank_(1) # maintain rowrank to perform the svd
170170
s,_,A[p] = cytnx.linalg.Svd_truncate(psi,new_dim)
171-
A[p].relabels_(lbls[p]); # set the label back to be consistent
171+
A[p].relabel_(lbls[p]); # set the label back to be consistent
172172
# update LR from right to left:
173173
anet = cytnx.Network()
174174
anet.FromString(["R: -2,-1,-3",\
@@ -187,7 +187,7 @@ def get_energy(A, M):
187187
#C = time_evolve_b(C, (old_LR, LR[p]), dt)
188188
C = time_evolve_Lan_b(C, (old_LR, LR[p]), dt)
189189

190-
A[p-1] = cytnx.Contract(A[p-1], C).relabels_(A[p-1].labels())
190+
A[p-1] = cytnx.Contract(A[p-1], C).relabel_(A[p-1].labels())
191191

192192

193193

@@ -196,7 +196,7 @@ def get_energy(A, M):
196196

197197
A[0].set_rowrank_(1)
198198
_,A[0] = cytnx.linalg.Gesvd(A[0],is_U=False, is_vT=True)
199-
A[0].relabels_(lbls[0]); #set the label back to be consistent
199+
A[0].relabel_(lbls[0]); #set the label back to be consistent
200200

201201

202202
for p in range(Nsites):
@@ -209,7 +209,7 @@ def get_energy(A, M):
209209

210210
psi.set_rowrank_(2) # maintain rowrank to perform the svd
211211
s,A[p],_ = cytnx.linalg.Svd_truncate(psi,new_dim)
212-
A[p].relabels_(lbls[p]); #set the label back to be consistent
212+
A[p].relabel_(lbls[p]); #set the label back to be consistent
213213
# update LR from left to right:
214214
anet = cytnx.Network()
215215
anet.FromString(["L: -2,-1,-3",\
@@ -230,13 +230,13 @@ def get_energy(A, M):
230230
C = time_evolve_Lan_b(C, (LR[p+1],old_LR), dt)
231231
A[p+1] = cytnx.Contract(A[p+1], C)
232232
A[p+1].permute_(['_aux_L', lbls[p+1][1], lbls[p+1][2]])
233-
A[p+1].relabels_(lbls[p+1])
233+
A[p+1].relabel_(lbls[p+1])
234234

235235
print('Sweep[l->r]: %d/%d, Loc: %d' % (k, time_step, p))
236236

237237
A[-1].set_rowrank_(2)
238238
_,A[-1] = cytnx.linalg.Gesvd(A[-1],is_U=True,is_vT=False) ## last one.
239-
A[-1].relabels_(lbls[-1]); #set the label back to be consistent
239+
A[-1].relabel_(lbls[-1]); #set the label back to be consistent
240240
As.append(A.copy())
241241
return As, Es # all time step states
242242

@@ -255,7 +255,7 @@ def Local_meas(A, B, Op, site):
255255
l = anet.Launch()
256256
else:
257257
tmp = A[i].relabel(1, "_aux_up")
258-
Op = Op.relabels(["_aux_up", "_aux_low"])
258+
Op = Op.relabel(["_aux_up", "_aux_low"])
259259
tmp = cytnx.Contract(tmp, Op)
260260
tmp.relabel_("_aux_low", A[i].labels()[1])
261261
tmp.permute_(A[i].labels())
@@ -270,7 +270,7 @@ def prepare_rand_init_MPS(Nsites, chi, d):
270270
lbls = []
271271
A = [None for i in range(Nsites)]
272272
A[0] = cytnx.UniTensor(cytnx.random.normal([1, d, min(chi, d)], 0., 1., seed=0), rowrank = 2)
273-
A[0].relabels_(["0","1","2"])
273+
A[0].relabel_(["0","1","2"])
274274
lbls.append(["0","1","2"]) # store the labels for later convinience.
275275

276276
for k in range(1,Nsites):
@@ -279,7 +279,7 @@ def prepare_rand_init_MPS(Nsites, chi, d):
279279
A[k] = cytnx.UniTensor(cytnx.random.normal([dim1, dim2, dim3],0.,1., seed=0), rowrank = 2)
280280

281281
lbl = [str(2*k),str(2*k+1),str(2*k+2)]
282-
A[k].relabels_(lbl)
282+
A[k].relabel_(lbl)
283283
lbls.append(lbl) # store the labels for later convinience.
284284
return A
285285

example/iTEBD/iTEBD.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ def itebd_tfim(chi = 20, J = 1.0, Hx = 1.0, dt = 0.1, CvgCrit = 1.0e-10):
6464
Elast = 0
6565
for i in range(10000):
6666

67-
A.set_labels(['a','0','b'])
68-
B.set_labels(['c','1','d'])
69-
la.set_labels(['b','c'])
70-
lb.set_labels(['d','e'])
67+
A.relabel(['a','0','b'])
68+
B.relabel(['c','1','d'])
69+
la.relabel(['b','c'])
70+
lb.relabel(['d','e'])
7171

7272

7373
## contract all
@@ -89,7 +89,7 @@ def itebd_tfim(chi = 20, J = 1.0, Hx = 1.0, dt = 0.1, CvgCrit = 1.0e-10):
8989
# Note that X,Xt contract will result a rank-0 tensor, which can use item() toget element
9090
XNorm = cytnx.Contract(X,Xt).item()
9191
XH = cytnx.Contract(X,H)
92-
XH.set_labels(['d','e','0','1'])
92+
XH.relabel(['d','e','0','1'])
9393

9494

9595
XHX = cytnx.Contract(Xt,XH).item() ## rank-0
@@ -133,7 +133,7 @@ def itebd_tfim(chi = 20, J = 1.0, Hx = 1.0, dt = 0.1, CvgCrit = 1.0e-10):
133133
# again, but A' and B' are updated
134134
lb_inv = 1./lb
135135
# lb_inv.print_diagram();
136-
lb_inv.set_labels(['e','d'])
136+
lb_inv.relabel(['e','d'])
137137

138138
A = cytnx.Contract(lb_inv,A)
139139
B = cytnx.Contract(B,lb_inv)

example/iTEBD/iTEBD_U1.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,18 +73,18 @@ def itebd_heisenberg(chi = 32, J = 1.0, dt = 0.1, CvgCrit = 1.0e-12):
7373
Elast = 0
7474
for i in range(10000):
7575

76-
A.set_labels(["a","0","b"])
77-
B.set_labels(["c","1","d"])
78-
la.set_labels(["b","c"])
79-
lb.set_labels(["d","e"])
76+
A.relabel(["a","0","b"])
77+
B.relabel(["c","1","d"])
78+
la.relabel(["b","c"])
79+
lb.relabel(["d","e"])
8080

8181
## contract all
8282
tmpA = cytnx.Contract(A,la)
8383
tmpB = cytnx.Contract(B,lb)
8484
X = cytnx.Contract(tmpA,tmpB);# << "this line cause problem!\n";
8585
#X = cytnx.Contract(cytnx.Contract(A,la),cytnx.Contract(B,lb))
8686
#exit(1)
87-
lb.set_label("e",new_label='a')
87+
lb.relabel("e",new_label='a')
8888
X = cytnx.Contract(lb,X)
8989

9090

@@ -101,7 +101,7 @@ def itebd_heisenberg(chi = 32, J = 1.0, dt = 0.1, CvgCrit = 1.0e-12):
101101
## <psi|H|psi>
102102
XH = cytnx.Contract(X,H)
103103
#XH.print_diagram()
104-
XH.set_labels(['d','e','0','1'])
104+
XH.relabel(['d','e','0','1'])
105105
XHX = cytnx.Contract(Xt,XH).item()
106106
E = XHX/XNorm
107107

@@ -141,7 +141,7 @@ def itebd_heisenberg(chi = 32, J = 1.0, dt = 0.1, CvgCrit = 1.0e-12):
141141
T = lb_inv.get_block_(b);
142142
lb_inv.put_block_(1./T,b);
143143

144-
lb_inv.set_labels(['e','d'])
144+
lb_inv.relabel(['e','d'])
145145

146146
A = cytnx.Contract(lb_inv,A)
147147
B = cytnx.Contract(B,lb_inv)

0 commit comments

Comments
 (0)