Skip to content

Commit d11f826

Browse files
SamKChangmhucka
andauthored
#928: Define rows of matrix explicitly (#1089)
`synthesize_dual_basis` uses iterated `index` to infer matrix size, which is not very readable: [issue 928](#928). This PR defines `n_rows` explicitly. --------- Co-authored-by: Michael Hucka <[email protected]>
1 parent 5cb837e commit d11f826

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/openfermion/contrib/representability/_multitensor.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,17 @@ def synthesize_dual_basis(self):
109109
dual_data_values.extend(dval)
110110
inner_prod_data_values.append(float(dual_element.dual_scalar))
111111
bias_data_values.append(dual_element.constant_bias)
112+
n_rows = len(self.dual_basis.elements)
112113
sparse_dual_operator = csr_matrix(
113-
(dual_data_values, (dual_row_indices, dual_col_indices)), [index + 1, self.vec_dim]
114+
(dual_data_values, (dual_row_indices, dual_col_indices)), [n_rows, self.vec_dim]
114115
)
115116

116117
sparse_bias_vector = csr_matrix(
117-
(bias_data_values, (range(index + 1), [0] * (index + 1))), [index + 1, 1]
118+
(bias_data_values, (range(n_rows), [0] * n_rows)), [n_rows, 1]
118119
)
119120

120121
sparse_innerp_vector = csr_matrix(
121-
(inner_prod_data_values, (range(index + 1), [0] * (index + 1))), [index + 1, 1]
122+
(inner_prod_data_values, (range(n_rows), [0] * (n_rows))), [n_rows, 1]
122123
)
123124

124125
return sparse_dual_operator, sparse_bias_vector, sparse_innerp_vector

0 commit comments

Comments
 (0)