diff --git a/.buildinfo b/.buildinfo index f9aa9d2..77688ec 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 42cebe1db5a1e3fefae0206dd987fba9 +# This file records the configuration used when building these files. When it is not found, a full rebuild will be done. +config: d34437364b4a3362dca2bf305d551f77 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index b5c8704..aa19ea1 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/_modules/index.html b/_modules/index.html index be5672c..6e9edbd 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -4,7 +4,7 @@ - + Overview: module code - Qiskit Research 0.0.5.dev0 @@ -288,7 +288,7 @@

All modules for which code is available

- + diff --git a/_modules/qiskit_research/utils/backend.html b/_modules/qiskit_research/utils/backend.html index 996744d..fe1e28b 100644 --- a/_modules/qiskit_research/utils/backend.html +++ b/_modules/qiskit_research/utils/backend.html @@ -4,7 +4,7 @@ - + qiskit_research.utils.backend - Qiskit Research 0.0.5.dev0 @@ -312,7 +312,7 @@

Source code for qiskit_research.utils.backend

- + diff --git a/_modules/qiskit_research/utils/dynamical_decoupling.html b/_modules/qiskit_research/utils/dynamical_decoupling.html index 3e800e0..65367e0 100644 --- a/_modules/qiskit_research/utils/dynamical_decoupling.html +++ b/_modules/qiskit_research/utils/dynamical_decoupling.html @@ -4,7 +4,7 @@ - + qiskit_research.utils.dynamical_decoupling - Qiskit Research 0.0.5.dev0 @@ -848,7 +848,7 @@

Source code for qiskit_research.utils.dynamical_decoupling

- + diff --git a/_modules/qiskit_research/utils/gate_decompositions.html b/_modules/qiskit_research/utils/gate_decompositions.html index 6b73196..ca26c15 100644 --- a/_modules/qiskit_research/utils/gate_decompositions.html +++ b/_modules/qiskit_research/utils/gate_decompositions.html @@ -4,7 +4,7 @@ - + qiskit_research.utils.gate_decompositions - Qiskit Research 0.0.5.dev0 @@ -610,7 +610,7 @@

Source code for qiskit_research.utils.gate_decompositions

- + diff --git a/_modules/qiskit_research/utils/pauli_twirling.html b/_modules/qiskit_research/utils/pauli_twirling.html index a619b3a..30cf37b 100644 --- a/_modules/qiskit_research/utils/pauli_twirling.html +++ b/_modules/qiskit_research/utils/pauli_twirling.html @@ -4,7 +4,7 @@ - + qiskit_research.utils.pauli_twirling - Qiskit Research 0.0.5.dev0 @@ -262,14 +262,27 @@

Source code for qiskit_research.utils.pauli_twirling

"""Pauli twirling.""" from typing import Any, Iterable, Optional +import itertools +import cmath import numpy as np -from qiskit.circuit import QuantumRegister +from qiskit.circuit import QuantumRegister, QuantumCircuit from qiskit.circuit.library import ( IGate, XGate, YGate, ZGate, + CXGate, + CYGate, + CZGate, + CHGate, + CSGate, + DCXGate, + CSXGate, + CSdgGate, + ECRGate, + iSwapGate, + SwapGate, ) from qiskit.dagcircuit import DAGCircuit from qiskit.transpiler.basepasses import BasePass, TransformationPass @@ -277,14 +290,28 @@

Source code for qiskit_research.utils.pauli_twirling

CXCancellation, Optimize1qGatesDecomposition, ) -from qiskit.quantum_info import Pauli, pauli_basis +from qiskit.quantum_info import Pauli, Operator, pauli_basis from qiskit_research.utils.pulse_scaling import BASIS_GATES +# Single qubit Pauli gates I = IGate() X = XGate() Y = YGate() Z = ZGate() +# 2Q entangling gates +CX = CXGate() # cnot; controlled-X +CY = CYGate() # controlled-Y +CZ = CZGate() # controlled-Z +CH = CHGate() # controlled-Hadamard +CS = CSGate() # controlled-S +DCX = DCXGate() # double cnot +CSX = CSXGate() # controlled sqrt X +CSdg = CSdgGate() # controlled S^dagger +ECR = ECRGate() # echoed cross-resonance +Swap = SwapGate() # swap +iSwap = iSwapGate() # imaginary swap + # this list consists of the 2-qubit rotation gates TWO_QUBIT_PAULI_GENERATORS = { "rxx": Pauli("XX"), @@ -294,6 +321,74 @@

Source code for qiskit_research.utils.pauli_twirling

