Skip to content

Move symbolic_counting_utils.py to a new module in qualtran/symbolics/ #941

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
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
2 changes: 1 addition & 1 deletion qualtran/bloqs/arithmetic/addition.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@

from qualtran.drawing import WireSymbol
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.simulation.classical_sim import ClassicalValT
from qualtran.symbolics import SymbolicInt


@frozen
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/arithmetic/comparison.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@
if TYPE_CHECKING:
from qualtran import BloqBuilder
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.simulation.classical_sim import ClassicalValT
from qualtran.symbolics import SymbolicInt


@frozen
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/arithmetic/multiplication.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
)
from qualtran.bloqs.basic_gates import TGate, Toffoli
from qualtran.cirq_interop.t_complexity_protocol import TComplexity
from qualtran.resource_counting.symbolic_counting_utils import smax
from qualtran.symbolics import smax

if TYPE_CHECKING:
import quimb.tensor as qtn
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/arithmetic/sorting.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from qualtran import Bloq, bloq_example, BloqDocSpec, QAny, QBit, Register, Side, Signature
from qualtran.bloqs.arithmetic import GreaterThan
from qualtran.cirq_interop.t_complexity_protocol import TComplexity
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.symbolics import SymbolicInt


@frozen
Expand Down
4 changes: 1 addition & 3 deletions qualtran/bloqs/basic_gates/global_phase.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
from qualtran import bloq_example, BloqDocSpec, DecomposeTypeError
from qualtran.cirq_interop import CirqGateAsBloqBase
from qualtran.cirq_interop.t_complexity_protocol import TComplexity
from qualtran.symbolics import sconj, SymbolicComplex

if TYPE_CHECKING:
from qualtran import CompositeBloq
from qualtran.resource_counting.symbolic_counting_utils import SymbolicComplex


@frozen
Expand All @@ -47,8 +47,6 @@ def decompose_bloq(self) -> 'CompositeBloq':
raise DecomposeTypeError(f"{self} is atomic")

def adjoint(self) -> 'GlobalPhase':
from qualtran.resource_counting.symbolic_counting_utils import sconj

return attrs.evolve(self, coefficient=sconj(self.coefficient))

def pretty_name(self) -> str:
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/basic_gates/on_each.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from qualtran.drawing import WireSymbol
from qualtran.drawing.musical_score import TextBox
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.symbolics import SymbolicInt


@attrs.frozen
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/basic_gates/rotation.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from qualtran import bloq_example, BloqDocSpec, CompositeBloq, DecomposeTypeError
from qualtran.cirq_interop import CirqGateAsBloqBase
from qualtran.cirq_interop.t_complexity_protocol import TComplexity
from qualtran.resource_counting.symbolic_counting_utils import SymbolicFloat
from qualtran.symbolics import SymbolicFloat


@runtime_checkable
Expand Down
4 changes: 2 additions & 2 deletions qualtran/bloqs/basic_gates/su2_rotation.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@
from qualtran.bloqs.basic_gates import GlobalPhase, Ry, ZPowGate
from qualtran.cirq_interop.t_complexity_protocol import TComplexity
from qualtran.drawing import TextBox
from qualtran.resource_counting.symbolic_counting_utils import is_symbolic, SymbolicFloat
from qualtran.symbolics import is_symbolic, SymbolicFloat

if TYPE_CHECKING:
import quimb.tensor as qtn

from qualtran import BloqBuilder, Soquet, SoquetT
from qualtran import BloqBuilder, SoquetT
from qualtran.drawing import WireSymbol
from qualtran.resource_counting import SympySymbolAllocator

Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/factoring/ecc/ec_point.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

from attrs import frozen

from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.symbolics import SymbolicInt


@frozen
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/factoring/ecc/find_ecc_private_key.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
from qualtran.bloqs.basic_gates import IntState
from qualtran.bloqs.util_bloqs import Free
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.symbolics import SymbolicInt

from .ec_phase_estimate_r import ECPhaseEstimateR
from .ec_point import ECPoint
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/for_testing/qubitization_walk_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
from qualtran.bloqs.qubitization_walk_operator import QubitizationWalkOperator
from qualtran.bloqs.select_and_prepare import PrepareOracle
from qualtran.bloqs.state_preparation import PrepareUniformSuperposition
from qualtran.resource_counting.symbolic_counting_utils import SymbolicFloat
from qualtran.symbolics import SymbolicFloat


@attrs.frozen
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,7 @@
approx_exp_cos_by_jacobi_anger,
degree_jacobi_anger_approximation,
)
from qualtran.resource_counting.symbolic_counting_utils import (
is_symbolic,
Shaped,
SymbolicFloat,
SymbolicInt,
)
from qualtran.symbolics import is_symbolic, Shaped, SymbolicFloat, SymbolicInt

if TYPE_CHECKING:
from qualtran import BloqBuilder, SoquetT
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
verify_generalized_qsp,
)
from qualtran.bloqs.qubitization_walk_operator import QubitizationWalkOperator
from qualtran.resource_counting.symbolic_counting_utils import Shaped
from qualtran.symbolics import Shaped

