Skip to content

Commit

Permalink
disable fireopal validation by default
Browse files Browse the repository at this point in the history
  • Loading branch information
sw1sh committed Feb 3, 2024
1 parent ee6c93b commit 538b60f
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions QuantumFramework/Kernel/QuantumCircuitOperator/Qiskit.m
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ elif hasattr(gate, 'num_ctrl_qubits'):
{provider, params} = Replace[OptionValue["Provider"], {
{name_, params : OptionsPattern[]} | name_ :> {name, Flatten[{params}]}
}];
If[provider === None && $fireOpal, provider = "IBMProvider"];

If[ MatchQ[provider, "IBMQ" | "IBMProvider"],
$token = Lookup[
Expand Down Expand Up @@ -394,17 +395,18 @@ elif hasattr(gate, 'num_ctrl_qubits'):
if isinstance(provider, IBMProvider):
fireopal_credentials = make_credentials_for_ibmq(provider._account.token, 'open', 'ibm-q', 'main')
else:
raise ValueError('Unsupported FireOpal provider')
raise ValueError(f'Unsupported FireOpal provider: {provider}')
"
]
]

Options[qiskitApply] = Join[{"Shots" -> 1024}, Options[qiskitInitBackend]]
Options[qiskitApply] = Join[{"Shots" -> 1024, "Validate" -> False}, Options[qiskitInitBackend]]

qiskitApply[qc_QiskitCircuit, qs_QuantumState, opts : OptionsPattern[]] := Enclose @ Block[{
$state = If[qs["Dimension"] == 1, Null, NumericArray @ N @ qs["Reverse"]["StateVector"]],
$shots = OptionValue["Shots"],
$fireOpal = TrueQ[OptionValue["FireOpal"]],
$validate = TrueQ[OptionValue["Validate"]],
result
},
ConfirmAssert[qs["InputDimensions"] == {}];
Expand Down Expand Up @@ -435,14 +437,15 @@ raise ValueError('Unsupported FireOpal provider')
if <* $fireOpal *>:
import fireopal
qasm = circuit.qasm()
validate_results = fireopal.validate(
circuits=[qasm], credentials=fireopal_credentials, backend_name=backend.name
)
assert validate_results['results'] == [], validate_results['results'][0]['error_message']
if <* $validate *>:
validate_results = fireopal.validate(
circuits=[qasm], credentials=fireopal_credentials, backend_name=backend.name
)
assert validate_results['results'] == [], validate_results['results'][0]['error_message']
result = fireopal.execute(
circuits=[qasm],
shot_count=<* $shots *>,
credentials=credentials,
credentials=fireopal_credentials,
backend_name=backend.name,
)['results'][0]
result = {k[::-1]: v for k, v in result.items()}
Expand Down

0 comments on commit 538b60f

Please sign in to comment.