"secr": Pauli("XZ"), } + +def match_global_phase(a, b): + """Phase the given arrays so that their phases match at one entry. + + Args: + a: A Numpy array. + b: Another Numpy array. + + Returns: + A pair of arrays (a', b') that are equal if and only if a == b * exp(i phi) + for some real number phi. + """ + if a.shape != b.shape: + return a, b + # use the largest entry of one of the matrices to maximize precision + index = max(np.ndindex(*a.shape), key=lambda i: abs(b[i])) + phase_a = cmath.phase(a[index]) + phase_b = cmath.phase(b[index]) + return a * cmath.rect(1, -phase_a), b * cmath.rect(1, -phase_b) + + +def allclose_up_to_global_phase(a, b, rtol=1e-05, atol=1e-08, equal_nan=False): + """Check if two operators are close up to a global phase.""" + # Phase both operators to match their phases + phased_op1, phased_op2 = match_global_phase(a, b) + return np.allclose(phased_op1, phased_op2, rtol, atol, equal_nan) + + +def create_pauli_twirling_sets(two_qubit_gate): + """Generate the Pauli twirling sets for a given 2Q gate. + + Sets are ordered such that gate[0] and gate[1] are pre-rotations + applied to control and target, respectively. gate[2] and gate[3] + are post-rotations for control and target, respectively. + + Parameters: + two_qubit_gate (Gate): Input two-qubit gate + + Returns: + tuple: Tuple of all twirling gate sets + """ + + target_unitary = np.array(two_qubit_gate) + twirling_sets = [] + + # Generate combinations of 4 gates from the operator list + for gates in itertools.product(itertools.product([I, X, Y, Z], repeat=2), repeat=2): + qc = _build_twirl_circuit(gates, two_qubit_gate) + qc_array = Operator.from_circuit(qc).to_matrix() + if allclose_up_to_global_phase(qc_array, target_unitary): + twirling_sets.append(gates) + + return tuple(twirling_sets) + + +def _build_twirl_circuit(gates, two_qubit_gate): + """Build the twirled quantum circuit with specified gates.""" + qc = QuantumCircuit(2) + + qc.append(gates[0][0], [0]) + qc.append(gates[0][1], [1]) + qc.append(two_qubit_gate, [0, 1]) + qc.append(gates[1][0], [0]) + qc.append(gates[1][1], [1]) + + return qc + + # this dictionary stores the twirl sets for each supported gate # each key is the name of a supported gate # each value is a tuple that represents the twirl set for the gate @@ -301,24 +396,17 @@

Source code for qiskit_research.utils.pauli_twirling

# "before" and "after" are tuples of single-qubit gates to be applied # before and after the gate to be twirled TWIRL_GATES = { - "cx": ( - ((I, I), (I, I)), - ((I, X), (I, X)), - ((I, Y), (Z, Y)), - ((I, Z), (Z, Z)), - ((X, I), (X, X)), - ((X, X), (X, I)), - ((X, Y), (Y, Z)), - ((X, Z), (Y, Y)), - ((Y, I), (Y, X)), - ((Y, X), (Y, I)), - ((Y, Y), (X, Z)), - ((Y, Z), (X, Y)), - ((Z, I), (Z, I)), - ((Z, X), (Z, X)), - ((Z, Y), (I, Y)), - ((Z, Z), (I, Z)), - ), + "cx": create_pauli_twirling_sets(CX), + "cy": create_pauli_twirling_sets(CY), + "cz": create_pauli_twirling_sets(CZ), + "ch": create_pauli_twirling_sets(CH), + "cs": create_pauli_twirling_sets(CS), + "dcx": create_pauli_twirling_sets(DCX), + "csx": create_pauli_twirling_sets(CSX), + "csdg": create_pauli_twirling_sets(CSdg), + "ecr": create_pauli_twirling_sets(ECR), + "swap": create_pauli_twirling_sets(Swap), + "iswap": create_pauli_twirling_sets(iSwap), } @@ -447,7 +535,7 @@

Source code for qiskit_research.utils.pauli_twirling

- + diff --git a/_modules/qiskit_research/utils/periodic_dynamical_decoupling.html b/_modules/qiskit_research/utils/periodic_dynamical_decoupling.html index 5e78e5d..9870634 100644 --- a/_modules/qiskit_research/utils/periodic_dynamical_decoupling.html +++ b/_modules/qiskit_research/utils/periodic_dynamical_decoupling.html @@ -4,7 +4,7 @@ - + qiskit_research.utils.periodic_dynamical_decoupling - Qiskit Research 0.0.5.dev0 @@ -701,7 +701,7 @@

Source code for qiskit_research.utils.periodic_dynamical_decoupling

- + diff --git a/_modules/qiskit_research/utils/pulse_scaling.html b/_modules/qiskit_research/utils/pulse_scaling.html index a336c71..d557201 100644 --- a/_modules/qiskit_research/utils/pulse_scaling.html +++ b/_modules/qiskit_research/utils/pulse_scaling.html @@ -4,7 +4,7 @@ - + qiskit_research.utils.pulse_scaling - Qiskit Research 0.0.5.dev0 @@ -658,7 +658,7 @@

Source code for qiskit_research.utils.pulse_scaling

