PyQUDA-Utils 0.10.1.dev2__tar.gz → 0.10.2.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/PKG-INFO +1 -1
  2. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/PyQUDA_Utils.egg-info/PKG-INFO +1 -1
  3. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/_field_utils.py +10 -18
  4. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/chroma.py +2 -2
  5. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/milc.py +2 -2
  6. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/nersc.py +3 -3
  7. pyquda_utils-0.10.2.dev0/pyquda_utils/_version.py +1 -0
  8. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/core.py +2 -1
  9. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/gauge_nd_sun.py +33 -31
  10. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/io/__init__.py +3 -3
  11. pyquda_utils-0.10.1.dev2/pyquda_utils/_version.py +0 -1
  12. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/LICENSE +0 -0
  13. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/MANIFEST.in +0 -0
  14. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/PyQUDA_Utils.egg-info/SOURCES.txt +0 -0
  15. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/PyQUDA_Utils.egg-info/dependency_links.txt +0 -0
  16. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/PyQUDA_Utils.egg-info/requires.txt +0 -0
  17. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/PyQUDA_Utils.egg-info/top_level.txt +0 -0
  18. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/README.md +0 -0
  19. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyproject.toml +0 -0
  20. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/__init__.py +0 -0
  21. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/_mpi_file.py +0 -0
  22. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/io_general.py +0 -0
  23. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/kyu.py +0 -0
  24. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/lime.py +0 -0
  25. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/npy.py +0 -0
  26. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/openqcd.py +0 -0
  27. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_io/xqcd.py +0 -0
  28. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/__init__.py +0 -0
  29. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/convert.py +0 -0
  30. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/deprecated.py +0 -0
  31. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/gamma.py +0 -0
  32. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/gpt.py +0 -0
  33. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/hmc_param.py +0 -0
  34. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/milc_rhmc_param.py +0 -0
  35. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/phase.py +0 -0
  36. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/quasi_axial_gauge_fixing.py +0 -0
  37. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/pyquda_utils/source.py +0 -0
  38. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/setup.cfg +0 -0
  39. {pyquda_utils-0.10.1.dev2 → pyquda_utils-0.10.2.dev0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyQUDA-Utils
3
- Version: 0.10.1.dev2
3
+ Version: 0.10.2.dev0
4
4
  Summary: Utility scripts based on PyQUDA
5
5
  Author-email: SaltyChiang <SaltyChiang@users.noreply.github.com>
6
6
  Maintainer-email: SaltyChiang <SaltyChiang@users.noreply.github.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyQUDA-Utils
3
- Version: 0.10.1.dev2
3
+ Version: 0.10.2.dev0
4
4
  Summary: Utility scripts based on PyQUDA
5
5
  Author-email: SaltyChiang <SaltyChiang@users.noreply.github.com>
6
6
  Maintainer-email: SaltyChiang <SaltyChiang@users.noreply.github.com>
@@ -183,18 +183,14 @@ def gaugeReunitarize(gauge: numpy.ndarray, reunitarize_sigma: float):
183
183
  gauge[1] /= row1_abs
184
184
  row2 = numpy.cross(gauge[0], gauge[1], axis=0).conjugate()
185
185
  if reunitarize_sigma > 0:
186
- assert (
187
- MPI.COMM_WORLD.allreduce(
188
- numpy.sqrt(
189
- (1 - row0_abs) ** 2
190
- + numpy.abs(row0_row1) ** 2
191
- + (1 - row1_abs) ** 2
192
- + numpy.linalg.norm(row2 - gauge[2], axis=0) ** 2
193
- ).max(),
194
- MPI.MAX,
195
- )
196
- < reunitarize_sigma
186
+ sigma = numpy.sqrt(
187
+ (1 - row0_abs) ** 2
188
+ + numpy.abs(row0_row1) ** 2
189
+ + (1 - row1_abs) ** 2
190
+ + numpy.linalg.norm(row2 - gauge[2], axis=0) ** 2
197
191
  )
192
+ failed = MPI.COMM_WORLD.allreduce(numpy.sum(sigma > reunitarize_sigma), MPI.SUM)
193
+ assert failed == 0, f"Reunitarization failed {failed} times"
198
194
  gauge[2] = row2
199
195
  return gauge.transpose(2, 3, 4, 5, 6, 0, 1)
200
196
 
@@ -212,13 +208,9 @@ def gaugeReunitarizeReconstruct12(gauge: numpy.ndarray, reunitarize_sigma: float
212
208
  gauge[1] /= row1_abs
213
209
  row2 = numpy.cross(gauge[0], gauge[1], axis=0).conjugate()
214
210
  if reunitarize_sigma > 0:
215
- assert (
216
- MPI.COMM_WORLD.allreduce(
217
- numpy.sqrt((1 - row0_abs) ** 2 + numpy.abs(row0_row1) ** 2 + (1 - row1_abs) ** 2).max(),
218
- MPI.MAX,
219
- )
220
- < reunitarize_sigma
221
- )
211
+ sigma = numpy.sqrt((1 - row0_abs) ** 2 + numpy.abs(row0_row1) ** 2 + (1 - row1_abs) ** 2)
212
+ failed = MPI.COMM_WORLD.allreduce(numpy.sum(sigma > reunitarize_sigma), MPI.SUM)
213
+ assert failed == 0, f"Reunitarization failed {failed} times"
222
214
  gauge[2] = row2
223
215
  return gauge.transpose(2, 3, 4, 5, 6, 0, 1)
224
216
 
@@ -34,7 +34,7 @@ def checksum_qio(latt_size: List[int], grid_size: List[int], data):
34
34
  return sum29, sum31
35
35
 
36
36
 
37
- def readQIOGauge(filename: str, grid_size: List[int], checksum: bool = True, reunitarize_sigma: float = 2e-7):
37
+ def readQIOGauge(filename: str, grid_size: List[int], checksum: bool = True, reunitarize_sigma: float = 5e-7):
38
38
  from .lime import Lime
39
39
 
40
40
  lime = Lime(filename)
@@ -68,7 +68,7 @@ def readQIOGauge(filename: str, grid_size: List[int], checksum: bool = True, reu
68
68
  ), f"Bad checksum for {filename}"
69
69
  gauge = gauge.transpose(4, 0, 1, 2, 3, 5, 6).astype("<c16")
70
70
  if precision == 4:
71
- gauge = gaugeReunitarize(gauge, reunitarize_sigma) # 2e-7: Nc**0.5 * 1.1920929e-07
71
+ gauge = gaugeReunitarize(gauge, reunitarize_sigma) # 5e-7: Nc * 2**0.5 * 1.1920929e-07
72
72
  return latt_size, gauge
73
73
 
74
74
 
@@ -55,7 +55,7 @@ def checksum_qio(latt_size: List[int], grid_size: List[int], data):
55
55
  return sum29, sum31
56
56
 
57
57
 
58
- def readGauge(filename: str, grid_size: List[int], checksum: bool = True, reunitarize_sigma: float = 2e-7):
58
+ def readGauge(filename: str, grid_size: List[int], checksum: bool = True, reunitarize_sigma: float = 5e-7):
59
59
  filename = path.expanduser(path.expandvars(filename))
60
60
  with open(filename, "rb") as f:
61
61
  magic = f.read(4)
@@ -79,7 +79,7 @@ def readGauge(filename: str, grid_size: List[int], checksum: bool = True, reunit
79
79
  sum31,
80
80
  ), f"Bad checksum for {filename}"
81
81
  gauge = gauge.transpose(4, 0, 1, 2, 3, 5, 6).astype("<c16")
82
- gauge = gaugeReunitarize(gauge, reunitarize_sigma) # 2e-7: Nc**0.5 * 1.1920929e-07
82
+ gauge = gaugeReunitarize(gauge, reunitarize_sigma) # 5e-7: Nc * 2**0.5 * 1.1920929e-07
83
83
  return latt_size, gauge
84
84
 
85
85
 
@@ -27,7 +27,7 @@ def readGauge(
27
27
  checksum: bool = True,
28
28
  plaquette: bool = True,
29
29
  link_trace: bool = True,
30
- reunitarize_sigma: float = 2e-7,
30
+ reunitarize_sigma: float = 5e-7,
31
31
  ):
32
32
  filename = path.expanduser(path.expandvars(filename))
33
33
  header: Dict[str, str] = {}
@@ -63,7 +63,7 @@ def readGauge(
63
63
  assert checksum_nersc(gauge.reshape(-1)) == int(header["CHECKSUM"], 16), f"Bad checksum for {filename}"
64
64
  gauge = gauge.transpose(4, 0, 1, 2, 3, 5, 6).astype("<c16")
65
65
  if float_nbytes == 4:
66
- gauge = gaugeReunitarize(gauge, reunitarize_sigma) # 2e-7: Nc**0.5 * 1.1920929e-07
66
+ gauge = gaugeReunitarize(gauge, reunitarize_sigma) # 5e-7: Nc * 2**0.5 * 1.1920929e-07
67
67
  elif header["DATATYPE"] == "4D_SU3_GAUGE":
68
68
  gauge = readMPIFile(filename, dtype, offset, (Lt, Lz, Ly, Lx, Nd, Nc - 1, Nc), (3, 2, 1, 0), grid_size)
69
69
  gauge = gauge.astype(f"<c{2 * float_nbytes}")
@@ -71,7 +71,7 @@ def readGauge(
71
71
  assert checksum_nersc(gauge.reshape(-1)) == int(header["CHECKSUM"], 16), f"Bad checksum for {filename}"
72
72
  gauge = gauge.transpose(4, 0, 1, 2, 3, 5, 6).astype("<c16")
73
73
  if float_nbytes == 4:
74
- gauge = gaugeReunitarizeReconstruct12(gauge, reunitarize_sigma) # 2e-7: Nc**0.5 * 1.1920929e-07
74
+ gauge = gaugeReunitarizeReconstruct12(gauge, reunitarize_sigma) # 5e-7: Nc * 2 **0.5 * 1.1920929e-07
75
75
  elif float_nbytes == 8:
76
76
  gauge = gaugeReconstruct12(gauge)
77
77
  else:
@@ -0,0 +1 @@
1
+ __version__ = "0.10.2.dev0"
@@ -377,10 +377,11 @@ def getHISQ(
377
377
  tol: float,
378
378
  maxiter: int,
379
379
  naik_epsilon: float = 0.0,
380
+ multigrid: Union[List[List[int]], Multigrid] = None,
380
381
  ):
381
382
  assert latt_info.anisotropy == 1.0
382
383
 
383
- return fermion.HISQDirac(latt_info, mass, tol, maxiter, naik_epsilon, None)
384
+ return fermion.HISQDirac(latt_info, mass, tol, maxiter, naik_epsilon, multigrid)
384
385
 
385
386
 
386
387
  def getDefaultDirac(
@@ -85,7 +85,7 @@ class LatticeLink:
85
85
  latt_size: Sequence[int],
86
86
  grid_size: Sequence[int],
87
87
  color: int,
88
- matrix: numpy.ndarray = None,
88
+ value: numpy.ndarray = None,
89
89
  mu: int = None,
90
90
  ):
91
91
  assert len(latt_size) == len(grid_size)
@@ -95,28 +95,29 @@ class LatticeLink:
95
95
  self.grid_size = tuple(grid_size)
96
96
  self.grid_coord = getGridCoord(grid_size)
97
97
  self.sublatt_size = getSublatticeSize(latt_size, grid_size)
98
- if matrix is None:
99
- self.matrix = numpy.empty((*self.sublatt_size[::-1], self.Nc, self.Nc), numpy.complex128)
98
+ if value is None:
99
+ self.data = numpy.empty((*self.sublatt_size[::-1], self.Nc, self.Nc), numpy.complex128)
100
+ self.data[...] = numpy.identity(self.Nc, dtype=numpy.complex128)
100
101
  else:
101
- self.matrix = matrix.reshape(*self.sublatt_size[::-1], self.Nc, self.Nc)
102
+ self.data = value.reshape(*self.sublatt_size[::-1], self.Nc, self.Nc)
102
103
  self.mu = mu
103
104
 
104
105
  def __getitem__(self, key):
105
- return self.matrix[key]
106
+ return self.data[key]
106
107
 
107
108
  def __matmul__(self, other: "LatticeLink"):
108
- return self.matrix @ other.matrix
109
+ return self.data @ other.data
109
110
 
110
111
  @property
111
112
  def backend(self):
112
- if type(self.matrix).__module__ == "numpy":
113
+ if type(self.data).__module__ == "numpy":
113
114
  return numpy
114
- elif type(self.matrix).__module__ == "cupy":
115
+ elif type(self.data).__module__ == "cupy":
115
116
  import cupy
116
117
 
117
118
  return cupy
118
119
  else:
119
- raise RuntimeError(f"Unknown array type {type(self.matrix)}")
120
+ raise RuntimeError(f"Unknown array type {type(self.data)}")
120
121
 
121
122
  def shift(self, mu: int, dagger: bool = False):
122
123
  assert 0 <= mu < 2 * self.Nd
@@ -126,8 +127,8 @@ class LatticeLink:
126
127
  mu = mu % self.Nd
127
128
  left_slice = [slice(None, None) for nu in range(self.Nd)]
128
129
  right_slice = [slice(None, None) for nu in range(self.Nd)]
129
- result = backend.empty_like(self.matrix)
130
- right = self.matrix
130
+ result = backend.empty_like(self.data)
131
+ right = self.data
131
132
  rank = _RANK
132
133
  dest = getShiftedRank(self.grid_coord, self.grid_size, [0 if nu != mu else -dir for nu in range(Nd)])
133
134
  source = getShiftedRank(self.grid_coord, self.grid_size, [0 if nu != mu else dir for nu in range(Nd)])
@@ -161,7 +162,7 @@ class LatticeLink:
161
162
 
162
163
  return LatticeLink(self.latt_size, self.grid_size, self.Nc, result, self.mu)
163
164
 
164
- def link(self, right: "LatticeLink"):
165
+ def matmul_shift(self, right: "LatticeLink"):
165
166
  assert self.mu is not None, "Ambiguous dimension and direction"
166
167
  backend = self.backend
167
168
  Nd = self.Nd
@@ -169,9 +170,9 @@ class LatticeLink:
169
170
  mu = self.mu % self.Nd
170
171
  left_slice = [slice(None, None) for nu in range(self.Nd)]
171
172
  right_slice = [slice(None, None) for nu in range(self.Nd)]
172
- result = backend.empty_like(self.matrix)
173
- left = self.matrix
174
- right = right.matrix
173
+ result = backend.empty_like(self.data)
174
+ left = self.data
175
+ right = right.data
175
176
  rank = _RANK
176
177
  dest = getShiftedRank(self.grid_coord, self.grid_size, [0 if nu != mu else -dir for nu in range(Nd)])
177
178
  source = getShiftedRank(self.grid_coord, self.grid_size, [0 if nu != mu else dir for nu in range(Nd)])
@@ -207,7 +208,7 @@ class LatticeLink:
207
208
  self.latt_size,
208
209
  self.grid_size,
209
210
  self.Nc,
210
- self.matrix.swapaxes(-2, -1).conjugate(),
211
+ self.data.swapaxes(-2, -1).conjugate(),
211
212
  )
212
213
 
213
214
  def toDevice(self):
@@ -215,10 +216,10 @@ class LatticeLink:
215
216
 
216
217
  if _GPUID < 0:
217
218
  initGPU()
218
- self.matrix = cupy.asarray(self.matrix)
219
+ self.data = cupy.asarray(self.data)
219
220
 
220
221
  def toHost(self):
221
- self.matrix = self.matrix.get()
222
+ self.data = self.data.get()
222
223
 
223
224
 
224
225
  class LatticeGauge:
@@ -228,7 +229,7 @@ class LatticeGauge:
228
229
  grid_size: Sequence[int],
229
230
  color: int,
230
231
  border: int = 0,
231
- gauge: numpy.ndarray = None,
232
+ value: numpy.ndarray = None,
232
233
  extended: numpy.ndarray = None,
233
234
  ):
234
235
  assert len(latt_size) == len(grid_size)
@@ -239,27 +240,28 @@ class LatticeGauge:
239
240
  self.grid_coord = getGridCoord(grid_size)
240
241
  self.sublatt_size = getSublatticeSize(latt_size, grid_size)
241
242
  shape = (self.Nd, *self.sublatt_size[::-1], self.Nc, self.Nc)
242
- if gauge is None:
243
- self.gauge = numpy.empty(shape, numpy.complex128)
243
+ if value is None:
244
+ self.data = numpy.empty(shape, numpy.complex128)
245
+ self.data[...] = numpy.identity(self.Nc, dtype=numpy.complex128)
244
246
  else:
245
- self.gauge = gauge.reshape(shape)
247
+ self.data = value.reshape(shape)
246
248
  self.extend(border, extended)
247
249
 
248
250
  def __getitem__(self, mu):
249
251
  assert 0 <= mu < 2 * self.Nd
250
- gauge_mu = LatticeLink(self.latt_size, self.grid_size, self.Nc, self.gauge[mu % self.Nd], mu)
252
+ gauge_mu = LatticeLink(self.latt_size, self.grid_size, self.Nc, self.data[mu % self.Nd], mu)
251
253
  return gauge_mu if mu < self.Nd else gauge_mu.shift(mu, True)
252
254
 
253
255
  @property
254
256
  def backend(self):
255
- if type(self.gauge).__module__ == "numpy":
257
+ if type(self.data).__module__ == "numpy":
256
258
  return numpy
257
- elif type(self.gauge).__module__ == "cupy":
259
+ elif type(self.data).__module__ == "cupy":
258
260
  import cupy
259
261
 
260
262
  return cupy
261
263
  else:
262
- raise RuntimeError(f"Unknown array type {type(self.gauge)}")
264
+ raise RuntimeError(f"Unknown array type {type(self.data)}")
263
265
 
264
266
  def extend(self, border: int, extended: numpy.ndarray = None):
265
267
  if border <= 0:
@@ -271,7 +273,7 @@ class LatticeGauge:
271
273
  self.extlatt_size = [L + 2 * border for L in self.sublatt_size]
272
274
  shape = (self.Nd, *self.extlatt_size[::-1], self.Nc, self.Nc)
273
275
  if extended is None:
274
- self.extended = self.backend.empty(shape, self.gauge.dtype)
276
+ self.extended = self.backend.empty(shape, self.data.dtype)
275
277
  else:
276
278
  self.extended = extended.reshape(shape)
277
279
  self.exchange()
@@ -294,7 +296,7 @@ class LatticeGauge:
294
296
  gauge_slice[mu] = slice(-Lb, None)
295
297
  gaugeSendRecv(
296
298
  self.extended[:, *extended_slice[::-1]],
297
- self.gauge[:, *gauge_slice[::-1]],
299
+ self.data[:, *gauge_slice[::-1]],
298
300
  getShiftedRank(self.grid_coord, self.grid_size, delta),
299
301
  getShiftedRank(self.grid_coord, self.grid_size, [-d for d in delta]),
300
302
  )
@@ -314,12 +316,12 @@ class LatticeGauge:
314
316
 
315
317
  if _GPUID < 0:
316
318
  initGPU()
317
- self.gauge = cupy.asarray(self.gauge)
319
+ self.data = cupy.asarray(self.data)
318
320
  if self.extended is not None:
319
321
  self.extended = cupy.asarray(self.extended)
320
322
 
321
323
  def toHost(self):
322
- self.gauge = self.gauge.get()
324
+ self.data = self.data.get()
323
325
  if self.extended is not None:
324
326
  self.extended = self.extended.get()
325
327
 
@@ -327,5 +329,5 @@ class LatticeGauge:
327
329
  def link(*color_matrices: LatticeLink):
328
330
  linked = color_matrices[-1]
329
331
  for color_matrix in color_matrices[::-1][1:]:
330
- linked = color_matrix.link(linked)
332
+ linked = color_matrix.matmul_shift(linked)
331
333
  return linked
@@ -69,7 +69,7 @@ def rotateToDeGrandRossi(propagator: LatticePropagator):
69
69
  )
70
70
 
71
71
 
72
- def readChromaQIOGauge(filename: str, checksum: bool = True, reunitarize_sigma: float = 2e-7):
72
+ def readChromaQIOGauge(filename: str, checksum: bool = True, reunitarize_sigma: float = 5e-7):
73
73
  from pyquda import getGridSize
74
74
  from pyquda_io.chroma import readQIOGauge as read
75
75
 
@@ -96,7 +96,7 @@ def readChromaQIOPropagator(filename: str, checksum: bool = True):
96
96
  return LatticeStaggeredPropagator(LatticeInfo(latt_size), evenodd(propagator_raw, [0, 1, 2, 3]))
97
97
 
98
98
 
99
- def readMILCGauge(filename: str, checksum: bool = True, reunitarize_sigma: float = 2e-7):
99
+ def readMILCGauge(filename: str, checksum: bool = True, reunitarize_sigma: float = 5e-7):
100
100
  from pyquda import getGridSize
101
101
  from pyquda_io.milc import readGauge as read
102
102
 
@@ -244,7 +244,7 @@ def readNERSCGauge(
244
244
  checksum: bool = True,
245
245
  plaquette: bool = True,
246
246
  link_trace: bool = True,
247
- reunitarize_sigma: float = 2e-7,
247
+ reunitarize_sigma: float = 5e-7,
248
248
  ):
249
249
  from pyquda import getGridSize
250
250
  from pyquda_io.nersc import readGauge as read
@@ -1 +0,0 @@
1
- __version__ = "0.10.1.dev2"