Skip to content
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

(resolves #83) Probability in tools needs parameter type #87

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
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
1 change: 1 addition & 0 deletions src/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
from .quantum_gate import gates
from .visualize import *
from .tools import *
from .qubit import *
2 changes: 1 addition & 1 deletion src/quantum_circuit/base/base_core.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import numpy as np
from ...tools import qubit
from ...qubit import qubit
from ..interface import CoreInterface


Expand Down
2 changes: 1 addition & 1 deletion src/quantum_circuit/gpu/gpu_core.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import cupy as cp
from ..interface import CoreInterface
from ...tools import qubit
from ...qubit import qubit


class GpuCore(CoreInterface):
Expand Down
2 changes: 1 addition & 1 deletion src/quantum_circuit/gpu_sparse/gpu_sparse_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from cupyx.scipy.sparse import csr_matrix, csc_matrix
from cupyx.scipy.sparse import kron
from ..interface import CoreInterface
from ...tools import qubit
from ...qubit import qubit


class GpuSparseCore(CoreInterface):
Expand Down
2 changes: 1 addition & 1 deletion src/quantum_circuit/sparse/sparse_core.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from scipy import sparse as sp
from ..interface import CoreInterface
from ...tools import qubit
from ...qubit import qubit


class SparseCore(CoreInterface):
Expand Down
1 change: 1 addition & 0 deletions src/qubit/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .qubit import qubit
File renamed without changes.
1 change: 0 additions & 1 deletion src/tools/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from .qubit import qubit
from .measure import measure
from .probability import probability
from .phase_angle import phase_angle as phaseangle
Expand Down
17 changes: 11 additions & 6 deletions src/tools/probability.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,33 @@
from numpy import abs, around, multiply, square, log2
from numpy import abs, around, multiply, square, log2, ndarray
from .base import convert_state
from typing import Union
from ..quantum_circuit import QuantumCircuit


def probability(
quantumstate, show_percent: bool = False, show_bit: int = -1, round: int = 3
quantum_state: Union[ndarray, QuantumCircuit],
show_percent: bool = False,
show_bit: int = -1,
round: int = 3,
):

circuit_size = int(log2(quantumstate.size))
quantumstate = convert_state(quantumstate)
circuit_size = int(log2(quantum_state.size))
quantum_state = convert_state(quantum_state)
if round < 0:
exit(
f"Error: QuantumCircuit.tools.probabilities() -- round placement must be a value greater than 0."
)

if isinstance(show_bit, int) and show_bit < 0:
probability = abs(square(quantumstate))
probability = abs(square(quantum_state))

elif isinstance(show_bit, str) or isinstance(show_bit, int):

if 2**circuit_size <= show_bit:
exit(
f"Error: QuantumCircuit.tools.probabilities() -- Called bit to find phase angle is not within range of possible values."
)
probability = abs(square(quantumstate[show_bit]))
probability = abs(square(quantum_state[show_bit]))

if show_percent:
probability = multiply(probability, 100)
Expand Down
Loading