- + diff --git a/_static/basic.css b/_static/basic.css index f316efc..7ebbd6d 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -1,12 +1,5 @@ /* - * basic.css - * ~~~~~~~~~ - * * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ /* -- main layout ----------------------------------------------------------- */ @@ -115,15 +108,11 @@ img { /* -- search page ----------------------------------------------------------- */ ul.search { - margin: 10px 0 0 20px; - padding: 0; + margin-top: 10px; } ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; + padding: 5px 0; } ul.search li a { diff --git a/_static/doctools.js b/_static/doctools.js index 4d67807..0398ebb 100644 --- a/_static/doctools.js +++ b/_static/doctools.js @@ -1,12 +1,5 @@ /* - * doctools.js - * ~~~~~~~~~~~ - * * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ "use strict"; diff --git a/_static/language_data.js b/_static/language_data.js index 367b8ed..c7fe6c6 100644 --- a/_static/language_data.js +++ b/_static/language_data.js @@ -1,13 +1,6 @@ /* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; diff --git a/_static/searchtools.js b/_static/searchtools.js index b08d58c..2c774d1 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -1,12 +1,5 @@ /* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ "use strict"; @@ -20,7 +13,7 @@ if (typeof Scorer === "undefined") { // and returns the new score. /* score: result => { - const [docname, title, anchor, descr, score, filename] = result + const [docname, title, anchor, descr, score, filename, kind] = result return score }, */ @@ -47,6 +40,14 @@ if (typeof Scorer === "undefined") { }; } +// Global search result kind enum, used by themes to style search results. +class SearchResultKind { + static get index() { return "index"; } + static get object() { return "object"; } + static get text() { return "text"; } + static get title() { return "title"; } +} + const _removeChildren = (element) => { while (element && element.lastChild) element.removeChild(element.lastChild); }; @@ -64,9 +65,13 @@ const _displayItem = (item, searchTerms, highlightTerms) => { const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; const contentRoot = document.documentElement.dataset.content_root; - const [docName, title, anchor, descr, score, _filename] = item; + const [docName, title, anchor, descr, score, _filename, kind] = item; let listItem = document.createElement("li"); + // Add a class representing the item's type: + // can be used by a theme's CSS selector for styling + // See SearchResultKind for the class names. + listItem.classList.add(`kind-${kind}`); let requestUrl; let linkUrl; if (docBuilder === "dirhtml") { @@ -115,8 +120,10 @@ const _finishSearch = (resultCount) => { "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." ); else - Search.status.innerText = _( - "Search finished, found ${resultCount} page(s) matching the search query." + Search.status.innerText = Documentation.ngettext( + "Search finished, found one page matching the search query.", + "Search finished, found ${resultCount} pages matching the search query.", + resultCount, ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( @@ -138,7 +145,7 @@ const _displayNextItem = ( else _finishSearch(resultCount); }; // Helper function used by query() to order search results. -// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Each input is an array of [docname, title, anchor, descr, score, filename, kind]. // Order the results by score (in opposite order of appearance, since the // `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. const _orderResultsByScoreThenName = (a, b) => { @@ -248,6 +255,7 @@ const Search = { searchSummary.classList.add("search-summary"); searchSummary.innerText = ""; const searchList = document.createElement("ul"); + searchList.setAttribute("role", "list"); searchList.classList.add("search"); const out = document.getElementById("search-results"); @@ -318,7 +326,7 @@ const Search = { const indexEntries = Search._index.indexentries; // Collect multiple result groups to be sorted separately and then ordered. - // Each is an array of [docname, title, anchor, descr, score, filename]. + // Each is an array of [docname, title, anchor, descr, score, filename, kind]. const normalResults = []; const nonMainIndexResults = []; @@ -337,6 +345,7 @@ const Search = { null, score + boost, filenames[file], + SearchResultKind.title, ]); } } @@ -354,6 +363,7 @@ const Search = { null, score, filenames[file], + SearchResultKind.index, ]; if (isMain) { normalResults.push(result); @@ -475,6 +485,7 @@ const Search = { descr, score, filenames[match[0]], + SearchResultKind.object, ]); }; Object.keys(objects).forEach((prefix) => @@ -585,6 +596,7 @@ const Search = { null, score, filenames[file], + SearchResultKind.text, ]); } return results; diff --git a/apidocs/index.html b/apidocs/index.html index f51c4ae..1a3d2b9 100644 --- a/apidocs/index.html +++ b/apidocs/index.html @@ -5,7 +5,7 @@ - + Qiskit Research API Reference - Qiskit Research 0.0.5.dev0 @@ -328,7 +328,7 @@
- + diff --git a/apidocs/utils.html b/apidocs/utils.html index 423110f..3deeb5a 100644 --- a/apidocs/utils.html +++ b/apidocs/utils.html @@ -5,7 +5,7 @@ - + Utilities for running research experiments with Qiskit - Qiskit Research 0.0.5.dev0 @@ -773,7 +773,7 @@
- + diff --git a/genindex.html b/genindex.html index fa1b65c..217ea53 100644 --- a/genindex.html +++ b/genindex.html @@ -4,7 +4,7 @@ - Index - Qiskit Research 0.0.5.dev0 + Index - Qiskit Research 0.0.5.dev0 @@ -460,7 +460,7 @@

X

- + diff --git a/index.html b/index.html index ffed469..be9a05b 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ - + Qiskit Research 0.0.5.dev0 @@ -324,7 +324,7 @@

Qiskit Research documentation - + diff --git a/py-modindex.html b/py-modindex.html index b0451bc..21c706d 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -4,7 +4,7 @@ - Python Module Index - Qiskit Research 0.0.5.dev0 + Python Module Index - Qiskit Research 0.0.5.dev0 @@ -311,7 +311,7 @@

Python Module Index