from .hamiltonian_simulation_by_gqsp import (
_hubbard_time_evolution_by_gqsp,
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/hubbard_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
)

if TYPE_CHECKING:
from qualtran.resource_counting.symbolic_counting_utils import SymbolicFloat
from qualtran.symbolics import SymbolicFloat


@attrs.frozen
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/mcmt/multi_control_multi_target_pauli.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@
import quimb.tensor as qtn

from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.simulation.classical_sim import ClassicalValT
from qualtran.symbolics import SymbolicInt


@frozen
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/mod_arithmetic/_shims.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
from qualtran.bloqs.arithmetic._shims import CHalf, Lt, MultiCToffoli, Negate, Sub
from qualtran.bloqs.basic_gates import CNOT, CSwap, Swap, Toffoli
from qualtran.drawing import Circle, TextBox, WireSymbol
from qualtran.resource_counting.symbolic_counting_utils import ceil, log2
from qualtran.symbolics import ceil, log2

if TYPE_CHECKING:
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/multiplexers/unary_iteration_bloq.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

from qualtran import Bloq
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.symbolics import SymbolicInt


def _unary_iteration_segtree(
Expand Down
4 changes: 1 addition & 3 deletions qualtran/bloqs/phase_estimation/lp_resource_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
from qualtran.bloqs.basic_gates import CZPowGate, GlobalPhase, Hadamard, OnEach, Ry, Rz, XGate
from qualtran.bloqs.mcmt import MultiControlPauli
from qualtran.cirq_interop.t_complexity_protocol import TComplexity
from qualtran.resource_counting.symbolic_counting_utils import is_symbolic, pi, SymbolicInt
from qualtran.symbolics import acos, is_symbolic, pi, SymbolicInt

if TYPE_CHECKING:
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
Expand Down Expand Up @@ -160,8 +160,6 @@ def decompose_from_registers(
context.qubit_manager.qfree([flag, anc])

def build_call_graph(self, ssa: 'SympySymbolAllocator') -> Set['BloqCountT']:
from qualtran.resource_counting.symbolic_counting_utils import acos

flag_angle = acos(1 / (1 + 2**self.bitsize))

return {
Expand Down
9 changes: 1 addition & 8 deletions qualtran/bloqs/phase_estimation/qubitization_qpe.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,7 @@
from qualtran.bloqs.phase_estimation.lp_resource_state import LPResourceState
from qualtran.bloqs.qft.qft_text_book import QFTTextBook
from qualtran.bloqs.qubitization_walk_operator import QubitizationWalkOperator
from qualtran.resource_counting.symbolic_counting_utils import (
ceil,
is_symbolic,
log2,
pi,
SymbolicFloat,
SymbolicInt,
)
from qualtran.symbolics import ceil, is_symbolic, log2, pi, SymbolicFloat, SymbolicInt

if TYPE_CHECKING:
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
Expand Down
9 changes: 1 addition & 8 deletions qualtran/bloqs/phase_estimation/text_book_qpe.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,7 @@
from qualtran import Bloq, bloq_example, BloqDocSpec, GateWithRegisters, QFxp, Register, Signature
from qualtran.bloqs.basic_gates import Hadamard, OnEach
from qualtran.bloqs.qft.qft_text_book import QFTTextBook
from qualtran.resource_counting.symbolic_counting_utils import (
ceil,
is_symbolic,
log2,
pi,
SymbolicFloat,
SymbolicInt,
)
from qualtran.symbolics import ceil, is_symbolic, log2, pi, SymbolicFloat, SymbolicInt

if TYPE_CHECKING:
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
Expand Down
8 changes: 1 addition & 7 deletions qualtran/bloqs/qft/approximate_qft.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,7 @@
from qualtran import bloq_example, BloqDocSpec, GateWithRegisters, QFxp, QUInt, Signature
from qualtran.bloqs.basic_gates import Hadamard, TwoBitSwap
from qualtran.bloqs.rotations import AddIntoPhaseGrad
from qualtran.resource_counting.symbolic_counting_utils import (
ceil,
is_symbolic,
log2,
SymbolicFloat,
SymbolicInt,
)
from qualtran.symbolics import ceil, is_symbolic, log2, SymbolicFloat, SymbolicInt

if TYPE_CHECKING:
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/qft/qft_text_book.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

from qualtran import GateWithRegisters, QUInt, Signature
from qualtran.bloqs.rotations.phase_gradient import PhaseGradientUnitary
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.symbolics import SymbolicInt


@attrs.frozen
Expand Down
9 changes: 1 addition & 8 deletions qualtran/bloqs/qsp/generalized_qsp.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,7 @@

from qualtran import bloq_example, BloqDocSpec, GateWithRegisters, QBit, Register, Signature
from qualtran.bloqs.basic_gates.su2_rotation import SU2RotationGate
from qualtran.resource_counting.symbolic_counting_utils import (
is_symbolic,
Shaped,
slen,
smax,
smin,
SymbolicInt,
)
from qualtran.symbolics import is_symbolic, Shaped, slen, smax, smin, SymbolicInt

if TYPE_CHECKING:
import cirq
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/qsp/generalized_qsp_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
from qualtran.bloqs.for_testing.matrix_gate import MatrixGate
from qualtran.bloqs.qubitization_walk_operator_test import get_walk_operator_for_1d_ising_model
from qualtran.resource_counting import SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import Shaped
from qualtran.symbolics import Shaped

from .generalized_qsp import (
_gqsp,
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/qubitization_walk_operator.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
ignore_cliffords,
ignore_split_join,
)
from qualtran.resource_counting.symbolic_counting_utils import SymbolicFloat
from qualtran.symbolics import SymbolicFloat


@attrs.frozen(cache_hash=True)
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/rotations/hamming_weight_phasing.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
if TYPE_CHECKING:
from qualtran import BloqBuilder, SoquetT
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.symbolics import SymbolicInt


@attrs.frozen
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/rotations/hamming_weight_phasing_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
generalize_rotation_angle,
ignore_split_join,
)
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.symbolics import SymbolicInt

if TYPE_CHECKING:
from qualtran import BloqBuilder, SoquetT
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/rotations/phase_gradient.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@

from qualtran import Bloq, SoquetT
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import SymbolicFloat, SymbolicInt
from qualtran.simulation.classical_sim import ClassicalValT
from qualtran.symbolics import SymbolicFloat, SymbolicInt


@attrs.frozen
Expand Down
3 changes: 1 addition & 2 deletions qualtran/bloqs/rotations/quantum_variable_rotation.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
)
from qualtran.bloqs.basic_gates.rotation import ZPowGate
from qualtran.bloqs.rotations.phase_gradient import AddScaledValIntoPhaseReg
from qualtran.resource_counting.symbolic_counting_utils import (
from qualtran.symbolics import (
bit_length,
ceil,
is_symbolic,
Expand All @@ -90,7 +90,6 @@
if TYPE_CHECKING:
from qualtran import SoquetT
from qualtran.resource_counting import BloqCountT, SympySymbolAllocator
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt


class QvrInterface(GateWithRegisters, metaclass=abc.ABCMeta):
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/select_and_prepare.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from qualtran import GateWithRegisters, Register, Signature

if TYPE_CHECKING:
from qualtran.resource_counting.symbolic_counting_utils import SymbolicFloat
from qualtran.symbolics import SymbolicFloat


class SelectOracle(GateWithRegisters):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
)

if TYPE_CHECKING:
from qualtran.resource_counting.symbolic_counting_utils import SymbolicFloat
from qualtran.symbolics import SymbolicFloat


@cirq.value_equality()
Expand Down
2 changes: 1 addition & 1 deletion qualtran/bloqs/util_bloqs.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@
)
from qualtran.cirq_interop.t_complexity_protocol import TComplexity
from qualtran.drawing import directional_text_box, WireSymbol
from qualtran.resource_counting.symbolic_counting_utils import is_symbolic, SymbolicInt
from qualtran.simulation.classical_sim import bits_to_ints, ints_to_bits
from qualtran.symbolics import is_symbolic, SymbolicInt

if TYPE_CHECKING:
import cirq
Expand Down
7 changes: 1 addition & 6 deletions qualtran/cirq_interop/t_complexity_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,7 @@

from qualtran import Bloq, Controlled
from qualtran.cirq_interop.decompose_protocol import _decompose_once_considering_known_decomposition
from qualtran.resource_counting.symbolic_counting_utils import (
ceil,
log2,
SymbolicFloat,
SymbolicInt,
)
from qualtran.symbolics import ceil, log2, SymbolicFloat, SymbolicInt

_T_GATESET = cirq.Gateset(cirq.T, cirq.T**-1, unroll_circuit_op=False)
_ROTS_GATESET = cirq.Gateset(cirq.XPowGate, cirq.YPowGate, cirq.ZPowGate, cirq.CZPowGate)
Expand Down
6 changes: 1 addition & 5 deletions qualtran/linalg/jacobi_anger_approximations.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,7 @@
from numpy.typing import NDArray

from qualtran.resource_counting import big_O
from qualtran.resource_counting.symbolic_counting_utils import (
is_symbolic,
SymbolicFloat,
SymbolicInt,
)
from qualtran.symbolics import is_symbolic, SymbolicFloat, SymbolicInt


def degree_jacobi_anger_approximation(t: SymbolicFloat, *, precision: SymbolicFloat) -> SymbolicInt:
Expand Down
2 changes: 1 addition & 1 deletion qualtran/resource_counting/_call_graph_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
get_bloq_callee_counts,
SympySymbolAllocator,
)
from qualtran.resource_counting.symbolic_counting_utils import SymbolicInt
from qualtran.symbolics import SymbolicInt


@frozen
Expand Down
Loading
Loading