Skip to content

Commit

Permalink
Remove the 'N' before gate definition
Browse files Browse the repository at this point in the history
  • Loading branch information
majafranz committed Jan 14, 2025
1 parent 31528b9 commit f3f2ff2
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 50 deletions.
82 changes: 41 additions & 41 deletions qml_essentials/ansaetze.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,47 +81,47 @@ def noise_gate(wires, noise_params=None):
noise_params.get("DepolarizingChannel", 0.0), wires=wires
)

def NRot(phi, theta, omega, wires, noise_params=None):
def Rot(phi, theta, omega, wires, noise_params=None):
qml.Rot(phi, theta, omega, wires=wires)
Gates.noise_gate(wires, noise_params)

def NRX(w, wires, noise_params=None):
def RX(w, wires, noise_params=None):
qml.RX(w, wires=wires)
Gates.noise_gate(wires, noise_params)

def NRY(w, wires, noise_params=None):
def RY(w, wires, noise_params=None):
qml.RY(w, wires=wires)
Gates.noise_gate(wires, noise_params)

def NRZ(w, wires, noise_params=None):
def RZ(w, wires, noise_params=None):
qml.RZ(w, wires=wires)
Gates.noise_gate(wires, noise_params)

def NCRX(w, wires, noise_params=None):
def CRX(w, wires, noise_params=None):
qml.CRX(w, wires=wires)
Gates.noise_gate(wires, noise_params)

def NCRY(w, wires, noise_params=None):
def CRY(w, wires, noise_params=None):
qml.CRY(w, wires=wires)
Gates.noise_gate(wires, noise_params)

def NCRZ(w, wires, noise_params=None):
def CRZ(w, wires, noise_params=None):
qml.CRZ(w, wires=wires)
Gates.noise_gate(wires, noise_params)

def NCX(wires, noise_params=None):
def CX(wires, noise_params=None):
qml.CNOT(wires=wires)
Gates.noise_gate(wires, noise_params)

def NCY(wires, noise_params=None):
def CY(wires, noise_params=None):
qml.CY(wires=wires)
Gates.noise_gate(wires, noise_params)

def NCZ(wires, noise_params=None):
def CZ(wires, noise_params=None):
qml.CZ(wires=wires)
Gates.noise_gate(wires, noise_params)

def NH(wires, noise_params=None):
def H(wires, noise_params=None):
qml.Hadamard(wires=wires)
Gates.noise_gate(wires, noise_params)

