Skip to content

Commit cb5385d

Browse files
Fix invocation of PrepareIdentity in block encodings (#1345)
* Fix invocation of `PrepareIdentity` in block encodings * Fix `TestBlockEncoding`
1 parent d240ed2 commit cb5385d

14 files changed

Lines changed: 27 additions & 19 deletions

qualtran/bloqs/block_encoding/chebyshev_polynomial.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def epsilon(self) -> SymbolicFloat:
114114

115115
@property
116116
def signal_state(self) -> BlackBoxPrepare:
117-
return BlackBoxPrepare(PrepareIdentity((QAny(self.ancilla_bitsize),)))
117+
return BlackBoxPrepare(PrepareIdentity.from_bitsizes([self.ancilla_bitsize]))
118118

119119
@cached_property
120120
def reflection_bloq(self):
@@ -249,7 +249,7 @@ def selection_registers(self) -> Tuple[Register, ...]:
249249

250250
@property
251251
def signal_state(self) -> BlackBoxPrepare:
252-
return BlackBoxPrepare(PrepareIdentity((QAny(self.ancilla_bitsize),)))
252+
return BlackBoxPrepare(PrepareIdentity.from_bitsizes([self.ancilla_bitsize]))
253253

254254
@cached_property
255255
def linear_combination(self) -> Union[LinearCombination, ChebyshevPolynomial]:

qualtran/bloqs/block_encoding/chebyshev_polynomial_test.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from attr import field, frozen
2121
from numpy.typing import NDArray
2222

23-
from qualtran import BloqBuilder, QAny, Signature, Soquet, SoquetT
23+
from qualtran import BloqBuilder, Signature, Soquet, SoquetT
2424
from qualtran.bloqs.basic_gates import Hadamard, Identity, IntEffect, IntState, XGate
2525
from qualtran.bloqs.block_encoding import BlockEncoding, Unitary
2626
from qualtran.bloqs.block_encoding.chebyshev_polynomial import (
@@ -200,7 +200,7 @@ def signature(self) -> Signature:
200200

201201
@property
202202
def signal_state(self) -> BlackBoxPrepare:
203-
return BlackBoxPrepare(PrepareIdentity((QAny(1),)))
203+
return BlackBoxPrepare(PrepareIdentity.from_bitsizes([1]))
204204

205205
def build_composite_bloq(
206206
self, bb: BloqBuilder, system: Soquet, ancilla: Soquet, resource: Soquet
@@ -221,6 +221,7 @@ def test_chebyshev_matrix():
221221

222222
def test_chebyshev_poly_signal_state():
223223
assert isinstance(_chebyshev_poly_even().signal_state.prepare, PrepareIdentity)
224+
_ = _chebyshev_poly_even().signal_state.decompose_bloq()
224225

225226

226227
@pytest.mark.slow

qualtran/bloqs/block_encoding/linear_combination.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ def epsilon(self) -> SymbolicFloat:
178178

179179
@property
180180
def signal_state(self) -> BlackBoxPrepare:
181-
return BlackBoxPrepare(PrepareIdentity((QAny(self.ancilla_bitsize),)))
181+
return BlackBoxPrepare(PrepareIdentity.from_bitsizes([self.ancilla_bitsize]))
182182

183183
@cached_property
184184
def prepare(self) -> BlackBoxPrepare:

qualtran/bloqs/block_encoding/linear_combination_test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ def test_linear_combination_approx_random():
215215

216216
def test_linear_combination_signal_state():
217217
assert isinstance(_linear_combination_block_encoding().signal_state.prepare, PrepareIdentity)
218+
_ = _linear_combination_block_encoding().signal_state.decompose_bloq()
218219

219220

220221
@pytest.mark.notebook

qualtran/bloqs/block_encoding/product.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def epsilon(self) -> SymbolicFloat:
130130

131131
@property
132132
def signal_state(self) -> BlackBoxPrepare:
133-
return BlackBoxPrepare(PrepareIdentity((QAny(self.ancilla_bitsize),)))
133+
return BlackBoxPrepare(PrepareIdentity.from_bitsizes([self.ancilla_bitsize]))
134134

135135
def build_composite_bloq(
136136
self, bb: BloqBuilder, system: SoquetT, **soqs: SoquetT

qualtran/bloqs/block_encoding/product_test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ def test_product_random():
212212

213213
def test_product_signal_state():
214214
assert isinstance(_product_block_encoding().signal_state.prepare, PrepareIdentity)
215+
_ = _product_block_encoding().signal_state.decompose_bloq()
215216

216217

217218
@pytest.mark.notebook

qualtran/bloqs/block_encoding/sparse_matrix.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def epsilon(self) -> SymbolicFloat:
211211

212212
@property
213213
def signal_state(self) -> BlackBoxPrepare:
214-
return BlackBoxPrepare(PrepareIdentity((QAny(self.ancilla_bitsize),)))
214+
return BlackBoxPrepare(PrepareIdentity.from_bitsizes([self.ancilla_bitsize]))
215215

216216
@cached_property
217217
def diffusion(self):

qualtran/bloqs/block_encoding/sparse_matrix_test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ def test_symmetric_banded_counts():
315315

316316
def test_sparse_matrix_signal_state():
317317
assert isinstance(_sparse_matrix_block_encoding().signal_state.prepare, PrepareIdentity)
318+
_ = _sparse_matrix_block_encoding().signal_state.decompose_bloq()
318319

319320

320321
@pytest.mark.notebook

qualtran/bloqs/block_encoding/tensor_product.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def epsilon(self) -> SymbolicFloat:
104104
@property
105105
def signal_state(self) -> BlackBoxPrepare:
106106
if all(isinstance(u.signal_state.prepare, PrepareIdentity) for u in self.block_encodings):
107-
return BlackBoxPrepare(PrepareIdentity((QAny(self.ancilla_bitsize),)))
107+
return BlackBoxPrepare(PrepareIdentity.from_bitsizes([self.ancilla_bitsize]))
108108
else:
109109
# TODO: implement by taking tensor product of component signal states
110110
raise NotImplementedError

qualtran/bloqs/block_encoding/tensor_product_test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ def test_tensor_product_cirq():
131131

132132
def test_tensor_product_signal_state():
133133
assert isinstance(_tensor_product_block_encoding().signal_state.prepare, PrepareIdentity)
134+
_ = _tensor_product_block_encoding().signal_state.decompose_bloq()
134135

135136

136137
@pytest.mark.notebook

0 commit comments

Comments
 (0)