Skip to content

Commit 8af2ada

Browse files
AbeCoullCoullrmshafferspeller26
authored
feat: add phase RX gate (#172)
* feat: add phase RX gate * Update qiskit_braket_provider/providers/adapter.py Co-authored-by: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com> * fix tests * fix tests * formatting fix * remove divisor * Update qiskit_braket_provider/providers/adapter.py --------- Co-authored-by: Coull <accoull@amazon.com> Co-authored-by: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com> Co-authored-by: Cody Wang <speller26@gmail.com>
1 parent 8868fec commit 8af2ada

File tree

5 files changed

+24
-10
lines changed

5 files changed

+24
-10
lines changed

docs/how_tos/data/3_hybrid_jobs/algorithm_script.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Example of usage of Qiskit-Braket provider."""
2+
23
from braket.jobs import save_job_result
34
from qiskit import QuantumCircuit
45

qiskit_braket_provider/providers/adapter.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
"cswap": "cswap",
6363
"cphaseshift": "cp",
6464
"ecr": "ecr",
65+
"prx": "r",
6566
"gpi": "gpi",
6667
"gpi2": "gpi2",
6768
"ms": "ms",
@@ -119,6 +120,7 @@
119120
"ryy": lambda angle: [braket_gates.YY(angle)],
120121
"ecr": lambda: [braket_gates.ECR()],
121122
"iswap": lambda: [braket_gates.ISwap()],
123+
"r": lambda angle_1, angle_2: [braket_gates.PRx(angle_1, angle_2)],
122124
# IonQ gates
123125
"gpi": lambda turns: [braket_gates.GPi(2 * pi * turns)],
124126
"gpi2": lambda turns: [braket_gates.GPi2(2 * pi * turns)],
@@ -173,6 +175,7 @@
173175
"z": qiskit_gates.ZGate(),
174176
"zz": qiskit_gates.RZZGate(Parameter("theta")),
175177
"ecr": qiskit_gates.ECRGate(),
178+
"prx": qiskit_gates.RGate(Parameter("theta"), Parameter("phi")),
176179
"iswap": qiskit_gates.iSwapGate(),
177180
"gpi": ionq_gates.GPIGate(Parameter("phi") / (2 * pi)),
178181
"gpi2": ionq_gates.GPI2Gate(Parameter("phi") / (2 * pi)),

qiskit_braket_provider/providers/braket_task.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,11 @@ def _get_result_from_aws_tasks(
6565
experiment_result = ExperimentResult(
6666
shots=result.task_metadata.shots,
6767
success=True,
68-
status=task.state()
69-
if isinstance(task, LocalQuantumTask)
70-
else result.task_metadata.status,
68+
status=(
69+
task.state()
70+
if isinstance(task, LocalQuantumTask)
71+
else result.task_metadata.status
72+
),
7173
data=data,
7274
)
7375
experiment_results.append(experiment_result)
@@ -176,9 +178,11 @@ def cancel(self):
176178

177179
def status(self, use_cached_value: bool = False):
178180
braket_tasks_states = [
179-
task.state()
180-
if isinstance(task, LocalQuantumTask)
181-
else task.state(use_cached_value=use_cached_value)
181+
(
182+
task.state()
183+
if isinstance(task, LocalQuantumTask)
184+
else task.state(use_cached_value=use_cached_value)
185+
)
182186
for task in self._tasks
183187
]
184188

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Setup file for Qiskit-Braket provider."""
2+
23
import os
34
from typing import Any, Dict, Optional
45

tests/providers/test_adapter.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import numpy as np
77
import pytest
88
from braket.circuits import Circuit, FreeParameter, Gate, Instruction
9-
from braket.circuits.angled_gate import AngledGate, TripleAngledGate
9+
from braket.circuits.angled_gate import AngledGate, DoubleAngledGate, TripleAngledGate
1010
from qiskit import ClassicalRegister, QuantumCircuit, QuantumRegister
1111
from qiskit.circuit import Parameter, ParameterVector
1212
from qiskit.circuit.library import GlobalPhaseGate, PauliEvolutionGate
@@ -222,6 +222,7 @@ def test_mappers(self):
222222
"id": "i",
223223
"ccx": "ccnot",
224224
"cp": "cphaseshift",
225+
"r": "prx",
225226
"rxx": "xx",
226227
"ryy": "yy",
227228
"zz": "zz",
@@ -546,6 +547,8 @@ def test_all_standard_gates(self):
546547
gate = getattr(Gate, gate_name)
547548
if issubclass(gate, AngledGate):
548549
op = gate(params_braket[0])
550+
elif issubclass(gate, DoubleAngledGate):
551+
op = gate(params_braket[0], params_braket[1])
549552
elif issubclass(gate, TripleAngledGate):
550553
op = gate(*params_braket)
551554
else:
@@ -559,9 +562,11 @@ def test_all_standard_gates(self):
559562
param.name: param._uuid for param in qiskit_circuit.parameters
560563
}
561564
params_qiskit = [
562-
Parameter(param.name, uuid=param_uuids.get(param.name))
563-
if isinstance(param, FreeParameter)
564-
else param
565+
(
566+
Parameter(param.name, uuid=param_uuids.get(param.name))
567+
if isinstance(param, FreeParameter)
568+
else param
569+
)
565570
for param in params_braket
566571
]
567572

0 commit comments

Comments
 (0)