- + diff --git a/search.html b/search.html index 977d319..a7657d6 100644 --- a/search.html +++ b/search.html @@ -5,7 +5,7 @@ - + Search - Qiskit Research 0.0.5.dev0 @@ -293,7 +293,7 @@ - + diff --git a/searchindex.js b/searchindex.js index 83017dc..a187a2d 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Qiskit Research API Reference": [[0, null]], "Qiskit Research documentation": [[2, null]], "Utilities for running research experiments with Qiskit": [[1, null]]}, "docnames": ["apidocs/index", "apidocs/utils", "index"], "envversion": {"nbsphinx": 4, "sphinx": 63, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["apidocs/index.rst", "apidocs/utils.rst", "index.rst"], "indexentries": {"add_pulse_calibrations() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.add_pulse_calibrations", false]], "bindparameters (class in qiskit_research.utils)": [[1, "qiskit_research.utils.BindParameters", false]], "combineruns (class in qiskit_research.utils)": [[1, "qiskit_research.utils.CombineRuns", false]], "cr_scaling_passes() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.cr_scaling_passes", false]], "dynamical_decoupling_passes() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.dynamical_decoupling_passes", false]], "get_backend() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.get_backend", false]], "get_calibration() (secrcalibrationbuilder method)": [[1, "qiskit_research.utils.SECRCalibrationBuilder.get_calibration", false]], "module": [[0, "module-qiskit_research", false], [1, "module-qiskit_research.utils", false]], "pauli_transpilation_passes() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.pauli_transpilation_passes", false]], "paulitwirl (class in qiskit_research.utils)": [[1, "qiskit_research.utils.PauliTwirl", false]], "periodicdynamicaldecoupling (class in qiskit_research.utils)": [[1, "qiskit_research.utils.PeriodicDynamicalDecoupling", false]], "pulse_attaching_passes() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.pulse_attaching_passes", false]], "qiskit_research": [[0, "module-qiskit_research", false]], "qiskit_research.utils": [[1, "module-qiskit_research.utils", false]], "run() (bindparameters method)": [[1, "qiskit_research.utils.BindParameters.run", false]], "run() (combineruns method)": [[1, "qiskit_research.utils.CombineRuns.run", false]], "run() (paulitwirl method)": [[1, "qiskit_research.utils.PauliTwirl.run", false]], "run() (rzxtoechoedcr method)": [[1, "qiskit_research.utils.RZXtoEchoedCR.run", false]], "run() (rzxweyldecomposition method)": [[1, "qiskit_research.utils.RZXWeylDecomposition.run", false]], "run() (xxminusyytorzx method)": [[1, "qiskit_research.utils.XXMinusYYtoRZX.run", false]], "run() (xxplusyytorzx method)": [[1, "qiskit_research.utils.XXPlusYYtoRZX.run", false]], "rzxtoechoedcr (class in qiskit_research.utils)": [[1, "qiskit_research.utils.RZXtoEchoedCR", false]], "rzxweyldecomposition (class in qiskit_research.utils)": [[1, "qiskit_research.utils.RZXWeylDecomposition", false]], "secrcalibrationbuilder (class in qiskit_research.utils)": [[1, "qiskit_research.utils.SECRCalibrationBuilder", false]], "supported() (secrcalibrationbuilder method)": [[1, "qiskit_research.utils.SECRCalibrationBuilder.supported", false]], "xxminusyytorzx (class in qiskit_research.utils)": [[1, "qiskit_research.utils.XXMinusYYtoRZX", false]], "xxplusyytorzx (class in qiskit_research.utils)": [[1, "qiskit_research.utils.XXPlusYYtoRZX", false]]}, "objects": {"": [[0, 0, 0, "-", "qiskit_research"]], "qiskit_research": [[1, 0, 0, "-", "utils"]], "qiskit_research.utils": [[1, 1, 1, "", "BindParameters"], [1, 1, 1, "", "CombineRuns"], [1, 1, 1, "", "PauliTwirl"], [1, 1, 1, "", "PeriodicDynamicalDecoupling"], [1, 1, 1, "", "RZXWeylDecomposition"], [1, 1, 1, "", "RZXtoEchoedCR"], [1, 1, 1, "", "SECRCalibrationBuilder"], [1, 1, 1, "", "XXMinusYYtoRZX"], [1, 1, 1, "", "XXPlusYYtoRZX"], [1, 3, 1, "", "add_pulse_calibrations"], [1, 3, 1, "", "cr_scaling_passes"], [1, 3, 1, "", "dynamical_decoupling_passes"], [1, 3, 1, "", "get_backend"], [1, 3, 1, "", "pauli_transpilation_passes"], [1, 3, 1, "", "pulse_attaching_passes"]], "qiskit_research.utils.BindParameters": [[1, 2, 1, "", "run"]], "qiskit_research.utils.CombineRuns": [[1, 2, 1, "", "run"]], "qiskit_research.utils.PauliTwirl": [[1, 2, 1, "", "run"]], "qiskit_research.utils.RZXWeylDecomposition": [[1, 2, 1, "", "run"]], "qiskit_research.utils.RZXtoEchoedCR": [[1, 2, 1, "", "run"]], "qiskit_research.utils.SECRCalibrationBuilder": [[1, 2, 1, "", "get_calibration"], [1, 2, 1, "", "supported"]], "qiskit_research.utils.XXMinusYYtoRZX": [[1, 2, 1, "", "run"]], "qiskit_research.utils.XXPlusYYtoRZX": [[1, 2, 1, "", "run"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "terms": {"0": 1, "01063": 1, "04821": 1, "1": 1, "10": 1, "1000": 1, "1400x400": 1, "1603": 1, "2": 1, "200": 1, "2105": 1, "3": 1, "300": 1, "4": 1, "50": 1, "700": 1, "8": 1, "A": 1, "As": 1, "If": 1, "In": 1, "It": 1, "Not": 1, "The": 1, "These": 1, "Will": 1, "ab": 1, "absorb": 1, "accept": 1, "accord": 1, "acquisit": 1, "action": 1, "ad": 1, "add": 1, "add_pulse_calibr": [0, 1, 2], "addit": 1, "adjust": 1, "after": 1, "alap": 1, "alapscheduleanalysi": 1, "align": 1, "all": 1, "alloc": 1, "allow": 1, "alter": 1, "amount": 1, "amplitud": 1, "an": 1, "ani": 1, "api": 2, "append": 1, "appli": 1, "ar": 1, "arg": 1, "argument": 1, "arxiv": 1, "attach": 1, "attempt": 1, "avail": 1, "averag": 1, "avg_min_delai": 1, "ax": 1, "backend": 1, "balanc": 1, "base": 1, "base_dd_sequ": 1, "base_spac": 1, "basepass": 1, "baseschedul": 1, "basi": 1, "been": 1, "befor": 1, "begin": 1, "behavior": 1, "being": 1, "best": 2, "between": 1, "bind": 1, "bindparamet": [0, 1, 2], "bool": 1, "both": 1, "build": 1, "builder": 1, "built": 1, "calcul": 1, "calibr": 1, "call": 1, "can": 1, "cannot": 1, "case": 1, "chamber": 1, "check": 1, "circ": 1, "circ_dd": 1, "circuit": 1, "class": 1, "combin": 1, "combinerun": [0, 1, 2], "compress": 1, "compris": 1, "comput": 2, "condit": 1, "configur": 1, "consecut": 1, "constraint": 1, "contain": 1, "control": 1, "correspond": 1, "cr": 1, "cr_scaling_pass": [0, 1, 2], "creat": 1, "cross": 1, "custom": 1, "cx": 1, "d": 1, "dag": 1, "dagcircuit": 1, "dd": 1, "dd_sequenc": 1, "dd_str": 1, "decoher": 1, "decompos": 1, "decomposit": 1, "decoupl": 1, "def": 1, "default": 1, "defin": 1, "delai": 1, "demonstr": 2, "describ": 1, "determin": 1, "develop": 1, "differ": 1, "divid": 1, "do": 1, "doe": 1, "dt": 1, "durat": 1, "dynam": 1, "dynamical_decoupling_pass": [0, 1, 2], "e": 1, "each": 1, "echo": 1, "edg": 1, "effect": 1, "element": 1, "end": 1, "ensur": 1, "enumer": 1, "equal": 1, "equival": 1, "even": 1, "evenli": 1, "exact": 1, "exactli": 1, "experi": [0, 2], "extra": 1, "extra_slack_distribut": 1, "figur": 1, "fill": 1, "float": 1, "follow": 1, "force_zz_match": 1, "found": 1, "from": 1, "further": 1, "g": 1, "gate": 1, "gate_nam": 1, "gates_to_twirl": 1, "gaussian": 1, "gener": 1, "get_backend": [0, 1, 2], "get_calibr": 1, "given": 1, "global": 1, "greater": 1, "ground": 1, "guarante": 1, "h": 1, "ha": 1, "hahn": 1, "happen": 1, "hardwar": 1, "have": 1, "howev": 1, "http": 1, "i": 1, "ident": 1, "idl": 1, "ignor": 1, "immedi": 1, "implement": 1, "implemet": 1, "implicitli": 1, "import": 1, "includ": 1, "indic": 1, "inform": 1, "initi": 1, "insert": 1, "instanc": 1, "instruct": 1, "instruction_schedule_map": 1, "instructiondur": 1, "instructionschedulemap": 1, "int": 1, "integ": 1, "interv": 1, "invalid": 1, "invers": 1, "iter": 1, "k": 1, "kwarg": 1, "least": 1, "left": 1, "length": 1, "less": 1, "librari": 1, "list": 1, "logic": 1, "lower": 1, "mai": 1, "mani": 1, "map": 1, "max_repeat": 1, "measur": 1, "measure_al": 1, "met": 1, "method": 1, "middl": 1, "might": 1, "mitig": 1, "more": 1, "multipl": 1, "must": 1, "n": 1, "name": 1, "need": 1, "neighbor": 1, "node": 1, "node_op": 1, "non": 1, "none": 1, "notimplementederror": 1, "np": 1, "number": 1, "numpi": 1, "object": 1, "obtain": 1, "one": 1, "onli": 1, "opposit": 1, "option": 1, "org": 1, "other": 1, "paddynamicaldecoupl": 1, "param_bind": 1, "paramet": 1, "pass": 1, "passmanag": 1, "pauli": 1, "pauli_transpilation_pass": [0, 1, 2], "paulitwirl": [0, 1, 2], "period": 1, "periodicdynamicaldecoupl": [0, 1, 2], "phase": 1, "phaseshift": 1, "physic": 1, "pi": 1, "place": 1, "plu": 1, "pm": 1, "possibl": 1, "practic": [1, 2], "preced": 1, "preserv": 1, "provid": 1, "pseudorandom": 1, "puls": 1, "pulse_align": 1, "pulse_attaching_pass": [0, 1, 2], "pulse_method": 1, "pulsemethod": 1, "put": 1, "qiskiterror": 1, "quantum": [1, 2], "quantumcircuit": 1, "qubit": 1, "rais": 1, "rang": 1, "refer": 2, "repeat": 1, "repeatedli": 1, "repetit": 1, "replac": 1, "repres": 1, "requir": 1, "reset": 1, "reson": 1, "result": 1, "retriev": 1, "return": 1, "rotat": 1, "run": [0, 2], "rzx": 1, "rzxcalibrationbuildernoecho": 1, "rzxgate": 1, "rzxtoechoedcr": [0, 1, 2], "rzxweyldecomposit": [0, 1, 2], "same": 1, "satisfi": 1, "scale": 1, "scan": 1, "schedul": 1, "scheduleblock": 1, "second": 1, "secr": 1, "secrcalibrationbuild": [0, 1, 2], "secrgat": 1, "see": 1, "seed": 1, "seed_simul": 1, "sequenc": 1, "set": 1, "shorter": 1, "should": 1, "simpl": 1, "sin": 1, "sing": 1, "singl": 1, "size": 1, "skip_reset_qubit": 1, "slack": 1, "so": 1, "someth": 1, "sometim": 1, "sourc": 1, "space": 1, "special": 1, "specifi": 1, "spot": 1, "squar": 1, "state": 1, "step": 1, "still": 1, "str": 1, "stretch": 1, "string": 1, "subclass": 1, "subject": 1, "sum": 1, "support": 1, "susceptil": 1, "take": 1, "target": 1, "templat": 1, "than": 1, "thei": 1, "theta": 1, "thi": 1, "those": 1, "time": 1, "timeline_draw": 1, "timing_constraint": 1, "total": 1, "transform": 1, "transpil": 1, "transpilererror": 1, "true": 1, "truncat": 1, "twirl": 1, "two": 1, "type": 1, "uhrig": 1, "uhrig_pulse_loc": 1, "undergo": 1, "unecho": 1, "unimpl": 1, "union": 1, "unit": 1, "unroll_rzx_to_ecr": 1, "until": 1, "up": 1, "urdd": 1, "urdd_pulse_num": 1, "us": [1, 2], "user": 1, "usual": 1, "util": [0, 2], "valu": 1, "valueerror": 1, "verbos": 1, "version": 1, "visual": 1, "want": 1, "warn": 1, "we": 1, "weyl": 1, "when": 1, "wherea": 1, "which": 1, "work": 1, "would": 1, "x": 1, "xgate": 1, "xx": 1, "xxminusyyg": 1, "xxminusyytorzx": [0, 1, 2], "xxplusyyg": 1, "xxplusyytorzx": [0, 1, 2], "yield": 1, "you": 1, "your": 1, "yy": 1, "zz": 1}, "titles": ["Qiskit Research API Reference", "Utilities for running research experiments with Qiskit", "Qiskit Research documentation"], "titleterms": {"api": 0, "document": 2, "experi": 1, "qiskit": [0, 1, 2], "refer": 0, "research": [0, 1, 2], "run": 1, "util": 1}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Qiskit Research API Reference": [[0, null]], "Qiskit Research documentation": [[2, null]], "Utilities for running research experiments with Qiskit": [[1, null]]}, "docnames": ["apidocs/index", "apidocs/utils", "index"], "envversion": {"nbsphinx": 4, "sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["apidocs/index.rst", "apidocs/utils.rst", "index.rst"], "indexentries": {"add_pulse_calibrations() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.add_pulse_calibrations", false]], "bindparameters (class in qiskit_research.utils)": [[1, "qiskit_research.utils.BindParameters", false]], "combineruns (class in qiskit_research.utils)": [[1, "qiskit_research.utils.CombineRuns", false]], "cr_scaling_passes() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.cr_scaling_passes", false]], "dynamical_decoupling_passes() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.dynamical_decoupling_passes", false]], "get_backend() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.get_backend", false]], "get_calibration() (secrcalibrationbuilder method)": [[1, "qiskit_research.utils.SECRCalibrationBuilder.get_calibration", false]], "module": [[0, "module-qiskit_research", false], [1, "module-qiskit_research.utils", false]], "pauli_transpilation_passes() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.pauli_transpilation_passes", false]], "paulitwirl (class in qiskit_research.utils)": [[1, "qiskit_research.utils.PauliTwirl", false]], "periodicdynamicaldecoupling (class in qiskit_research.utils)": [[1, "qiskit_research.utils.PeriodicDynamicalDecoupling", false]], "pulse_attaching_passes() (in module qiskit_research.utils)": [[1, "qiskit_research.utils.pulse_attaching_passes", false]], "qiskit_research": [[0, "module-qiskit_research", false]], "qiskit_research.utils": [[1, "module-qiskit_research.utils", false]], "run() (bindparameters method)": [[1, "qiskit_research.utils.BindParameters.run", false]], "run() (combineruns method)": [[1, "qiskit_research.utils.CombineRuns.run", false]], "run() (paulitwirl method)": [[1, "qiskit_research.utils.PauliTwirl.run", false]], "run() (rzxtoechoedcr method)": [[1, "qiskit_research.utils.RZXtoEchoedCR.run", false]], "run() (rzxweyldecomposition method)": [[1, "qiskit_research.utils.RZXWeylDecomposition.run", false]], "run() (xxminusyytorzx method)": [[1, "qiskit_research.utils.XXMinusYYtoRZX.run", false]], "run() (xxplusyytorzx method)": [[1, "qiskit_research.utils.XXPlusYYtoRZX.run", false]], "rzxtoechoedcr (class in qiskit_research.utils)": [[1, "qiskit_research.utils.RZXtoEchoedCR", false]], "rzxweyldecomposition (class in qiskit_research.utils)": [[1, "qiskit_research.utils.RZXWeylDecomposition", false]], "secrcalibrationbuilder (class in qiskit_research.utils)": [[1, "qiskit_research.utils.SECRCalibrationBuilder", false]], "supported() (secrcalibrationbuilder method)": [[1, "qiskit_research.utils.SECRCalibrationBuilder.supported", false]], "xxminusyytorzx (class in qiskit_research.utils)": [[1, "qiskit_research.utils.XXMinusYYtoRZX", false]], "xxplusyytorzx (class in qiskit_research.utils)": [[1, "qiskit_research.utils.XXPlusYYtoRZX", false]]}, "objects": {"": [[0, 0, 0, "-", "qiskit_research"]], "qiskit_research": [[1, 0, 0, "-", "utils"]], "qiskit_research.utils": [[1, 1, 1, "", "BindParameters"], [1, 1, 1, "", "CombineRuns"], [1, 1, 1, "", "PauliTwirl"], [1, 1, 1, "", "PeriodicDynamicalDecoupling"], [1, 1, 1, "", "RZXWeylDecomposition"], [1, 1, 1, "", "RZXtoEchoedCR"], [1, 1, 1, "", "SECRCalibrationBuilder"], [1, 1, 1, "", "XXMinusYYtoRZX"], [1, 1, 1, "", "XXPlusYYtoRZX"], [1, 3, 1, "", "add_pulse_calibrations"], [1, 3, 1, "", "cr_scaling_passes"], [1, 3, 1, "", "dynamical_decoupling_passes"], [1, 3, 1, "", "get_backend"], [1, 3, 1, "", "pauli_transpilation_passes"], [1, 3, 1, "", "pulse_attaching_passes"]], "qiskit_research.utils.BindParameters": [[1, 2, 1, "", "run"]], "qiskit_research.utils.CombineRuns": [[1, 2, 1, "", "run"]], "qiskit_research.utils.PauliTwirl": [[1, 2, 1, "", "run"]], "qiskit_research.utils.RZXWeylDecomposition": [[1, 2, 1, "", "run"]], "qiskit_research.utils.RZXtoEchoedCR": [[1, 2, 1, "", "run"]], "qiskit_research.utils.SECRCalibrationBuilder": [[1, 2, 1, "", "get_calibration"], [1, 2, 1, "", "supported"]], "qiskit_research.utils.XXMinusYYtoRZX": [[1, 2, 1, "", "run"]], "qiskit_research.utils.XXPlusYYtoRZX": [[1, 2, 1, "", "run"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "terms": {"0": 1, "01063": 1, "04821": 1, "1": 1, "10": 1, "1000": 1, "1400x400": 1, "1603": 1, "2": 1, "200": 1, "2105": 1, "3": 1, "300": 1, "4": 1, "50": 1, "700": 1, "8": 1, "A": 1, "As": 1, "If": 1, "In": 1, "It": 1, "Not": 1, "The": 1, "These": 1, "Will": 1, "ab": 1, "absorb": 1, "accept": 1, "accord": 1, "acquisit": 1, "action": 1, "ad": 1, "add": 1, "add_pulse_calibr": [0, 1, 2], "addit": 1, "adjust": 1, "after": 1, "alap": 1, "alapscheduleanalysi": 1, "align": 1, "all": 1, "alloc": 1, "allow": 1, "alter": 1, "amount": 1, "amplitud": 1, "an": 1, "ani": 1, "api": 2, "append": 1, "appli": 1, "ar": 1, "arg": 1, "argument": 1, "arxiv": 1, "attach": 1, "attempt": 1, "avail": 1, "averag": 1, "avg_min_delai": 1, "ax": 1, "backend": 1, "balanc": 1, "base": 1, "base_dd_sequ": 1, "base_spac": 1, "basepass": 1, "baseschedul": 1, "basi": 1, "been": 1, "befor": 1, "begin": 1, "behavior": 1, "being": 1, "best": 2, "between": 1, "bind": 1, "bindparamet": [0, 1, 2], "bool": 1, "both": 1, "build": 1, "builder": 1, "built": 1, "calcul": 1, "calibr": 1, "call": 1, "can": 1, "cannot": 1, "case": 1, "chamber": 1, "check": 1, "circ": 1, "circ_dd": 1, "circuit": 1, "class": 1, "combin": 1, "combinerun": [0, 1, 2], "compress": 1, "compris": 1, "comput": 2, "condit": 1, "configur": 1, "consecut": 1, "constraint": 1, "contain": 1, "control": 1, "correspond": 1, "cr": 1, "cr_scaling_pass": [0, 1, 2], "creat": 1, "cross": 1, "custom": 1, "cx": 1, "d": 1, "dag": 1, "dagcircuit": 1, "dd": 1, "dd_sequenc": 1, "dd_str": 1, "decoher": 1, "decompos": 1, "decomposit": 1, "decoupl": 1, "def": 1, "default": 1, "defin": 1, "delai": 1, "demonstr": 2, "describ": 1, "determin": 1, "develop": 1, "differ": 1, "divid": 1, "do": 1, "doe": 1, "dt": 1, "durat": 1, "dynam": 1, "dynamical_decoupling_pass": [0, 1, 2], "e": 1, "each": 1, "echo": 1, "edg": 1, "effect": 1, "element": 1, "end": 1, "ensur": 1, "enumer": 1, "equal": 1, "equival": 1, "even": 1, "evenli": 1, "exact": 1, "exactli": 1, "experi": [0, 2], "extra": 1, "extra_slack_distribut": 1, "figur": 1, "fill": 1, "float": 1, "follow": 1, "force_zz_match": 1, "found": 1, "from": 1, "further": 1, "g": 1, "gate": 1, "gate_nam": 1, "gates_to_twirl": 1, "gaussian": 1, "gener": 1, "get_backend": [0, 1, 2], "get_calibr": 1, "given": 1, "global": 1, "greater": 1, "ground": 1, "guarante": 1, "h": 1, "ha": 1, "hahn": 1, "happen": 1, "hardwar": 1, "have": 1, "howev": 1, "http": 1, "i": 1, "ident": 1, "idl": 1, "ignor": 1, "immedi": 1, "implement": 1, "implemet": 1, "implicitli": 1, "import": 1, "includ": 1, "indic": 1, "inform": 1, "initi": 1, "insert": 1, "instanc": 1, "instruct": 1, "instruction_schedule_map": 1, "instructiondur": 1, "instructionschedulemap": 1, "int": 1, "integ": 1, "interv": 1, "invalid": 1, "invers": 1, "iter": 1, "k": 1, "kwarg": 1, "least": 1, "left": 1, "length": 1, "less": 1, "librari": 1, "list": 1, "logic": 1, "lower": 1, "mai": 1, "mani": 1, "map": 1, "max_repeat": 1, "measur": 1, "measure_al": 1, "met": 1, "method": 1, "middl": 1, "might": 1, "mitig": 1, "more": 1, "multipl": 1, "must": 1, "n": 1, "name": 1, "need": 1, "neighbor": 1, "node": 1, "node_op": 1, "non": 1, "none": 1, "notimplementederror": 1, "np": 1, "number": 1, "numpi": 1, "object": 1, "obtain": 1, "one": 1, "onli": 1, "opposit": 1, "option": 1, "org": 1, "other": 1, "paddynamicaldecoupl": 1, "param_bind": 1, "paramet": 1, "pass": 1, "passmanag": 1, "pauli": 1, "pauli_transpilation_pass": [0, 1, 2], "paulitwirl": [0, 1, 2], "period": 1, "periodicdynamicaldecoupl": [0, 1, 2], "phase": 1, "phaseshift": 1, "physic": 1, "pi": 1, "place": 1, "plu": 1, "pm": 1, "possibl": 1, "practic": [1, 2], "preced": 1, "preserv": 1, "provid": 1, "pseudorandom": 1, "puls": 1, "pulse_align": 1, "pulse_attaching_pass": [0, 1, 2], "pulse_method": 1, "pulsemethod": 1, "put": 1, "qiskiterror": 1, "quantum": [1, 2], "quantumcircuit": 1, "qubit": 1, "rais": 1, "rang": 1, "refer": 2, "repeat": 1, "repeatedli": 1, "repetit": 1, "replac": 1, "repres": 1, "requir": 1, "reset": 1, "reson": 1, "result": 1, "retriev": 1, "return": 1, "rotat": 1, "run": [0, 2], "rzx": 1, "rzxcalibrationbuildernoecho": 1, "rzxgate": 1, "rzxtoechoedcr": [0, 1, 2], "rzxweyldecomposit": [0, 1, 2], "same": 1, "satisfi": 1, "scale": 1, "scan": 1, "schedul": 1, "scheduleblock": 1, "second": 1, "secr": 1, "secrcalibrationbuild": [0, 1, 2], "secrgat": 1, "see": 1, "seed": 1, "seed_simul": 1, "sequenc": 1, "set": 1, "shorter": 1, "should": 1, "simpl": 1, "sin": 1, "sing": 1, "singl": 1, "size": 1, "skip_reset_qubit": 1, "slack": 1, "so": 1, "someth": 1, "sometim": 1, "sourc": 1, "space": 1, "special": 1, "specifi": 1, "spot": 1, "squar": 1, "state": 1, "step": 1, "still": 1, "str": 1, "stretch": 1, "string": 1, "subclass": 1, "subject": 1, "sum": 1, "support": 1, "susceptil": 1, "take": 1, "target": 1, "templat": 1, "than": 1, "thei": 1, "theta": 1, "thi": 1, "those": 1, "time": 1, "timeline_draw": 1, "timing_constraint": 1, "total": 1, "transform": 1, "transpil": 1, "transpilererror": 1, "true": 1, "truncat": 1, "twirl": 1, "two": 1, "type": 1, "uhrig": 1, "uhrig_pulse_loc": 1, "undergo": 1, "unecho": 1, "unimpl": 1, "union": 1, "unit": 1, "unroll_rzx_to_ecr": 1, "until": 1, "up": 1, "urdd": 1, "urdd_pulse_num": 1, "us": [1, 2], "user": 1, "usual": 1, "util": [0, 2], "valu": 1, "valueerror": 1, "verbos": 1, "version": 1, "visual": 1, "want": 1, "warn": 1, "we": 1, "weyl": 1, "when": 1, "wherea": 1, "which": 1, "work": 1, "would": 1, "x": 1, "xgate": 1, "xx": 1, "xxminusyyg": 1, "xxminusyytorzx": [0, 1, 2], "xxplusyyg": 1, "xxplusyytorzx": [0, 1, 2], "yield": 1, "you": 1, "your": 1, "yy": 1, "zz": 1}, "titles": ["Qiskit Research API Reference", "Utilities for running research experiments with Qiskit", "Qiskit Research documentation"], "titleterms": {"api": 0, "document": 2, "experi": 1, "qiskit": [0, 1, 2], "refer": 0, "research": [0, 1, 2], "run": 1, "util": 1}}) \ No newline at end of file