Expand Down Expand Up @@ -182,22 +182,22 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None):
"""
w_idx = 0
for q in range(n_qubits):
Gates.NRY(w[w_idx], wires=q, noise_params=noise_params)
Gates.RY(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1
Gates.NRZ(w[w_idx], wires=q, noise_params=noise_params)
Gates.RZ(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1
Gates.NRY(w[w_idx], wires=q, noise_params=noise_params)
Gates.RY(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1

if n_qubits > 1:
for q in range(n_qubits // 2):
Gates.NCX(wires=[(2 * q), (2 * q + 1)], noise_params=noise_params)
Gates.CX(wires=[(2 * q), (2 * q + 1)], noise_params=noise_params)
for q in range((n_qubits - 1) // 2):
Gates.NCX(
Gates.CX(
wires=[(2 * q + 1), (2 * q + 2)], noise_params=noise_params
)
if n_qubits > 2:
Gates.NCX(wires=[(n_qubits - 1), 0], noise_params=noise_params)
Gates.CX(wires=[(n_qubits - 1), 0], noise_params=noise_params)

class Circuit_19(Circuit):
@staticmethod
Expand Down Expand Up @@ -229,14 +229,14 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None):
"""
w_idx = 0
for q in range(n_qubits):
Gates.NRX(w[w_idx], wires=q, noise_params=noise_params)
Gates.RX(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1
Gates.NRZ(w[w_idx], wires=q, noise_params=noise_params)
Gates.RZ(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1

if n_qubits > 1:
for q in range(n_qubits):
Gates.NCRX(
Gates.CRX(
w[w_idx],
wires=[n_qubits - q - 1, (n_qubits - q) % n_qubits],
noise_params=noise_params,
Expand Down Expand Up @@ -272,14 +272,14 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None):
"""
w_idx = 0
for q in range(n_qubits):
Gates.NRX(w[w_idx], wires=q, noise_params=noise_params)
Gates.RX(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1
Gates.NRZ(w[w_idx], wires=q, noise_params=noise_params)
Gates.RZ(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1

if n_qubits > 1:
for q in range(n_qubits):
Gates.NCRZ(
Gates.CRZ(
w[w_idx],
wires=[n_qubits - q - 1, (n_qubits - q) % n_qubits],
noise_params=noise_params,
Expand Down Expand Up @@ -315,15 +315,15 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None):

w_idx = 0
for q in range(n_qubits):
Gates.NRX(w[w_idx], wires=q)
Gates.RX(w[w_idx], wires=q)
w_idx += 1

if n_qubits > 1:
for q in range(n_qubits):
Gates.NCX(wires=[n_qubits - q - 1, (n_qubits - q) % n_qubits])
Gates.CX(wires=[n_qubits - q - 1, (n_qubits - q) % n_qubits])

for q in range(n_qubits):
Gates.NRZ(w[w_idx], wires=q)
Gates.RZ(w[w_idx], wires=q)
w_idx += 1

class Circuit_9(Circuit):
Expand All @@ -348,17 +348,17 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None):
"""
w_idx = 0
for q in range(n_qubits):
Gates.NH(wires=q, noise_params=noise_params)
Gates.H(wires=q, noise_params=noise_params)

if n_qubits > 1:
for q in range(n_qubits - 1):
Gates.NCZ(
Gates.CZ(
wires=[n_qubits - q - 2, n_qubits - q - 1],
noise_params=noise_params,
)

for q in range(n_qubits):
Gates.NRX(w[w_idx], wires=q, noise_params=noise_params)
Gates.RX(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1

class Circuit_6(Circuit):
Expand Down Expand Up @@ -393,27 +393,27 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None):
"""
w_idx = 0
for q in range(n_qubits):
Gates.NRX(w[w_idx], wires=q, noise_params=noise_params)
Gates.RX(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1
Gates.NRZ(w[w_idx], wires=q, noise_params=noise_params)
Gates.RZ(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1

if n_qubits > 1:
for ql in range(n_qubits):
for q in range(n_qubits):
if q == ql:
continue
Gates.NCRX(
Gates.CRX(
w[w_idx],
wires=[n_qubits - ql - 1, (n_qubits - q - 1) % n_qubits],
noise_params=noise_params,
)
w_idx += 1

for q in range(n_qubits):
Gates.NRX(w[w_idx], wires=q, noise_params=noise_params)
Gates.RX(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1
Gates.NRZ(w[w_idx], wires=q, noise_params=noise_params)
Gates.RZ(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1

class Circuit_1(Circuit):
Expand All @@ -438,9 +438,9 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None):
"""
w_idx = 0
for q in range(n_qubits):
Gates.NRX(w[w_idx], wires=q, noise_params=noise_params)
Gates.RX(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1
Gates.NRZ(w[w_idx], wires=q, noise_params=noise_params)
Gates.RZ(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1

class Strongly_Entangling(Circuit):
Expand All @@ -467,7 +467,7 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None) -> None:
"""
w_idx = 0
for q in range(n_qubits):
Gates.NRot(
Gates.Rot(
w[w_idx],
w[w_idx + 1],
w[w_idx + 2],
Expand All @@ -478,10 +478,10 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None) -> None:

if n_qubits > 1:
for q in range(n_qubits):
Gates.NCX(wires=[q, (q + 1) % n_qubits], noise_params=noise_params)
Gates.CX(wires=[q, (q + 1) % n_qubits], noise_params=noise_params)

for q in range(n_qubits):
Gates.NRot(
Gates.Rot(
w[w_idx],
w[w_idx + 1],
w[w_idx + 2],
Expand All @@ -492,7 +492,7 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None) -> None:

if n_qubits > 1:
for q in range(n_qubits):
Gates.NCX(
Gates.CX(
wires=[q, (q + n_qubits // 2) % n_qubits],
noise_params=noise_params,
)
Expand All @@ -519,7 +519,7 @@ def build(w: np.ndarray, n_qubits: int, noise_params=None):
"""
w_idx = 0
for q in range(n_qubits):
Gates.NRot(
Gates.Rot(
w[w_idx],
w[w_idx + 1],
w[w_idx + 2],
Expand Down
6 changes: 3 additions & 3 deletions qml_essentials/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def __init__(
n_layers: int,
circuit_type: Union[str, Circuit],
data_reupload: bool = True,
encoding: Union[str, Callable, List[str], List[Callable]] = qml.RX,
encoding: Union[str, Callable, List[str], List[Callable]] = Gates.RX,
initialization: str = "random",
initialization_domain: List[float] = [0, 2 * np.pi],
output_qubit: Union[List[int], int] = -1,
Expand Down Expand Up @@ -96,11 +96,11 @@ def __init__(
# first check if we have a str, list or callable
if isinstance(encoding, str):
# if str, use the pennylane fct
self._enc = getattr(Gates, f"N{encoding}")
self._enc = getattr(Gates, f"{encoding}")
elif isinstance(encoding, list):
# if list, check if str or callable
if isinstance(encoding[0], str):
self._enc = [getattr(Gates, f"N{enc}") for enc in encoding]
self._enc = [getattr(Gates, f"{enc}") for enc in encoding]
else:
self._enc = encoding

Expand Down
12 changes: 6 additions & 6 deletions tests/test_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,8 @@ def test_parameters() -> None:
@pytest.mark.smoketest
def test_encoding() -> None:
test_cases = [
{"encoding_unitary": qml.RX, "type": Callable, "input": [0]},
{"encoding_unitary": [qml.RX, qml.RY], "type": List, "input": [[0, 0]]},
{"encoding_unitary": Gates.RX, "type": Callable, "input": [0]},
{"encoding_unitary": [Gates.RX, Gates.RY], "type": List, "input": [[0, 0]]},
{"encoding_unitary": "RX", "type": Callable, "input": [0]},
{"encoding_unitary": ["RX", "RY"], "type": List, "input": [[0, 0]]},
]
Expand Down Expand Up @@ -347,14 +347,14 @@ def get_control_indices(n_qubits: int) -> Optional[np.ndarray]:
def build(w: np.ndarray, n_qubits: int, noise_params=None):
w_idx = 0
for q in range(n_qubits):
Gates.NRY(w[w_idx], wires=q, noise_params=noise_params)
Gates.RY(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1
Gates.NRZ(w[w_idx], wires=q, noise_params=noise_params)
Gates.RZ(w[w_idx], wires=q, noise_params=noise_params)
w_idx += 1

if n_qubits > 1:
for q in range(n_qubits - 1):
Gates.NCZ(wires=[q, q + 1], noise_params=noise_params)
Gates.CZ(wires=[q, q + 1], noise_params=noise_params)

model = Model(
n_qubits=2,
Expand Down Expand Up @@ -411,7 +411,7 @@ def test_multi_input() -> None:
f"{inputs.shape if inputs is not None else 'None'}"
)
encoding = (
qml.RX if inputs is None else [qml.RX for _ in range(inputs.shape[1])]
Gates.RX if inputs is None else [Gates.RX for _ in range(inputs.shape[1])]
)
model = Model(
n_qubits=2,
Expand Down

0 comments on commit f3f2ff2

Please sign in to comment.