diff --git a/docs/pyerrors/linalg.html b/docs/pyerrors/linalg.html
index ed9c92e1..6ce29d2b 100644
--- a/docs/pyerrors/linalg.html
+++ b/docs/pyerrors/linalg.html
@@ -278,6 +278,35 @@
return derived_array(multi_dot, operands)
+def _exp_to_jack(matrix):
+ base_matrix = np.empty_like(matrix)
+ for index, entry in np.ndenumerate(matrix):
+ base_matrix[index] = entry.export_jackknife()
+ return base_matrix
+
+
+def _imp_from_jack(matrix, name, idl):
+ base_matrix = np.empty_like(matrix)
+ for index, entry in np.ndenumerate(matrix):
+ base_matrix[index] = import_jackknife(entry, name, [idl])
+ return base_matrix
+
+
+def _exp_to_jack_c(matrix):
+ base_matrix = np.empty_like(matrix)
+ for index, entry in np.ndenumerate(matrix):
+ base_matrix[index] = entry.real.export_jackknife() + 1j * entry.imag.export_jackknife()
+ return base_matrix
+
+
+def _imp_from_jack_c(matrix, name, idl):
+ base_matrix = np.empty_like(matrix)
+ for index, entry in np.ndenumerate(matrix):
+ base_matrix[index] = CObs(import_jackknife(entry.real, name, [idl]),
+ import_jackknife(entry.imag, name, [idl]))
+ return base_matrix
+
+
def jack_matmul(*operands):
"""Matrix multiply both operands making use of the jackknife approximation.
@@ -294,49 +323,24 @@
name = operands[0].flat[0].real.names[0]
idl = operands[0].flat[0].real.idl[name]
- def _exp_to_jack(matrix):
- base_matrix = np.empty_like(matrix)
- for index, entry in np.ndenumerate(matrix):
- base_matrix[index] = entry.real.export_jackknife() + 1j * entry.imag.export_jackknife()
- return base_matrix
-
- def _imp_from_jack(matrix):
- base_matrix = np.empty_like(matrix)
- for index, entry in np.ndenumerate(matrix):
- base_matrix[index] = CObs(import_jackknife(entry.real, name, [idl]),
- import_jackknife(entry.imag, name, [idl]))
- return base_matrix
-
- r = _exp_to_jack(operands[0])
+ r = _exp_to_jack_c(operands[0])
for op in operands[1:]:
if isinstance(op.flat[0], CObs):
- r = r @ _exp_to_jack(op)
+ r = r @ _exp_to_jack_c(op)
else:
r = r @ op
- return _imp_from_jack(r)
+ return _imp_from_jack_c(r, name, idl)
else:
name = operands[0].flat[0].names[0]
idl = operands[0].flat[0].idl[name]
- def _exp_to_jack(matrix):
- base_matrix = np.empty_like(matrix)
- for index, entry in np.ndenumerate(matrix):
- base_matrix[index] = entry.export_jackknife()
- return base_matrix
-
- def _imp_from_jack(matrix):
- base_matrix = np.empty_like(matrix)
- for index, entry in np.ndenumerate(matrix):
- base_matrix[index] = import_jackknife(entry, name, [idl])
- return base_matrix
-
r = _exp_to_jack(operands[0])
for op in operands[1:]:
if isinstance(op.flat[0], Obs):
r = r @ _exp_to_jack(op)
else:
r = r @ op
- return _imp_from_jack(r)
+ return _imp_from_jack(r, name, idl)
def inv(x):
@@ -974,49 +978,24 @@ Obs valued.
name = operands[0].flat[0].real.names[0]
idl = operands[0].flat[0].real.idl[name]
- def _exp_to_jack(matrix):
- base_matrix = np.empty_like(matrix)
- for index, entry in np.ndenumerate(matrix):
- base_matrix[index] = entry.real.export_jackknife() + 1j * entry.imag.export_jackknife()
- return base_matrix
-
- def _imp_from_jack(matrix):
- base_matrix = np.empty_like(matrix)
- for index, entry in np.ndenumerate(matrix):
- base_matrix[index] = CObs(import_jackknife(entry.real, name, [idl]),
- import_jackknife(entry.imag, name, [idl]))
- return base_matrix
-
- r = _exp_to_jack(operands[0])
+ r = _exp_to_jack_c(operands[0])
for op in operands[1:]:
if isinstance(op.flat[0], CObs):
- r = r @ _exp_to_jack(op)
+ r = r @ _exp_to_jack_c(op)
else:
r = r @ op
- return _imp_from_jack(r)
+ return _imp_from_jack_c(r, name, idl)
else:
name = operands[0].flat[0].names[0]
idl = operands[0].flat[0].idl[name]
- def _exp_to_jack(matrix):
- base_matrix = np.empty_like(matrix)
- for index, entry in np.ndenumerate(matrix):
- base_matrix[index] = entry.export_jackknife()
- return base_matrix
-
- def _imp_from_jack(matrix):
- base_matrix = np.empty_like(matrix)
- for index, entry in np.ndenumerate(matrix):
- base_matrix[index] = import_jackknife(entry, name, [idl])
- return base_matrix
-
r = _exp_to_jack(operands[0])
for op in operands[1:]:
if isinstance(op.flat[0], Obs):
r = r @ _exp_to_jack(op)
else:
r = r @ op
- return _imp_from_jack(r)
+ return _imp_from_jack(r, name, idl)