11from util import *
22import torch
3- import torch_complex
43import itertools
54import numpy as np
65import re
@@ -72,6 +71,7 @@ def read_file(info,file_list,V_info):
7271 print ("read VI:" ,ist_true ,ik )
7372 vi = read_VI (info_true ,V_info ,ist_true ,data )
7473 VI .append ( vi )
74+ print ()
7575
7676 info_all = copy .deepcopy (info )
7777 info_all .Nst = sum (info_true .Nk ,0 )
@@ -92,22 +92,17 @@ def read_QI(info,ist,data):
9292 for it in info .Nt [ist ]:
9393 QI [it ] = ND_list (info .Nl [it ])
9494 for il in range (info .Nl [it ]):
95- QI [it ][il ] = torch_complex .ComplexTensor (
96- np .empty ((info .Nb [ist ],info .Na [ist ][it ],info .Nm (il ),info .Ne [it ]),dtype = np .float64 ),
97- np .empty ((info .Nb [ist ],info .Na [ist ][it ],info .Nm (il ),info .Ne [it ]),dtype = np .float64 ) )
95+ QI [it ][il ] = torch .zeros ((info .Nb [ist ],info .Na [ist ][it ],info .Nm (il ),info .Ne [it ]), dtype = torch .complex128 )
9896 for ib in range (info .Nb [ist ]):
9997 for it in info .Nt [ist ]:
10098 for ia in range (info .Na [ist ][it ]):
10199 for il in range (info .Nl [it ]):
102100 for im in range (info .Nm (il )):
103101 for ie in range (info .Ne [it ]):
104- QI [it ][il ].real [ib ,ia ,im ,ie ] = next (data )
105- QI [it ][il ].imag [ib ,ia ,im ,ie ] = next (data )
102+ QI [it ][il ][ib ,ia ,im ,ie ] = complex (next (data ), next (data ))
106103 for it in info .Nt [ist ]:
107104 for il in range (info .Nl [it ]):
108- QI [it ][il ] = torch_complex .ComplexTensor (
109- torch .from_numpy (QI [it ][il ].real ).view (- 1 ,info .Ne [it ]),
110- torch .from_numpy (QI [it ][il ].imag ).view (- 1 ,info .Ne [it ])).conj ()
105+ QI [it ][il ] = QI [it ][il ].view (- 1 ,info .Ne [it ]).conj ()
111106 return QI
112107
113108
@@ -118,9 +113,7 @@ def read_SI(info,ist,data):
118113 for it1 ,it2 in itertools .product ( info .Nt [ist ], info .Nt [ist ] ):
119114 SI [it1 ,it2 ] = ND_list (info .Nl [it1 ],info .Nl [it2 ])
120115 for il1 ,il2 in itertools .product ( range (info .Nl [it1 ]), range (info .Nl [it2 ]) ):
121- SI [it1 ,it2 ][il1 ][il2 ] = torch_complex .ComplexTensor (
122- np .empty ((info .Na [ist ][it1 ],info .Nm (il1 ),info .Ne [it1 ],info .Na [ist ][it2 ],info .Nm (il2 ),info .Ne [it2 ]),dtype = np .float64 ),
123- np .empty ((info .Na [ist ][it1 ],info .Nm (il1 ),info .Ne [it1 ],info .Na [ist ][it2 ],info .Nm (il2 ),info .Ne [it2 ]),dtype = np .float64 ) )
116+ SI [it1 ,it2 ][il1 ][il2 ] = torch .zeros ((info .Na [ist ][it1 ],info .Nm (il1 ),info .Ne [it1 ],info .Na [ist ][it2 ],info .Nm (il2 ),info .Ne [it2 ]), dtype = torch .complex128 )
124117 for it1 in info .Nt [ist ]:
125118 for ia1 in range (info .Na [ist ][it1 ]):
126119 for il1 in range (info .Nl [it1 ]):
@@ -131,13 +124,12 @@ def read_SI(info,ist,data):
131124 for im2 in range (info .Nm (il2 )):
132125 for ie1 in range (info .Ne [it1 ]):
133126 for ie2 in range (info .Ne [it2 ]):
134- SI [it1 ,it2 ][il1 ][il2 ].real [ia1 ,im1 ,ie1 ,ia2 ,im2 ,ie2 ] = next (data )
135- SI [it1 ,it2 ][il1 ][il2 ].imag [ia1 ,im1 ,ie1 ,ia2 ,im2 ,ie2 ] = next (data )
136- for it1 ,it2 in itertools .product ( info .Nt [ist ], info .Nt [ist ] ):
137- for il1 ,il2 in itertools .product ( range (info .Nl [it1 ]), range (info .Nl [it2 ]) ):
138- SI [it1 ,it2 ][il1 ][il2 ] = torch_complex .ComplexTensor (
139- torch .from_numpy (SI [it1 ,it2 ][il1 ][il2 ].real ),
140- torch .from_numpy (SI [it1 ,it2 ][il1 ][il2 ].imag ))
127+ SI [it1 ,it2 ][il1 ][il2 ][ia1 ,im1 ,ie1 ,ia2 ,im2 ,ie2 ] = complex (next (data ), next (data ))
128+ # for it1,it2 in itertools.product( info.Nt[ist], info.Nt[ist] ):
129+ # for il1,il2 in itertools.product( range(info.Nl[it1]), range(info.Nl[it2]) ):
130+ # SI[it1,it2][il1][il2] = torch_complex.ComplexTensor(
131+ # torch.from_numpy(SI[it1,it2][il1][il2].real),
132+ # torch.from_numpy(SI[it1,it2][il1][il2].imag))
141133 return SI
142134
143135
0 commit comments