Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions src/pyLIQTR/BlockEncodings/DoubleFactorized.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,10 @@
from pyLIQTR.circuits.operators.RotationsQROM import RotationsQROM

from qualtran.linalg.lcu_util import _differences, _partial_sums
from qualtran.cirq_interop.bit_tools import iter_bits_fixed_point
from qualtran.bloqs.mcmt.multi_control_multi_target_pauli import MultiControlPauli
from qualtran.bloqs.mcmt import MultiControlPauli
from qualtran.bloqs.rotations.phase_gradient import PhaseGradientState
from qualtran.bloqs.data_loading import QROM
from qualtran._infra.data_types import BoundedQUInt, QUInt, QBit
from qualtran import BoundedQUInt, QUInt, QBit
from qualtran import Register, Signature, Side

class DoubleFactorized(BlockEncoding):
Expand Down
8 changes: 4 additions & 4 deletions src/pyLIQTR/BlockEncodings/PauliStringLCU.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ def __init__(self,ProblemInstance, prepare_type=None, probability_eps=0.002, **k
coeff = np.real(t.coefficient)
if coeff < 0:
warnings.warn("Alias sampling preparation with negative coefficients is not supported yet. Circuits and estimates will assume positive coefficients.",stacklevel=2)
self._prepare_gate = StatePreparationAliasSampling.from_lcu_probs(
lcu_probabilities=[np.abs(np.real(t.coefficient)) for t in self.getTerms]
, probability_epsilon=probability_eps)

self._prepare_gate = StatePreparationAliasSampling.from_probabilities(
unnormalized_probabilities=[np.abs(np.real(t.coefficient)) for t in self.getTerms]
, precision=probability_eps)


@property
Expand Down
2 changes: 2 additions & 0 deletions src/pyLIQTR/BlockEncodings/tests/test_DoubleFactorized.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
from pyLIQTR.utils.resource_analysis import estimate_resources
from openfermion import InteractionOperator

pytestmark = pytest.mark.xfail(reason="julia")

@pytest.mark.skipif(platform.system() == 'Windows', reason = "pyscf not supported on Windows")
class TestDoubleFactorizedEncoding:

Expand Down
8 changes: 4 additions & 4 deletions src/pyLIQTR/circuits/operators/AddIntoPhaseGrad.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def decompose_from_registers(
elif self.x_bitsize == 2:
if self.sign==-1:
yield OnEach(self.phase_bitsize, XGate()).on_registers(q=output_bits)
yield CZPowGate(exponent=1.0,global_shift=0.0).on(input_bits[0],output_bits[0])
yield CZPowGate(exponent=1.0).on(input_bits[0],output_bits[0])
yield CNOT().on(input_bits[0],output_bits[0])
yield ZGate().on(input_bits[-1])
if self.sign==-1:
Expand All @@ -115,7 +115,7 @@ def decompose_from_registers(
yield CNOT().on(ancillas[self.phase_bitsize - 3], input_bits[self.phase_bitsize - 2])
yield CNOT().on(ancillas[self.phase_bitsize - 3], output_bits[self.phase_bitsize - 2])
yield ZGate().on(ancillas[-1])
yield CZPowGate(exponent=1.0,global_shift=0.0).on(input_bits[self.phase_bitsize - 2],output_bits[self.phase_bitsize - 2])
yield CZPowGate(exponent=1.0).on(input_bits[self.phase_bitsize - 2],output_bits[self.phase_bitsize - 2])
yield CNOT().on(ancillas[self.phase_bitsize - 3], input_bits[self.phase_bitsize - 2])
yield CNOT().on(input_bits[self.phase_bitsize - 2],output_bits[self.phase_bitsize - 2])
yield ZGate().on(input_bits[-1])
Expand All @@ -138,10 +138,10 @@ def build_call_graph(self, ssa: 'SympySymbolAllocator') -> Set['BloqCountT']:
if self.x_bitsize==1:
return {(ZGate(),1)}
elif self.x_bitsize==2:
return {(CZPowGate(exponent=1.0,global_shift=0.0),1),(CNOT(),1),(ZGate(),1)} | sign_counts
return {(CZPowGate(exponent=1.0),1),(CNOT(),1),(ZGate(),1)} | sign_counts
else:
num_toffoli = self.phase_bitsize - 2
return {(And(), num_toffoli),(And().adjoint(), num_toffoli), (CNOT(),6*(num_toffoli-1) + 5),(ZGate(),2),(CZPowGate(exponent=1.0,global_shift=0.0),1)} | sign_counts
return {(And(), num_toffoli),(And().adjoint(), num_toffoli), (CNOT(),6*(num_toffoli-1) + 5),(ZGate(),2),(CZPowGate(exponent=1.0),1)} | sign_counts

def adjoint(self) -> 'Bloq':
return AddIntoPhaseGradwithDecompose(
Expand Down
2 changes: 1 addition & 1 deletion src/pyLIQTR/circuits/operators/ApplyNuclearPhase.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def decompose_from_registers(
ancilla = context.qubit_manager.qalloc(self.num_bits_nuc)

# overall factor of minus 1 controlled on selecting U
yield CZPowGate(exponent=1.0,global_shift=0.0).on(*flag_uv,*flag_tuv)
yield CZPowGate(exponent=1.0,).on(*flag_uv,*flag_tuv)

# loop over each dimension
for dim in range(3):
Expand Down
2 changes: 1 addition & 1 deletion src/pyLIQTR/circuits/operators/BinaryToUnary.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,5 +175,5 @@ def build_call_graph(self, ssa: 'SympySymbolAllocator') -> Set['BloqCountT']:

def _t_complexity_(self,adjoint=False) -> TComplexity:
num_ands = self.n_bits-1
resources_per_and = And(cv1=0,cv2=0,uncompute=adjoint)._t_complexity_()
resources_per_and = And(cv1=0,cv2=0,uncompute=adjoint).t_complexity()
return TComplexity(t=resources_per_and.t*num_ands,clifford=resources_per_and.clifford*num_ands+self.n_bits)
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from qualtran import GateWithRegisters, Signature
from qualtran.bloqs.mcmt.and_bloq import And, MultiAnd
from qualtran.bloqs.arithmetic import LessThanEqual
from qualtran.bloqs.mcmt.multi_control_multi_target_pauli import MultiControlPauli
from qualtran.bloqs.mcmt import MultiControlPauli

from pyLIQTR.circuits.operators.BinaryToUnary import BinaryToUnaryBits
from pyLIQTR.circuits.operators.PhaseGradientRotation import PhaseGradientZRotation
Expand Down
6 changes: 3 additions & 3 deletions src/pyLIQTR/circuits/operators/DF_InnerPrepare.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import qualtran as qt
import numpy as np
from functools import cached_property
from qualtran.linalg.lcu_util import preprocess_lcu_coefficients_for_reversible_sampling
from qualtran.linalg.lcu_util import preprocess_probabilities_for_reversible_sampling
from qualtran.bloqs.data_loading import QROM
from qualtran._infra.data_types import BoundedQUInt
from pyLIQTR.circuits.operators.ControlledUniformSuperposition import ControlledPrepareUniformSuperposition
Expand Down Expand Up @@ -60,7 +60,7 @@ def from_Tf_arrays(
# if all coeffs are 0, don't compute alt vals
if sum(T_coeffs):
eps = 2**(-keep_bitsize)/len(T_coeffs)
alt_data, keep_data, _ = preprocess_lcu_coefficients_for_reversible_sampling(lcu_coefficients=T_coeffs, epsilon=eps)
alt_data, keep_data, _ = preprocess_probabilities_for_reversible_sampling(unnormalized_probabilities=T_coeffs, epsilon=eps)
alt_signs = [T_signs[i] for i in alt_data]
else:
alt_data = [0]*len(T_coeffs)
Expand All @@ -74,7 +74,7 @@ def from_Tf_arrays(
f_signs = fpl_signs[l][:Xi_l]

eps_l = 2**(-keep_bitsize)/len(f_coeffs)
alt_l, keep_l, _ = preprocess_lcu_coefficients_for_reversible_sampling(lcu_coefficients=f_coeffs,epsilon=eps_l)
alt_l, keep_l, _ = preprocess_probabilities_for_reversible_sampling(unnormalized_probabilities=f_coeffs,epsilon=eps_l)
alt_signs_l = [f_signs[i] for i in alt_l]

alt_data.extend(alt_l)
Expand Down
6 changes: 3 additions & 3 deletions src/pyLIQTR/circuits/operators/FixupTableQROM.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
from functools import cached_property
from cirq.value.condition import Condition
from qualtran.bloqs.multiplexers.unary_iteration_bloq import UnaryIterationGate
from qualtran._infra.registers import Signature, Register
from qualtran._infra.gate_with_registers import total_bits
from qualtran._infra.data_types import BoundedQUInt, QBit, QAny
from qualtran import Signature, Register
from qualtran.cirq_interop import total_bits
from qualtran import BoundedQUInt, QBit, QAny

class FixupTableQROM(UnaryIterationGate):
'''
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@
from qualtran import GateWithRegisters, Signature
from qualtran.bloqs.mcmt.and_bloq import And, MultiAnd
from qualtran.bloqs.arithmetic import LessThanConstant
from qualtran.bloqs.mcmt.multi_control_multi_target_pauli import MultiControlPauli
from qualtran.bloqs.basic_gates import XGate, Hadamard, CZPowGate, CNOT, Ry, OnEach
from qualtran.bloqs.mcmt import MultiControlPauli
from qualtran.bloqs.basic_gates import XGate, Hadamard, CZPowGate, CNOT, Ry, OnEach, ZGate


class FlaggedPrepareUniformSuperposition(GateWithRegisters):
'''
Expand Down Expand Up @@ -110,4 +111,4 @@ def build_call_graph(self, ssa: 'SympySymbolAllocator') -> Set['BloqCountT']:
if not logL:
return{(OnEach(self.nd_bits, Hadamard()), 1),(XGate(),1)}
rotation_angle = 2*np.arcsin(np.sqrt(2**(logL)/(4*l)))
return {(OnEach(self.nd_bits+1, Hadamard()), 1),(OnEach(logL+1, Hadamard()),2), (LessThanConstant(logL,l),4),(Ry(angle=rotation_angle),1),(Ry(angle=-rotation_angle),1),(XGate(),4),(CZPowGate(),1),(MultiControlPauli(cvs=(0,)*logL,target_gate=cirq.Z),1), (CNOT(),1)}
return {(OnEach(self.nd_bits+1, Hadamard()), 1),(OnEach(logL+1, Hadamard()),2), (LessThanConstant(logL,l),4),(Ry(angle=rotation_angle),1),(Ry(angle=-rotation_angle),1),(XGate(),4),(CZPowGate(),1),(MultiControlPauli(cvs=(0,)*logL,target_bloq=ZGate()),1), (CNOT(),1)}
11 changes: 5 additions & 6 deletions src/pyLIQTR/circuits/operators/PhaseGradientRotation.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,17 @@
from numpy.typing import NDArray
from typing import List, Set

from qualtran import GateWithRegisters, Signature
from qualtran.bloqs.mcmt.multi_control_multi_target_pauli import MultiTargetCNOT
from qualtran import GateWithRegisters, Signature, QFxp, QUInt
from qualtran.bloqs.mcmt import MultiTargetCNOT
from qualtran.bloqs.arithmetic import Add, AddK
from qualtran.bloqs.basic_gates import XGate
from qualtran.cirq_interop.bit_tools import iter_bits_fixed_point
from qualtran._infra.data_types import QUInt


def approx_angle_with_br_bits(angle:float,br:int=8):
# normalize angle
angle_norm = angle / (2*np.pi) % 1
# approximate to br bits and express in binary
binary_angle = list(iter_bits_fixed_point(angle_norm,width=br,signed=False))
binary_angle = QFxp(br, br, signed=False).to_bits(angle_norm)
return binary_angle

@attrs.frozen
Expand Down Expand Up @@ -139,7 +138,7 @@ def build_call_graph(self, ssa: 'SympySymbolAllocator') -> Set['BloqCountT']:
if self.do_negative_z_rotation: X_counts = {(XGate(),2)}
else: X_counts = set()

if self.classical_angle: adder = AddK(bitsize=self.bphi,k=self.approx_angle_as_br_int())
if self.classical_angle: adder = AddK(dtype=QUInt(self.bphi),k=self.approx_angle_as_br_int())
else: adder = Add(a_dtype=QUInt(self.br),b_dtype=QUInt(self.bphi))

return {(MultiTargetCNOT(self.bphi),2),(adder,1)} | X_counts
2 changes: 1 addition & 1 deletion src/pyLIQTR/circuits/operators/SelectT_FirstQuantized.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from qualtran.bloqs.basic_gates import Toffoli, ZGate, Hadamard, CZPowGate
from qualtran.bloqs.bookkeeping import ArbitraryClifford
from qualtran.cirq_interop import CirqGateAsBloq
from qualtran.bloqs.mcmt.multi_control_multi_target_pauli import MultiControlPauli
from qualtran.bloqs.mcmt import MultiControlPauli

from pyLIQTR.circuits.operators.ControlledCopy import MultiplexedControlledCopy

Expand Down
2 changes: 1 addition & 1 deletion src/pyLIQTR/circuits/operators/cfdData.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from qualtran.drawing import Text, TextBox, WireSymbol
from qualtran.bloqs.mcmt.and_bloq import And
from qualtran.cirq_interop.t_complexity_protocol import TComplexity
from qualtran.bloqs.mcmt.multi_control_multi_target_pauli import MultiControlPauli as mcmtp # remove later
from qualtran.bloqs.mcmt import MultiControlPauli as mcmtp # remove later
from pyLIQTR.utils.global_ancilla_manager import GlobalQubitManager as manager
from qualtran import Register, QAny, Signature, GateWithRegisters, DecomposeTypeError, CompositeBloq
from qualtran.bloqs.basic_gates import CNOT, XGate, Hadamard, SGate, TGate, Toffoli
Expand Down
2 changes: 1 addition & 1 deletion src/pyLIQTR/circuits/operators/diagonal_bitstring.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from qualtran import QBit, QAny, Register, Signature, GateWithRegisters
from qualtran.cirq_interop.t_complexity_protocol import TComplexity
from pyLIQTR.utils.global_ancilla_manager import GlobalQubitManager as manager
from qualtran.bloqs.mcmt.multi_control_multi_target_pauli import MultiControlPauli as mcmtp
from qualtran.bloqs.mcmt import MultiControlPauli as mcmtp

class DiagonalBitstring(GateWithRegisters):
"""
Expand Down
2 changes: 1 addition & 1 deletion src/pyLIQTR/circuits/operators/prepare_FirstQuantized.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
SoquetT,
Side
)
from qualtran.bloqs.block_encoding.lcu_select_and_prepare import PrepareOracle
from qualtran.bloqs.state_preparation import PrepareOracle
from qualtran.bloqs.basic_gates import Hadamard

from pyLIQTR.circuits.operators.PrepareTUVSuperpositions import PrepareTUVSuperpositions
Expand Down
11 changes: 6 additions & 5 deletions src/pyLIQTR/circuits/operators/prepare_LinearT.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
from typing import List, Tuple, Sequence
from numpy.typing import NDArray
from qualtran import GateWithRegisters, Register, Signature, BoundedQUInt, QBit, QAny, QInt
from qualtran.linalg.lcu_util import preprocess_lcu_coefficients_for_reversible_sampling
from qualtran.bloqs.basic_gates import Hadamard
from qualtran.linalg.lcu_util import preprocess_probabilities_for_reversible_sampling
from qualtran.bloqs.data_loading.qrom import QROM
from qualtran.bloqs.mcmt import MultiControlPauli
from qualtran.bloqs.state_preparation import PrepareUniformSuperposition
Expand All @@ -35,7 +36,7 @@ class FermionicPrepare_LinearT(GateWithRegisters):
:param List[Tuple[int,float]] U_array: The (Z) operator coefficients, equivalent to :math:`\\tilde{U}^2` in the reference. Formatted the same as T_array.
:param List[Tuple[int,float]] V_array: The (ZZ) operator coefficients, equivalent to :math:`\\tilde{V}^2` in the reference. Formatted the same as T_array.
:param NDArray[int] M_vals: Number of grid points (orbitals) along each spatial dimension.
:param float approx_error: The desired accuracy to represent each coefficient which sets :math:`\\mu` size and keep/alt integers. See `qualtran.linalg.lcu_util.preprocess_lcu_coefficients_for_reversible_sampling` for more information.
:param float approx_error: The desired accuracy to represent each coefficient which sets :math:`\\mu` size and keep/alt integers. See `qualtran.linalg.lcu_util.preprocess_probabilities_for_reversible_sampling` for more information.
'''

def __init__(self, T_array: List[Tuple[int,float]], U_array: List[Tuple[int,float]], V_array: List[Tuple[int,float]], M_vals: NDArray[np.int_], approx_error: float):
Expand Down Expand Up @@ -190,16 +191,16 @@ def from_TUV_arrays(
M_vals: Number of grid points (spin orbitals) along each spatial dimension.
approx_error: The desired accuracy to represent each coefficient
(which sets mu size and keep/alt integers).
See `qualtran.linalg.lcu_util.preprocess_lcu_coefficients_for_reversible_sampling`
See `qualtran.linalg.lcu_util.preprocess_probabilities_for_reversible_sampling`
for more information.
"""

# NOTE: the order of T, V, and U is important since T -> 00, V -> 01, U -> 10 in terms of the UV registers
coefficients = [coeff[1] for coeff in T_array + V_array + U_array]
theta = np.array([coeff[0] for coeff in T_array + V_array + U_array]) # entries should be 0 or 1

alt, keep, mu = preprocess_lcu_coefficients_for_reversible_sampling(
lcu_coefficients=coefficients, epsilon=approx_error
alt, keep, mu = preprocess_probabilities_for_reversible_sampling(
unnormalized_probabilities=coefficients, epsilon=approx_error
)
theta_alt = np.array([theta[i] for i in alt])

Expand Down
4 changes: 2 additions & 2 deletions src/pyLIQTR/circuits/operators/select_LinearT.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import cirq
import numpy as np
from qualtran import Register, GateWithRegisters, Signature, QBit, BoundedQUInt, QAny
from qualtran._infra.gate_with_registers import total_bits
import qualtran.cirq_interop as qt_ci
from functools import cached_property
from typing import List, Tuple, Sequence, Optional
from numpy.typing import NDArray
Expand Down Expand Up @@ -115,7 +115,7 @@ def decompose_from_registers(
yield qt.bloqs.multiplexers.apply_gate_to_lth_target.ApplyGateToLthQubit(
selection_regs=q_selection_regs,
nth_gate=lambda *_: cirq.Z,
control_regs=Register('control', QAny(1 + total_bits(self.control_registers))),
control_regs=Register('control', QAny(1 + qt_ci.total_bits(self.control_registers))),
).on_registers(
q=q, b=b, control=[*V, *control], target=target_qubits_for_apply_to_lth_gate
)
Expand Down
2 changes: 1 addition & 1 deletion src/pyLIQTR/circuits/operators/swap_network.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from typing import Tuple, Sequence
from functools import cached_property
from qualtran import QBit, QAny, BoundedQUInt, Signature, GateWithRegisters, Register
from qualtran.bloqs.mcmt.multi_control_multi_target_pauli import MultiControlPauli as mcmtp
from qualtran.bloqs.mcmt import MultiControlPauli as mcmtp
from qualtran.bloqs.multiplexers.unary_iteration_bloq import UnaryIterationGate
from pyLIQTR.utils.global_ancilla_manager import GlobalQubitManager as manager

Expand Down
7 changes: 4 additions & 3 deletions src/pyLIQTR/circuits/operators/tests/test_BinaryToUnary.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import cirq

from pyLIQTR.circuits.operators.BinaryToUnary import BinaryToUnaryBits
from qualtran import QUInt
from qualtran.cirq_interop.testing import assert_circuit_inp_out_cirqsim
from qualtran.cirq_interop.bit_tools import iter_bits
from pyLIQTR.utils.global_ancilla_manager import gam as gam
from pyLIQTR.utils.printing import openqasm
from pyLIQTR.utils.resource_analysis import estimate_resources
Expand All @@ -25,12 +25,13 @@ def test_BinaryToUnaryBits(self,selection_index):
operation = BinaryToUnaryBits(n_bits=n_bits).on_registers(binary=binary_reg,unary=unary_reg)
circuit = cirq.Circuit(operation)
# input state is binary rep of selection index where msb is first reading left to right and unary qubits all 0
input_state = list(iter_bits(selection_index,width=n_bits))+[0]*n_bits
bits = QUInt(n_bits).to_bits(selection_index)
input_state = bits+[0]*n_bits
# output state unary qubits are binary rep of selection index rounded up to closest power of 2 where msb is first reading left to right
rounded_up_to_power_of_2 = 2**(selection_index).bit_length()
num_ones = (rounded_up_to_power_of_2-1).bit_length()
num_leading_zeros = n_bits - num_ones
output_state = list(iter_bits(selection_index,width=n_bits)) +[0]*num_leading_zeros+[1]*num_ones
output_state = bits +[0]*num_leading_zeros+[1]*num_ones

assert_circuit_inp_out_cirqsim(circuit,qubit_order=[*binary_reg,*unary_reg],inputs=input_state,outputs=output_state)

Expand Down
1 change: 0 additions & 1 deletion src/pyLIQTR/circuits/operators/tests/test_EqualityTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import numpy as np

from qualtran.cirq_interop.testing import assert_circuit_inp_out_cirqsim, GateHelper
from qualtran.cirq_interop.bit_tools import iter_bits
from pyLIQTR.utils.global_ancilla_manager import gam as gam
from pyLIQTR.utils.printing import openqasm
from pyLIQTR.circuits.operators.EqualityTest import EqualityTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import numpy as np

from qualtran.cirq_interop.testing import assert_circuit_inp_out_cirqsim, GateHelper
from qualtran.cirq_interop.bit_tools import iter_bits_twos_complement
from pyLIQTR.utils.global_ancilla_manager import gam as gam
from pyLIQTR.utils.printing import openqasm
from pyLIQTR.utils.resource_analysis import estimate_resources
Expand Down
1 change: 0 additions & 1 deletion src/pyLIQTR/circuits/operators/tests/test_RotationsQROM.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import numpy as np

from qualtran.cirq_interop.testing import assert_circuit_inp_out_cirqsim
from qualtran.cirq_interop.bit_tools import iter_bits
from pyLIQTR.utils.global_ancilla_manager import gam as gam
from pyLIQTR.utils.printing import openqasm
from pyLIQTR.circuits.operators.PhaseGradientRotation import approx_angle_with_br_bits
Expand Down
1 change: 0 additions & 1 deletion src/pyLIQTR/circuits/operators/tests/test_qtAdd.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

from qualtran.bloqs.arithmetic.addition import Add as qtAdd
from qualtran.cirq_interop.testing import assert_circuit_inp_out_cirqsim
from qualtran.cirq_interop.bit_tools import iter_bits_twos_complement
from qualtran._infra.data_types import QUInt
from pyLIQTR.utils.global_ancilla_manager import gam as gam
from pyLIQTR.utils.printing import openqasm
Expand Down
2 changes: 1 addition & 1 deletion src/pyLIQTR/qubitization/phase_estimation.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@



class QubitizedPhaseEstimation(qt._infra.gate_with_registers.GateWithRegisters):
class QubitizedPhaseEstimation(qt.GateWithRegisters):


##
Expand Down
2 changes: 1 addition & 1 deletion src/pyLIQTR/qubitization/qsvt.py
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ def _qasm_(



class QSVT_real_polynomial_sum(qt._infra.gate_with_registers.GateWithRegisters):
class QSVT_real_polynomial_sum(qt.GateWithRegisters):

def __init__( self,
block_encoding,
Expand Down
Loading